Newer
Older
!* 2.2 Fill the global configuration module
!
! Check coherence between the microphysical scheme and water species and
!initialize the logicals LUSERn
!
SELECT CASE ( CCLOUD )
CASE ( 'NONE' )
IF (.NOT. ( (.NOT. LUSERC) .AND. (.NOT. LUSERR) .AND. (.NOT. LUSERI) .AND. &
(.NOT. LUSERS) .AND. (.NOT. LUSERG) .AND. (.NOT. LUSERH) &
) .AND. CPROGRAM=='MESONH' ) THEN
!
LUSERC=.FALSE.
LUSERR=.FALSE.; LUSERI=.FALSE.
LUSERS=.FALSE.; LUSERG=.FALSE.
LUSERH=.FALSE.
!
END IF
!

RODIER Quentin
committed
IF (CSUBG_AUCV_RC == 'SIGM') THEN
!
WRITE(UNIT=ILUOUT,FMT=9002) KMI
WRITE(UNIT=ILUOUT,FMT=*) 'YOU WANT TO USE THE SUBGRID AUTOCONVERSION SCHEME '
WRITE(UNIT=ILUOUT,FMT=*) ' WITHOUT MICROPHYSICS'
WRITE(UNIT=ILUOUT,FMT=*) ' CSUBG_AUCV IS PUT TO "NONE"'
!

RODIER Quentin
committed
CSUBG_AUCV_RC = 'NONE'
!
END IF
!
CASE ( 'REVE' )
IF (.NOT. ( LUSERV .AND. LUSERC .AND. (.NOT. LUSERR) .AND. (.NOT. LUSERI) &
.AND. (.NOT. LUSERS) .AND. (.NOT. LUSERG) .AND. (.NOT. LUSERH) &
) ) THEN
!
WRITE(UNIT=ILUOUT,FMT=9002) KMI
WRITE(UNIT=ILUOUT,FMT='("YOU WANT TO USE A REVERSIBLE MICROPHYSICAL " ,&
&" SCHEME. YOU WILL ONLY HAVE VAPOR AND CLOUD WATER ",/, &
&" LUSERV AND LUSERC ARE TO TRUE AND THE OTHERS TO FALSE ")')
!
LUSERV=.TRUE. ; LUSERC=.TRUE.
LUSERR=.FALSE.; LUSERI=.FALSE.
LUSERS=.FALSE.; LUSERG=.FALSE.
LUSERH=.FALSE.
END IF
!

RODIER Quentin
committed
IF (CSUBG_AUCV_RC == 'SIGM') THEN
!
WRITE(UNIT=ILUOUT,FMT=9003) KMI
WRITE(UNIT=ILUOUT,FMT=*) 'YOU WANT TO USE BOTH A REVERSIBLE MICROPHYSICAL SCHEME '
WRITE(UNIT=ILUOUT,FMT=*) ' AND THE SUBGRID AUTOCONVERSION SCHEME '
WRITE(UNIT=ILUOUT,FMT=*) 'BUT YOU DO NOT HAVE RAIN in the "REVE" SCHEME'

RODIER Quentin
committed
WRITE(UNIT=ILUOUT,FMT=*) ' CSUBG_AUCV_RC IS PUT TO "NONE"'

RODIER Quentin
committed
CSUBG_AUCV_RC = 'NONE'
!
END IF
!
CASE ( 'KESS' )
IF (.NOT. ( LUSERV .AND. LUSERC .AND. LUSERR .AND. (.NOT. LUSERI) .AND. &
(.NOT. LUSERS) .AND. (.NOT. LUSERG) .AND. (.NOT. LUSERH) &
) ) THEN
!
WRITE(UNIT=ILUOUT,FMT=9002) KMI
WRITE(UNIT=ILUOUT,FMT='("YOU WANT TO USE A KESSLER MICROPHYSICAL " , &
&" SCHEME. YOU WILL ONLY HAVE VAPOR, CLOUD WATER AND RAIN ",/, &
&" LUSERV, LUSERC AND LUSERR ARE SET TO TRUE AND THE OTHERS TO FALSE ")')
!
LUSERV=.TRUE. ; LUSERC=.TRUE. ; LUSERR=.TRUE.
LUSERI=.FALSE.; LUSERS=.FALSE.
LUSERG=.FALSE.; LUSERH=.FALSE.
END IF
!

RODIER Quentin
committed
IF (CSUBG_AUCV_RC == 'SIGM') THEN
!
WRITE(UNIT=ILUOUT,FMT=9003) KMI
WRITE(UNIT=ILUOUT,FMT=*) 'YOU WANT TO USE BOTH A KESSLER MICROPHYSICAL SCHEME '
WRITE(UNIT=ILUOUT,FMT=*) ' AND THE SUBGRID AUTOCONVERSION SCHEME USING'
WRITE(UNIT=ILUOUT,FMT=*) 'SIGMA_RC.'
WRITE(UNIT=ILUOUT,FMT=*) 'THIS IS NOT YET AVAILABLE.'

RODIER Quentin
committed
WRITE(UNIT=ILUOUT,FMT=*) 'SET CSUBG_AUCV_RC TO "CLFR" or "NONE" OR CCLOUD TO "ICE3"'

WAUTELET Philippe
committed
CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','')
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
END IF
!
CASE ( 'ICE3' )
IF (.NOT. ( LUSERV .AND. LUSERC .AND. LUSERR .AND. LUSERI .AND. LUSECI &
.AND. LUSERS .AND. LUSERG .AND. (.NOT. LUSERH)) &
.AND. CPROGRAM=='MESONH' ) THEN
!
WRITE(UNIT=ILUOUT,FMT=9002) KMI
WRITE(UNIT=ILUOUT,FMT=*) 'YOU WANT TO USE THE ice3 SIMPLE MIXED PHASE'
WRITE(UNIT=ILUOUT,FMT=*) 'MICROPHYSICAL SCHEME. YOU WILL ONLY HAVE VAPOR, CLOUD WATER,'
WRITE(UNIT=ILUOUT,FMT=*) 'RAIN WATER, CLOUD ICE (MIXING RATIO AND CONCENTRATION)'
WRITE(UNIT=ILUOUT,FMT=*) 'SNOW-AGGREGATES AND GRAUPELN.'
WRITE(UNIT=ILUOUT,FMT=*) 'LUSERV,LUSERC,LUSERR,LUSERI,LUSECI,LUSERS,LUSERG ARE SET TO TRUE'
WRITE(UNIT=ILUOUT,FMT=*) 'AND LUSERH TO FALSE'
!
LUSERV=.TRUE. ; LUSERC=.TRUE. ; LUSERR=.TRUE.
LUSERI=.TRUE. ; LUSECI=.TRUE.
LUSERS=.TRUE. ; LUSERG=.TRUE.
LUSERH=.FALSE.
END IF
!

RODIER Quentin
committed
IF (CSUBG_AUCV_RC == 'SIGM' .AND. .NOT. LSUBG_COND) THEN
WRITE(UNIT=ILUOUT,FMT=9002) KMI
WRITE(UNIT=ILUOUT,FMT=*) 'YOU WANT TO USE SUBGRID AUTOCONVERSION SCHEME'
WRITE(UNIT=ILUOUT,FMT=*) ' WITHOUT THE SUBGRID CONDENSATION SCHEME.'

