File indexing completed on 2021-11-06 05:16:42 UTC
view on githubraw file Latest commit 016b84c4 on 2021-11-02 20:24:44 UTC
6d54cf9ca1 Ed H*0001 #include "PACKAGES_CONFIG.h"
1dbaea09ee Chri*0002 #include "CPP_OPTIONS.h"
924557e60a Chri*0003
a30418b6b9 Ed H*0004
9366854e02 Chri*0005
0006
a30418b6b9 Ed H*0007
9366854e02 Chri*0008
a30418b6b9 Ed H*0009 SUBROUTINE DO_THE_MODEL_IO(
94884059ae Jean*0010 I modelEnd,
0011 I myTime, myIter, myThid )
a30418b6b9 Ed H*0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
924557e60a Chri*0025
8f92343d9b Jean*0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
906a61c194 Ou W*0058
0059
8f92343d9b Jean*0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080
9366854e02 Chri*0081
0082 IMPLICIT NONE
924557e60a Chri*0083 #include "SIZE.h"
0084 #include "EEPARAMS.h"
0085 #include "PARAMS.h"
0086 #include "DYNVARS.h"
66dc79a095 Chri*0087
9366854e02 Chri*0088
94884059ae Jean*0089
0090
0091
0092
0093 LOGICAL modelEnd
51e2f64a3e Jean*0094 _RL myTime
924557e60a Chri*0095 INTEGER myThid
0096 INTEGER myIter
8f92343d9b Jean*0097
0098
0099 LOGICAL DIFFERENT_MULTIPLE
0100 EXTERNAL DIFFERENT_MULTIPLE
9366854e02 Chri*0101
924557e60a Chri*0102
3138cfd14a Jean*0103
a30418b6b9 Ed H*0104
522c728681 Jean*0105 IF ( plotLevel.GE.debLevD ) THEN
0fa2023ba5 Jean*0106 IF ( DIFFERENT_MULTIPLE(dumpFreq,myTime,deltaTClock)
b0b2dc332d Jean*0107 & ) THEN
a30418b6b9 Ed H*0108
0109 _BARRIER
0110
0111
3138cfd14a Jean*0112 CALL PLOT_FIELD_XYZRL( uVel , 'Current uVel ',
a30418b6b9 Ed H*0113 & Nr, myIter, myThid )
3138cfd14a Jean*0114 CALL PLOT_FIELD_XYZRL( vVel , 'Current vVel ',
a30418b6b9 Ed H*0115 & Nr, myIter, myThid )
3138cfd14a Jean*0116 CALL PLOT_FIELD_XYZRL( theta, 'Current theta ',
a30418b6b9 Ed H*0117 & Nr, myIter, myThid )
3138cfd14a Jean*0118 CALL PLOT_FIELD_XYRL( etaN , 'Current etaN ',
a30418b6b9 Ed H*0119 & myIter, myThid )
a27159adf7 Jean*0120
a30418b6b9 Ed H*0121 ENDIF
66dc79a095 Chri*0122 ENDIF
0123
a30418b6b9 Ed H*0124
a27159adf7 Jean*0125 IF ( .NOT.useOffLine ) THEN
0126 CALL WRITE_STATE( myTime, myIter, myThid )
0127 ENDIF
66dc79a095 Chri*0128
71c6a09c16 Jean*0129 #ifdef ALLOW_TIMEAVE
a30418b6b9 Ed H*0130
fdcd0913cf Jean*0131 IF (taveFreq.GT.0. .AND. myIter.NE.nIter0 ) THEN
a30418b6b9 Ed H*0132 CALL TIMEAVE_STATV_WRITE( myTime, myIter, myThid )
7241724ef1 Jean*0133 ENDIF
0134 #endif
fdcd0913cf Jean*0135
1c514993d7 Andr*0136 #ifdef ALLOW_FIZHI
3138cfd14a Jean*0137 IF ( useFIZHI )
b0b2dc332d Jean*0138 & CALL FIZHI_WRITE_STATE( myTime, myIter, myThid )
1c514993d7 Andr*0139 #endif
0140
aea29c8517 Alis*0141 #ifdef ALLOW_AIM
a30418b6b9 Ed H*0142
fff6867ec8 Jean*0143 IF ( useAIM )
a30418b6b9 Ed H*0144 & CALL AIM_WRITE_TAVE( myTime, myIter, myThid )
a27159adf7 Jean*0145 #endif
c7a7aa41bf Jean*0146 #ifdef ALLOW_LAND
51e2f64a3e Jean*0147
fff6867ec8 Jean*0148 IF ( useLAND )
51e2f64a3e Jean*0149 & CALL LAND_OUTPUT( myTime, myIter, myThid )
a27159adf7 Jean*0150 #endif
3683861f35 Alis*0151
5d7fa54ba5 Patr*0152 #ifdef ALLOW_OBCS
48141007cd Jean*0153 IF (useOBCS )
5616f3581e Jean*0154 & CALL OBCS_OUTPUT( myTime, myIter, myThid )
5d7fa54ba5 Patr*0155 #endif
0156
3683861f35 Alis*0157 #ifdef ALLOW_GMREDI
e9164883fe Jean*0158
a27159adf7 Jean*0159 IF (useGMRedi .AND. myIter.NE.nIter0 .AND. .NOT.useOffLine )
e9164883fe Jean*0160 & CALL GMREDI_OUTPUT( myTime, myIter, myThid )
3683861f35 Alis*0161 #endif
0162
0163 #ifdef ALLOW_KPP
a30418b6b9 Ed H*0164
02f4da180f Oliv*0165 IF ( useKPP )
5616f3581e Jean*0166 & CALL KPP_OUTPUT( myTime, myIter, myThid )
3683861f35 Alis*0167 #endif
0168
e864122ae8 Mart*0169 #ifdef ALLOW_PP81
a30418b6b9 Ed H*0170
3138cfd14a Jean*0171 IF ( usePP81 )
5616f3581e Jean*0172 & CALL PP81_OUTPUT( myTime, myIter, myThid )
e864122ae8 Mart*0173 #endif
0174
d8d1486ca1 Jean*0175 #ifdef ALLOW_KL10
0176
0177 IF ( useKL10 )
0178 & CALL KL10_OUTPUT( myTime, myIter, myThid )
0179 #endif
0180
e864122ae8 Mart*0181 #ifdef ALLOW_MY82
a30418b6b9 Ed H*0182
3138cfd14a Jean*0183 IF ( useMY82 )
5616f3581e Jean*0184 & CALL MY82_OUTPUT( myTime, myIter, myThid )
e864122ae8 Mart*0185 #endif
0186
016b84c482 Mart*0187
69a7b27187 Mart*0188
016b84c482 Mart*0189
0190
0191
69a7b27187 Mart*0192
0193 #ifdef ALLOW_GGL90
0194
3138cfd14a Jean*0195 IF ( useGGL90 )
5616f3581e Jean*0196 & CALL GGL90_OUTPUT( myTime, myIter, myThid )
69a7b27187 Mart*0197 #endif
0198
6060ec2938 Dimi*0199 #ifdef ALLOW_SBO
a30418b6b9 Ed H*0200
3138cfd14a Jean*0201 IF ( useSBO ) THEN
0202 CALL SBO_CALC( myTime, myIter, myThid )
5616f3581e Jean*0203 CALL SBO_OUTPUT( myTime, myIter, myThid )
6060ec2938 Dimi*0204 ENDIF
0205 #endif
0206
906a61c194 Ou W*0207 #ifdef ALLOW_ECCO
0208 IF ( useECCO ) THEN
0209 CALL STERGLOH_OUTPUT( myTime, myIter, myThid )
0210 ENDIF
0211 #endif
0212
36f6faaf99 Dimi*0213 #ifdef ALLOW_SEAICE
a30418b6b9 Ed H*0214 IF ( useSEAICE ) THEN
5616f3581e Jean*0215 CALL SEAICE_OUTPUT( myTime, myIter, myThid )
a30418b6b9 Ed H*0216 ENDIF
36f6faaf99 Dimi*0217 #endif /* ALLOW_SEAICE */
0218
a6cbc7a360 Mart*0219 #ifdef ALLOW_SHELFICE
0220 IF ( useShelfIce ) THEN
5616f3581e Jean*0221 CALL SHELFICE_OUTPUT( myTime, myIter, myThid )
a6cbc7a360 Mart*0222 ENDIF
0223 #endif /* ALLOW_SHELFICE */
0224
7753507405 Curt*0225 #ifdef ALLOW_BULK_FORCE
29a25474f6 Jean*0226
0227 IF ( useBulkForce .AND. myIter.NE.nIter0 )
0228 & CALL BULKF_OUTPUT( myTime, myIter, myThid )
6424ee9bc0 Curt*0229 #endif
0230
10e4bbdd7f Jean*0231 #ifdef ALLOW_THSICE
e9164883fe Jean*0232
10e4bbdd7f Jean*0233 IF (useThSIce)
e9164883fe Jean*0234 & CALL THSICE_OUTPUT( myTime, myIter, myThid )
6424ee9bc0 Curt*0235 #endif
0236
c3e7099071 Mart*0237 #ifdef ALLOW_PTRACERS
0238
0239 IF ( usePTRACERS )
0240 & CALL PTRACERS_OUTPUT( myTime, myIter, myThid )
0241 #endif
0242
024b3c54dd Sama*0243 #ifdef ALLOW_MATRIX
0244
3138cfd14a Jean*0245 IF (useMATRIX)
024b3c54dd Sama*0246 & CALL MATRIX_OUTPUT( myTime, myIter, myThid )
0247 #endif
0248
cf2549e769 Patr*0249 #ifdef ALLOW_GCHEM
c3e7099071 Mart*0250
0a90236bb2 Mart*0251 IF (useGCHEM)
5616f3581e Jean*0252 & CALL GCHEM_OUTPUT( myTime, myIter, myThid )
e39d13c4c9 Step*0253 #endif
0254
a27159adf7 Jean*0255 #ifdef ALLOW_OFFLINE
0256
0257
0258
0259 #endif
0260
c1b6df074d Jean*0261 #ifdef COMPONENT_MODULE
0262 IF ( useCoupler )
5616f3581e Jean*0263 & CALL CPL_OUTPUT( myTime, myIter, myThid )
c1b6df074d Jean*0264 #endif
0265
dfc9bc933c Ryan*0266
0267 #ifdef ALLOW_LAYERS
0268 IF ( useLayers ) THEN
0269 CALL LAYERS_CALC( myTime, myIter, myThid )
0270 CALL LAYERS_OUTPUT( myTime, myIter, myThid )
0271 ENDIF
0272 #endif /* ALLOW_LAYERS */
0273
04e78e1b9d Andr*0274 #ifdef ALLOW_DIAGNOSTICS
a27159adf7 Jean*0275 IF ( useDiagnostics )
94884059ae Jean*0276 & CALL DIAGNOSTICS_WRITE( modelEnd, myTime, myIter, myThid )
04e78e1b9d Andr*0277 #endif
0278
924557e60a Chri*0279 RETURN
0280 END