File indexing completed on 2025-11-07 06:08:15 UTC
view on githubraw file Latest commit b7411f1a on 2025-11-06 19:05:26 UTC
b7411f1a84 Jean*0001 #undef ALLOW_AIM_TAVE
d676f916b2 Jean*0002 #include "AIM_OPTIONS.h"
0003
0004
0005
0006
0007 SUBROUTINE AIM_READPARMS( myThid )
0008
0009
0010
0011
0012
0013
d24aab1d8d Jean*0014
d676f916b2 Jean*0015
0016
0017
d24aab1d8d Jean*0018
d676f916b2 Jean*0019
0020 IMPLICIT NONE
0021
0022
0023 #include "AIM_SIZE.h"
0024 #include "EEPARAMS.h"
a27dd2281d Jean*0025 #include "PARAMS.h"
65007c221b Jean*0026 #include "AIM_PARAMS.h"
2a4f7f3ad0 Jean*0027 #include "AIM_CO2.h"
d0a9461855 Jean*0028 #ifdef ALLOW_MNC
0029 #include "MNC_PARAMS.h"
0030 #endif
d676f916b2 Jean*0031
0032
0033
0034
0035 #include "com_forcon.h"
0036 #include "com_sflcon.h"
0037 #include "com_cnvcon.h"
0038 #include "com_lsccon.h"
d24aab1d8d Jean*0039 #include "com_radcon.h"
0040 #include "com_vdicon.h"
d676f916b2 Jean*0041
0042
d24aab1d8d Jean*0043
0044
d676f916b2 Jean*0045 INTEGER myThid
0046
0047
0048 #ifdef ALLOW_AIM
0049
d24aab1d8d Jean*0050
2a4f7f3ad0 Jean*0051
0052
b7411f1a84 Jean*0053
2a4f7f3ad0 Jean*0054
0055
d676f916b2 Jean*0056 CHARACTER*(MAX_LEN_MBUF) msgBuf
2a4f7f3ad0 Jean*0057 CHARACTER*10 endList
0058 INTEGER buffI(1)
d676f916b2 Jean*0059 INTEGER iUnit
2a4f7f3ad0 Jean*0060 INTEGER errCount
0061 _RL aim_fixed_pCO2
0062 _RL atmpCO2init
b7411f1a84 Jean*0063
0064
0065 _RL aim_taveFreq
0066 LOGICAL aim_timeave_mnc
d676f916b2 Jean*0067
0068
0069
65007c221b Jean*0070
0071
0072
d0a9461855 Jean*0073
0074
0075
65007c221b Jean*0076
b3097ed02d Jean*0077
0078
0079
65007c221b Jean*0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
2a4f7f3ad0 Jean*0090
0091
0092
0093
e749d70ece Jean*0094
65007c221b Jean*0095
0096
0097 NAMELIST /AIM_PARAMS/
d24aab1d8d Jean*0098 & aim_useFMsurfBC, aim_useMMsurfFc,
d0a9461855 Jean*0099 & aim_surfForc_TimePeriod, aim_surfForc_NppCycle,
0100 & aim_surfForc_TransRatio, aim_surfPotTemp,
0101 & aim_energPrecip, aim_splitSIOsFx,
65007c221b Jean*0102 & aim_MMsufx, aim_MMsufxLength,
0103 & aim_LandFile, aim_albFile, aim_vegFile,
0104 & aim_sstFile, aim_lstFile, aim_oiceFile, aim_snowFile,
5e328a6c4a Davi*0105 & aim_swcFile, aim_qfxFile,
2a4f7f3ad0 Jean*0106 & aim_dragStrato, aim_selectOceAlbedo,
0107 & aim_select_pCO2, aim_abs_pCO2, aim_fixed_pCO2, atmpCO2init,
ad0ca66649 Ed H*0108 & aim_clrSkyDiag, aim_taveFreq, aim_diagFreq, aim_tendFreq,
d0a9461855 Jean*0109 & aim_timeave_mnc, aim_snapshot_mnc,
2a4f7f3ad0 Jean*0110 & aim_pickup_write_mnc, aim_pickup_read_mnc
65007c221b Jean*0111
d676f916b2 Jean*0112
b3097ed02d Jean*0113
0114
0115
0116
0117
0118
0119
0120
0121
d676f916b2 Jean*0122
0123
0124
7f98c35e47 Davi*0125
d676f916b2 Jean*0126
0127
0128
0129
0130
0131
bea6259b65 Jean*0132
d676f916b2 Jean*0133 NAMELIST /AIM_PAR_FOR/
0134 & SOLC, ALBSEA, ALBICE, ALBSN,
7f98c35e47 Davi*0135 & SDALB, SWCAP, SWWIL, hSnowWetness, OBLIQ
d676f916b2 Jean*0136
d24aab1d8d Jean*0137
d676f916b2 Jean*0138
0139
0140
0141
0142
0143
0144
0145
0146
0147
0148
0149
0150
0151
e749d70ece Jean*0152
d676f916b2 Jean*0153
0154
0155
0156 NAMELIST /AIM_PAR_SFL/
0157 & FWIND0, FTEMP0, FHUM0,
0158 & CDL, CDS, CHL, CHS, VGUST, CTDAY,
e749d70ece Jean*0159 & DTHETA, dTstab, FSTAB, HDRAG, FHDRAG
d676f916b2 Jean*0160
0161
0162
0163
0164
0165
0166
0167
0168
0169 NAMELIST /AIM_PAR_CNV/
0170 & PSMIN, TRCNV, QBL, RHBL, RHIL, ENTMAX, SMF
0171
d24aab1d8d Jean*0172
d676f916b2 Jean*0173
0174
0175
0176
0177 NAMELIST /AIM_PAR_LSC/
0178 & TRLSC, RHLSC, DRHLSC, QSMAX
0179
0180
0181
0182
0183
0184
0185
0186
0187
0188
0189
0190
0191
0192
0193
0194
0195
0196
0197
0198
0199
0200
0201
0202
0203 NAMELIST /AIM_PAR_RAD/
0204 & RHCL1, RHCL2, QACL1, QACL2, ALBCL,
0205 & EPSSW, EPSLW, EMISFC,
0206 & ABSDRY, ABSAER, ABSWV1, ABSWV2, ABSCL1, ABSCL2,
d24aab1d8d Jean*0207 & ABLWIN, ABLCO2, ABLWV1, ABLWV2, ABLCL1, ABLCL2
d676f916b2 Jean*0208
d24aab1d8d Jean*0209
d676f916b2 Jean*0210
0211
0212
0213
0214
0215 NAMELIST /AIM_PAR_VDI/
0216 & TRSHC, TRVDI, TRVDS, RHGRAD, SEGRAD
0217
0218
0219
0220 _BEGIN_MASTER(myThid)
d24aab1d8d Jean*0221
d0a9461855 Jean*0222
0223 aim_useFMsurfBC = .TRUE.
0224 aim_useMMsurfFc = .FALSE.
0225 aim_surfPotTemp = .FALSE.
0226 aim_energPrecip = .FALSE.
0227 aim_splitSIOsFx = .FALSE.
0228 aim_clrSkyDiag = .FALSE.
0229 #ifdef ALLOW_MNC
0230 aim_snapshot_mnc = snapshot_mnc .AND. useMNC
0231 aim_pickup_write_mnc = pickup_write_mnc .AND. useMNC
0232 aim_pickup_read_mnc = pickup_read_mnc .AND. useMNC
0233 #else
0234 aim_snapshot_mnc = .FALSE.
0235 aim_pickup_write_mnc = .FALSE.
0236 aim_pickup_read_mnc = .FALSE.
0237 #endif
0238 aim_MMsufx = '.bin'
0239 aim_MMsufxLength = 4
0240
0241 aim_surfForc_TimePeriod = 30.*86400.
0242
0243 aim_surfForc_NppCycle = 12
0244
0245
0246
0247 aim_surfForc_TransRatio = 1.
0248 aim_LandFile = ' '
0249 aim_albFile = ' '
0250 aim_vegFile = ' '
0251 aim_sstFile = ' '
0252 aim_lstFile = ' '
0253 aim_oiceFile = ' '
0254 aim_snowFile = ' '
0255 aim_swcFile = ' '
5e328a6c4a Davi*0256 aim_qfxFile = ' '
d0a9461855 Jean*0257 aim_dragStrato = 0.
2a4f7f3ad0 Jean*0258 aim_selectOceAlbedo = 0
0259 aim_select_pCO2 = 0
0260 aim_ref_pCO2 = 320. _d -6
455d18a2e4 Jean*0261
0262
0263 aim_abs_pCO2 = 1.2616 _d 0
2a4f7f3ad0 Jean*0264 aim_fixed_pCO2 = UNSET_RL
0265 atmpCO2init = UNSET_RL
0266
d0a9461855 Jean*0267 aim_diagFreq = dumpFreq
0268 aim_tendFreq = 0.
7f98c35e47 Davi*0269 OBLIQ = 23.45 _d 0
d0a9461855 Jean*0270
b7411f1a84 Jean*0271
0272 aim_taveFreq = UNSET_RL
0273 aim_timeave_mnc = .FALSE.
0274
d0a9461855 Jean*0275
0276
2a4f7f3ad0 Jean*0277 WRITE(msgBuf,'(A)') ' AIM_READPARMS: opening data.aimphys'
0278 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0279 & SQUEEZE_RIGHT, myThid )
d676f916b2 Jean*0280
2a4f7f3ad0 Jean*0281 CALL OPEN_COPY_DATA_FILE( 'data.aimphys', 'AIM_READPARMS',
d676f916b2 Jean*0282 O iUnit, myThid )
0283
0284
0285
65007c221b Jean*0286
0287 READ(UNIT=iUnit,NML=AIM_PARAMS)
0288
d676f916b2 Jean*0289
0290 READ(UNIT=iUnit,NML=AIM_PAR_FOR)
0291
0292
0293 READ(UNIT=iUnit,NML=AIM_PAR_SFL)
d24aab1d8d Jean*0294
d676f916b2 Jean*0295
0296 READ(UNIT=iUnit,NML=AIM_PAR_CNV)
0297
0298
0299 READ(UNIT=iUnit,NML=AIM_PAR_LSC)
0300
0301
0302 READ(UNIT=iUnit,NML=AIM_PAR_RAD)
0303
0304
0305 READ(UNIT=iUnit,NML=AIM_PAR_VDI)
0306
d24aab1d8d Jean*0307 WRITE(msgBuf,'(A)')
2a4f7f3ad0 Jean*0308 & ' AIM_READPARMS: finished reading data.aimphys'
0309 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0310 & SQUEEZE_RIGHT, myThid )
d24aab1d8d Jean*0311
d676f916b2 Jean*0312
7a77863887 Mart*0313 #ifdef SINGLE_DISK_IO
d676f916b2 Jean*0314 CLOSE(iUnit)
7a77863887 Mart*0315 #else
0316 CLOSE(iUnit,STATUS='DELETE')
0317 #endif /* SINGLE_DISK_IO */
d676f916b2 Jean*0318
0319
3a474aa258 Jean*0320
2a4f7f3ad0 Jean*0321 errCount = 0
0322
b7411f1a84 Jean*0323
0324 IF ( aim_taveFreq .NE. UNSET_RL ) THEN
0325 WRITE(msgBuf,'(2A)') 'AIM_READPARMS: ',
0326 & '"aim_taveFreq" is no longer allowed in file "data.aimphys"'
0327 CALL PRINT_ERROR( msgBuf, myThid )
0328 WRITE(msgBuf,'(2A)') 'AIM_READPARMS: ',
0329 & ' since "pkg/timeave" has been removed.'
0330 CALL PRINT_ERROR( msgBuf, myThid )
0331 errCount = errCount + 1
0332 ENDIF
0333 IF ( aim_timeave_mnc ) THEN
0334 WRITE(msgBuf,'(2A)') 'AIM_READPARMS: "aim_timeave_mnc"',
0335 & ' is no longer allowed in file "data.aimphys"'
0336 CALL PRINT_ERROR( msgBuf, myThid )
0337 WRITE(msgBuf,'(2A)') 'AIM_READPARMS: ',
0338 & ' since "pkg/timeave" has been removed.'
0339 CALL PRINT_ERROR( msgBuf, myThid )
0340 errCount = errCount + 1
0341 ENDIF
0342 #ifdef ALLOW_AIM_TAVE
0343 WRITE(msgBuf,'(2A)') 'AIM_READPARMS: :'
0344 & '#define ALLOW_AIM_TAVE not allowed in AIM_OPTIONS.h'
0345 CALL PRINT_ERROR( msgBuf, myThid)
0346 WRITE(msgBuf,'(2A)') 'AIM_READPARMS: :'
0347 & ' since "pkg/timeave" has been removed.'
0348 CALL PRINT_ERROR( msgBuf, myThid)
0349 errCount = errCount + 1
0350 #endif /* ALLOW_AIM_TAVE */
0351
0352
2a4f7f3ad0 Jean*0353 IF ( aim_select_pCO2.LT.0 .OR. aim_select_pCO2.GT.3 ) THEN
0354 WRITE(msgBuf,'(2A)') 'AIM_READPARMS: ',
0355 & 'Invalid value for "aim_select_pCO2"'
0356 CALL PRINT_ERROR( msgBuf, myThid )
0357 errCount = errCount + 1
0358 ENDIF
0359 #ifndef ALLOW_AIM_CO2
0360 IF ( aim_select_pCO2.GE.2 .AND. aim_select_pCO2.LE.3 ) THEN
0361 WRITE(msgBuf,'(2A)') 'AIM_READPARMS: ',
0362 & 'aim_select_pCO2 > 1 but ALLOW_AIM_CO2 undef'
0363 CALL PRINT_ERROR( msgBuf, myThid )
0364 WRITE(msgBuf,'(2A)')
0365 & 'Re-compile with: #define ALLOW_AIM_CO2 (AIM_OPTIONS.h)'
0366 CALL PRINT_ERROR( msgBuf, myThid )
0367 errCount = errCount + 1
0368 ENDIF
0369 #endif /* ndef ALLOW_AIM_CO2 */
0370
0371 IF ( aim_fixed_pCO2.EQ.UNSET_RL ) THEN
0372 aim_fixed_pCO2 = aim_ref_pCO2
0373 ELSEIF ( aim_select_pCO2.NE.1 .AND.
0374 & aim_select_pCO2.GE.0 .AND. aim_select_pCO2.LE.3 ) THEN
0375 WRITE(msgBuf,'(2A)') 'AIM_READPARMS: ',
0376 & 'aim_fixed_pCO2 only used if aim_select_pCO2=1'
0377 CALL PRINT_ERROR( msgBuf, myThid )
0378 errCount = errCount + 1
0379 ENDIF
0380 IF ( atmpCO2init.EQ.UNSET_RL ) THEN
0381 atmpCO2init = aim_ref_pCO2
0382 ELSEIF ( aim_select_pCO2.GE.0 .AND. aim_select_pCO2.LT.2 ) THEN
0383 WRITE(msgBuf,'(2A)') '** WARNING ** AIM_READPARMS: ',
0384 & 'atmpCO2init only used if aim_select_pCO2 > 1'
0385 CALL PRINT_MESSAGE( msgBuf, errorMessageUnit,
0386 & SQUEEZE_RIGHT, myThid )
0387 ENDIF
3a474aa258 Jean*0388
e749d70ece Jean*0389 #ifndef ALLOW_CLR_SKY_DIAG
0390
0391 IF ( aim_clrSkyDiag ) THEN
2a4f7f3ad0 Jean*0392 WRITE(msgBuf,'(2A)') 'AIM_READPARMS: ',
0393 & 'aim_clrSkyDiag=T but ALLOW_CLR_SKY_DIAG undef'
0394 CALL PRINT_ERROR( msgBuf, myThid )
e749d70ece Jean*0395 WRITE(msgBuf,'(2A)')
0396 & 'Re-compile with: #define ALLOW_CLR_SKY_DIAG (AIM_OPTIONS.h)'
2a4f7f3ad0 Jean*0397 CALL PRINT_ERROR( msgBuf, myThid )
0398 errCount = errCount + 1
e749d70ece Jean*0399 ENDIF
0400 #endif
0401
ad0ca66649 Ed H*0402 #ifdef ALLOW_MNC
d24aab1d8d Jean*0403 aim_snapshot_mnc = useMNC .AND. aim_snapshot_mnc
0404 aim_pickup_write_mnc = useMNC .AND. aim_pickup_write_mnc
0405 aim_pickup_read_mnc = useMNC .AND. aim_pickup_read_mnc
0406 #else /* ALLOW_MNC */
78ad6fc820 Ed H*0407 aim_snapshot_mnc = .FALSE.
0408 aim_pickup_write_mnc = .FALSE.
0409 aim_pickup_read_mnc = .FALSE.
ad0ca66649 Ed H*0410 #endif /* ALLOW_MNC */
d24aab1d8d Jean*0411 aim_snapshot_mdsio = (.NOT. aim_snapshot_mnc)
0412 & .OR. outputTypesInclusive
0413 aim_pickup_write_mdsio = (.NOT. aim_pickup_write_mnc)
0414 & .OR. outputTypesInclusive
0415 aim_pickup_read_mdsio = (.NOT. aim_pickup_read_mnc)
0416 & .OR. outputTypesInclusive
ad0ca66649 Ed H*0417
3a474aa258 Jean*0418
d676f916b2 Jean*0419
2a4f7f3ad0 Jean*0420 iUnit = standardMessageUnit
0421 endList = ' ; '
d676f916b2 Jean*0422
0423 WRITE(msgBuf,'(A)') ' '
2a4f7f3ad0 Jean*0424 CALL PRINT_MESSAGE( msgBuf, iUnit, SQUEEZE_RIGHT, myThid )
d676f916b2 Jean*0425 WRITE(msgBuf,'(A)') '// ==================================='
2a4f7f3ad0 Jean*0426 CALL PRINT_MESSAGE( msgBuf, iUnit, SQUEEZE_RIGHT, myThid )
d676f916b2 Jean*0427 WRITE(msgBuf,'(A)') '// AIM physics parameters :'
2a4f7f3ad0 Jean*0428 CALL PRINT_MESSAGE( msgBuf, iUnit, SQUEEZE_RIGHT, myThid )
d676f916b2 Jean*0429 WRITE(msgBuf,'(A)') '// ==================================='
2a4f7f3ad0 Jean*0430 CALL PRINT_MESSAGE( msgBuf, iUnit, SQUEEZE_RIGHT, myThid )
d676f916b2 Jean*0431
a27dd2281d Jean*0432 CALL WRITE_0D_L( useLand, INDEX_NONE,
0433 & 'useLand =',
d24aab1d8d Jean*0434 &' /* use Land package for surf.BC over land */')
a27dd2281d Jean*0435
65007c221b Jean*0436
0437 CALL WRITE_0D_L( aim_useFMsurfBC, INDEX_NONE,
0438 & 'aim_useFMsurfBC =',
d24aab1d8d Jean*0439 &' /* F.Molteni surf. BC scheme on/off flag */')
65007c221b Jean*0440 CALL WRITE_0D_L( aim_useMMsurfFc, INDEX_NONE,
0441 & 'aim_useMMsurfFc =',
d24aab1d8d Jean*0442 &' /* Monthly Mean surf. Forcing on/off flag */')
4da4b49499 Jean*0443 CALL WRITE_0D_RL(aim_surfForc_TimePeriod, INDEX_NONE,
d0a9461855 Jean*0444 & 'aim_surfForc_TimePeriod =',
0445 & ' /* Length of forcing time period (s) */')
0446 CALL WRITE_0D_I( aim_surfForc_NppCycle, INDEX_NONE,
0447 & 'aim_surfForc_NppCycle =',
0448 & ' /* Number of time period per Cycle */')
4da4b49499 Jean*0449 CALL WRITE_0D_RL(aim_surfForc_TransRatio, INDEX_NONE,
d0a9461855 Jean*0450 & 'aim_surfForc_TransRatio =',
0451 & ' /* transition ratio from one month to the next */')
65007c221b Jean*0452 CALL WRITE_0D_L( aim_surfPotTemp, INDEX_NONE,
0453 & 'aim_surfPotTemp =',
d24aab1d8d Jean*0454 &' /* Surf Temp file in Pot.Temp on/off flag */')
b3097ed02d Jean*0455 CALL WRITE_0D_L( aim_energPrecip, INDEX_NONE,
0456 & 'aim_energPrecip =',
d24aab1d8d Jean*0457 & ' /* account for energy of precip. on/off flag */')
b3097ed02d Jean*0458 CALL WRITE_0D_L( aim_splitSIOsFx, INDEX_NONE,
0459 & 'aim_splitSIOsFx =',
d24aab1d8d Jean*0460 & ' /* separate Sea-Ice & Ocean Flux on/off flag */')
4da4b49499 Jean*0461 CALL WRITE_0D_RL(aim_dragStrato,INDEX_NONE,'aim_dragStrato=',
299f32bec2 Jean*0462 & ' /* stratospheric-drag damping time scale (s) */')
2a4f7f3ad0 Jean*0463 CALL WRITE_0D_I( aim_selectOceAlbedo, INDEX_NONE,
0464 & 'aim_selectOceAlbedo =', ' /* Ocean albedo(latitude) flag */')
0465
0466 WRITE(msgBuf,'(2A)') 'aim_select_pCO2=',
0467 & ' /* select AIM CO2 option */'
0468 CALL PRINT_MESSAGE( msgBuf, iUnit, SQUEEZE_RIGHT, myThid )
0469 buffI(1) = aim_select_pCO2
0470 CALL PRINT_LIST_I( buffI, 1, 1, INDEX_NONE,
0471 & .FALSE., .TRUE., iUnit )
0472 WRITE(msgBuf,'(2A)')
0473 & ' =0: prescribed LW absorption in CO2 band (=ABLCO2)'
0474 CALL PRINT_MESSAGE( msgBuf, iUnit, SQUEEZE_RIGHT, myThid )
0475 WRITE(msgBuf,'(2A)')
0476 & ' =1: absorption fct of prescribed pCO2 (=aim_fixed_pCO2)'
0477 CALL PRINT_MESSAGE( msgBuf, iUnit, SQUEEZE_RIGHT, myThid )
0478 WRITE(msgBuf,'(2A)')
0479 & ' =2: same as 0 with passive, well-mixed pCO2 atm box'
0480 CALL PRINT_MESSAGE( msgBuf, iUnit, SQUEEZE_RIGHT, myThid )
0481 WRITE(msgBuf,'(2A)')
0482 & ' =3: same as 1 with evolving, well-mixed pCO2 atm-box'
0483 CALL PRINT_MESSAGE( msgBuf, iUnit, SQUEEZE_RIGHT, myThid )
0484 CALL PRINT_MESSAGE(endList, iUnit, SQUEEZE_RIGHT, myThid )
0485 IF ( aim_select_pCO2.EQ.1 .OR. aim_select_pCO2.EQ.3 )
0486 & CALL WRITE_0D_RL( aim_abs_pCO2, INDEX_NONE,
0487 & 'aim_abs_pCO2 =', ' /* pCO2 dep. coeff. of CO2 absortion */')
0488 IF ( aim_select_pCO2.EQ.1 )
0489 & CALL WRITE_0D_RL( aim_fixed_pCO2, INDEX_NONE,
0490 & 'aim_fixed_pCO2 =', ' /* fixed pCO2 for AIM radiation */')
0491 #ifdef ALLOW_AIM_CO2
0492 CALL WRITE_0D_RL( atmpCO2init, INDEX_NONE,
0493 & 'atmpCO2init =', ' /* Initial atm-box pCO2 */')
0494 #endif
e749d70ece Jean*0495 CALL WRITE_0D_L( aim_clrSkyDiag, INDEX_NONE,
0496 & 'aim_clrSkyDiag =',
d24aab1d8d Jean*0497 & ' /* do clear-sky radiation diagnostics */')
4da4b49499 Jean*0498 CALL WRITE_0D_RL( aim_diagFreq, INDEX_NONE,'aim_diagFreq =',
65007c221b Jean*0499 & ' /* Frequency^-1 for diagnostic output (s) */')
4da4b49499 Jean*0500 CALL WRITE_0D_RL( aim_tendFreq, INDEX_NONE,'aim_tendFreq =',
65007c221b Jean*0501 & ' /* Frequency^-1 for tendencies output (s) */')
0502
d676f916b2 Jean*0503
4da4b49499 Jean*0504 CALL WRITE_0D_RL( SOLC, INDEX_NONE,'AIM_FOR: SOLC =',
d676f916b2 Jean*0505 & ' /* Solar constant (area averaged) in W/m2 */')
7f98c35e47 Davi*0506 CALL WRITE_0D_RL( OBLIQ, INDEX_NONE,'AIM_FOR: OBLIQ =',
0507 & ' /* Obliquity (degree) used with ALLOW_INSOLATION */')
4da4b49499 Jean*0508 CALL WRITE_0D_RL( ALBSEA,INDEX_NONE,'AIM_FOR: ALBSEA =',
d676f916b2 Jean*0509 & ' /* Albedo over sea [0-1] */')
4da4b49499 Jean*0510 CALL WRITE_0D_RL( ALBICE,INDEX_NONE,'AIM_FOR: ALBICE =',
d676f916b2 Jean*0511 & ' /* Albedo over sea ice (for ice fraction =1) */')
4da4b49499 Jean*0512 CALL WRITE_0D_RL( ALBSN, INDEX_NONE,'AIM_FOR: ALBSN =',
d676f916b2 Jean*0513 & ' /* Albedo over snow (for snow depth > SDALB) */')
4da4b49499 Jean*0514 CALL WRITE_0D_RL( SDALB, INDEX_NONE,'AIM_FOR: SDALB =',
d676f916b2 Jean*0515 & ' /* Snow depth (mm H2O) corresp. maximum albedo */')
4da4b49499 Jean*0516 CALL WRITE_0D_RL( SWCAP, INDEX_NONE,'AIM_FOR: SWCAP =',
d676f916b2 Jean*0517 & ' /* Soil wetness at field capacity (Vol.fract.) */')
4da4b49499 Jean*0518 CALL WRITE_0D_RL( SWWIL, INDEX_NONE,'AIM_FOR: SWWIL =',
d676f916b2 Jean*0519 & ' /* Soil wetness at wilting point (Vol.fract.) */')
4da4b49499 Jean*0520 CALL WRITE_0D_RL( hSnowWetness, INDEX_NONE,
bea6259b65 Jean*0521 & 'AIM_FOR: hSnowWetness=',
0522 & ' /* snow depth corresp. maximum wetness (m) */')
d676f916b2 Jean*0523
0524
4da4b49499 Jean*0525 CALL WRITE_0D_RL( FWIND0,INDEX_NONE,'AIM_SFL: FWIND0 =',
d676f916b2 Jean*0526 & ' /* ratio of near-sfc wind to lowest-level wind */')
4da4b49499 Jean*0527 CALL WRITE_0D_RL( FTEMP0,INDEX_NONE,'AIM_SFL: FTEMP0 =',
d676f916b2 Jean*0528 & ' /* weight for near-sfc temp. extrapolation (0-1)*/')
4da4b49499 Jean*0529 CALL WRITE_0D_RL( FHUM0, INDEX_NONE,'AIM_SFL: FHUM0 =',
d676f916b2 Jean*0530 & ' /* weight for near-sfc spec.humid. extrap. (0-1)*/')
4da4b49499 Jean*0531 CALL WRITE_0D_RL( CDL, INDEX_NONE,'AIM_SFL: CDL =',
d676f916b2 Jean*0532 & ' /* drag coefficient for momentum over land */')
4da4b49499 Jean*0533 CALL WRITE_0D_RL( CDS, INDEX_NONE,'AIM_SFL: CDS =',
d676f916b2 Jean*0534 & ' /* drag coefficient for momentum over sea */')
4da4b49499 Jean*0535 CALL WRITE_0D_RL( CHL, INDEX_NONE,'AIM_SFL: CHL =',
d676f916b2 Jean*0536 & ' /* heat exchange coefficient over land */')
4da4b49499 Jean*0537 CALL WRITE_0D_RL( CHS, INDEX_NONE,'AIM_SFL: CHS =',
d676f916b2 Jean*0538 & ' /* heat exchange coefficient over sea */')
4da4b49499 Jean*0539 CALL WRITE_0D_RL( VGUST, INDEX_NONE,'AIM_SFL: VGUST =',
d676f916b2 Jean*0540 & ' /* wind speed [m/s] for sub-grid-scale gusts */')
4da4b49499 Jean*0541 CALL WRITE_0D_RL( CTDAY, INDEX_NONE,'AIM_SFL: CTDAY =',
d676f916b2 Jean*0542 & ' /* daily-cycle correction (dTskin/dSSRad) */')
4da4b49499 Jean*0543 CALL WRITE_0D_RL( DTHETA,INDEX_NONE,'AIM_SFL: DTHETA =',
d676f916b2 Jean*0544 & ' /* Pot.Temp. gradient for stability correction */')
4da4b49499 Jean*0545 CALL WRITE_0D_RL( dTstab,INDEX_NONE,'AIM_SFL: dTstab =',
e749d70ece Jean*0546 & ' /* Pot.Temp. increment for stab.funct. derivative */')
4da4b49499 Jean*0547 CALL WRITE_0D_RL( FSTAB, INDEX_NONE,'AIM_SFL: FSTAB =',
d676f916b2 Jean*0548 & ' /* Amplitude of stability correction (fract.) */')
4da4b49499 Jean*0549 CALL WRITE_0D_RL( HDRAG, INDEX_NONE,'AIM_SFL: HDRAG =',
d676f916b2 Jean*0550 & ' /* Height scale for orographic correction */')
4da4b49499 Jean*0551 CALL WRITE_0D_RL( FHDRAG,INDEX_NONE,'AIM_SFL: FHDRAG =',
d676f916b2 Jean*0552 & ' /* Amplitude of orographic correction (fract.)*/')
0553
0554
4da4b49499 Jean*0555 CALL WRITE_0D_RL( PSMIN, INDEX_NONE,'AIM_CNV: PSMIN =',
d676f916b2 Jean*0556 & ' /* min norm.sfc.P. for occurrence of convect. */')
4da4b49499 Jean*0557 CALL WRITE_0D_RL( TRCNV, INDEX_NONE,'AIM_CNV: TRCNV =',
d676f916b2 Jean*0558 & ' /* time of relaxation [h] towards ref state */')
4da4b49499 Jean*0559 CALL WRITE_0D_RL( QBL, INDEX_NONE,'AIM_CNV: QBL =',
d676f916b2 Jean*0560 & ' /* specific hum. threshold in the Bound.layer */')
4da4b49499 Jean*0561 CALL WRITE_0D_RL( RHBL, INDEX_NONE,'AIM_CNV: RHBL =',
d676f916b2 Jean*0562 & ' /* relative hum. threshold in the Bound.layer */')
4da4b49499 Jean*0563 CALL WRITE_0D_RL( RHIL, INDEX_NONE,'AIM_CNV: RHIL =',
d676f916b2 Jean*0564 & ' /* rel.hum. threshold (intern) for 2nd mass.Flx*/')
4da4b49499 Jean*0565 CALL WRITE_0D_RL( ENTMAX,INDEX_NONE,'AIM_CNV: ENTMAX =',
d676f916b2 Jean*0566 & ' /* time of relaxation [h] towards neutral eq. */')
4da4b49499 Jean*0567 CALL WRITE_0D_RL( SMF, INDEX_NONE,'AIM_CNV: SMF =',
d676f916b2 Jean*0568 & ' /* ratio 2ndary/primary mass.Flx at cloud-base*/')
0569
0570
4da4b49499 Jean*0571 CALL WRITE_0D_RL( TRLSC, INDEX_NONE,'AIM_LSC: TRLSC =',
d676f916b2 Jean*0572 & ' /* relaxation time [h] for supersat. spec.hum. */')
4da4b49499 Jean*0573 CALL WRITE_0D_RL( RHLSC, INDEX_NONE,'AIM_LSC: RHLSC =',
d676f916b2 Jean*0574 & ' /* Max rel.humidity threshold (at sigma=1) */')
4da4b49499 Jean*0575 CALL WRITE_0D_RL( DRHLSC,INDEX_NONE,'AIM_LSC: DRHLSC =',
d676f916b2 Jean*0576 & ' /* Vertical range of rel.humidity threshold */')
4da4b49499 Jean*0577 CALL WRITE_0D_RL( QSMAX, INDEX_NONE,'AIM_LSC: QSMAX =',
d676f916b2 Jean*0578 & ' /* Define the maximum latent heat release */')
0579
0580
4da4b49499 Jean*0581 CALL WRITE_0D_RL( RHCL1, INDEX_NONE,'AIM_RAD: RHCL1 =',
d676f916b2 Jean*0582 & ' /* rel.hum. corresponding to cloud cover = 0 */')
4da4b49499 Jean*0583 CALL WRITE_0D_RL( RHCL2, INDEX_NONE,'AIM_RAD: RHCL2 =',
d676f916b2 Jean*0584 & ' /* rel.hum. corresponding to cloud cover = 1 */')
4da4b49499 Jean*0585 CALL WRITE_0D_RL( QACL1, INDEX_NONE,'AIM_RAD: QACL1 =',
d676f916b2 Jean*0586 & ' /* spec.hum. threshold for cloud, upper trop. */')
4da4b49499 Jean*0587 CALL WRITE_0D_RL( QACL2, INDEX_NONE,'AIM_RAD: QACL2 =',
d676f916b2 Jean*0588 & ' /* spec.hum. threshold for cloud, upper trop. */')
4da4b49499 Jean*0589 CALL WRITE_0D_RL( ALBCL, INDEX_NONE,'AIM_RAD: ALBCL =',
d676f916b2 Jean*0590 & ' /* cloud albedo (for cloud cover = 1) */')
4da4b49499 Jean*0591 CALL WRITE_0D_RL( EPSSW, INDEX_NONE,'AIM_RAD: EPSSW =',
d24aab1d8d Jean*0592 & ' /* fract. of inc.solar rad. absorbed by ozone */')
4da4b49499 Jean*0593 CALL WRITE_0D_RL( EPSLW, INDEX_NONE,'AIM_RAD: EPSLW =',
d24aab1d8d Jean*0594 & ' /* fract. of sfc LW emitted directly to space */')
4da4b49499 Jean*0595 CALL WRITE_0D_RL( EMISFC,INDEX_NONE,'AIM_RAD: EMISFC =',
d24aab1d8d Jean*0596 & ' /* longwave surface emissivity */')
d676f916b2 Jean*0597
0598 WRITE(msgBuf,'(A)')
0599 & ' AIM_RAD : ShortWave absorptivities (for dp = 10^5 Pa) :'
2a4f7f3ad0 Jean*0600 CALL PRINT_MESSAGE( msgBuf, iUnit, SQUEEZE_RIGHT, myThid )
4da4b49499 Jean*0601 CALL WRITE_0D_RL( ABSDRY,INDEX_NONE,'AIM_RAD: ABSDRY =',
d676f916b2 Jean*0602 & ' /* abs. of dry air (visible band) */')
4da4b49499 Jean*0603 CALL WRITE_0D_RL( ABSAER,INDEX_NONE,'AIM_RAD: ABSAER =',
d676f916b2 Jean*0604 & ' /* abs. of aerosols (visible band) */')
4da4b49499 Jean*0605 CALL WRITE_0D_RL( ABSWV1,INDEX_NONE,'AIM_RAD: ABSWV1 =',
d676f916b2 Jean*0606 & ' /* abs. of water vap. (vis. band)(/dq, 1g/kg) */')
4da4b49499 Jean*0607 CALL WRITE_0D_RL( ABSWV2,INDEX_NONE,'AIM_RAD: ABSWV2 =',
d676f916b2 Jean*0608 & ' /* abs. of water vap.(near IR bd)(/dq, 1g/kg) */')
4da4b49499 Jean*0609 CALL WRITE_0D_RL( ABSCL1,INDEX_NONE,'AIM_RAD: ABSCL1 =',
d676f916b2 Jean*0610 & ' /* abs. of clouds (vis.band)(constant term) */')
4da4b49499 Jean*0611 CALL WRITE_0D_RL( ABSCL2,INDEX_NONE,'AIM_RAD: ABSCL2 =',
d676f916b2 Jean*0612 & ' /* abs. of clouds (vis.band) (/dw, 1g/kg) */')
0613
0614 WRITE(msgBuf,'(A)')
0615 & ' AIM_RAD : LongWave absorptivities (per dp = 10^5 Pa) :'
4da4b49499 Jean*0616 CALL WRITE_0D_RL( ABLWIN,INDEX_NONE,'AIM_RAD: ABLWIN =',
d676f916b2 Jean*0617 & ' /* abs. of air in "window" band */')
4da4b49499 Jean*0618 CALL WRITE_0D_RL( ABLCO2,INDEX_NONE,'AIM_RAD: ABLCO2 =',
d676f916b2 Jean*0619 & ' /* abs. of air in CO2 band */')
4da4b49499 Jean*0620 CALL WRITE_0D_RL( ABLWV1,INDEX_NONE,'AIM_RAD: ABLWV1 =',
d676f916b2 Jean*0621 & ' /* abs. of Water vap. H2O bd-1(weak)(/dq,1g/kg)*/')
4da4b49499 Jean*0622 CALL WRITE_0D_RL( ABLWV2,INDEX_NONE,'AIM_RAD: ABLWV2 =',
d676f916b2 Jean*0623 & ' /* abs. of W. vap., H2O bd-2(strong)(/dq,1g/kg)*/')
4da4b49499 Jean*0624 CALL WRITE_0D_RL( ABLCL1,INDEX_NONE,'AIM_RAD: ABLCL1 =',
d676f916b2 Jean*0625 & ' /* abs. of clouds in window band (const term) */')
4da4b49499 Jean*0626 CALL WRITE_0D_RL( ABLCL2,INDEX_NONE,'AIM_RAD: ABLCL2 =',
d676f916b2 Jean*0627 & ' /* abs. of clouds in window band (/dw, 1g/kg) */')
0628
0629
4da4b49499 Jean*0630 CALL WRITE_0D_RL( TRSHC, INDEX_NONE,'AIM_VDI: TRSHC =',
d676f916b2 Jean*0631 & ' /* relaxation time [h] for shallow convection */')
4da4b49499 Jean*0632 CALL WRITE_0D_RL( TRVDI, INDEX_NONE,'AIM_VDI: TRVDI =',
d676f916b2 Jean*0633 & ' /* relaxation time [h] for moisture diffusion */')
4da4b49499 Jean*0634 CALL WRITE_0D_RL( TRVDS, INDEX_NONE,'AIM_VDI: TRVDS =',
d676f916b2 Jean*0635 & ' /* relaxation time [h] for super-adiab. cond. */')
4da4b49499 Jean*0636 CALL WRITE_0D_RL( RHGRAD,INDEX_NONE,'AIM_VDI: RHGRAD =',
d676f916b2 Jean*0637 & ' /* max gradient of rel.humidity (d_RH/d_sigma)*/')
4da4b49499 Jean*0638 CALL WRITE_0D_RL( SEGRAD,INDEX_NONE,'AIM_VDI: SEGRAD =',
d676f916b2 Jean*0639 & ' /* max grad. of dry static Energy(d_DSE/d_phi)*/')
0640
2a4f7f3ad0 Jean*0641 IF ( errCount.GE.1 ) THEN
0642 WRITE(msgBuf,'(A,I3,A)')
0643 & 'AIM_READPARMS: detected', errCount,' fatal error(s)'
0644 CALL PRINT_ERROR( msgBuf, myThid )
0645 CALL ALL_PROC_DIE( 0 )
0646 STOP 'ABNORMAL END: S/R AIM_READPARMS'
0647 ENDIF
4c105e462e Davi*0648
d676f916b2 Jean*0649
0650
2a4f7f3ad0 Jean*0651
0652 aim_pCO2 = aim_fixed_pCO2
0653 #ifdef ALLOW_AIM_CO2
0654 atm_pCO2 = atmpCO2init
0655 #endif /* ALLOW_AIM_CO2 */
0656
d676f916b2 Jean*0657 _END_MASTER(myThid)
d24aab1d8d Jean*0658
d676f916b2 Jean*0659
0660 _BARRIER
0661
0662 #endif /* ALLOW_AIM */
0663
0664 RETURN
0665 END