write_any = .false. in gs2_diagnostics_new leads to skipping convergence checks
The behaviour with write_any=.false.
varies between the original and new diagnostics. The original behaviour still results in the linear convergence checks being run even if there is no diagnostic data to write whereas the new module skips this check. I think this is a bug and the new module should still run the convergence check.
Comments (2)
-
reporter -
Another example of a bug introduced in the porting of the diagnostics from the old module to the new one is issue
#73(New diagnostics module does not perform file safety check).This raises a wider question about diagnostics. Surely there should only be one diagnostics module. It's confusing, especially to new people, to have two. It's also annoying that some features are only in one or the other. For example, it is impossible to achieve the desired behaviour of file_safety_check = .true. and write_zonal_transfer = .true. because the former is only in the old module and the latter is only in the new. It appears that there are a number of bugs in the new diagnostics module. Plus, the library it depends on (simpledataio) is no longer maintained. And the code is really annoying to read (for example gnostics % wryte and gnostics % reed - arrgh!) Presumably, there are some benefits to the new module (beyond write_zonal_transfer). So, how do we propose to consolidate the two modules?
Or an even bigger question - how do we propose to deal with diagnostics in general going forward?
Small question - should we open a new issue for this discussion?
- Log in to comment
Another place with different behaviour is
nsave
/save_for_restart
. With the old diagnosticsnsave
defaults to-1
and is also forced to-1
ifsave_for_restart=.false.
. With the new diagnosticsnsave
defaults to1000
and is not forced to-1
ifsave_for_restart=.false.
. As a result, runs using the new diagnostics will now typically write restart files even if they containsave_for_restart=.false.
provided they do at least 1000 steps. I think a sensible compromise is fornsave
to default to a suitably large positive integer but for it to be forced to-1
if we've not asked to save restart files.