payu-org / payu

A workflow management tool for numerical models on the NCI computing systems
Apache License 2.0
19 stars 26 forks source link

Copying cice_in.nml to restart dir is confusing #140

Open aidanheerdegen opened 5 years ago

aidanheerdegen commented 5 years ago

Currently the cice5 driver copies the cice_in.nml from the work directory to the restartXXX directory as it contains model timing information that is needed to correctly restart CICE.

cice_in.nml is also a configuration file, so it is confusing that a file named the same is in two places.

The relevant information required to correctly restart CICE5 should be extracted from cice_in.nml and saved to a new namelist file in the restart directory. Say cice_restart.nml. This is clearer from a user point of view. Especially when the error pops up that payu can't find cice_in.nml when trying to restart an old run, where cice_in.nml was assumed to be in the correspondingoutputXXX directory, but that directory no longer exists.

aidanheerdegen commented 3 years ago

@nichannah I am looking into this

I would like to solve #193 using this approach, but I am confused about what timing information ACCESS-OM2 is currently using from cice_in.nml. I am using 1deg_jra55_ryf as a test run, with the runtime set to 1 month, so the first time it runs there is no difference, and then each subsequent run istep0 is incremented by 35040, which is what npt is set to in cice_in.nml.

But if we look in the ice_diag.d files, it seems this is all being ignored

$ grep istep0 archive/output00?/ice/ice_diag.d
archive/output000/ice/ice_diag.d:  istep0                    =        0
archive/output001/ice/ice_diag.d:  istep0                    =      496
archive/output002/ice/ice_diag.d:  istep0                    =      944
archive/output003/ice/ice_diag.d:  istep0                    =     1440
archive/output004/ice/ice_diag.d:  istep0                    =     1920
$ grep npt archive/output00?/ice/ice_diag.d
archive/output000/ice/ice_diag.d:  npt                       =      496
archive/output001/ice/ice_diag.d:  npt                       =      448
archive/output002/ice/ice_diag.d:  npt                       =      496
archive/output003/ice/ice_diag.d:  npt                       =      480
archive/output004/ice/ice_diag.d:  npt                       =      496

So is any of this stuff necessary? Seems like libaccessom2 is taking care of all of this, and we can do away with the reading from the previous cice_in.nml completely.