Back to home page

MITgcm

 
 

    


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

view on githubraw file Latest commit b7411f1a on 2025-11-06 19:05:26 UTC
89992793c5 Jean*0001 #include "LAND_OPTIONS.h"
                0002 
                0003 CBOP
439d922c37 Jean*0004 C     !ROUTINE: LAND_OUTPUT
89992793c5 Jean*0005 C     !INTERFACE:
439d922c37 Jean*0006       SUBROUTINE LAND_OUTPUT( myTime, myIter, myThid )
89992793c5 Jean*0007 C     !DESCRIPTION: \bv
                0008 C     *==========================================================*
439d922c37 Jean*0009 C     | S/R LAND_OUTPUT
                0010 C     | o general routine for Land output
                0011 C     *==========================================================*
                0012 C     | - write snap-shot & time-average output
                0013 C     | - call monitor to write global quantities
89992793c5 Jean*0014 C     *==========================================================*
                0015 C     \ev
                0016 
                0017 C     !USES:
                0018       IMPLICIT NONE
                0019 
                0020 C     === Global variables ===
                0021 #include "LAND_SIZE.h"
                0022 #include "EEPARAMS.h"
                0023 #include "PARAMS.h"
                0024 #include "LAND_PARAMS.h"
439d922c37 Jean*0025 #include "LAND_VARS.h"
89992793c5 Jean*0026 #ifdef ALLOW_AIM
                0027 #include "AIM_FFIELDS.h"
                0028 #endif
                0029 
                0030 C     !INPUT/OUTPUT PARAMETERS:
d4a066fa68 Jean*0031 C     myTime :: Current time of simulation ( s )
                0032 C     myIter :: Current iteration number in simulation
                0033 C     myThid :: my Thread Id number
89992793c5 Jean*0034       _RL     myTime
                0035       INTEGER myIter
                0036       INTEGER myThid
                0037 
                0038 #ifdef ALLOW_LAND
233fabd09d Jean*0039 C     !FUNCTIONS:
94a46dfe0d Jean*0040       LOGICAL  DIFFERENT_MULTIPLE
                0041       EXTERNAL DIFFERENT_MULTIPLE
89992793c5 Jean*0042 
233fabd09d Jean*0043 C     !LOCAL VARIABLES:
d4a066fa68 Jean*0044       CHARACTER*(10) suff
439d922c37 Jean*0045 #ifdef ALLOW_MNC
b7411f1a84 Jean*0046       CHARACTER*(MAX_LEN_FNAM) fn
b22b541fe9 Ed H*0047       CHARACTER*(1) pf
439d922c37 Jean*0048 #endif
d4a066fa68 Jean*0049 CEOP
89992793c5 Jean*0050 
                0051 #ifdef ALLOW_AIM
59c106d641 Jean*0052       IF ( land_monFreq.NE.0. ) THEN
89992793c5 Jean*0053         CALL LAND_MONITOR( aim_landFr, myTime, myIter, myThid )
                0054       ENDIF
                0055 #endif
                0056 
439d922c37 Jean*0057 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0058 
e024b9fa7f Jean*0059       IF (
439d922c37 Jean*0060      &     DIFFERENT_MULTIPLE( land_diagFreq, myTime, land_deltaT )
                0061      &  .OR. dumpInitAndLast.AND.( myTime.EQ.endTime .OR.
                0062      &                             myTime.EQ.startTime  )
                0063      &   ) THEN
                0064 
e024b9fa7f Jean*0065 C--   Write snap-shot
439d922c37 Jean*0066 C jmc: previously done from LAND_DO_DIAGS, but much better here.
                0067 
                0068         IF ( land_snapshot_mdsio ) THEN
                0069 
df5a9764ba Jean*0070           IF ( rwSuffixType.EQ.0 ) THEN
                0071             WRITE(suff,'(I10.10)') myIter
                0072           ELSE
                0073             CALL RW_GET_SUFFIX( suff, myTime, myIter, myThid )
                0074           ENDIF
439d922c37 Jean*0075 
                0076 C--   Write ground Temp and soil moisture :