RODIER Quentin
committed
WRITE(UNIT=ILUOUT,FMT=*) 'THIS IS NOT ALLOWED: CSUBG_AUCV_RC is SET to NONE'
CSUBG_AUCV_RC='NONE'

RODIER Quentin
committed
IF (CSUBG_AUCV_RC == 'CLFR' .AND. CSCONV /= 'EDKF') THEN
WRITE(UNIT=ILUOUT,FMT=9002) KMI
WRITE(UNIT=ILUOUT,FMT=*) 'YOU WANT TO USE SUBGRID AUTOCONVERSION SCHEME'
WRITE(UNIT=ILUOUT,FMT=*) 'WITH THE CONVECTIVE CLOUD FRACTION WITHOUT EDKF'

RODIER Quentin
committed
WRITE(UNIT=ILUOUT,FMT=*) 'THIS IS NOT ALLOWED: CSUBG_AUCV_RC is SET to NONE'
CSUBG_AUCV_RC='NONE'
END IF
!
CASE ( 'ICE4' )
IF (.NOT. ( LUSERV .AND. LUSERC .AND. LUSERR .AND. LUSERI .AND. LUSECI &
.AND. LUSERS .AND. LUSERG .AND. LUSERH) &
.AND. CPROGRAM=='MESONH' ) THEN
!
WRITE(UNIT=ILUOUT,FMT=9002) KMI
WRITE(UNIT=ILUOUT,FMT=*) 'YOU WANT TO USE THE ice4 SIMPLE MIXED PHASE'
WRITE(UNIT=ILUOUT,FMT=*) 'MICROPHYSICAL SCHEME. YOU WILL ONLY HAVE VAPOR, CLOUD WATER,'
WRITE(UNIT=ILUOUT,FMT=*) 'RAIN WATER, CLOUD ICE (MIXING RATIO AND CONCENTRATION)'
WRITE(UNIT=ILUOUT,FMT=*) 'SNOW-AGGREGATES, GRAUPELN AND HAILSTONES.'
WRITE(UNIT=ILUOUT,FMT=*) 'LUSERV,LUSERC,LUSERR,LUSERI,LUSECI,LUSERS,LUSERG'
WRITE(UNIT=ILUOUT,FMT=*) 'AND LUSERH ARE SET TO TRUE'
!
LUSERV=.TRUE. ; LUSERC=.TRUE. ; LUSERR=.TRUE.
LUSERI=.TRUE. ; LUSECI=.TRUE.
LUSERS=.TRUE. ; LUSERG=.TRUE. ; LUSERH=.TRUE.
END IF
!

RODIER Quentin
committed
IF (CSUBG_AUCV_RC /= 'NONE' .AND. .NOT. LSUBG_COND) THEN
WRITE(UNIT=ILUOUT,FMT=9002) KMI
WRITE(UNIT=ILUOUT,FMT=*) 'YOU WANT TO USE SUBGRID AUTOCONVERSION SCHEME'
WRITE(UNIT=ILUOUT,FMT=*) ' WITHOUT THE SUBGRID CONDENSATION SCHEME.'

RODIER Quentin
committed
WRITE(UNIT=ILUOUT,FMT=*) 'THIS IS NOT ALLOWED: CSUBG_AUCV_RC is SET to NONE'
CSUBG_AUCV_RC='NONE'
END IF
!
CASE ( 'C2R2','C3R5', 'KHKO' )
WRITE(UNIT=ILUOUT,FMT='("YOU WANT TO USE A 2-MOMENT MICROPHYSICAL ", &
&" SCHEME BUT YOU DIDNT FILL CORRECTLY NAM_PARAM_C2R2", &
&" YOU HAVE TO FILL HPARAM_CCN and HINI_CCN ")')
!callabortstop

WAUTELET Philippe
committed
CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','')
END IF
IF (HCLOUD == 'NONE') THEN
CGETCLOUD = 'SKIP'
ELSE IF (HCLOUD == 'REVE' ) THEN
CGETCLOUD = 'INI1'
ELSE IF (HCLOUD == 'KESS' ) THEN
CGETCLOUD = 'INI2'
ELSE IF (HCLOUD == 'ICE3' ) THEN
IF (CCLOUD == 'C3R5') THEN
CGETCLOUD = 'INI2'
ELSE
WRITE(UNIT=ILUOUT,FMT=9003) KMI
WRITE(UNIT=ILUOUT,FMT='("YOU WANT TO USE THE WARM MICROPHYSICAL ", &
&" SCHEME BUT YOU WERE USING THE ICE3 SCHEME PREVIOUSLY.",/, &
&" AS THIS IS A LITTLE BIT STUPID IT IS NOT AUTHORIZED !!!")')
!callabortstop

WAUTELET Philippe
committed
CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','')
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
END IF
ELSE
CGETCLOUD = 'READ' ! This is automatically done
END IF
!
IF ((CCLOUD == 'C2R2' ).OR. (CCLOUD == 'KHKO' )) THEN
IF (.NOT. ( LUSERV .AND. LUSERC .AND. LUSERR .AND. (.NOT. LUSERI) .AND. &
(.NOT. LUSERS) .AND. (.NOT. LUSERG) .AND. (.NOT. LUSERH) &
) ) THEN
WRITE(UNIT=ILUOUT,FMT=9002) KMI
WRITE(UNIT=ILUOUT,FMT='("YOU WANT TO USE THE C2R2 MICROPHYSICAL ", &
&" SCHEME. YOU WILL ONLY HAVE VAPOR, CLOUD WATER AND RAIN ",/, &
&"LUSERV, LUSERC AND LUSERR ARE SET TO TRUE AND THE OTHERS TO FALSE ")')
!
LUSERV=.TRUE. ; LUSERC=.TRUE. ; LUSERR=.TRUE.
LUSERI=.FALSE.; LUSERS=.FALSE.
LUSERG=.FALSE.; LUSERH=.FALSE.
END IF
ELSE IF (CCLOUD == 'C3R5') THEN
IF (.NOT. ( LUSERV .AND. LUSERC .AND. LUSERR .AND. LUSERI .AND. &
LUSERS .AND. LUSERG .AND. (.NOT. LUSERH) &
) ) THEN
WRITE(UNIT=ILUOUT,FMT=9002) KMI
WRITE(UNIT=ILUOUT,FMT='("YOU WANT TO USE THE C3R5 MICROPHYS. SCHEME.",&
&" YOU WILL HAVE VAPOR, CLOUD WATER/ICE, RAIN, SNOW AND GRAUPEL ",/, &
&"LUSERV, LUSERC, LUSERR, LUSERI, LUSERS, LUSERG ARE SET TO TRUE")' )
!
LUSERV=.TRUE. ; LUSERC=.TRUE. ; LUSERR=.TRUE.
LUSERI=.TRUE. ; LUSECI=.TRUE.
LUSERS=.TRUE. ; LUSERG=.TRUE.
LUSERH=.FALSE.
END IF
ELSE IF (CCLOUD == 'LIMA') THEN
IF (.NOT. ( LUSERV .AND. LUSERC .AND. LUSERR .AND. LUSERI .AND. &
LUSERS .AND. LUSERG .AND. (.NOT. LUSERH) &
) ) THEN
WRITE(UNIT=ILUOUT,FMT=9002) KMI
WRITE(UNIT=ILUOUT,FMT='("YOU WANT TO USE THE LIMA MICROPHYS. SCHEME.",&
&" YOU WILL HAVE VAPOR, CLOUD WATER/ICE, RAIN, SNOW AND GRAUPEL ",/, &
&"LUSERV, LUSERC, LUSERR, LUSERI, LUSERS, LUSERG ARE SET TO TRUE")' )
!
LUSERV=.TRUE. ; LUSERC=.TRUE. ; LUSERR=.TRUE.
LUSERS=.TRUE. ; LUSERG=.TRUE.
LUSERH=.FALSE.
END IF
END IF
!
IF (LSUBG_COND) THEN
WRITE(UNIT=ILUOUT,FMT=9003) KMI
WRITE(UNIT=ILUOUT,FMT=*) 'YOU WANT TO USE BOTH THE SIMPLE MIXED PHASE'
WRITE(UNIT=ILUOUT,FMT=*) 'MICROPHYS. SCHEME AND THE SUBGRID COND. SCHEME.'
WRITE(UNIT=ILUOUT,FMT=*) 'THIS IS NOT YET AVAILABLE.'
WRITE(UNIT=ILUOUT,FMT=*) 'SET LSUBG_COND TO FALSE OR CCLOUD TO "REVE", "KESS"'
!callabortstop

