Newer
Older
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.'
WRITE(UNIT=ILUOUT,FMT=*) 'SET CSUBG_AUCV TO "CLFR" or "NONE" OR CCLOUD TO "ICE3"'
!
!callabortstop

WAUTELET Philippe
committed
CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','')
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
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
!
IF (CSUBG_AUCV == '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.'
WRITE(UNIT=ILUOUT,FMT=*) 'THIS IS NOT ALLOWED: CSUBG_AUCV is SET to NONE'
CSUBG_AUCV='NONE'
END IF
!
IF (CSUBG_AUCV == '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'
WRITE(UNIT=ILUOUT,FMT=*) 'THIS IS NOT ALLOWED: CSUBG_AUCV is SET to NONE'
CSUBG_AUCV='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
!
IF (CSUBG_AUCV /= '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.'
WRITE(UNIT=ILUOUT,FMT=*) 'THIS IS NOT ALLOWED: CSUBG_AUCV is SET to NONE'
CSUBG_AUCV='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','')
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
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
!
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 ((LACTI .AND. FINI_CCN == 'XXX')) THEN
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT='("YOU WANT TO USE A 2-MOMENT MICROPHYSICAL ", &
&" SCHEME BUT YOU DIDNT FILL CORRECTLY NAM_PARAM_LIMA", &
&" YOU HAVE TO FILL FINI_CCN ")')
call Print_msg( NVERB_FATAL, 'GEN', 'READ_EXSEG_n', '' )
END IF
!
IF(LACTI .AND. NMOD_CCN == 0) THEN
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT='("ACTIVATION OF AEROSOL PARTICLES IS NOT ", &
&"POSSIBLE IF NMOD_CCN HAS VALUE ZERO. YOU HAVE TO SET AN UPPER ", &
&"VALUE OF NMOD_CCN IN ORDER TO USE LIMA WARM ACTIVATION SCHEME.")')
call Print_msg( NVERB_FATAL, 'GEN', 'READ_EXSEG_n', '' )
END IF
!
IF(LNUCL .AND. NMOD_IFN == 0 .AND. (.NOT.LMEYERS)) THEN
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT='("NUCLEATION BY DEPOSITION AND CONTACT IS NOT ", &
&"POSSIBLE IF NMOD_IFN HAS VALUE ZERO. YOU HAVE TO SET AN UPPER", &
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
&"VALUE OF NMOD_IFN IN ORDER TO USE LIMA COLD NUCLEATION SCHEME.")')
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
CGETCLOUD = 'INI2'
ELSE
CGETCLOUD = 'READ' ! This is automatically done
END IF
!
IF (LWARM) THEN
LUSERV=.TRUE. ; LUSERC=.TRUE. ; LUSERR=.TRUE.
LUSERI=.FALSE.; LUSERS=.FALSE. ; LUSERG=.FALSE.; LUSERH=.FALSE.
END IF
!
IF (LCOLD) THEN
LUSERV=.TRUE. ; LUSERC=.TRUE. ; LUSERR=.TRUE.
LUSERI=.TRUE. ; LUSERS=.TRUE. ; LUSERG=.TRUE.
LUSERH=LHAIL
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. SET LSUBG_COND '
WRITE(UNIT=ILUOUT,FMT=*) 'TO FALSE OR CCLOUD TO "REVE", "KESS" '

WAUTELET Philippe
committed
CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','')
END IF
!
IF ( XALPHAC /= 3.0 .OR. XNUC /= 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=*) ' 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"'
IF (LUSECHEM ) THEN
WRITE(UNIT=ILUOUT,FMT=*) 'YOU WANT TO USE BOTH LIMA MICROPHYS. SCHEME AND CHEMISTRY'
WRITE(UNIT=ILUOUT,FMT=*) 'THIS IS NOT YET AVAILABLE. SET LUSECHEM '
WRITE(UNIT=ILUOUT,FMT=*) 'TO FALSE OR CCLOUD TO "ICE3" '
!callabortstop

