Hi all,


I have difficulties understanding the logic in exactly when OpenIFS writes output files and restart files. This is in the context of the superparameterization project, where we run OpenIFS coupled to another model, and explicitly call the time stepping functions.

To be specific: we run OpenIFS with 15 minute time steps, with output every step. We want to restart the model every 12 hours, by setting NFRRES=-12 in fort.4. 12 hours = 48 time steps, so we expect to call the time stepping functions 48 times. However, it seems the restart files get written out only in the beginning of the 49th step.

We tried to work around this by performing an extra call to (the first part of) the time step function at the end of each 12h run, just to write the restart files, but this results in an incomplete grib file for the output data ICMGG*+000048. This makes me think that we should actually perform the full 49th step.

Are there situations when the time stepping function does something else, but does not advance time? I have the feeling the first step of a restarted run does not advance time, but I may be confused...


Greetings,

Fredrik Jansson

3 Comments

  1. Unknown User (nagc)

    Hi Fredrik,

    I need to understand a bit more what you are doing. When you say 'call the time stepping function' and 'first part of time step function', which subroutines in OpenIFS are you referring to: CNT0, CNT2?

    There are times in the model when the control layers are called several times without advancing the step. You can see this in the output file ifs.stat which sometimes has multiple lines per step to indicate it's doing something different, particularly at the model start.

    Cheers,  Glenn

  2. Unknown User (jansson)

    Hi Glenn,

    I mean CNT0. We call CNT0 once every time step of our coupled model. But because we want to couple to the high-resolution model at the stage of the cloud scheme, we have split CNT0 and several routines below it in three parts: before cloud scheme, cloud scheme, and after cloud scheme.

    Meanwhile I got the restarts working. I found out that the first step of the restarted run overlaps the last step of the previous run. I compared a run without restarts with one that was restarted several times, and they turn out identical. So for now I think the problem is solved.

    Thanks for confirming that CNT0 sometimes doesn't advance the time, and for the pointer to ifs.stat!


    1. Unknown User (nagc)

      Ok, excellent. I couldn't remember exactly what changes you'd made to CNT0 so I wasn't sure if it was the model or your implementation.

      Glad you got it working ok.

      Glenn