WAUTELET Philippe
committed
CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','')
END IF
!
IF ( CEFRADL /= 'C2R2') THEN
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT=*) ' YOU DID NOT CHOOSE CEFRADL=C2R2 FOR RADIATION'
WRITE(UNIT=ILUOUT,FMT=*) ' IT IS ADVISED TO USE CEFRADL=C2R2 '
WRITE(UNIT=ILUOUT,FMT=*) ' WITH A 2-MOMENT MICROPHYSICAL SCHEME'
END IF
!
IF ( CCLOUD == 'C3R5' .AND. CEFRADI /= 'C3R5') THEN
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT=*) ' YOU DID NOT CHOOSE CEFRADI=C3R5 FOR RADIATION'
WRITE(UNIT=ILUOUT,FMT=*) ' IT IS ADVISED TO USE CEFRADI=C3R5 '
WRITE(UNIT=ILUOUT,FMT=*) ' WITH A 2-MOMENT MICROPHYSICAL SCHEME'
END IF
!
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
IF ( WALPHAC /= 3.0 .OR. WNUC /= 2.0) THEN
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT=*) 'IT IS ADVISED TO USE XALPHAC=3. and XNUC=2.'
WRITE(UNIT=ILUOUT,FMT=*) 'FOR STRATOCUMULUS WITH KHKO SCHEME. '
END IF
!
IF ( CEFRADL /= 'C2R2') THEN
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT=*) ' YOU DID NOT CHOOSE CEFRADL=C2R2 FOR RADIATION'
WRITE(UNIT=ILUOUT,FMT=*) ' IT IS ADVISED TO USE CEFRADL=C2R2 '
WRITE(UNIT=ILUOUT,FMT=*) ' WITH A 2-MOMENT MICROPHYSICAL SCHEME'
END IF
!
CASE ( 'LIMA')
IF (HCLOUD == 'NONE') THEN
CGETCLOUD = 'SKIP'
ELSE IF (HCLOUD == 'REVE' ) THEN
CGETCLOUD = 'INI1'
ELSE IF (HCLOUD == 'KESS' ) THEN
CGETCLOUD = 'INI2'
ELSE IF (HCLOUD == 'ICE3' ) THEN
CGETCLOUD = 'INI2'
ELSE
CGETCLOUD = 'READ' ! This is automatically done
END IF
!
IF (NMOM_C.GE.1) THEN
LUSERV=.TRUE. ; LUSERC=.TRUE. ; LUSERR=.TRUE.
LUSERI=.FALSE.; LUSERS=.FALSE. ; LUSERG=.FALSE.; LUSERH=.FALSE.
END IF
!
IF (NMOM_I.GE.1) THEN
LUSERI=.TRUE. ; LUSERS=.TRUE. ; LUSERG=.TRUE.
LUSERH= NMOM_H.GE.1
!
IF (LSPRO) LADJ=.FALSE.
IF (.NOT.LPTSPLIT) THEN
IF (NMOM_C==1) NMOM_C=2
IF (NMOM_R==1) NMOM_R=2
IF (NMOM_I==1) NMOM_I=2
IF (NMOM_S==2 .OR. NMOM_G==2 .OR. NMOM_H==2) THEN
IF (NMOM_H.GE.1) NMOM_H=2

RODIER Quentin
committed
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT=*) 'YOU MUST USE LPTSPLIT=T with CCLOUD=LIMA'
WRITE(UNIT=ILUOUT,FMT=*) 'AND LSUBG_COND '
CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','use LPTSPLIT=T with LIMA and LSUBG_COND=T')
END IF
!
IF (LSUBG_COND .AND. (.NOT. LADJ)) THEN
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT=*) 'YOU MUST USE LADJ=T with CCLOUD=LIMA'
WRITE(UNIT=ILUOUT,FMT=*) 'AND LSUBG_COND '
CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','use LADJ=T with LIMA and LSUBG_COND=T')
END IF

RODIER Quentin
committed
!
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT=*) 'IT IS ADVISED TO USE XALPHAC=3. and XNUC=2.'
WRITE(UNIT=ILUOUT,FMT=*) ' YOU DID NOT CHOOSE CEFRADL=LIMA FOR RADIATION'
WRITE(UNIT=ILUOUT,FMT=*) ' IT IS ADVISED TO USE CEFRADL=LIMA '
WRITE(UNIT=ILUOUT,FMT=*) ' WITH A 2-MOMENT MICROPHYSICAL SCHEME "LIMA"'
END IF
!
END SELECT
!
LUSERV_G(KMI) = LUSERV
LUSERC_G(KMI) = LUSERC
LUSERR_G(KMI) = LUSERR
LUSERI_G(KMI) = LUSERI
LUSERS_G(KMI) = LUSERS
LUSERG_G(KMI) = LUSERG
LUSERH_G(KMI) = LUSERH
LUSETKE(KMI) = (CTURB /= 'NONE')
!
!-------------------------------------------------------------------------------
!
!* 2.3 Chemical and NSV_* variables initializations
!

RODIER Quentin
committed
CALL UPDATE_NAM_IBM_PARAMN
CALL UPDATE_NAM_RECYCL_PARAMN
CALL UPDATE_NAM_PARAMN
CALL UPDATE_NAM_DYNN
!
IF (LORILAM .AND. .NOT. LUSECHEM) THEN
WRITE(UNIT=ILUOUT,FMT=9002) KMI
WRITE(ILUOUT,FMT=*) 'YOU CANNOT USE ORILAM AEROSOL SCHEME WITHOUT '
WRITE(ILUOUT,FMT=*) 'CHEMICAL GASEOUS CHEMISTRY '
WRITE(ILUOUT,FMT=*) 'THEREFORE LUSECHEM IS SET TO TRUE '
LUSECHEM=.TRUE.
END IF
!
IF (LUSECHAQ.AND.(.NOT.LUSECHEM)) THEN
WRITE(UNIT=ILUOUT,FMT=9003) KMI
WRITE(UNIT=ILUOUT,FMT=*) 'YOU WANT TO USE AQUEOUS PHASE CHEMISTRY'
WRITE(UNIT=ILUOUT,FMT=*) 'BUT THE CHEMISTRY IS NOT ACTIVATED'
WRITE(UNIT=ILUOUT,FMT=*) 'SET LUSECHEM TO TRUE IF YOU WANT REALLY USE CHEMISTRY'
WRITE(UNIT=ILUOUT,FMT=*) 'OR SET LUSECHAQ TO FALSE IF YOU DO NOT WANT USE IT'
!callabortstop

WAUTELET Philippe
committed
CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','')
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
END IF
IF (LUSECHAQ.AND.(.NOT.LUSERC).AND.CPROGRAM=='MESONH') THEN
WRITE(UNIT=ILUOUT,FMT=9003) KMI
WRITE(UNIT=ILUOUT,FMT=*) 'YOU WANT TO USE AQUEOUS PHASE CHEMISTRY'
WRITE(UNIT=ILUOUT,FMT=*) 'BUT CLOUD MICROPHYSICS IS NOT ACTIVATED'
WRITE(UNIT=ILUOUT,FMT=*) 'LUSECHAQ IS SET TO FALSE'
LUSECHAQ = .FALSE.
END IF
IF (LUSECHAQ.AND.CCLOUD(1:3) == 'ICE'.AND. .NOT. LUSECHIC) THEN
WRITE(UNIT=ILUOUT,FMT=9002) KMI
WRITE(UNIT=ILUOUT,FMT=*) 'YOU WANT TO USE AQUEOUS PHASE CHEMISTRY'
WRITE(UNIT=ILUOUT,FMT=*) 'WITH MIXED PHASE CLOUD MICROPHYSICS'
WRITE(UNIT=ILUOUT,FMT=*) 'SET LUSECHIC TO TRUE IF YOU WANT TO ACTIVATE'
WRITE(UNIT=ILUOUT,FMT=*) 'ICE PHASE CHEMICAL SPECIES'
IF (LCH_RET_ICE) THEN
WRITE(UNIT=ILUOUT,FMT=*) 'LCH_RET_ICE TRUE MEANS ALL SOLUBLE'
WRITE(UNIT=ILUOUT,FMT=*) 'GASES ARE RETAINED IN ICE PHASE'
WRITE(UNIT=ILUOUT,FMT=*) 'WHEN SUPERCOOLED WATER FREEZES'
ELSE
WRITE(UNIT=ILUOUT,FMT=*) 'LCH_RET_ICE FALSE MEANS ALL SOLUBLE'
WRITE(UNIT=ILUOUT,FMT=*) 'GASES GO BACK TO THE GAS PHASE WHEN'
WRITE(UNIT=ILUOUT,FMT=*) 'SUPERCOOLED WATER FREEZES'
ENDIF
ENDIF
IF (LUSECHIC.AND. .NOT. CCLOUD(1:3) == 'ICE'.AND.CPROGRAM=='MESONH') THEN
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
WRITE(UNIT=ILUOUT,FMT=9003) KMI
WRITE(UNIT=ILUOUT,FMT=*) 'YOU WANT TO USE ICE PHASE CHEMISTRY'
WRITE(UNIT=ILUOUT,FMT=*) 'BUT MIXED PHASE CLOUD MICROPHYSICS IS NOT ACTIVATED'
WRITE(UNIT=ILUOUT,FMT=*) 'LUSECHIC IS SET TO FALSE'
LUSECHIC= .FALSE.
ENDIF
IF (LCH_PH.AND. (.NOT. LUSECHAQ)) THEN
WRITE(UNIT=ILUOUT,FMT=9003) KMI
WRITE(UNIT=ILUOUT,FMT=*) 'DIAGNOSTIC PH COMPUTATION IS ACTIVATED'
WRITE(UNIT=ILUOUT,FMT=*) 'BUT AQUEOUS PHASE CHEMISTRY IS NOT ACTIVATED'
WRITE(UNIT=ILUOUT,FMT=*) 'SET LUSECHAQ TO TRUE IF YOU WANT TO ACTIVATE IT'
WRITE(UNIT=ILUOUT,FMT=*) 'LCH_PH IS SET TO FALSE'
LCH_PH= .FALSE.
ENDIF
IF (LUSECHIC.AND.(.NOT.LUSECHAQ)) THEN
WRITE(UNIT=ILUOUT,FMT=9003) KMI
WRITE(UNIT=ILUOUT,FMT=*) 'YOU WANT TO USE ICE PHASE CHEMISTRY'
WRITE(UNIT=ILUOUT,FMT=*) 'BUT THE AQUEOUS PHASE CHEMISTRY IS NOT ACTIVATED'
WRITE(UNIT=ILUOUT,FMT=*) 'SET LUSECHAQ TO TRUE IF YOU WANT REALLY USE CLOUD CHEMISTRY'
WRITE(UNIT=ILUOUT,FMT=*) 'OR SET LUSECHIC TO FALSE IF YOU DO NOT WANT USE IT'
!callabortstop