WAUTELET Philippe
committed
CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','')
END IF
IF (LDUST ) THEN
WRITE(UNIT=ILUOUT,FMT=*) 'YOU WANT TO USE BOTH LIMA MICROPHYS. SCHEME AND DUSTS '
WRITE(UNIT=ILUOUT,FMT=*) 'THIS IS NOT YET AVAILABLE. SET LDUST '
WRITE(UNIT=ILUOUT,FMT=*) 'TO FALSE OR CCLOUD TO "ICE3" '
!callabortstop

WAUTELET Philippe
committed
CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','')
END IF
IF (LSALT ) THEN
WRITE(UNIT=ILUOUT,FMT=*) 'YOU WANT TO USE BOTH LIMA MICROPHYS. SCHEME AND SEA SALTS '
WRITE(UNIT=ILUOUT,FMT=*) 'THIS IS NOT YET AVAILABLE. SET LSALT '
WRITE(UNIT=ILUOUT,FMT=*) 'TO FALSE OR CCLOUD TO "ICE3" '
!callabortstop

WAUTELET Philippe
committed
CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','')
!
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
!
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','')
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
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
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
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
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
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'
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
!
!
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'
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
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
!

RODIER Quentin
committed
IF(CTURBLEN=='RM17' .OR. CTURBLEN=='ADAP') THEN

