Scheduled Downtime
On Tuesday 24 October 2023 @ 5pm MT the forums will be in read only mode in preparation for the downtime. On Wednesday 25 October 2023 @ 5am MT, this website will be down for maintenance and expected to return online later in the morning.
Normal Operations
The forums are back online with normal operations. If you notice any issues or errors related to the forums, please reach out to help@ucar.edu

Monthly Diagnostic Output - Icepack

simondriscoll

Simon Driscoll
Member
Hi!

I would like to have monthly output of diagnostics in Icepack to speed up some runs. Currently, I see "diagfreq" as an "integer" that gives "frequency of diagnostic output in timesteps" with a default value of "24" i.e. this is daily. I cannot see how to do monthly - forcing files will be real years (e.g. 365 day years, with leap years).

Is there a way to have monthly diagnostic output from Icepack? (or any ideas on how one could modify it to create such a thing?)

Thanks!
 

dbailey

CSEG and Liaisons
Staff member
diagfreq is in units of steps. So, there is no way to do 'monthly' with this. You can enable the netcdf history and do this monthly if you wish.
 

simondriscoll

Simon Driscoll
Member
Hi!

Thank you for your super quick reply.

I am not quite sure how to do this. I assume it has something to do with USE_NETCDF. But then how to configure this to monthly, and how to output the same diagnostics as currently output (and suppress that output elsewhere) I am not quite sure. Could you give me more advice on how this can be done?

Thank you so much!
 

dbailey

CSEG and Liaisons
Staff member
This is relatively easy and we should add it to the Icepack documentation.

1. In icepack.settings set ICE_IOTYPE to netcdf. Then build / rebuild the code.

2. In icepack_in set history_cdf to .true.

However, now that I look more closely, there are no flags to control the frequency of history output either. I think we should add this to the list.
 

dbailey

CSEG and Liaisons
Staff member
So we might be able to add some enhancements here, but this would be longer term. I think the short term solution is to just write a post-processing tool that will average the netCDF step output.
 

simondriscoll

Simon Driscoll
Member
Hi,

my aim was that with a monthly write, I could do many runs and faster - since I am only interested in monthly averages writing once a month may speeds up Icepack by something of an order of magnitude higher. (1 write per month instead of ~30 per month, and writing output seems to take non-negligible time, even if Icepack is in general very fast). The reason for this was a large perturbed parameter ensemble over many parameters, so many runs would be needed, if writing monthly output only was possible then it could speed up the simulations substantially.

In this light, running as normal and averaging is what I currently do, but would not be capable of speeding up the model.
 

dbailey

CSEG and Liaisons
Staff member
Watching your talk right now. I agree that this would be a nice functionality. We are in the process of deciding if we should instead use the CICE driver in a column mode which would allow for advanced history writing and so on. Would you be interested in testing something like this? Perhaps even a 5x5 domain to start?
 

davidclemenssewall

David Clemens-Sewall
New Member
Do you need the output to be a monthly average, or would a snapshot once per month be sufficient? If you just need a snapshot I think you could implement this pretty simply by adding an if block to `ice_step`. Specifically, if you're using netCDF output, at line 229 in icdrv_RunMod.F90 add a check to see if this is the first timestep in the month and if so call history_write(). The same applies for the standard log file (just a couple lines above that).
 
Top