WAUTELET Philippe
committed
CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','')
END IF
IF ((LUSECHIC).AND.(LCH_RET_ICE)) THEN
WRITE(UNIT=ILUOUT,FMT=9003) KMI
WRITE(UNIT=ILUOUT,FMT=*) 'YOU WANT TO USE RETENTION OF SOLUBLE GASES IN ICE'
WRITE(UNIT=ILUOUT,FMT=*) 'BUT THE ICE PHASE CHEMISTRY IS ACTIVATED'
WRITE(UNIT=ILUOUT,FMT=*) 'FLAG LCH_RET_ICE IS ONLY USES WHEN LUSECHIC IS SET'
WRITE(UNIT=ILUOUT,FMT=*) 'TO FALSE IE NO CHEMICAL SPECIES IN ICE'
ENDIF
!
CALL INI_NSV(KMI)
!
! From this point, all NSV* variables contain valid values for model KMI
!
DO JSV = 1,NSV
LUSESV(JSV,KMI) = .TRUE.
END DO
!
IF ( CAOP=='EXPL' .AND. .NOT.LDUST .AND. .NOT.LORILAM &
.AND. .NOT.LSALT .AND. .NOT.(CCLOUD=='LIMA') ) THEN
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT=*) ' YOU WANT TO USE EXPLICIT AEROSOL OPTICAL '
WRITE(UNIT=ILUOUT,FMT=*) 'PROPERTIES BUT YOU DONT HAVE DUST OR '
WRITE(UNIT=ILUOUT,FMT=*) 'AEROSOL OR SALT THEREFORE CAOP=CLIM'
CAOP='CLIM'
END IF
!-------------------------------------------------------------------------------
!
!* 3. CHECK COHERENCE BETWEEN EXSEG VARIABLES AND FMFILE ATTRIBUTES
! -------------------------------------------------------------
!
!
!* 3.1 Turbulence variable
!
IF ((CTURB /= 'NONE').AND.(HTURB == 'NONE')) THEN
CGETTKET ='INIT'
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT=*)'YOU WANT TO USE TURBULENCE KINETIC ENERGY TKE'
WRITE(UNIT=ILUOUT,FMT=*)'WHEREAS IT IS NOT IN INITIAL FMFILE'
WRITE(UNIT=ILUOUT,FMT=*)'TKE WILL BE INITIALIZED TO ZERO'
ELSE
IF (CTURB /= 'NONE') THEN
CGETTKET ='READ'
IF ((CCONF=='START') .AND. CPROGRAM /= 'DIAG') CGETTKET='INIT'
ELSE
CGETTKET ='SKIP'
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
!
!
IF ((CTOM == 'TM06').AND.(HTOM /= 'TM06')) THEN
CGETBL_DEPTH ='INIT'
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT=*)'YOU WANT TO USE BL DEPTH FOR THIRD ORDER MOMENTS'
WRITE(UNIT=ILUOUT,FMT=*)'WHEREAS IT IS NOT IN INITIAL FMFILE'
WRITE(UNIT=ILUOUT,FMT=*)'IT WILL BE INITIALIZED TO ZERO'
ELSE
IF (CTOM == 'TM06') THEN
CGETBL_DEPTH ='READ'
ELSE
CGETBL_DEPTH ='SKIP'
END IF
END IF
!
IF (LRMC01 .AND. .NOT. ORMC01) THEN
CGETSBL_DEPTH ='INIT'
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT=*)'YOU WANT TO USE SBL DEPTH FOR RMC01'
WRITE(UNIT=ILUOUT,FMT=*)'WHEREAS IT IS NOT IN INITIAL FMFILE'
WRITE(UNIT=ILUOUT,FMT=*)'IT WILL BE INITIALIZED TO ZERO'
ELSE
IF (LRMC01) THEN
CGETSBL_DEPTH ='READ'
ELSE
CGETSBL_DEPTH ='SKIP'
END IF
END IF
!
!
!* 3.2 Moist variables
!
IF (LUSERV.AND. (.NOT.OUSERV)) THEN
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT='("YOU WANT TO USE VAPOR VARIABLE Rv WHEREAS IT ", &
& "IS NOT IN INITIAL FMFILE",/, &
& "Rv WILL BE INITIALIZED TO ZERO")')
CGETRVT='INIT'
ELSE
IF (LUSERV) THEN
CGETRVT='READ'
ELSE
CGETRVT='SKIP'
END IF
END IF
!
IF (LUSERC.AND. (.NOT.OUSERC)) THEN
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT='("YOU WANT TO USE CLOUD VARIABLE Rc WHEREAS IT ", &
& " IS NOT IN INITIAL FMFILE",/, &
& "Rc WILL BE INITIALIZED TO ZERO")')
CGETRCT='INIT'
ELSE
IF (LUSERC) THEN
CGETRCT='READ'
ELSE
CGETRCT='SKIP'
END IF
END IF
!
IF (LUSERR.AND. (.NOT.OUSERR)) THEN
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT='("YOU WANT TO USE RAIN VARIABLE Rr WHEREAS IT ", &
& "IS NOT IN INITIAL FMFILE",/, &
& " Rr WILL BE INITIALIZED TO ZERO")')
CGETRRT='INIT'
ELSE
IF (LUSERR) THEN
CGETRRT='READ'
! IF( (CCONF=='START').AND. CPROGRAM /= 'DIAG') CGETRRT='INIT'
ELSE
CGETRRT='SKIP'
END IF
END IF
!
IF (LUSERI.AND. (.NOT.OUSERI)) THEN
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT='("YOU WANT TO USE ICE VARIABLE Ri WHEREAS IT ", &
& "IS NOT IN INITIAL FMFILE",/, &
& " Ri WILL BE INITIALIZED TO ZERO")')
CGETRIT='INIT'
ELSE
IF (LUSERI) THEN
CGETRIT='READ'
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
ELSE
CGETRIT='SKIP'
END IF
END IF
!
IF (LUSECI.AND. (.NOT.OUSECI)) THEN
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT='("YOU WANT TO USE ICE CONC. VARIABLE Ci WHEREAS IT ",&
& "IS NOT IN INITIAL FMFILE",/, &
& " Ci WILL BE INITIALIZED TO ZERO")')
CGETCIT='INIT'
ELSE
IF (LUSECI) THEN
CGETCIT='READ'
ELSE
CGETCIT='SKIP'
END IF
END IF
!
IF (LUSERS.AND. (.NOT.OUSERS)) THEN
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT='("YOU WANT TO USE SNOW VARIABLE Rs WHEREAS IT ",&
& "IS NOT IN INITIAL FMFILE",/, &
& " Rs WILL BE INITIALIZED TO ZERO")')
CGETRST='INIT'
ELSE
IF (LUSERS) THEN
CGETRST='READ'
! IF ( (CCONF=='START').AND. CPROGRAM /= 'DIAG') CGETRST='INIT'
ELSE
CGETRST='SKIP'
END IF
END IF
!
IF (LUSERG.AND. (.NOT.OUSERG)) THEN
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT='("YOU WANT TO USE GRAUPEL VARIABLE Rg WHEREAS ",&
& " IT IS NOTIN INITIAL FMFILE",/, &
& "Rg WILL BE INITIALIZED TO ZERO")')
CGETRGT='INIT'
ELSE
IF (LUSERG) THEN
CGETRGT='READ'
! IF ( (CCONF=='START') .AND. CPROGRAM /= 'DIAG') CGETRGT='INIT'
ELSE
CGETRGT='SKIP'
END IF
END IF
!
IF (LUSERH.AND. (.NOT.OUSERH)) THEN
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT='("YOU WANT TO USE HAIL VARIABLE Rh WHEREAS",&
& "IT IS NOT IN INITIAL FMFILE",/, &
& " Rh WILL BE INITIALIZED TO ZERO")')
CGETRHT='INIT'
ELSE
IF (LUSERH) THEN
CGETRHT='READ'
! IF ( (CCONF=='START') .AND. CPROGRAM /= 'DIAG') CGETRHT='INIT'
ELSE
CGETRHT='SKIP'
END IF
END IF
!
IF (LUSERC.AND. (.NOT.OUSERC)) THEN
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT=*) 'THE CLOUD FRACTION WILL BE INITIALIZED ACCORDING'
WRITE(UNIT=ILUOUT,FMT=*) 'TO CLOUD MIXING RATIO VALUE OR SET TO 0'
CGETCLDFR = 'INIT'
ELSE
IF ( LUSERC ) THEN
CGETCLDFR = 'READ'

Gaelle Tanguy
committed
IF ( (CCONF=='START') .AND. CPROGRAM /= 'DIAG') CGETCLDFR='INIT'
ELSE
CGETCLDFR = 'SKIP'
END IF
END IF

