Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add capability for relatively arbitrary CICE restart output times #819

Closed
apcraig opened this issue Mar 9, 2023 · 6 comments · Fixed by #850
Closed

Add capability for relatively arbitrary CICE restart output times #819

apcraig opened this issue Mar 9, 2023 · 6 comments · Fixed by #850
Assignees

Comments

@apcraig
Copy link
Contributor

apcraig commented Mar 9, 2023

There is a need by several groups to set relative arbitrary restart output times (ie. hour 3 and hour 24 only). Several groups have implemented something that works for them. We should discuss the best way to add this feature generally. It should be robust, flexible, and clear (if possible). Should we provide/extend a namelist to support a list of times (what format), step numbers, etc? Or should we add a feature that does something like allow a start time, frequency, and end time? Any other ideas? @phil-blain @daveh150 @dabail10 @rallard77

@phil-blain
Copy link
Member

Just to start off the discussion, here is what our implementation looks like:

  • we set dumpfreq='L', for "list"
  • we have an additional dumplist_step array as additional namelist option, arbitrarily hard-coded to size 10
  • if the current time step (istep) corresponds to the "current" item in dumplist_step, we write a restart.

@daveh150
Copy link
Contributor

daveh150 commented Mar 10, 2023 via email

@daveh150
Copy link
Contributor

daveh150 commented Mar 10, 2023 via email

@apcraig
Copy link
Contributor Author

apcraig commented Mar 28, 2023

Thanks for the input. There are challenges with all the options above. The start/stop+freq does not cover everything. Lets say you want output at hour 3, 24 and 72. The list option makes sense to me, but the question is what should the units be? Timestep (istep) is easy to implement but more difficult to use. Maybe some sort of date/time format, but that needs to change with each run. Maybe time since the start of this run like 3, 24, and 72 hours? What if you want a restart monthly plus at hour 24 and 48 of the run? Thoughts?

Finally, just to clarify, we are just talking about this feature for restart files? You could also imagine this might be used for instantaneous history files too, but I think we should take that off the table for now.

@apcraig
Copy link
Contributor Author

apcraig commented Jul 31, 2023

Have looked at the code a bit. What I propose is to make dumpfreq, dumpfreq_n, and dumpfreq_base all arrays of size 5. That way, users could set things to write monthly restarts plus restarts every 5 hours plus restarts every 10 timesteps and so forth. A restart would be written for each "frequency". The other thing I propose is to create some new dumpfreq options that basically indicate to do it only once. dumpfreq current allows [y,m,d,h,1]. I would add [y1,m1,d1,h1,11] to indicate write at this frequency once then stop the frequency. So in practice, that might looks like

dumpfreq = 'm','h1','h1'
dumpfreq_n = 1,3,24
dumpfreq_base='zero','init','init'

so a restart would be written at the start of each month and just at 3 hours and 24 hours after the run starts.

Does this seem like a flexible enough solution? It also is consistent with how we define multiple history streams, except for the "just once" option which would be just for restarts. Is "y1" a reasonable syntax. Could also do "y_1" or "yonce" or "y_once" or "yfirst" or something else like that to indicate, do it just once.

@apcraig
Copy link
Contributor Author

apcraig commented Aug 1, 2023

See proposed implementation #850.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants