File indexing completed on 2021-06-23 05:11:40 UTC
view on githubraw file Latest commit eaee6fe0 on 2021-06-18 20:43:21 UTC
ddc7b8ee22 Jean*0001 #include "THSICE_OPTIONS.h"
0002
0003
0004
0005
0006 SUBROUTINE THSICE_DIAGNOSTICS_INIT( myThid )
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 IMPLICIT NONE
0017
0018
0019 #include "EEPARAMS.h"
0020
0021
a4eca6e929 Jean*0022 #include "THSICE_SIZE.h"
ddc7b8ee22 Jean*0023
0024
0025
0026
a4eca6e929 Jean*0027
ddc7b8ee22 Jean*0028 INTEGER myThid
0029
0030
0031 #ifdef ALLOW_DIAGNOSTICS
0032
0033
0034
ab84bd527e Jean*0035
ddc7b8ee22 Jean*0036
0037
0038
0039
0040
0041 INTEGER diagNum
ab84bd527e Jean*0042 INTEGER diagMate
ddc7b8ee22 Jean*0043 CHARACTER*8 diagName
0044 CHARACTER*16 diagCode
0045 CHARACTER*16 diagUnits
0046 CHARACTER*(80) diagTitle
617abfa0a4 Jean*0047 INTEGER numFract, numThick, numFrcFx
a4eca6e929 Jean*0048 INTEGER n
0049 LOGICAL flag
0050 CHARACTER*16 locName
0051 CHARACTER*4 THSICE_DIAG_SUFX, diagSufx
0052 EXTERNAL THSICE_DIAG_SUFX
ddc7b8ee22 Jean*0053
0054
0055
0056
0057
0058 diagName = 'SI_Fract'
0059 diagTitle = 'Sea-Ice fraction [0-1]'
0060 diagUnits = '0-1 '
0061 diagCode = 'SM P M1 '
ab84bd527e Jean*0062 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
0063 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
ddc7b8ee22 Jean*0064 numFract = diagNum
1b12829e5f Jean*0065 numFrcFx = diagNum
ddc7b8ee22 Jean*0066
0067 diagName = 'SI_Thick'
0068 diagTitle = 'Sea-Ice thickness (area weighted average)'
0069 diagUnits = 'm '
ab84bd527e Jean*0070 diagCode = 'SM PC M1 '
0071 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
0072 I diagName, diagCode, diagUnits, diagTitle, numFract, myThid )
ddc7b8ee22 Jean*0073 numThick = diagNum
0074
0075 diagName = 'SI_SnowH'
0076 diagTitle = 'Snow thickness over Sea-Ice (area weighted)'
0077 diagUnits = 'm '
ab84bd527e Jean*0078 diagCode = 'SM PC M1 '
0079 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
0080 I diagName, diagCode, diagUnits, diagTitle, numFract, myThid )
ddc7b8ee22 Jean*0081
0082 diagName = 'SI_Tsrf '
0083 diagTitle = 'Surface Temperature over Sea-Ice (area weighted)'
0084 diagUnits = 'degC '
ab84bd527e Jean*0085 diagCode = 'SM C M1 '
0086 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
0087 I diagName, diagCode, diagUnits, diagTitle, numFract, myThid )
ddc7b8ee22 Jean*0088
0089 diagName = 'SI_Tice1'
0090 diagTitle = 'Sea-Ice Temperature, 1srt layer (area weighted)'
0091 diagUnits = 'degC '
ab84bd527e Jean*0092 diagCode = 'SM C M1 '
0093 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
0094 I diagName, diagCode, diagUnits, diagTitle, numFract, myThid )
ddc7b8ee22 Jean*0095
0096 diagName = 'SI_Tice2'
0097 diagTitle = 'Sea-Ice Temperature, 2nd layer (area weighted)'
0098 diagUnits = 'degC '
ab84bd527e Jean*0099 diagCode = 'SM C M1 '
0100 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
0101 I diagName, diagCode, diagUnits, diagTitle, numFract, myThid )
ddc7b8ee22 Jean*0102
0103 diagName = 'SI_Qice1'
bd8a00c1fc Jean*0104 diagTitle = 'Sea-Ice enthalpy, 1srt layer (mass weighted)'
0105 diagUnits = 'J/kg '
ab84bd527e Jean*0106 diagCode = 'SM C M1 '
0107 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
0108 I diagName, diagCode, diagUnits, diagTitle, numThick, myThid )
ddc7b8ee22 Jean*0109
0110 diagName = 'SI_Qice2'
bd8a00c1fc Jean*0111 diagTitle = 'Sea-Ice enthalpy, 2nd layer (mass weighted)'
0112 diagUnits = 'J/kg '
ab84bd527e Jean*0113 diagCode = 'SM C M1 '
0114 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
0115 I diagName, diagCode, diagUnits, diagTitle, numThick, myThid )
ddc7b8ee22 Jean*0116
0117 diagName = 'SIsnwAge'
0118 diagTitle = 'snow age over Sea-Ice'
0119 diagUnits = 's '
0120 diagCode = 'SM P M1 '
ab84bd527e Jean*0121 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
0122 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
ddc7b8ee22 Jean*0123
617abfa0a4 Jean*0124 diagName = 'SIalbedo'
0125 diagTitle = 'Sea-Ice Albedo [0-1] (area weighted average)'
0126 diagUnits = '0-1 '
ab84bd527e Jean*0127 diagCode = 'SM PC M1 '
0128 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
0129 I diagName, diagCode, diagUnits, diagTitle, numFrcFx, myThid )
617abfa0a4 Jean*0130
ddc7b8ee22 Jean*0131 diagName = 'SIsnwPrc'
0132 diagTitle = 'snow precip. (+=dw) over Sea-Ice (area weighted)'
0133 diagUnits = 'kg/m^2/s '
ab84bd527e Jean*0134 diagCode = 'SM C M1 '
0135 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
0136 I diagName, diagCode, diagUnits, diagTitle, numFrcFx, myThid )
ddc7b8ee22 Jean*0137
0138 diagName = 'SIflxAtm'
0139 diagTitle = 'net heat flux from the Atmosphere (+=dw)'
0140 diagUnits = 'W/m^2 '
0141 diagCode = 'SM M1 '
ab84bd527e Jean*0142 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
0143 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
ddc7b8ee22 Jean*0144
0145 diagName = 'SIfrwAtm'
0146 diagTitle = 'fresh-water flux to the Atmosphere (+=up)'
0147 diagUnits = 'kg/m^2/s '
0148 diagCode = 'SM M1 '
ab84bd527e Jean*0149 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
0150 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
ddc7b8ee22 Jean*0151
0152 diagName = 'SIflx2oc'
0153 diagTitle = 'heat flux out of the ocean (+=up)'
0154 diagUnits = 'W/m^2 '
0155 diagCode = 'SM M1 '
ab84bd527e Jean*0156 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
0157 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
ddc7b8ee22 Jean*0158
0159 diagName = 'SIfrw2oc'
0160 diagTitle = 'fresh-water flux out of the ocean (+=up)'
ac29614c18 Davi*0161 diagUnits = 'kg/m^2/s '
ddc7b8ee22 Jean*0162 diagCode = 'SM M1 '
ab84bd527e Jean*0163 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
0164 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
ddc7b8ee22 Jean*0165
0166 diagName = 'SIsaltFx'
0167 diagTitle = 'salt flux out of the ocean (+=up)'
ba0b047096 Mart*0168 diagUnits = 'g/m^2/s '
ddc7b8ee22 Jean*0169 diagCode = 'SM M1 '
ab84bd527e Jean*0170 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
0171 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
ddc7b8ee22 Jean*0172
0173 diagName = 'SItOcMxL'
0174 diagTitle = 'ocean mixed layer temperature'
0175 diagUnits = 'degC '
0176 diagCode = 'SM M1 '
ab84bd527e Jean*0177 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
0178 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
ddc7b8ee22 Jean*0179
0180 diagName = 'SIsOcMxL'
0181 diagTitle = 'ocean mixed layer salinity'
ba0b047096 Mart*0182 diagUnits = 'g/kg '
ddc7b8ee22 Jean*0183 diagCode = 'SM P M1 '
ab84bd527e Jean*0184 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
0185 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
ddc7b8ee22 Jean*0186
a4eca6e929 Jean*0187 DO n=-5,-9,-1
0188 flag = .TRUE.
0189 IF ( n .EQ. GAD_SI_FRAC ) THEN
0190 locName = 'SeaIce Fraction '
0191 diagUnits = 'm^2/s '
0192 ELSEIF ( n .EQ. GAD_SI_HSNOW ) THEN
0193 locName = 'Snow Thickness '
0194 diagUnits = 'm^3/s '
0195 ELSEIF ( n .EQ. GAD_SI_HICE ) THEN
0196 locName = 'SeaIce Thickness'
0197 diagUnits = 'm^3/s '
0198 ELSEIF ( n .EQ. GAD_SI_QICE1 ) THEN
0199 locName = 'Ice enthalpy l=1'
0200 diagUnits = 'J/kg.m^3/s '
0201
0202 ELSEIF ( n .EQ. GAD_SI_QICE2 ) THEN
0203 locName = 'Ice enthalpy l=2'
0204 diagUnits = 'J/kg.m^3/s '
0205 ELSE
0206 flag = .FALSE.
0207 ENDIF
0208 IF ( flag ) THEN
0209
0210 diagSufx = THSICE_DIAG_SUFX( n, myThid )
0211 diagName = 'ADVx'//diagSufx
0212 diagTitle = 'Zonal Advective Flux of '//locName
ab84bd527e Jean*0213 diagCode = 'UU M1 '
0214 diagMate = diagNum + 2
0215 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
0216 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
a4eca6e929 Jean*0217 diagName = 'ADVy'//diagSufx
0218 diagTitle = 'Meridional Advective Flux of '//locName
ab84bd527e Jean*0219 diagCode = 'VV M1 '
0220 diagMate = diagNum
0221 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
0222 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
a4eca6e929 Jean*0223 ENDIF
0224 ENDDO
0225
7c0d02fed1 Jean*0226
0227 locName = 'before advection'
0e322d6e56 Jean*0228 diagName = 'SI_AdvFr'
7c0d02fed1 Jean*0229 diagTitle = 'Sea-Ice fraction [0-1] ('//locName//')'
0e322d6e56 Jean*0230 diagUnits = '0-1 '
0231 diagCode = 'SM P M1 '
ab84bd527e Jean*0232 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
0233 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
0e322d6e56 Jean*0234 numFract = diagNum
0235
0236 diagName = 'SI_AdvHi'
7c0d02fed1 Jean*0237 diagTitle = 'Sea-Ice thickness ('//locName//')'
0e322d6e56 Jean*0238 diagUnits = 'm '
ab84bd527e Jean*0239 diagCode = 'SM PC M1 '
0240 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
0241 I diagName, diagCode, diagUnits, diagTitle, numFract, myThid )
0e322d6e56 Jean*0242 numThick = diagNum
0243
0244 diagName = 'SI_AdvHs'
7c0d02fed1 Jean*0245 diagTitle = 'Snow thickness over Sea-Ice ('//locName//')'
0e322d6e56 Jean*0246 diagUnits = 'm '
ab84bd527e Jean*0247 diagCode = 'SM PC M1 '
0248 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
0249 I diagName, diagCode, diagUnits, diagTitle, numFract, myThid )
0e322d6e56 Jean*0250
0251 diagName = 'SI_AdvQ1'
7c0d02fed1 Jean*0252 diagTitle = 'Sea-Ice enthalpy, 1srt layer ('//locName//')'
0e322d6e56 Jean*0253 diagUnits = 'J/kg '
ab84bd527e Jean*0254 diagCode = 'SM C M1 '
0255 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
0256 I diagName, diagCode, diagUnits, diagTitle, numThick, myThid )
0e322d6e56 Jean*0257
0258 diagName = 'SI_AdvQ2'
7c0d02fed1 Jean*0259 diagTitle = 'Sea-Ice enthalpy, 2nd layer ('//locName//')'
0e322d6e56 Jean*0260 diagUnits = 'J/kg '
ab84bd527e Jean*0261 diagCode = 'SM C M1 '
0262 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
0263 I diagName, diagCode, diagUnits, diagTitle, numThick, myThid )
0e322d6e56 Jean*0264
ddc7b8ee22 Jean*0265
0266
0267 #endif /* ALLOW_DIAGNOSTICS */
0268
0269 RETURN
0270 END
a4eca6e929 Jean*0271
0272
0273
0274
0275
0276
0277
0278 CHARACTER*4 FUNCTION THSICE_DIAG_SUFX( tracerId, myThid )
0279
0280
0281
0282
0283
0284
0285
0286
0287
0288 IMPLICIT NONE
0289 #include "EEPARAMS.h"
0290 #include "THSICE_SIZE.h"
0291
0292
0293
0294
0295 INTEGER tracerId
0296 INTEGER myThid
0297
0298
0299
0300
0301
0302 IF ( tracerId.EQ.GAD_SI_FRAC ) THEN
0303 THSICE_DIAG_SUFX = 'SIfr'
0304 ELSEIF( tracerId.EQ.GAD_SI_HSNOW ) THEN
0305 THSICE_DIAG_SUFX = 'SIhs'
0306 ELSEIF( tracerId.EQ.GAD_SI_HICE ) THEN
0307 THSICE_DIAG_SUFX = 'SIhi'
0308 ELSEIF( tracerId.EQ.GAD_SI_QICE1 ) THEN
0309 THSICE_DIAG_SUFX = 'SIq1'
0310 ELSEIF( tracerId.EQ.GAD_SI_QICE2 ) THEN
0311 THSICE_DIAG_SUFX = 'SIq2'
0312 ELSE
0313 THSICE_DIAG_SUFX = 'iiii'
0314 ENDIF
0315
0316 RETURN
0317 END