[Mitgcm-support] c37-pre audit :-)
mitgcm-support at dev.mitgcm.org
mitgcm-support at dev.mitgcm.org
Wed Jul 9 15:49:14 EDT 2003
Alistair/Jean-Michel,
Few more items re. latest MAIN branch @mitgcm.org:MITgcmUV/models
item 1
addition of arg to cg2d.F requires compatible changes
in autodiff interface blocks. Not sure why this is
really worth doing. The parallel with GM would be
to have a solve_for_pressure package that stores its
diagnostic info. in a SFP_DIAGS common block. Whatever
we need to remeber the adjoint changes.
item 2 promiscuous check-ins to MAIN :-)
looks some of the things that are being added in the MAIN
trunk might be getting backed out or revised. This makes it hard
to follow the MAIN branch code evolution. Should
we be using test branch(es) or working with
separate trees and packages more. We could use the naming
scheme I suggested and that nobody commented on!
item 3 time ave. stuff
Is this new setup any better than
the crappy old one? I know it is really but...
Biggest problem with old setup was that if I added package
"XXX" then I had conflicts with other uses of diags.
With the new stuff that doesn't have to happen
but its not clear that this is the case when you
look at the architecture.
Can diags be more multi-tier. Bottom tier is baseline
mechanisms that can be used from wherever.
The generic routines in TIMEAVE that work on formal args like
fldtave.... look like they belong to this layer.
But shouldn't the *statv* part of the timeave package be
a separate set of routines - i.e. not part of package "TIMEAVE".
Just like MDSIO is a separate package but does not include
READ_CHECKPOINT, WRITE_CHECKPOINT etc....
It needs to be clear that the generic TIMEAVE routines could
be used by AIM, KPP etc... without impacting statv.
As it stands it is not 100% clear where and how to add custom
diagnostics for individual packages without running into
package-package conflicts. For example in S/R DO_THE_MODEL_IO
we have
#ifdef ALLOW_TIMEAVE
C-- Do time averages
IF (taveFreq.GT.0.) THEN
CALL TIMEAVE_STATV_WRITE( myCurrentTime, myIter, myThid )
ENDIF
#endif
To make it clear how to extend this to avoid conflicts between
packages. Shouldn't it be more like GM_REDI e.g.
#ifdef ALLOW_STATV_TIMEAVE
:
#endif
or alternatively like READ/WRITE_CHECKPOINT
e.g.
CALL READ_CHECKPOINT.
Chris
More information about the MITgcm-support
mailing list