RODIER Quentin
committed
!
IF (LUSERI.AND. (.NOT.OUSERI)) THEN
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT=*) 'THE ICE CLOUD FRACTION WILL BE INITIALIZED ACCORDING'
WRITE(UNIT=ILUOUT,FMT=*) 'TO CLOUD MIXING RATIO VALUE OR SET TO 0'
CGETICEFR = 'INIT'
ELSE
IF ( LUSERI ) THEN
CGETICEFR = 'READ'
IF ( (CCONF=='START') .AND. CPROGRAM /= 'DIAG') CGETICEFR='INIT'
ELSE
CGETICEFR = 'SKIP'
END IF
END IF
!

RODIER Quentin
committed
!
!* 3.3 Moist turbulence
!
IF ( LUSERC .AND. CTURB /= 'NONE' ) THEN
IF ( .NOT. (OUSERC .AND. HTURB /= 'NONE') ) THEN
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT='("YOU WANT TO USE MOIST TURBULENCE WHEREAS IT ",/, &
& " WAS NOT THE CASE FOR THE INITIAL FMFILE GENERATION",/, &
& "SRC AND SIGS ARE INITIALIZED TO 0")')
CGETSRCT ='INIT'
CGETSIGS ='INIT'
ELSE
CGETSRCT ='READ'
IF ( (CCONF=='START') .AND. CPROGRAM /= 'DIAG') CGETSRCT ='INIT'
CGETSIGS ='READ'
END IF
ELSE
CGETSRCT ='SKIP'
CGETSIGS ='SKIP'
END IF
!

RODIER Quentin
committed
IF(LCLOUDMODIFLM .AND. CTURBLEN_CLOUD/='NONE') THEN
IF (CTURB=='NONE' .OR. .NOT.LUSERC) THEN
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT='("YOU WANT TO COMPUTE A MIXING LENGTH FOR CLOUD=", &
& ", WHEREAS YOU DO NOT SPECIFY A TURBULENCE SCHEME OR ", &
& "USE OF RC,",/," CTURBLEN_CLOUD IS SET TO NONE")') &
CTURBLEN_CLOUD
CTURBLEN_CLOUD='NONE'
END IF
IF( XCEI_MIN > XCEI_MAX ) THEN
WRITE(UNIT=ILUOUT,FMT=9003) KMI
WRITE(UNIT=ILUOUT,FMT='("PROBLEM OF CEI LIMITS FOR CLOUD MIXING ",/, &
& "LENGTH COMPUTATION: XCEI_MIN=",E9.3,", XCEI_MAX=",E9.3)')&
XCEI_MIN,XCEI_MAX
!callabortstop

WAUTELET Philippe
committed
CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','')
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
END IF
END IF
!
IF ( LSIGMAS ) THEN
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT='("YOU WANT TO USE SIGMA_S FROM TURBULENCE SCHEME",/, &
& " IN ICE SUBGRID CONDENSATION, SO YOUR SIGMA_S"/, &
& " MIGHT BE SMALL ABOVE PBL DEPENDING ON LENGTH SCALE")')
END IF
!
IF (LSUBG_COND .AND. CTURB=='NONE' ) THEN
WRITE(UNIT=ILUOUT,FMT=9002) KMI
WRITE(UNIT=ILUOUT,FMT=*) 'YOU WANT TO USE SUBGRID CONDENSATION'
WRITE(UNIT=ILUOUT,FMT=*) ' WITHOUT TURBULENCE '
WRITE(UNIT=ILUOUT,FMT=*) 'THIS IS NOT ALLOWED: LSUBG_COND is SET to FALSE'
LSUBG_COND=.FALSE.
END IF
!
IF (L1D .AND. CTURB/='NONE' .AND. CTURBDIM == '3DIM') THEN
WRITE(UNIT=ILUOUT,FMT=9002) KMI
WRITE(UNIT=ILUOUT,FMT=*) 'YOU WANT TO USE 3D TURBULENCE IN 1D CONFIGURATION '
WRITE(UNIT=ILUOUT,FMT=*) 'THIS IS NOT POSSIBLE: CTURBDIM IS SET TO 1DIM'
CTURBDIM = '1DIM'
END IF
!
!* 3.4 Additional scalar variables
!
IF (NSV_USER == KSV_USER) THEN
DO JS = 1,KSV_USER ! to read all the variables in initial file
CGETSVT(JS)='READ' ! and to initialize them

Gaelle Tanguy
committed
! IF(CCONF=='START')CGETSVT(JS)='INIT' ! with these values
END DO
ELSEIF (NSV_USER > KSV_USER) THEN
IF (KSV_USER == 0) THEN
CGETSVT(1:NSV_USER)='INIT'
ELSE
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT='("YOU WANT TO USE MORE ADDITIONAL SCALAR " ,&
&" VARIABLES THAN THERE ARE IN INITIAL FMFILE",/, &
& "THE SUPPLEMENTARY VARIABLES HAVE BEEN INITIALIZED TO ZERO ")')
DO JS = 1,KSV_USER ! to read all the variables in initial file
CGETSVT(JS)='READ' ! and to initialize them

Gaelle Tanguy
committed
! IF(CCONF=='START')CGETSVT(JS)='INIT' ! with these values
END DO
DO JS = KSV_USER+1, NSV_USER ! to initialize to zero supplementary
CGETSVT(JS)='INIT' ! initial file)
END DO
ELSE
WRITE(UNIT=ILUOUT,FMT=9000) KMI
WRITE(UNIT=ILUOUT,FMT='("YOU WANT TO USE LESS ADDITIONAL SCALAR " ,&
&" VARIABLES THAN THERE ARE IN INITIAL FMFILE")')
DO JS = 1,NSV_USER ! to read the first NSV_USER variables in initial file
CGETSVT(JS)='READ' ! and to initialize with these values

Gaelle Tanguy
committed
! IF(CCONF=='START') CGETSVT(JS)='INIT'
END DO
DO JS = NSV_USER + 1, KSV_USER ! to skip the last (KSV_USER-NSV_USER) variables
CGETSVT(JS)='SKIP'
END DO
END IF
!
! C2R2 and KHKO SV case
!
IF (CCLOUD == 'C2R2' .OR. CCLOUD == 'C3R5' .OR. CCLOUD == 'KHKO') THEN
IF (HCLOUD == 'C2R2' .OR. HCLOUD == 'C3R5' .OR. HCLOUD == 'KHKO') THEN
CGETSVT(NSV_C2R2BEG:NSV_C2R2END)='READ'

Gaelle Tanguy
committed
! IF(CCONF=='START') CGETSVT(NSV_C2R2BEG:NSV_C2R2END)='INIT'
ELSE
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT='("THERE IS NO SCALAR VARIABLES FOR C2R2 &
& (or KHKO) SCHEME IN INITIAL FMFILE",/,&
& "THE C2R2 (or KHKO) VARIABLES HAVE BEEN INITIALIZED TO ZERO ")')
CGETSVT(NSV_C2R2BEG:NSV_C2R2END)='INIT'
END IF
END IF
!
! C3R5 SV case
!
IF (CCLOUD == 'C3R5') THEN
IF (HCLOUD == 'C3R5') THEN
CGETSVT(NSV_C1R3BEG:NSV_C1R3END)='READ'

