Back to home page

MITgcm

 
 

    


File indexing completed on 2025-11-07 06:08:36 UTC

view on githubraw file Latest commit b7411f1a on 2025-11-06 19:05:26 UTC
0c49347dc7 Alis*0001 #include "GMREDI_OPTIONS.h"
                0002 
15d11726a0 Jean*0003 CBOP
                0004 C     !ROUTINE: GMREDI_OUTPUT
                0005 
                0006 C     !INTERFACE:
                0007       SUBROUTINE GMREDI_OUTPUT( myTime, myIter, myThid )
                0008 
                0009 C     !DESCRIPTION: \bv
                0010 C     *==========================================================*
                0011 C     | SUBROUTINE GMREDI_OUTPUT
                0012 C     | o general routine for GM/Redi output
                0013 C     *==========================================================*
                0014 C     |   write time-average & snap-shot output
                0015 C     *==========================================================*
                0016 C     \ev
                0017 
                0018 C     !USES:
0c49347dc7 Alis*0019       IMPLICIT NONE
                0020 
                0021 C     === Global variables ===
                0022 #include "SIZE.h"
                0023 #include "EEPARAMS.h"
                0024 #include "PARAMS.h"
                0025 #include "GMREDI.h"
                0026 
15d11726a0 Jean*0027 C     !INPUT PARAMETERS:
                0028 C     myTime :: Current time of simulation ( s )
                0029 C     myIter :: Iteration number
                0030 C     myThid :: my Thread Id number
0c49347dc7 Alis*0031       _RL     myTime
                0032       INTEGER myIter
                0033       INTEGER myThid
15d11726a0 Jean*0034 CEOP
0c49347dc7 Alis*0035 
                0036 #ifdef ALLOW_GMREDI
8d8488bf10 Jean*0037 C     !FUNCTIONS:
94a46dfe0d Jean*0038       LOGICAL  DIFFERENT_MULTIPLE
                0039       EXTERNAL DIFFERENT_MULTIPLE
8d8488bf10 Jean*0040 
                0041 C     !LOCAL VARIABLES:
df5a9764ba Jean*0042       CHARACTER*(10) suff
8d8488bf10 Jean*0043 #ifdef ALLOW_MNC
b22b541fe9 Ed H*0044       CHARACTER*(1) pf
8d8488bf10 Jean*0045 #endif
0c49347dc7 Alis*0046 
94a46dfe0d Jean*0047       IF ( DIFFERENT_MULTIPLE(diagFreq,myTime,deltaTClock)
8d8488bf10 Jean*0048      &   ) THEN
e2d47178e0 Ed H*0049 
                0050         IF ( GM_MDSIO ) THEN
df5a9764ba Jean*0051           IF ( rwSuffixType.EQ.0 ) THEN
                0052             WRITE(suff,'(I10.10)') myIter
                0053           ELSE
                0054             CALL RW_GET_SUFFIX( suff, myTime, myIter, myThid )
                0055           ENDIF
e2d47178e0 Ed H*0056           CALL WRITE_FLD_XYZ_RL( 'GM_Kux.',suff,Kux,myIter,myThid)
                0057           CALL WRITE_FLD_XYZ_RL( 'GM_Kvy.',suff,Kvy,myIter,myThid)
                0058 #ifdef GM_EXTRA_DIAGONAL
                0059           IF (GM_ExtraDiag) THEN
                0060             CALL WRITE_FLD_XYZ_RL( 'GM_Kuz.',suff,Kuz,myIter,myThid)
                0061             CALL WRITE_FLD_XYZ_RL( 'GM_Kvz.',suff,Kvz,myIter,myThid)
                0062           ENDIF
                0063 #endif
                0064         ENDIF
                0065 
                0066 #ifdef ALLOW_MNC
                0067         IF ( GM_MNC ) THEN
8d8488bf10 Jean*0068           IF ( writeBinaryPrec .EQ. precFloat64 ) THEN
                0069            pf(1:1) = 'D'
                0070           ELSE
                0071            pf(1:1) = 'R'
                0072           ENDIF
e2d47178e0 Ed H*0073           CALL MNC_CW_SET_UDIM('gm_inst', -1, myThid)
                0074           CALL MNC_CW_RL_W_S('D','gm_inst',0,0,'T',myTime,myThid)
                0075           CALL MNC_CW_SET_UDIM('gm_inst', 0, myThid)
                0076           CALL MNC_CW_I_W_S('I','gm_inst',0,0,'iter',myIter,myThid)
b22b541fe9 Ed H*0077           CALL MNC_CW_RL_W(pf,'gm_inst',0,0,'Kux',Kux,myThid)
                0078           CALL MNC_CW_RL_W(pf,'gm_inst',0,0,'Kvy',Kvy,myThid)
f42e64b3e7 Jean*0079 #ifdef GM_EXTRA_DIAGONAL
e2d47178e0 Ed H*0080           IF (GM_ExtraDiag) THEN
b22b541fe9 Ed H*0081             CALL MNC_CW_RL_W(pf,'gm_inst',0,0,'Kuz',Kuz,myThid)
                0082             CALL MNC_CW_RL_W(pf,'gm_inst',0,0,'Kvz',Kvz,myThid)
8d8488bf10 Jean*0083           ENDIF
e2d47178e0 Ed H*0084 #endif
                0085         ENDIF
796b5e35f7 Jean*0086 #endif /* ALLOW_MNC */
e2d47178e0 Ed H*0087 
8d8488bf10 Jean*0088       ENDIF
f42e64b3e7 Jean*0089 
0c49347dc7 Alis*0090 #endif /* ALLOW_GMREDI */
8d8488bf10 Jean*0091 
0c49347dc7 Alis*0092       RETURN
                0093       END