File indexing completed on 2025-11-07 06:08:49 UTC
view on githubraw file Latest commit b7411f1a on 2025-11-06 19:05:26 UTC
809c36b928 Patr*0001 #include "SEAICE_OPTIONS.h"
610bf19d8b Jean*0002 #ifdef ALLOW_EXF
0003 # include "EXF_OPTIONS.h"
0004 #endif
809c36b928 Patr*0005
eb9c144150 Jean*0006
01b88d49f4 Jean*0007
eb9c144150 Jean*0008
0009
0010 SUBROUTINE SEAICE_OUTPUT( myTime, myIter, myThid )
0011
0012
0013
0014
b7411f1a84 Jean*0015
eb9c144150 Jean*0016
0017
0018
809c36b928 Patr*0019 IMPLICIT NONE
0020
0021
0022 #include "SIZE.h"
0023 #include "EEPARAMS.h"
0024 #include "PARAMS.h"
0025 #include "FFIELDS.h"
ccaa3c61f4 Patr*0026 #include "SEAICE_SIZE.h"
809c36b928 Patr*0027 #include "SEAICE_PARAMS.h"
0028 #include "SEAICE.h"
ccaa3c61f4 Patr*0029 #include "SEAICE_TRACER.h"
ae1fb66b64 Dimi*0030 #ifdef ALLOW_EXF
0031 # include "EXF_FIELDS.h"
0032 #endif
809c36b928 Patr*0033
eb9c144150 Jean*0034
0035
0036
0037
809c36b928 Patr*0038 _RL myTime
0039 INTEGER myIter
0040 INTEGER myThid
0041
8c50aa8796 Jean*0042
0043 LOGICAL DIFFERENT_MULTIPLE
0044 EXTERNAL DIFFERENT_MULTIPLE
0045
eb9c144150 Jean*0046
0047 CHARACTER*(10) suff
e54fe3e1f9 Gael*0048 #ifdef ALLOW_SITRACER
ccaa3c61f4 Patr*0049 CHARACTER*(13) pref
01b88d49f4 Jean*0050 INTEGER iTracer
eb9c144150 Jean*0051 #endif
0052 #ifdef ALLOW_MNC
b22b541fe9 Ed H*0053 CHARACTER*(1) pf
eb9c144150 Jean*0054 #endif /* ALLOW_MNC */
0055
b22b541fe9 Ed H*0056
809c36b928 Patr*0057 IF (SEAICEwriteState) THEN
0058
ec1f837e9d Ed H*0059 IF ( DIFFERENT_MULTIPLE(SEAICE_dumpFreq,myTime,deltaTClock)
bef2403f36 Jean*0060 & .OR. dumpInitAndLast.AND.( myTime.EQ.endTime .OR.
0061 & myTime.EQ.startTime )
ec1f837e9d Ed H*0062 & ) THEN
8a685a2f38 Jean*0063
de859229b1 Ed H*0064 #ifdef ALLOW_MNC
ec1f837e9d Ed H*0065 IF ( useMNC .AND. SEAICE_dump_mnc ) THEN
8c50aa8796 Jean*0066 IF ( writeBinaryPrec .EQ. precFloat64 ) THEN
0067 pf(1:1) = 'D'
0068 ELSE
0069 pf(1:1) = 'R'
0070 ENDIF
ec1f837e9d Ed H*0071 CALL MNC_CW_SET_UDIM('sice', -1, myThid)
0072 CALL MNC_CW_RL_W_S('D','sice',0,0,'T', myTime, myThid)
0073 CALL MNC_CW_SET_UDIM('sice', 0, myThid)
0074 CALL MNC_CW_I_W_S('I','sice',0,0,'iter', myIter, myThid)
0075 CALL MNC_CW_RL_W_S('D','sice',0,0,'model_time',
0076 & myTime,myThid)
6e2f4e58fa Mart*0077 #if ( defined(SEAICE_CGRID) && defined(SEAICE_ALLOW_EVP) )
0078 IF ( SEAICEuseEVP ) THEN
dfc84e52b6 Mart*0079 CALL MNC_CW_RL_W(pf,'sice',0,0,'si_sigma1',
6e2f4e58fa Mart*0080 & seaice_sigma1,myThid)
dfc84e52b6 Mart*0081 CALL MNC_CW_RL_W(pf,'sice',0,0,'si_sigma2',
6e2f4e58fa Mart*0082 & seaice_sigma2,myThid)
dfc84e52b6 Mart*0083 CALL MNC_CW_RL_W(pf,'sice',0,0,'si_sigma12',
6e2f4e58fa Mart*0084 & seaice_sigma12,myThid)
0085 ENDIF
0086 #endif /* SEAICE_CGRID and SEAICE_ALLOW_EVP */
772590b63c Mart*0087 CALL MNC_CW_RL_W(pf,'sice',0,0,'si_UICE',uIce,myThid)
0088 CALL MNC_CW_RL_W(pf,'sice',0,0,'si_VICE',vIce,myThid)
b5d9cb1403 Jean*0089 IF ( .NOT.useThSIce ) THEN
0090 CALL MNC_CW_RL_W(pf,'sice',0,0,'si_HEFF',hEff,myThid)
0091 CALL MNC_CW_RL_W(pf,'sice',0,0,'si_AREA',area,myThid)
86b84a92fc Patr*0092 #ifdef SEAICE_ITD
610bf19d8b Jean*0093
0094
86b84a92fc Patr*0095 #endif
b5d9cb1403 Jean*0096 ENDIF
2a4b53eed1 Jean*0097 #ifdef ALLOW_EXF
99586206be Jean*0098 CALL MNC_CW_RL_W(pf,'sice',0,0,'si_UWIND',uwind,myThid)
0099 CALL MNC_CW_RL_W(pf,'sice',0,0,'si_VWIND',vwind,myThid)
2a4b53eed1 Jean*0100 #endif
b22b541fe9 Ed H*0101 CALL MNC_CW_RS_W(pf,'sice',0,0,'fu',fu,myThid)
0102 CALL MNC_CW_RS_W(pf,'sice',0,0,'fv',fv,myThid)
0103 CALL MNC_CW_RS_W(pf,'sice',0,0,'EmPmR',EmPmR,myThid)
0104 CALL MNC_CW_RS_W(pf,'sice',0,0,'Qnet',Qnet,myThid)
0105 CALL MNC_CW_RS_W(pf,'sice',0,0,'Qsw',Qsw,myThid)
ec1f837e9d Ed H*0106 ENDIF
eb9c144150 Jean*0107 #endif /* ALLOW_MNC */
ec1f837e9d Ed H*0108 IF (SEAICE_dump_mdsio) THEN
af20bc5e19 Jean*0109 IF ( rwSuffixType.EQ.0 ) THEN
0110 WRITE(suff,'(I10.10)') myIter
0111 ELSE
0112 CALL RW_GET_SUFFIX( suff, myTime, myIter, myThid )
0113 ENDIF
bef2403f36 Jean*0114 IF ( myIter.NE.nIter0 ) THEN
2a4b53eed1 Jean*0115 #ifdef ALLOW_EXF
99586206be Jean*0116 CALL WRITE_FLD_XY_RL('UWIND.',suff,uwind,myIter,myThid)
0117 CALL WRITE_FLD_XY_RL('VWIND.',suff,vwind,myIter,myThid)
2a4b53eed1 Jean*0118 #endif
eb9c144150 Jean*0119 CALL WRITE_FLD_XY_RS('FU.',suff,fu,myIter,myThid)
0120 CALL WRITE_FLD_XY_RS('FV.',suff,fv,myIter,myThid)
0121 CALL WRITE_FLD_XY_RS('EmPmR.',suff,EmPmR,myIter,myThid)
0122 CALL WRITE_FLD_XY_RS('Qnet.',suff,Qnet,myIter,myThid)
0123 CALL WRITE_FLD_XY_RS('Qsw.',suff,Qsw,myIter,myThid)
bef2403f36 Jean*0124 ENDIF
772590b63c Mart*0125 CALL WRITE_FLD_XY_RL( 'UICE.',suff,uIce,myIter,myThid)
0126 CALL WRITE_FLD_XY_RL( 'VICE.',suff,vIce,myIter,myThid)
b5d9cb1403 Jean*0127 IF ( .NOT.useThSIce ) THEN
0128 CALL WRITE_FLD_XY_RL( 'HEFF.',suff,hEff,myIter,myThid)
0129 CALL WRITE_FLD_XY_RL( 'AREA.',suff,area,myIter,myThid)
0130 CALL WRITE_FLD_XY_RL( 'HSNOW.',suff,HSNOW,myIter,myThid)
86b84a92fc Patr*0131 #ifdef SEAICE_ITD
b5d9cb1403 Jean*0132 CALL WRITE_FLD_3D_RL( 'HEFFITD.', suff, nITD, HEFFITD,
0133 & myIter, myThid )
0134 CALL WRITE_FLD_3D_RL( 'AREAITD.', suff, nITD, AREAITD,
0135 & myIter, myThid )
0136 CALL WRITE_FLD_3D_RL('HSNOWITD.', suff, nITD, HSNOWITD,
0137 & myIter, myThid )
86b84a92fc Patr*0138 #endif
a98c4b8072 Ian *0139 #ifdef SEAICE_VARIABLE_SALINITY
b5d9cb1403 Jean*0140 CALL WRITE_FLD_XY_RL( 'HSALT.',suff,HSALT,myIter,myThid)
fdfa8e151f Dimi*0141 #endif
e54fe3e1f9 Gael*0142 #ifdef ALLOW_SITRACER
b5d9cb1403 Jean*0143 DO iTracer = 1, SItrNumInUse
0144 WRITE(pref,'(A8,I2.2,A1)') 'SITRACER', iTracer, '.'
0145 CALL WRITE_FLD_XY_RL(
0146 & pref,suff,
0147 & SItracer(1-OLx,1-OLy,1,1,iTracer),
0148 & myIter, myThid )
0149 ENDDO
f681b7f5d4 Dimi*0150 #endif
b5d9cb1403 Jean*0151 ENDIF
6e2f4e58fa Mart*0152 #if ( defined(SEAICE_CGRID) && defined(SEAICE_ALLOW_EVP) )
0153 IF ( SEAICEuseEVP ) THEN
dfc84e52b6 Mart*0154 CALL WRITE_FLD_XY_RL('SIGMA1.',suff,seaice_sigma1,
6e2f4e58fa Mart*0155 & myIter,myThid)
dfc84e52b6 Mart*0156 CALL WRITE_FLD_XY_RL('SIGMA2.',suff,seaice_sigma2,
6e2f4e58fa Mart*0157 & myIter,myThid)
dfc84e52b6 Mart*0158 CALL WRITE_FLD_XY_RL('SIGMA12.',suff,seaice_sigma12,
6e2f4e58fa Mart*0159 & myIter,myThid)
0160 ENDIF
0161 #endif /* SEAICE_CGRID and SEAICE_ALLOW_EVP */
eb9c144150 Jean*0162
ec1f837e9d Ed H*0163 ENDIF
8a685a2f38 Jean*0164
eb9c144150 Jean*0165 ENDIF
809c36b928 Patr*0166 ENDIF
0167
0168
0169
9baf699ab7 Jean*0170
0171 CALL SEAICE_MONITOR( myTime, myIter, myThid )
0172
1ffb1fabff Jean*0173
0174 IF ( useOBCS ) CALL SEAICE_OBCS_OUTPUT( myTime, myIter, myThid )
0175
809c36b928 Patr*0176 RETURN
0177 END