[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