Back to home page

MITgcm

 
 

    


File indexing completed on 2021-11-06 05:18:24 UTC

view on githubraw file Latest commit 016b84c4 on 2021-11-02 20:24:44 UTC
08be60903a Mart*0001 #include "MY82_OPTIONS.h"
                0002 
                0003 CBOP
a8f92f3b0b Jean*0004 C     !ROUTINE: MY82_OUTPUT
08be60903a Mart*0005 C     !INTERFACE:
a8f92f3b0b Jean*0006       SUBROUTINE MY82_OUTPUT( myTime, myIter, myThid )
cf58ea95cd Jean*0007 
08be60903a Mart*0008 C     !DESCRIPTION: \bv
                0009 C     *==========================================================*
a8f92f3b0b Jean*0010 C     | SUBROUTINE MY82_OUTPUT
                0011 C     | o Do MY82 diagnostic output.
08be60903a Mart*0012 C     *==========================================================
                0013 C     | The following CPP flag (MULTIPLE_RECORD_MY82_STATE_FILES) is
                0014 C     | #define/#undefed here since it is specific to this routine
                0015 C     | and very user-preference specific.
                0016 C     |
                0017 C     | If #undefed (default) the state files are written as in all versions
                0018 C     | prior to checkpoint32, where a file is created per variable, per time
                0019 C     | and per tile. This *has* to be the default because most users use this
                0020 C     | mode and all utilities and scripts (diagnostic) assume this form.
                0021 C     | It is also robust, as explained below.
                0022 C     |
                0023 C     | If #defined, subsequent snap-shots are written as records in the
                0024 C     | same file (no iteration number in filenames).
                0025 C     | Advantages: - fewer files
                0026 C     |       - for small problems, is easy to copy the output around
                0027 C     | Disadvantages:
                0028 C     |       - breaks a lot of diagnostic scripts
                0029 C     |       - for large or long problems this creates huge files
                0030 C     |       - is an unexpected, unsolicited change in behaviour which came
                0031 C     |         as a surprise (in c32) and inconvenience to several users
                0032 C     |       - can not accomodate changing the frequency of output
                0033 C     |         after a pickup (this is trivial in previous method
                0034 C     |         but needs new code and parameters in this new method)
                0035 C     *==========================================================*
                0036 C     \ev
                0037 
                0038 C     !USES:
                0039       IMPLICIT NONE
                0040 C     === Global variables ===
                0041 #include "SIZE.h"
                0042 #include "EEPARAMS.h"
                0043 #include "PARAMS.h"
                0044 #include "MY82.h"
                0045 
                0046 C     !INPUT/OUTPUT PARAMETERS:
                0047 C     == Routine arguments ==
a8f92f3b0b Jean*0048 C     myTime :: my time in simulation ( s )
                0049 C     myIter :: my Iteration number
                0050 C     myThid :: my Thread Id number
                0051       _RL     myTime
08be60903a Mart*0052       INTEGER myIter
                0053       INTEGER myThid
                0054 
cf58ea95cd Jean*0055 C     !FUNCTIONS:
                0056       LOGICAL  DIFFERENT_MULTIPLE
                0057       EXTERNAL DIFFERENT_MULTIPLE
                0058 
08be60903a Mart*0059 C     !LOCAL VARIABLES:
                0060 C     == Local variables ==
df5a9764ba Jean*0061       CHARACTER*(10) suff
08be60903a Mart*0062 CEOP
                0063 
cf58ea95cd Jean*0064 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
60c545bbe1 Mart*0065 
08be60903a Mart*0066 C----------------------------------------------------------------
                0067 C     Dump snapshot of MY82 variables.
                0068 C----------------------------------------------------------------
                0069 
cf58ea95cd Jean*0070       IF ( myIter.NE.nIter0 .AND.
                0071      &     DIFFERENT_MULTIPLE( MYdumpFreq, myTime, deltaTClock )
                0072      &   ) THEN
08be60903a Mart*0073 
016b84c482 Mart*0074        IF ( MYwriteState ) THEN
a8f92f3b0b Jean*0075 C       Write each snap-shot as a new file
08be60903a Mart*0076 C       - creates many files but for large configurations is easier to
                0077 C         transfer analyse a particular snap-shots
df5a9764ba Jean*0078         IF ( rwSuffixType.EQ.0 ) THEN
                0079           WRITE(suff,'(I10.10)') myIter
                0080         ELSE
                0081           CALL RW_GET_SUFFIX( suff, myTime, myIter, myThid )
                0082         ENDIF
08be60903a Mart*0083         CALL WRITE_FLD_XYZ_RL('MYviscAr.',suff,MYviscAr,
                0084      &       myIter,myThid)
                0085         CALL WRITE_FLD_XYZ_RL('MYdiffKr.',suff,MYdiffKr,
                0086      &       myIter,myThid)
                0087         CALL WRITE_FLD_XY_RL('MYhbl.',suff,MYhbl,
                0088      &       myIter,myThid)
69b5777c01 Mart*0089        ENDIF
08be60903a Mart*0090 
cf58ea95cd Jean*0091       ENDIF
a8f92f3b0b Jean*0092 
08be60903a Mart*0093       RETURN
                0094       END