Open dafyddstephenson opened 9 months ago
I've been working on this. One of the issues is that the mixing coefficients that are computed in lmd_kpp are time-averaged over 2 time-steps. The coefficients are not stored in the restart file and hence, perfect restarting is broken. When I turn off the lmd_kpp and lmd_bkpp flags in cppdevs.opt, the restart appears to be good. I've added a new example to test that. It's currently on the new branch: 'compliant'.
@nmolem, when you say the restart appears to be good, I think you are saying that we're done to round-off level differences, right?
You mentioned the idea today that there is perhaps an order of operations difference between a restart and time step computations.
Can we test this hypothesis by instrumenting the code in some way or is it just by inspection?
@nmolem, do you plan to submit a PR to merge compliant
back to main
?
See #11 related to defining branches and use patterns.
I would like to see test of the expected behaviour / solution to the restarts issue encoded in a regression test that’s run in the CI automatically (see #6). And if it can’t be reproduced there then it must be Expanse-specific.
Me again 🙃
I am running
Rivers_real
from this repository on Expanse with the following settings inocean_vars.opt
:and with the
do_roms_expanse.sh
script modified as follows:where
rivers.in_restart1
is different fromrivers.in
as follows:... This produces the file
rst_diff.20121209133955.nc
which should, I believe, be everywhere 0, but is not.