Back to home page

MITgcm

 
 

    


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

view on githubraw file Latest commit b7411f1a on 2025-11-06 19:05:26 UTC
ffe464dc7d Mart*0001 #include "SHELFICE_OPTIONS.h"
                0002 
86db25ab4d Jean*0003 CBOP
                0004 C     !ROUTINE: SHELFICE_OUTPUT
                0005 C     !INTERFACE:
7bc95b10cc Jean*0006       SUBROUTINE SHELFICE_OUTPUT( myTime, myIter, myThid )
86db25ab4d Jean*0007 
                0008 C     !DESCRIPTION: \bv
d4bd695091 Jean*0009 C     *==========================================================*
7bc95b10cc Jean*0010 C     | SUBROUTINE SHELFICE_OUTPUT
86db25ab4d Jean*0011 C     | o Do SHELFICE snapshot output
                0012 C     |   and compute & write time-average output.
d4bd695091 Jean*0013 C     *==========================================================*
86db25ab4d Jean*0014 C     \ev
                0015 
                0016 C     !USES:
ffe464dc7d Mart*0017       IMPLICIT NONE
                0018 
                0019 C     === Global variables ===
                0020 #include "SIZE.h"
                0021 #include "EEPARAMS.h"
                0022 #include "PARAMS.h"
                0023 #include "SHELFICE.h"
                0024 
86db25ab4d Jean*0025 C     !INPUT/OUTPUT PARAMETERS:
ffe464dc7d Mart*0026 C     == Routine arguments ==
7bc95b10cc Jean*0027 C     myTime :: my time in simulation ( s )
                0028 C     myIter :: my Iteration number
                0029 C     myThid :: my Thread Id number
ffe464dc7d Mart*0030       _RL     myTime
                0031       INTEGER myIter
                0032       INTEGER myThid
                0033 
86db25ab4d Jean*0034 C     !FUNCTIONS:
ffe464dc7d Mart*0035       LOGICAL  DIFFERENT_MULTIPLE
                0036       EXTERNAL DIFFERENT_MULTIPLE
86db25ab4d Jean*0037 
                0038 C     !LOCAL VARIABLES:
                0039 C     == Local variables ==
af20bc5e19 Jean*0040       CHARACTER*(10) suff
86db25ab4d Jean*0041 #ifdef ALLOW_MNC
ffe464dc7d Mart*0042       CHARACTER*(1) pf
86db25ab4d Jean*0043 #endif
                0044 CEOP
d4bd695091 Jean*0045 
ffe464dc7d Mart*0046       IF (SHELFICEwriteState) THEN
                0047 
86db25ab4d Jean*0048 C- note: surf.Fluxes have not yet been computed when called @ nIter0
                0049        IF ( myIter .NE. nIter0 .AND.
                0050      &      DIFFERENT_MULTIPLE(SHELFICE_dumpFreq,myTime,deltaTClock)
                0051      &    ) THEN
d4bd695091 Jean*0052 
ffe464dc7d Mart*0053 #ifdef ALLOW_MNC
                0054         IF ( useMNC .AND. SHELFICE_dump_mnc ) THEN
86db25ab4d Jean*0055          IF ( writeBinaryPrec .EQ. precFloat64 ) THEN
                0056            pf(1:1) = 'D'
                0057          ELSE
                0058            pf(1:1) = 'R'
                0059          ENDIF
ffe464dc7d Mart*0060          CALL MNC_CW_SET_UDIM('shelfice', -1, myThid)
                0061          CALL MNC_CW_RL_W_S('D','shelfice',0,0,'T', myTime, myThid)
                0062          CALL MNC_CW_SET_UDIM('shelfice', 0, myThid)
                0063          CALL MNC_CW_I_W_S('I','shelfice',0,0,'iter', myIter, myThid)
                0064          CALL MNC_CW_RL_W_S('D','shelfice',0,0,'model_time',
                0065      &        myTime,myThid)
                0066          CALL MNC_CW_RS_W(pf,'shelfice',0,0,'fwFlux',
                0067      &        shelfIceFreshWaterFlux,myThid)
                0068          CALL MNC_CW_RS_W(pf,'shelfice',0,0,'heatFlux',
                0069      &        shelfIceHeatFlux,myThid)
                0070         ENDIF
                0071 #endif
                0072         IF (SHELFICE_dump_mdsio) THEN
af20bc5e19 Jean*0073          IF ( rwSuffixType.EQ.0 ) THEN
                0074            WRITE(suff,'(I10.10)') myIter
                0075          ELSE
                0076            CALL RW_GET_SUFFIX( suff, myTime, myIter, myThid )
                0077          ENDIF
ffe464dc7d Mart*0078          CALL WRITE_FLD_XY_RS( 'SHICE_fwFlux.',suff,
                0079      &        shelficeFreshWaterFlux,myIter,myThid)
                0080          CALL WRITE_FLD_XY_RS( 'SHICE_heatFlux.',suff,
                0081      &        shelficeHeatFlux,myIter,myThid)
                0082         ENDIF
d4bd695091 Jean*0083 
ffe464dc7d Mart*0084        ENDIF
                0085       ENDIF
                0086 
                0087       RETURN
                0088       END