RODIER Quentin
committed
XCEDIS=0.34
ELSE
XCEDIS=0.84
END IF
!
!* 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'
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
CGETSIGS ='READ'
END IF
ELSE
CGETSRCT ='SKIP'
CGETSIGS ='SKIP'
END IF
!
IF(NMODEL_CLOUD==KMI .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=", &
& A4,/, &
& ", 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','')
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
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'
!!JPP IF(HSTORAGE_TYPE=='TT') CGETSVT(NSV_LIMA_BEG:NSV_LIMA_END)='INIT'
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
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'
1780
1781
1782
1783
1784
1785
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
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
IF((CCLOUD /= 'ICE3').AND.(CCLOUD /= 'ICE4').AND.(CCLOUD /= 'KESS')&

Juan Escobar
committed
.AND.(CCLOUD /= 'KHKO').AND.(CCLOUD /= 'C2R2').AND. &
(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 and C2R2")')
!callabortstop

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
IF((CCLOUD /= 'ICE3').AND.(CCLOUD /= 'ICE4').AND.(CCLOUD /= 'KESS')&

Juan Escobar
committed
.AND.(CCLOUD /= 'KHKO').AND.(CCLOUD /= 'C2R2').AND. &
(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 and C2R2")')
!callabortstop

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",/,&
& "THE MOIST SEA SALT VARIABLES HAVE BEEN INITIALIZED TO ZERO ")')
CGETSVT(NSV_SLTDEPBEG:NSV_SLTDEPEND)='INIT'
END IF
END IF

RODIER Quentin
committed
IF(NMODE_SLT.GT.5 .OR. NMODE_SLT.LT.1) THEN

RODIER Quentin
committed
WRITE(UNIT=ILUOUT,FMT='("SALT MODES MUST BE BETWEEN 1 and 5 ")')

WAUTELET Philippe
committed
CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','')
END IF
END IF
!
! Orilam SV case
!
IF (LORILAM) THEN
IF (OORILAM) THEN
CGETSVT(NSV_AERBEG:NSV_AEREND)='READ'

Gaelle Tanguy
committed
! IF(CCONF=='START') CGETSVT(NSV_AERBEG:NSV_AEREND)='INIT'
ELSE
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT='("THERE IS NO SCALAR VARIABLES FOR AEROSOL &
&SCHEME IN INITIAL FMFILE",/,&
& "THE AEROSOLS VARIABLES HAVE BEEN INITIALIZED TO ZERO ")')
CGETSVT(NSV_AERBEG:NSV_AEREND)='INIT'
END IF
IF (LDEPOS_AER(KMI)) THEN
IF((CCLOUD /= 'ICE3').AND.(CCLOUD /= 'ICE4').AND.(CCLOUD /= 'KESS')&

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

WAUTELET Philippe
committed
CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','')
END IF
IF (ODEPOS_AER(KMI) ) THEN
CGETSVT(NSV_AERDEPBEG:NSV_AERDEPEND)='READ'

Gaelle Tanguy
committed
! IF(CCONF=='START') CGETSVT(NSV_AERDEPBEG:NSV_AERDEPEND)='INIT'
ELSE
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT='("THERE IS NO SCALAR VARIABLES FOR RAIN and IN CLOUD &
& AEROSOL SCHEME IN INITIAL FMFILE",/,&
& "THE MOIST AEROSOL VARIABLES HAVE BEEN INITIALIZED TO ZERO ")')
CGETSVT(NSV_AERDEPBEG:NSV_AERDEPEND)='INIT'
END IF
END IF
END IF
!
! Lagrangian variables
!
IF (LINIT_LG .AND. .NOT.(LLG)) THEN
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT='("IT IS INCOHERENT TO HAVE LINIT_LG=.T. AND LLG=.F.",/,&
& "IF YOU WANT LAGRANGIAN TRACERS CHANGE LLG TO .T. ")')
ENDIF
IF (LLG) THEN
IF (OLG .AND. .NOT.(LINIT_LG .AND. CPROGRAM=='MESONH')) THEN
CGETSVT(NSV_LGBEG:NSV_LGEND)='READ'

Gaelle Tanguy
committed
! IF(CCONF=='START') CGETSVT(NSV_LGBEG:NSV_LGEND)='INIT'
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
ELSE
IF(.NOT.(LINIT_LG) .AND. CPROGRAM=='MESONH') THEN
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT='("THERE IS NO LAGRANGIAN VARIABLES IN INITIAL FMFILE",/,&
& "THE LAGRANGIAN VARIABLES HAVE BEEN REINITIALIZED")')
LINIT_LG=.TRUE.
ENDIF
CGETSVT(NSV_LGBEG:NSV_LGEND)='INIT'
END IF
END IF
!
!
! LINOx SV case
!
IF (.NOT.LUSECHEM .AND. LCH_CONV_LINOX) THEN
IF (.NOT.OUSECHEM .AND. OCH_CONV_LINOX) THEN
CGETSVT(NSV_LNOXBEG:NSV_LNOXEND)='READ'
ELSE
WRITE(UNIT=ILUOUT,FMT=9002) 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
!
! Passive pollutant case
!
IF (LPASPOL) THEN
IF (OPASPOL) THEN
CGETSVT(NSV_PPBEG:NSV_PPEND)='READ'

Gaelle Tanguy
committed
! IF(CCONF=='START') CGETSVT(NSV_PPBEG:NSV_PPEND)='INIT'
ELSE
WRITE(UNIT=ILUOUT,FMT=9001) KMI
WRITE(UNIT=ILUOUT,FMT='("THERE IS NO PASSIVE SCALAR VARIABLES IN INITIAL FMFILE",/,&
& "THE VARIABLES HAVE BEEN INITIALIZED TO ZERO")')
CGETSVT(NSV_PPBEG:NSV_PPEND)='INIT'
END IF
END IF
!
#ifdef MNH_FOREFIRE
! ForeFire
!
IF (LFOREFIRE) THEN
IF (OFOREFIRE) THEN
CGETSVT(NSV_FFBEG:NSV_FFEND)='READ'
IF(HSTORAGE_TYPE=='TT') THEN
CGETSVT(NSV_FFBEG:NSV_FFEND)='INIT'
END IF
ELSE
WRITE(UNIT=ILUOUT,FMT=9001) KMI