Gaelle Tanguy
committed
! IF(CCONF=='START') CGETSVT(NSV_C1R3BEG:NSV_C1R3END)='INIT'
ELSE
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT='("THERE IS NO SCALAR VARIABLES FOR C3R5 &
&SCHEME IN INITIAL FMFILE",/,&
& "THE C1R3 VARIABLES HAVE BEEN INITIALIZED TO ZERO ")')
CGETSVT(NSV_C1R3BEG:NSV_C1R3END)='INIT'
END IF
END IF
!
! LIMA SV case
!
IF (CCLOUD == 'LIMA') THEN
IF (HCLOUD == 'LIMA') THEN
CGETSVT(NSV_LIMA_BEG:NSV_LIMA_END)='READ'
ELSE
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT='("THERE IS NO SCALAR VARIABLES FOR LIMA &
& SCHEME IN INITIAL FMFILE",/,&
& "THE LIMA VARIABLES HAVE BEEN INITIALIZED TO ZERO ")')
CGETSVT(NSV_LIMA_BEG:NSV_LIMA_END)='INIT'
END IF
END IF
!
! Electrical SV case
!
IF (CELEC /= 'NONE') THEN
IF (HELEC /= 'NONE') THEN
CGETSVT(NSV_ELECBEG:NSV_ELECEND)='READ'

Gaelle Tanguy
committed
! IF(CCONF=='START') CGETSVT(NSV_ELECBEG:NSV_ELECEND)='INIT'
ELSE
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT='("THERE IS NO SCALAR VARIABLES FOR ELECTRICAL &
&SCHEME IN INITIAL FMFILE",/,&
& "THE ELECTRICAL VARIABLES HAVE BEEN INITIALIZED TO ZERO ")')
CGETSVT(NSV_ELECBEG:NSV_ELECEND)='INIT'
END IF
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
!
IF (CCLOUD(1:3) == 'ICE') THEN
IF (.NOT. LRED .AND. CELEC == 'ELE3') THEN
WRITE(UNIT=ILUOUT,FMT='("THIS IS THE OLD VERSION OF THE ELECTRICAL SCHEME",/,&
& "BE AWARE ANOTHER VERSION IS AVAILABLE !")')
ELSE IF (LRED .AND. CELEC == 'ELE4') THEN
WRITE(UNIT=ILUOUT,FMT='("THIS IS THE NEW VERSION OF THE ELECTRICAL SCHEME",/,&
& "BUT WITH THE 1 MOMENT VERSION OF THE MICROPHYSICS SCHEME")')
ELSE
WRITE(UNIT=ILUOUT,FMT='("THIS VERSION OF THE ELECTRICAL SCHEME IS NOT COMPATIBLE",/,&
& "WITH THE ICE3 MICROPHYSICS SCHEME")')
CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') ! error
END IF
IF (LSNOW_T) THEN
WRITE(UNIT=ILUOUT,FMT='("THE ELECTRICAL SCHEME CANNOT BE USED WITH LSNOW_T")')
CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') ! error
END IF
ELSE IF (CCLOUD == 'LIMA' .AND. LPTSPLIT) THEN
IF (CELEC == 'ELE4' .AND. NMOM_C == 2 .AND. NMOM_R == 2 .AND. NMOM_I == 2 .AND. &
NMOM_S == 1 .AND. NMOM_G == 1 .AND. NMOM_H == 0) THEN
WRITE(UNIT=ILUOUT,FMT='("THE ELECTRICAL SCHEME IS USED WITH",/,&
& "THE PARTIAL 2-MOMENT MICROPHYSICS SCHEME LIMA")')
ELSE IF (CELEC == 'ELE4' .AND. NMOM_C == 2 .AND. NMOM_R == 2 .AND. NMOM_I == 2 .AND. &
NMOM_S == 2 .AND. NMOM_G == 2 .AND. NMOM_H == 0) THEN
WRITE(UNIT=ILUOUT,FMT='("THE ELECTRICAL SCHEME IS USED WITH",/,&
& "THE FULL 2-MOMENT MICROPHYSICS SCHEME LIMA",/,&
& "BE CAREFUL: NOT FULLY VALIDATED !!!")')
ELSE IF (CELEC == 'ELE4' .AND. NMOM_C == 2 .AND. NMOM_R == 2 .AND. NMOM_I == 2 .AND. &
NMOM_S == 1 .AND. NMOM_G == 1 .AND. NMOM_H == 1) THEN
WRITE(UNIT=ILUOUT,FMT='("THE ELECTRICAL SCHEME IS USED WITH",/,&
& "THE PARTIAL 2-MOMENT MICROPHYSICS SCHEME LIMA",/,&
& "WITH HAIL ACTIVATED",/,&
& "BE CAREFUL: NOT TESTED NOR VALIDATED !!!")')
ELSE IF (CELEC == 'ELE4' .AND. NMOM_C == 2 .AND. NMOM_R == 2 .AND. NMOM_I == 2 .AND. &
NMOM_S == 2 .AND. NMOM_G == 2 .AND. NMOM_H == 2) THEN
WRITE(UNIT=ILUOUT,FMT='("THE ELECTRICAL SCHEME IS USED WITH",/,&
& "THE FULL 2-MOMENT MICROPHYSICS SCHEME LIMA",/,&
& "WITH HAIL ACTIVATED",/,&
& "BE CAREFUL: NOT TESTED NOR VALIDATED !!!")')
ELSE
WRITE(UNIT=ILUOUT,FMT='("THE USE OF THE ELECTRICAL SCHEME IS NOT COMPATIBLE",/,&
& "WITH THE OPTIONS OF THE LIMA MICROPHYSICS SCHEME")')
CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') ! error
END IF
IF (LSNOW_T) THEN
WRITE(UNIT=ILUOUT,FMT='("THE ELECTRICAL SCHEME CANNOT BE USED WITH LSNOW_T")')
CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') ! error
END IF
ELSE
WRITE(UNIT=ILUOUT,FMT='("THE ELECTRICAL SCHEME IS NOT COMPATIBLE",/,&
& "WITH THE CHOSEN MICROPHYSICS SCHEME")')
CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') ! error
END IF
! (explicit) LINOx SV case
!
IF (CELEC /= 'NONE' .AND. LLNOX_EXPLICIT) THEN
IF (HELEC /= 'NONE' .AND. OLNOX_EXPLICIT) THEN
CGETSVT(NSV_LNOXBEG:NSV_LNOXEND)='READ'
ELSE
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT='("THERE IS NO SCALAR VARIABLES FOR LINOX &
& IN INITIAL FMFILE",/,&
& "THE LINOX VARIABLES HAVE BEEN INITIALIZED TO ZERO ")')
CGETSVT(NSV_LNOXBEG:NSV_LNOXEND)='INIT'
END IF
END IF
!
! Chemical SV case (excluding aqueous chemical species)
!
IF (LUSECHEM) THEN
IF (OUSECHEM) THEN
CGETSVT(NSV_CHGSBEG:NSV_CHGSEND)='READ'
IF(CCONF=='START' .AND. LCH_INIT_FIELD ) CGETSVT(NSV_CHGSBEG:NSV_CHGSEND)='INIT'
ELSE
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT='("THERE IS NO SCALAR VARIABLES FOR CHEMICAL &
&SCHEME IN INITIAL FMFILE",/,&
& "THE CHEMICAL VARIABLES HAVE BEEN INITIALIZED TO ZERO ")')
CGETSVT(NSV_CHGSBEG:NSV_CHGSEND)='INIT'
END IF
END IF
! add aqueous chemical species
IF (LUSECHAQ) THEN
IF (OUSECHAQ) THEN
CGETSVT(NSV_CHACBEG:NSV_CHACEND)='READ'
! IF(CCONF=='START') CGETSVT(NSV_CHACBEG:NSV_CHACEND)='INIT'
ELSE
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT='("THERE IS NO SCALAR VARIABLES FOR CHEMICAL &
&SCHEME IN AQUEOUS PHASE IN INITIAL FMFILE",/,&
& "THE AQUEOUS PHASE CHEMICAL VARIABLES HAVE BEEN INITIALIZED TO ZERO ")')
CGETSVT(NSV_CHACBEG:NSV_CHACEND)='INIT'
END IF
END IF
! add ice phase chemical species
IF (LUSECHIC) THEN
IF (OUSECHIC) THEN
CGETSVT(NSV_CHICBEG:NSV_CHICEND)='READ'

