From c28757ba79d8b9cb5cea612e30e75bb2487881a8 Mon Sep 17 00:00:00 2001 From: Gaelle Tanguy <gaelle.tanguy@meteo.fr> Date: Thu, 10 Apr 2014 14:27:26 +0000 Subject: [PATCH] Christine 10/04/2014 : introduction of GETSVCONV + modification of the GETSVT --- src/MNH/read_exsegn.f90 | 51 +++++++++++++++++++++++------------------ 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/src/MNH/read_exsegn.f90 b/src/MNH/read_exsegn.f90 index 5690d0ecf..cf0d4add0 100644 --- a/src/MNH/read_exsegn.f90 +++ b/src/MNH/read_exsegn.f90 @@ -17,7 +17,7 @@ INTERFACE SUBROUTINE READ_EXSEG_n(KMI,HEXSEG,HLUOUT,HCONF,OFLAT,OUSERV, & OUSERC,OUSERR,OUSERI,OUSECI,OUSERS,OUSERG,OUSERH, & OUSECHEM,OUSECHAQ,OUSECHIC,OCH_PH,OCH_CONV_LINOX,OSALT, & - ODEPOS_SLT, ODUST,ODEPOS_DST, & + ODEPOS_SLT, ODUST,ODEPOS_DST, OCHTRANS, & OORILAM,ODEPOS_AER, OLG,OPASPOL, & #ifdef MNH_FOREFIRE OFOREFIRE, & @@ -53,6 +53,7 @@ LOGICAL, INTENT(IN) :: OPASPOL ! Passive pollutant FLAG in FMF LOGICAL, INTENT(IN) :: OFOREFIRE ! ForeFire FLAG in FMFILE #endif LOGICAL, INTENT(IN) :: OCONDSAMP ! Conditional sampling FLAG in FMFILE +LOGICAL, INTENT(IN) :: OCHTRANS ! LCHTRANS FLAG in FMFILE LOGICAL, INTENT(IN) :: OLG ! lagrangian FLAG in FMFILE INTEGER, INTENT(IN) :: KRIMX, KRIMY ! number of points for the @@ -84,7 +85,7 @@ END MODULE MODI_READ_EXSEG_n SUBROUTINE READ_EXSEG_n(KMI,HEXSEG,HLUOUT,HCONF,OFLAT,OUSERV, & OUSERC,OUSERR,OUSERI,OUSECI,OUSERS,OUSERG,OUSERH, & OUSECHEM,OUSECHAQ,OUSECHIC,OCH_PH,OCH_CONV_LINOX,OSALT, & - ODEPOS_SLT, ODUST,ODEPOS_DST, & + ODEPOS_SLT, ODUST,ODEPOS_DST, OCHTRANS, & OORILAM,ODEPOS_AER, OLG,OPASPOL, & #ifdef MNH_FOREFIRE OFOREFIRE, & @@ -382,6 +383,7 @@ LOGICAL, INTENT(IN) :: OPASPOL ! Passive pollutant FLAG in FMF LOGICAL, INTENT(IN) :: OFOREFIRE ! ForeFire FLAG in FMFILE #endif LOGICAL, INTENT(IN) :: OCONDSAMP ! Conditional sampling FLAG in FMFILE +LOGICAL, INTENT(IN) :: OCHTRANS ! LCHTRANS FLAG in FMFILE LOGICAL, INTENT(IN) :: OLG ! lagrangian FLAG in FMFILE INTEGER, INTENT(IN) :: KRIMX, KRIMY ! number of points for the @@ -1198,7 +1200,7 @@ IF (LUSERC.AND. (.NOT.OUSERC)) THEN ELSE IF ( LUSERC ) THEN CGETCLDFR = 'READ' -! IF ( (CCONF=='START') .AND. CPROGRAM /= 'DIAG') CGETCLDFR='INIT' + IF ( (CCONF=='START') .AND. CPROGRAM /= 'DIAG') CGETCLDFR='INIT' ELSE CGETCLDFR = 'SKIP' END IF @@ -1274,7 +1276,7 @@ END IF 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 - IF(CCONF=='START')CGETSVT(JS)='INIT' ! with these values +! IF(CCONF=='START')CGETSVT(JS)='INIT' ! with these values END DO ELSEIF (NSV_USER > KSV_USER) THEN IF (KSV_USER == 0) THEN @@ -1286,7 +1288,7 @@ ELSEIF (NSV_USER > KSV_USER) THEN & "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 - IF(CCONF=='START')CGETSVT(JS)='INIT' ! with these values +! 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) @@ -1298,7 +1300,7 @@ ELSE &" 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 - IF(CCONF=='START') CGETSVT(JS)='INIT' +! 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' @@ -1310,7 +1312,7 @@ END IF 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' - IF(CCONF=='START') CGETSVT(NSV_C2R2BEG:NSV_C2R2END)='INIT' +! 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 & @@ -1325,7 +1327,7 @@ END IF IF (CCLOUD == 'C3R5') THEN IF (HCLOUD == 'C3R5') THEN CGETSVT(NSV_C1R3BEG:NSV_C1R3END)='READ' - IF(CCONF=='START') CGETSVT(NSV_C1R3BEG:NSV_C1R3END)='INIT' +! 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 & @@ -1340,7 +1342,7 @@ END IF IF (CELEC /= 'NONE') THEN IF (HELEC /= 'NONE') THEN CGETSVT(NSV_ELECBEG:NSV_ELECEND)='READ' - IF(CCONF=='START') CGETSVT(NSV_ELECBEG:NSV_ELECEND)='INIT' +! 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 & @@ -1368,7 +1370,7 @@ END IF IF (LUSECHIC) THEN IF (OUSECHIC) THEN CGETSVT(NSV_CHICBEG:NSV_CHICEND)='READ' - IF(CCONF=='START') CGETSVT(NSV_CHICBEG:NSV_CHICEND)='INIT' +! IF(CCONF=='START') CGETSVT(NSV_CHICBEG:NSV_CHICEND)='INIT' ELSE WRITE(UNIT=ILUOUT,FMT=9001) KMI WRITE(UNIT=ILUOUT,FMT='("THERE IS NO SCALAR VARIABLES FOR CHEMICAL & @@ -1404,7 +1406,7 @@ END IF IF (LDUST) THEN IF (ODUST) THEN CGETSVT(NSV_DSTBEG:NSV_DSTEND)='READ' - IF(CCONF=='START') CGETSVT(NSV_DSTBEG:NSV_DSTEND)='INIT' +! 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 & @@ -1427,7 +1429,7 @@ IF (LDUST) THEN IF (ODEPOS_DST(KMI) ) THEN CGETSVT(NSV_DSTDEPBEG:NSV_DSTDEPEND)='READ' - IF(CCONF=='START') CGETSVT(NSV_DSTDEPBEG:NSV_DSTDEPEND)='INIT' +! 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 & @@ -1489,7 +1491,7 @@ END IF IF (LSALT) THEN IF (OSALT) THEN CGETSVT(NSV_SLTBEG:NSV_SLTEND)='READ' - IF(CCONF=='START') CGETSVT(NSV_SLTBEG:NSV_SLTEND)='INIT' +! 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 & @@ -1512,7 +1514,7 @@ IF (LSALT) THEN IF (ODEPOS_SLT(KMI) ) THEN CGETSVT(NSV_SLTDEPBEG:NSV_SLTDEPEND)='READ' - IF(CCONF=='START') CGETSVT(NSV_SLTDEPBEG:NSV_SLTDEPEND)='INIT' +! 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 & @@ -1572,7 +1574,7 @@ END IF IF (LORILAM) THEN IF (OORILAM) THEN CGETSVT(NSV_AERBEG:NSV_AEREND)='READ' - IF(CCONF=='START') CGETSVT(NSV_AERBEG:NSV_AEREND)='INIT' +! 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 & @@ -1595,7 +1597,7 @@ IF (LORILAM) THEN IF (ODEPOS_AER(KMI) ) THEN CGETSVT(NSV_AERDEPBEG:NSV_AERDEPEND)='READ' - IF(CCONF=='START') CGETSVT(NSV_AERDEPBEG:NSV_AERDEPEND)='INIT' +! 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 & @@ -1623,7 +1625,7 @@ ENDIF IF (LLG) THEN IF (OLG .AND. .NOT.(LINIT_LG .AND. CPROGRAM=='MESONH')) THEN CGETSVT(NSV_LGBEG:NSV_LGEND)='READ' - IF(CCONF=='START') CGETSVT(NSV_LGBEG:NSV_LGEND)='INIT' +! IF(CCONF=='START') CGETSVT(NSV_LGBEG:NSV_LGEND)='INIT' ELSE IF(.NOT.(LINIT_LG) .AND. CPROGRAM=='MESONH') THEN WRITE(UNIT=ILUOUT,FMT=9001) KMI @@ -1655,7 +1657,7 @@ END IF IF (LPASPOL) THEN IF (OPASPOL) THEN CGETSVT(NSV_PPBEG:NSV_PPEND)='READ' - IF(CCONF=='START') CGETSVT(NSV_PPBEG:NSV_PPEND)='INIT' +! 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",/,& @@ -1669,17 +1671,14 @@ END IF ! IF (LFOREFIRE) THEN IF (OFOREFIRE) THEN -!!$ CGETSVM(NSV_FFBEG:NSV_FFEND)='READ' CGETSVT(NSV_FFBEG:NSV_FFEND)='READ' IF(HSTORAGE_TYPE=='TT') THEN CGETSVT(NSV_FFBEG:NSV_FFEND)='INIT' -!!$ CGETSVM(NSV_FFBEG:NSV_FFEND)='INIT' END IF ELSE WRITE(UNIT=ILUOUT,FMT=9001) KMI WRITE(UNIT=ILUOUT,FMT='("THERE IS NO FOREFIRE SCALAR VARIABLES IN INITIAL FMFILE",/,& & "THE VARIABLES HAVE BEEN INITIALIZED TO ZERO")') -!!$ CGETSVM(NSV_FFBEG:NSV_FFEND)='INIT' CGETSVT(NSV_FFBEG:NSV_FFEND)='INIT' END IF END IF @@ -1690,7 +1689,7 @@ END IF IF (LCONDSAMP) THEN IF (OCONDSAMP) THEN CGETSVT(NSV_CSBEG:NSV_CSEND)='READ' - IF(CCONF=='START') CGETSVT(NSV_CSBEG:NSV_CSEND)='INIT' +! IF(CCONF=='START') CGETSVT(NSV_CSBEG:NSV_CSEND)='INIT' ELSE WRITE(UNIT=ILUOUT,FMT=9001) KMI WRITE(UNIT=ILUOUT,FMT='("THERE IS NO PASSIVE SCALAR VARIABLES IN INITIAL FMFILE",/,& @@ -1828,6 +1827,14 @@ SELECT CASE ( CDCONV ) END IF END SELECT ! +IF ( CDCONV == 'KAFR' .AND. LCHTRANS .AND. NSV > 0 ) THEN + IF( OCHTRANS ) THEN + CGETSVCONV='READ' + ELSE + CGETSVCONV='INIT' + END IF +END IF +! SELECT CASE ( CSCONV ) CASE( 'KAFR' ) IF (.NOT. ( LUSERV ) ) THEN -- GitLab