From 693af57c432af273a51516226a97705fafcb853c Mon Sep 17 00:00:00 2001 From: Gaelle Tanguy <gaelle.tanguy@meteo.fr> Date: Thu, 10 Apr 2014 14:28:14 +0000 Subject: [PATCH] Christine 10/04/2014 : introduction of GETSVCONV --- src/MNH/ini_deep_convection.f90 | 13 +++++++------ src/MNH/ini_modeln.f90 | 10 +++++----- src/MNH/modd_getn.f90 | 4 ++++ src/MNH/read_desfmn.f90 | 8 ++++++-- 4 files changed, 22 insertions(+), 13 deletions(-) diff --git a/src/MNH/ini_deep_convection.f90 b/src/MNH/ini_deep_convection.f90 index 118fbe383..d3e9e033e 100644 --- a/src/MNH/ini_deep_convection.f90 +++ b/src/MNH/ini_deep_convection.f90 @@ -13,7 +13,7 @@ INTERFACE PDRICONV,PPRCONV,PPRSCONV,PPACCONV, & PUMFCONV,PDMFCONV,PMFCONV,PPRLFLXCONV,PPRSFLXCONV,& PCAPE,KCLTOPCONV,KCLBASCONV, & - TPDTDCONV, OCHTRANS, PDSVCONV, & + TPDTDCONV, HGETSVCONV, PDSVCONV, & OCH_CONV_LINOX, PIC_RATE, PCG_RATE, & PIC_TOTAL_NUMBER, PCG_TOTAL_NUMBER ) ! @@ -24,7 +24,7 @@ CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name for output-listing ! of nested models LOGICAL, INTENT(IN) :: OINIDCONV ! switch to initialize or read TYPE (DATE_TIME), INTENT(IN) :: TPDTCUR ! Current date and time -LOGICAL, INTENT(IN) :: OCHTRANS ! flag for chemical tracers +CHARACTER (LEN=*), INTENT(IN) :: HGETSVCONV ! GET indicator for SVCONV ! TYPE (DATE_TIME), INTENT(OUT):: TPDTDCONV ! date and time of the ! last deep convection call @@ -66,7 +66,7 @@ END MODULE MODI_INI_DEEP_CONVECTION PDRICONV,PPRCONV,PPRSCONV,PPACCONV, & PUMFCONV,PDMFCONV,PMFCONV,PPRLFLXCONV,PPRSFLXCONV,& PCAPE,KCLTOPCONV,KCLBASCONV, & - TPDTDCONV, OCHTRANS, PDSVCONV, & + TPDTDCONV, HGETSVCONV, PDSVCONV, & OCH_CONV_LINOX, PIC_RATE, PCG_RATE, & PIC_TOTAL_NUMBER, PCG_TOTAL_NUMBER ) ! ########################################################################## @@ -142,7 +142,7 @@ CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name for output-listing ! of nested models LOGICAL, INTENT(IN) :: OINIDCONV ! switch to initialize or read TYPE (DATE_TIME), INTENT(IN) :: TPDTCUR ! Current date and time -LOGICAL, INTENT(IN) :: OCHTRANS ! flag for chemical tracers +CHARACTER (LEN=*), INTENT(IN) :: HGETSVCONV ! GET indicator for SVCONV ! TYPE (DATE_TIME), INTENT(OUT):: TPDTDCONV ! date and time of the ! last deep convection call @@ -322,7 +322,8 @@ ELSE END IF ! ! - IF ( OCHTRANS .AND. NSV > 0 ) THEN + SELECT CASE(HGETSVCONV) + CASE('READ') IGRID=1 DO JSV = 1, NSV_USER WRITE(YRECFM,'(A7,I3.3)')'DSVCONV',JSV @@ -401,7 +402,7 @@ ELSE CALL FMREAD(HINIFILE,YRECFM,HLUOUT,'XY',PDSVCONV(:,:,:,JSV), & IGRID,ILENCH,YCOMMENT,IRESP) END DO - END IF + END SELECT ! ! END IF diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90 index e4c1e905c..363d5f4ee 100644 --- a/src/MNH/ini_modeln.f90 +++ b/src/MNH/ini_modeln.f90 @@ -705,8 +705,8 @@ END IF ALLOCATE(XPABSM(IIU,IJU,IKU)) ; XPABSM = 0.0 ALLOCATE(XPABST(IIU,IJU,IKU)) ; XPABST = 0.0 ! -ALLOCATE(XRT(IIU,IJU,IKU,NRR)) -ALLOCATE(XRRS(IIU,IJU,IKU,NRR)) +ALLOCATE(XRT(IIU,IJU,IKU,NRR)) ; XRT = 0.0 +ALLOCATE(XRRS(IIU,IJU,IKU,NRR)) ; XRRS = 0.0 ALLOCATE(XRRS_CLD(IIU,IJU,IKU,NRR)); XRRS_CLD = 0.0 ! IF (CTURB /= 'NONE' .AND. NRR>1) THEN @@ -723,8 +723,8 @@ ELSE ALLOCATE(XCLDFR(0,0,0)) END IF ! -ALLOCATE(XSVT(IIU,IJU,IKU,NSV)) -ALLOCATE(XRSVS(IIU,IJU,IKU,NSV)) +ALLOCATE(XSVT(IIU,IJU,IKU,NSV)) ; XSVT = 0. +ALLOCATE(XRSVS(IIU,IJU,IKU,NSV)); XRSVS = 0. ALLOCATE(XRSVS_CLD(IIU,IJU,IKU,NSV)); XRSVS_CLD = 0.0 ! IF (LPASPOL) THEN @@ -1977,7 +1977,7 @@ IF (CDCONV /= 'NONE' .OR. CSCONV == 'KAFR') THEN XDRICONV,XPRCONV,XPRSCONV,XPACCONV, & XUMFCONV,XDMFCONV,XMFCONV,XPRLFLXCONV,XPRSFLXCONV,& XCAPE,NCLTOPCONV,NCLBASCONV, & - TDTDCONV,LCHTRANS,XDSVCONV, & + TDTDCONV, CGETSVCONV, XDSVCONV, & LCH_CONV_LINOX, XIC_RATE, XCG_RATE, & XIC_TOTAL_NUMBER, XCG_TOTAL_NUMBER ) diff --git a/src/MNH/modd_getn.f90 b/src/MNH/modd_getn.f90 index 583abdaf5..7a583779d 100644 --- a/src/MNH/modd_getn.f90 +++ b/src/MNH/modd_getn.f90 @@ -77,6 +77,8 @@ TYPE GET_t CHARACTER (LEN=4) :: CGETINPRC,CGETINPRR,CGETINPRS ! Get indicator for ! 2D precip fields CHARACTER (LEN=4) :: CGETINPRG,CGETINPRH + CHARACTER (LEN=4) :: CGETSVCONV ! Get indicator for + ! SV deep convection (LCHTRANS) CHARACTER (LEN=4), DIMENSION(:), POINTER :: CGETSVT=>NULL() ! Get indicator ! for the Scalar Var. at time t CHARACTER (LEN=4) :: CGETLSUM, CGETLSVM, CGETLSWM ! Get indicator for @@ -116,6 +118,7 @@ CHARACTER (LEN=4), POINTER :: CGETRIT=>NULL(),CGETRST=>NULL(),CGETRGT=>NULL() CHARACTER (LEN=4), POINTER :: CGETRHT=>NULL() CHARACTER (LEN=4), POINTER :: CGETINPRC=>NULL(), CGETINPRR=>NULL(), CGETINPRS=>NULL() CHARACTER (LEN=4), POINTER :: CGETINPRG=>NULL(), CGETINPRH=>NULL() +CHARACTER (LEN=4), POINTER :: CGETSVCONV=>NULL() CHARACTER (LEN=4), DIMENSION(:), POINTER :: CGETSVT=>NULL() CHARACTER (LEN=4), POINTER :: CGETLSUM=>NULL(), CGETLSVM=>NULL(), CGETLSWM=>NULL() CHARACTER (LEN=4), POINTER :: CGETLSTHM=>NULL(), CGETLSRVM=>NULL() @@ -164,6 +167,7 @@ CGETINPRR=>GET_MODEL(KTO)%CGETINPRR CGETINPRS=>GET_MODEL(KTO)%CGETINPRS CGETINPRG=>GET_MODEL(KTO)%CGETINPRG CGETINPRH=>GET_MODEL(KTO)%CGETINPRH +CGETSVCONV=>GET_MODEL(KTO)%CGETSVCONV CGETSVT=>GET_MODEL(KTO)%CGETSVT CGETLSUM=>GET_MODEL(KTO)%CGETLSUM CGETLSVM=>GET_MODEL(KTO)%CGETLSVM diff --git a/src/MNH/read_desfmn.f90 b/src/MNH/read_desfmn.f90 index 953cd209c..960404a5e 100644 --- a/src/MNH/read_desfmn.f90 +++ b/src/MNH/read_desfmn.f90 @@ -16,7 +16,7 @@ INTERFACE SUBROUTINE READ_DESFM_n(KMI,HDESFM,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, & @@ -52,6 +52,7 @@ LOGICAL, INTENT(OUT) :: OFOREFIRE! ForeFire flag #endif LOGICAL, INTENT(OUT) :: OCONDSAMP! Conditional sampling flag LOGICAL, INTENT(OUT) :: OORILAM ! Orilam flag +LOGICAL, INTENT(OUT) :: OCHTRANS ! Deep convection on scalar LOGICAL,DIMENSION(JPMODELMAX),INTENT(OUT) :: ODEPOS_DST ! Dust Wet Deposition flag LOGICAL,DIMENSION(JPMODELMAX),INTENT(OUT) :: ODEPOS_SLT ! Sea Salt Wet Deposition flag LOGICAL,DIMENSION(JPMODELMAX),INTENT(OUT) :: ODEPOS_AER ! Aerosols Wet Deposition flag @@ -78,7 +79,7 @@ END MODULE MODI_READ_DESFM_n SUBROUTINE READ_DESFM_n(KMI,HDESFM,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, & @@ -281,6 +282,8 @@ LOGICAL, INTENT(OUT) :: OFOREFIRE ! ForeFire flag LOGICAL, INTENT(OUT) :: OCONDSAMP! Conditional sampling flag LOGICAL, INTENT(OUT) :: ODUST ! Dust flag LOGICAL, INTENT(OUT) :: OORILAM ! Dust flag +LOGICAL, INTENT(OUT) :: OCHTRANS ! Deep convection on scalar + ! variables flag LOGICAL,DIMENSION(JPMODELMAX),INTENT(OUT) :: ODEPOS_DST ! Dust Wet Deposition flag LOGICAL,DIMENSION(JPMODELMAX),INTENT(OUT) :: ODEPOS_SLT ! Sea Salt Wet Deposition flag LOGICAL,DIMENSION(JPMODELMAX),INTENT(OUT) :: ODEPOS_AER ! Aerosols Wet Deposition flag @@ -498,6 +501,7 @@ ODUST = LDUST ODEPOS_DST(KMI) = LTEMPDEPOS_DST(KMI) ODEPOS_SLT(KMI) = LTEMPDEPOS_SLT(KMI) ODEPOS_AER(KMI) = LTEMPDEPOS_AER(KMI) +OCHTRANS = LCHTRANS OSALT = LSALT OORILAM = LORILAM OLG = LLG -- GitLab