Gaelle Tanguy
committed
! IF(CCONF=='START') CGETSVT(NSV_CHICBEG:NSV_CHICEND)='INIT'
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
ELSE
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT='("THERE IS NO SCALAR VARIABLES FOR CHEMICAL &
&SPECIES IN ICE PHASE IN INITIAL FMFILE",/,&
& "THE ICE PHASE CHEMICAL VARIABLES HAVE BEEN INITIALIZED TO ZERO ")')
CGETSVT(NSV_CHICBEG:NSV_CHICEND)='INIT'
END IF
END IF
! pH values = diagnostics
IF (LCH_PH .AND. .NOT. OCH_PH) THEN
CGETPHC ='INIT' !will be initialized to XCH_PHINIT
IF (LUSERR) THEN
CGETPHR = 'INIT' !idem
ELSE
CGETPHR = 'SKIP'
ENDIF
ELSE
IF (LCH_PH) THEN
CGETPHC ='READ'
IF (LUSERR) THEN
CGETPHR = 'READ'
ELSE
CGETPHR = 'SKIP'
ENDIF
ELSE
CGETPHC ='SKIP'
CGETPHR ='SKIP'
END IF
END IF
!
! Dust case
!
IF (LDUST) THEN
IF (ODUST) THEN
CGETSVT(NSV_DSTBEG:NSV_DSTEND)='READ'

Gaelle Tanguy
committed
! IF(CCONF=='START') CGETSVT(NSV_DSTBEG:NSV_DSTEND)='INIT'
ELSE
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT='("THERE IS NO SCALAR VARIABLES FOR DUST &
&SCHEME IN INITIAL FMFILE",/,&
& "THE DUST VARIABLES HAVE BEEN INITIALIZED TO ZERO ")')
CGETSVT(NSV_DSTBEG:NSV_DSTEND)='INIT'
END IF
IF (LDEPOS_DST(KMI)) THEN
!UPG *PT
IF((CCLOUD /= 'ICE3').AND.(CCLOUD /= 'ICE4').AND.(CCLOUD /= 'KESS')&
.AND.(CCLOUD /= 'KHKO').AND.(CCLOUD /= 'C2R2').AND.(CCLOUD /= 'LIMA').AND. &

Juan Escobar
committed
(CPROGRAM/='SPAWN').AND.(CPROGRAM/='REAL')) THEN
WRITE(UNIT=ILUOUT,FMT=9003) KMI
WRITE(UNIT=ILUOUT,FMT='("ERROR: WET DEPOSITION OF DUST IS ONLY CODED FOR THE",/,&
& "MICROPHYSICAL SCHEME as ICE3, ICE4, KESS, KHKO, LIMA and C2R2")')
!UPG *PT

WAUTELET Philippe
committed
CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','')
END IF
IF (ODEPOS_DST(KMI) ) THEN
CGETSVT(NSV_DSTDEPBEG:NSV_DSTDEPEND)='READ'

Gaelle Tanguy
committed
! IF(CCONF=='START') CGETSVT(NSV_DSTDEPBEG:NSV_DSTDEPEND)='INIT'
ELSE
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT='("THERE IS NO SCALAR VARIABLES FOR RAIN and CLOUD DUST &
& SCHEME IN INITIAL FMFILE",/,&
& "THE MOIST DUST VARIABLES HAVE BEEN INITIALIZED TO ZERO ")')
CGETSVT(NSV_DSTDEPBEG:NSV_DSTDEPEND)='INIT'
END IF
END IF
WRITE(UNIT=ILUOUT,FMT=9003) KMI
WRITE(UNIT=ILUOUT,FMT='("DUST MODES MUST BE BETWEEN 1 and 3 ")')
!callabortstop

WAUTELET Philippe
committed
CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','')

WAUTELET Philippe
committed
END IF
!
! Sea Salt case
!
IF (LSALT) THEN
IF (OSALT) THEN
CGETSVT(NSV_SLTBEG:NSV_SLTEND)='READ'

RODIER Quentin
committed
CGETZWS='READ'

Gaelle Tanguy
committed
! IF(CCONF=='START') CGETSVT(NSV_SLTBEG:NSV_SLTEND)='INIT'
ELSE
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT='("THERE IS NO SCALAR VARIABLES FOR SALT &
&SCHEME IN INITIAL FMFILE",/,&
& "THE SALT VARIABLES HAVE BEEN INITIALIZED TO ZERO ")')
CGETSVT(NSV_SLTBEG:NSV_SLTEND)='INIT'

RODIER Quentin
committed
CGETZWS='INIT'
END IF
IF (LDEPOS_SLT(KMI)) THEN
!UPG*PT
IF((CCLOUD /= 'ICE3').AND.(CCLOUD /= 'ICE4').AND.(CCLOUD /= 'KESS')&
!.AND.(CCLOUD /= 'KHKO').AND.(CCLOUD /= 'C2R2').AND. &
.AND.(CCLOUD /= 'KHKO').AND.(CCLOUD /= 'C2R2').AND.(CCLOUD /= 'LIMA').AND. &

Juan Escobar
committed
(CPROGRAM/='SPAWN').AND.(CPROGRAM/='REAL')) THEN
WRITE(UNIT=ILUOUT,FMT=9003) KMI
WRITE(UNIT=ILUOUT,FMT='("ERROR: WET DEPOSITION OF SEA SALT AEROSOLS IS ONLY CODED FOR THE",/,&
& "MICROPHYSICAL SCHEME as ICE3, ICE4, KESS, KHKO, LIMA and C2R2")')
!UPG*PT

WAUTELET Philippe
committed
CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','')
END IF
IF (ODEPOS_SLT(KMI) ) THEN
CGETSVT(NSV_SLTDEPBEG:NSV_SLTDEPEND)='READ'

Gaelle Tanguy
committed
! IF(CCONF=='START') CGETSVT(NSV_SLTDEPBEG:NSV_SLTDEPEND)='INIT'
ELSE
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT='("THERE IS NO SCALAR VARIABLES FOR RAIN and CLOUD SEA SALT &
& SCHEME IN INITIAL FMFILE",/,&