|
||||
File indexing completed on 2021-11-06 05:18:36 UTC
view on githubraw file Latest commit 016b84c4 on 2021-11-02 20:24:44 UTC08be60903a Mart*0001 #include "PP81_OPTIONS.h" 0002 0003 CBOP cda362f261 Jean*0004 C !ROUTINE: PP81_OUTPUT 08be60903a Mart*0005 C !INTERFACE: cda362f261 Jean*0006 SUBROUTINE PP81_OUTPUT( myTime, myIter, myThid ) d62f2fa599 Jean*0007 08be60903a Mart*0008 C !DESCRIPTION: \bv 0009 C *==========================================================* cda362f261 Jean*0010 C | SUBROUTINE PP81_OUTPUT 0011 C | o Do PP81 diagnostic output. 08be60903a Mart*0012 C *========================================================== 0013 C | The following CPP flag (MULTIPLE_RECORD_PP81_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 "PP81.h" 0045 0046 C !INPUT/OUTPUT PARAMETERS: 0047 C == Routine arguments == cda362f261 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 0055 #ifdef ALLOW_PP81 0056 d62f2fa599 Jean*0057 C !FUNCTIONS: 0058 LOGICAL DIFFERENT_MULTIPLE 0059 EXTERNAL DIFFERENT_MULTIPLE 0060 08be60903a Mart*0061 C !LOCAL VARIABLES: 0062 C == Local variables == df5a9764ba Jean*0063 CHARACTER*(10) suff 08be60903a Mart*0064 CEOP 0065 0066 C---------------------------------------------------------------- 0067 C Dump snapshot of PP variables. 0068 C---------------------------------------------------------------- 0069 d62f2fa599 Jean*0070 IF ( myIter.NE.nIter0 .AND. 0071 & DIFFERENT_MULTIPLE( PPdumpFreq, myTime, deltaTClock ) 0072 & ) THEN 08be60903a Mart*0073 d62f2fa599 Jean*0074 IF (PPwriteState) THEN cda362f261 Jean*0075 C Write each snap-shot as a new file df5a9764ba Jean*0076 IF ( rwSuffixType.EQ.0 ) THEN 0077 WRITE(suff,'(I10.10)') myIter 0078 ELSE 0079 CALL RW_GET_SUFFIX( suff, myTime, myIter, myThid ) 0080 ENDIF 08be60903a Mart*0081 CALL WRITE_FLD_XYZ_RL('PPviscAr.',suff,PPviscAr, 0082 & myIter,myThid) 0083 CALL WRITE_FLD_XYZ_RL('PPdiffKr.',suff,PPdiffKr, 0084 & myIter,myThid) d62f2fa599 Jean*0085 ENDIF 08be60903a Mart*0086 0087 ENDIF 0088 0089 #endif /* ALLOW_PP81 */ cda362f261 Jean*0090 08be60903a Mart*0091 RETURN 0092 END
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated from https://github.com/MITgcm/MITgcm by the 2.2.1-MITgcm-0.1 LXR engine. The LXR team |