e024b9fa7f Jean*0077           CALL WRITE_FLD_3D_RL( 'land_groundT.', suff, land_nLev,
439d922c37 Jean*0078      &                           land_groundT, myIter, myThid )
e024b9fa7f Jean*0079           CALL WRITE_FLD_3D_RL( 'land_enthalp.', suff, land_nLev,
439d922c37 Jean*0080      &                           land_enthalp, myIter, myThid )
e024b9fa7f Jean*0081           CALL WRITE_FLD_3D_RL( 'land_groundW.', suff, land_nLev,
439d922c37 Jean*0082      &                           land_groundW, myIter, myThid )
                0083 C--   other (2-D) state variables:
                0084           CALL WRITE_FLD_XY_RL(
e024b9fa7f Jean*0085      &         'land_skinT.', suff, land_skinT, myIter, myThid )
439d922c37 Jean*0086           CALL WRITE_FLD_XY_RL(
e024b9fa7f Jean*0087      &         'land_hSnow.', suff, land_hSnow, myIter, myThid )
439d922c37 Jean*0088           CALL WRITE_FLD_XY_RL(
e024b9fa7f Jean*0089      &         'land_snAge.', suff, land_snowAge, myIter, myThid )
439d922c37 Jean*0090 
                0091           IF ( myIter.NE.nIter0 ) THEN
                0092 C--   fluxes (2-D map):
                0093           CALL WRITE_FLD_XY_RL(
e024b9fa7f Jean*0094      &         'land_RunOff.', suff, land_runOff, myIter, myThid )
439d922c37 Jean*0095           CALL WRITE_FLD_XY_RL(
e024b9fa7f Jean*0096      &         'land_enRnOf.', suff, land_enRnOf, myIter, myThid )
439d922c37 Jean*0097           CALL WRITE_FLD_XY_RL(
e024b9fa7f Jean*0098      &         'land_HeatFx.', suff, land_HeatFlx, myIter, myThid )
439d922c37 Jean*0099           CALL WRITE_FLD_XY_RL(
e024b9fa7f Jean*0100      &         'land_frWaFx.', suff, land_Pr_m_Ev, myIter, myThid )
439d922c37 Jean*0101           CALL WRITE_FLD_XY_RL(
e024b9fa7f Jean*0102      &         'land_EnWaFx.', suff, land_EnWFlux, myIter, myThid )
439d922c37 Jean*0103           ENDIF
                0104 
                0105         ENDIF
                0106 
                0107 #ifdef ALLOW_MNC
                0108         IF ( land_snapshot_mnc ) THEN
233fabd09d Jean*0109           _BARRIER
439d922c37 Jean*0110 
                0111           IF ( writeBinaryPrec .EQ. precFloat64 ) THEN
                0112             pf(1:1) = 'D'
                0113           ELSE
                0114             pf(1:1) = 'R'
                0115           ENDIF
204b79e930 Jean*0116           WRITE(fn,'(A)') 'land_snapshot'
                0117           CALL MNC_CW_SET_UDIM(fn, -1, myThid)
                0118           CALL MNC_CW_RL_W_S('D',fn,0,0,'T', myTime, myThid)
                0119           CALL MNC_CW_SET_UDIM(fn, 0, myThid)
                0120           CALL MNC_CW_I_W_S('I',fn,0,0,'iter', myIter, myThid)
439d922c37 Jean*0121 
204b79e930 Jean*0122           CALL MNC_CW_RL_W(pf,fn,0,0,
439d922c37 Jean*0123      &         'land_groundT', land_groundT, myThid)
204b79e930 Jean*0124           CALL MNC_CW_RL_W(pf,fn,0,0,
439d922c37 Jean*0125      &         'land_enthalp', land_enthalp, myThid)
204b79e930 Jean*0126           CALL MNC_CW_RL_W(pf,fn,0,0,
439d922c37 Jean*0127      &         'land_groundW', land_groundW, myThid)
                0128 
204b79e930 Jean*0129           CALL MNC_CW_RL_W(pf,fn,0,0,
439d922c37 Jean*0130      &         'land_skinT', land_skinT, myThid)
204b79e930 Jean*0131           CALL MNC_CW_RL_W(pf,fn,0,0,
439d922c37 Jean*0132      &         'land_hSnow', land_hSnow, myThid)
204b79e930 Jean*0133           CALL MNC_CW_RL_W(pf,fn,0,0,
439d922c37 Jean*0134      &         'land_snAge', land_snowAge, myThid)
204b79e930 Jean*0135           CALL MNC_CW_RL_W(pf,fn,0,0,
439d922c37 Jean*0136      &         'land_RunOff', land_runOff, myThid)
204b79e930 Jean*0137           CALL MNC_CW_RL_W(pf,fn,0,0,
439d922c37 Jean*0138      &         'land_enRnOf', land_enRnOf, myThid)
                0139 
204b79e930 Jean*0140           CALL MNC_CW_RL_W(pf,fn,0,0,
439d922c37 Jean*0141      &         'land_HeatFx', land_HeatFlx, myThid)
204b79e930 Jean*0142           CALL MNC_CW_RL_W(pf,fn,0,0,
439d922c37 Jean*0143      &         'land_frWaFx', land_Pr_m_Ev, myThid)
204b79e930 Jean*0144           CALL MNC_CW_RL_W(pf,fn,0,0,
439d922c37 Jean*0145      &         'land_EnWaFx', land_EnWFlux, myThid)
                0146 
233fabd09d Jean*0147           _BARRIER
439d922c37 Jean*0148         ENDIF
                0149 #endif
                0150 
                0151       ENDIF
89992793c5 Jean*0152 
                0153 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0154 
                0155 #endif /* ALLOW_LAND */
                0156 
                0157       RETURN
                0158       END