diff --git a/src/MNH/boundaries.f90 b/src/MNH/boundaries.f90 index a0095f8c355ebaf408bcee8d5bd4396754a85a59..3ab2cf047ca338a8a6a0c4360328154d2f6da13f 100644 --- a/src/MNH/boundaries.f90 +++ b/src/MNH/boundaries.f90 @@ -1,12 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/boundaries.f90,v $ $Revision: 1.3.2.1.2.1.2.2.12.3 $ $Date: 2014/01/09 15:01:54 $ -!----------------------------------------------------------------- !##################### MODULE MODI_BOUNDARIES !##################### @@ -176,46 +172,43 @@ END MODULE MODI_BOUNDARIES !! Modification 18/07/17 (Vionnet) Add blowing snow variables !! Modification 01/2018 (JL Redelsperger) Correction for TKE treatment !! Modification 03/02/2020 (B. Vié) Correction for SV with LIMA +! P. Wautelet 04/06/2020: correct call to Set_conc_lima !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS ! -USE MODD_PARAMETERS -USE MODD_CTURB -USE MODD_CONF -USE MODD_NSV -USE MODD_CH_MNHC_n, ONLY : LUSECHEM, LUSECHIC -USE MODD_CH_AEROSOL , ONLY : LORILAM -USE MODD_DUST -USE MODD_SALT, ONLY : LSALT -USE MODD_PASPOL, ONLY : LPASPOL -USE MODD_CONDSAMP, ONLY : LCONDSAMP -USE MODD_ELEC_DESCR -USE MODD_ELEC_n USE MODD_BLOWSNOW, ONLY : LBLOWSNOW,NBLOWSNOW_2D USE MODD_BLOWSNOW_n -USE MODD_REF_n -USE MODD_PARAM_n, ONLY : CELEC,CCLOUD -USE MODD_LBC_n, ONLY : XPOND +USE MODD_CH_AEROSOL , ONLY : LORILAM +USE MODD_CH_MNHC_n, ONLY : LUSECHEM, LUSECHIC +USE MODD_CONDSAMP, ONLY : LCONDSAMP +USE MODD_CONF +USE MODD_CTURB +USE MODD_DUST USE MODD_GRID_n, ONLY : XZZ -! -USE MODD_PARAM_LIMA, ONLY : NMOD_CCN, NMOD_IFN, LBOUND, LWARM, LCOLD -! +USE MODD_ELEC_DESCR +USE MODD_ELEC_n #ifdef MNH_FOREFIRE USE MODD_FOREFIRE, ONLY : LFOREFIRE #endif +USE MODD_LBC_n, ONLY : XPOND +USE MODE_ll USE MODD_NESTING, ONLY : NDAD -! +USE MODD_NSV +USE MODD_PARAMETERS +USE MODD_PARAM_LIMA, ONLY : NMOD_CCN, NMOD_IFN, LBOUND, LWARM, LCOLD +USE MODD_PARAM_n, ONLY : CELEC,CCLOUD +USE MODD_PASPOL, ONLY : LPASPOL +USE MODD_REF_n +USE MODD_SALT, ONLY : LSALT + USE MODE_MODELN_HANDLER -! -USE MODI_ION_BOUNDARIES +USE MODE_SET_CONC_LIMA + USE MODI_CH_BOUNDARIES -! -USE MODE_ll -! USE MODI_INIT_AEROSOL_CONCENTRATION -USE MODI_SET_CONC_LIMA -! +USE MODI_ION_BOUNDARIES + IMPLICIT NONE ! ! @@ -1013,7 +1006,7 @@ IF (CCLOUD == 'LIMA' .AND. IMI == 1 .AND. CPROGRAM=='MESONH') THEN ENDIF END DO - CALL SET_CONC_LIMA('NONE',PRHODREF,ZRT,ZSVT) + CALL SET_CONC_LIMA( IMI, 'NONE', PRHODREF, ZRT(:, :, :, :), ZSVT(:, :, :, NSV_LIMA_BEG:NSV_LIMA_END) ) IF (NSV_LIMA_NC.GE.1) THEN IF (GLIMABOUNDARY(NSV_LIMA_NC)) THEN PSVT(IIB-1,:,:,NSV_LIMA_NC)=ZSVT(IIB-1,:,:,NSV_LIMA_NC) ! cloud diff --git a/src/MNH/ini_micron.f90 b/src/MNH/ini_micron.f90 index ecdcce161b8b1312f28ae68a22976432633a951a..3660c408bfe150a604c38c48d4e9c0fc98ce5797 100644 --- a/src/MNH/ini_micron.f90 +++ b/src/MNH/ini_micron.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2002-2020 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -94,6 +94,7 @@ USE MODI_SET_CONC_ICE_C1R3 USE MODE_ll USE MODE_MODELN_HANDLER USE MODE_BLOWSNOW_SEDIM_LKT +USE MODE_SET_CONC_LIMA ! USE MODD_NSV, ONLY : NSV,NSV_CHEM,NSV_C2R2BEG,NSV_C2R2END, & NSV_C1R3BEG,NSV_C1R3END, & @@ -109,7 +110,6 @@ USE MODD_LIMA_PRECIP_SCAVENGING_n ! USE MODI_INIT_AEROSOL_CONCENTRATION USE MODI_INI_LIMA -USE MODI_SET_CONC_LIMA ! IMPLICIT NONE ! @@ -140,6 +140,7 @@ INTEGER :: IMI ! CALL GET_DIM_EXT_ll('B',IIU,IJU) IKU=SIZE(XZZ,3) +IMI = GET_CURRENT_MODEL_INDEX() ! ! !* 2. ALLOCATE Module MODD_PRECIP_n @@ -317,7 +318,7 @@ ENDIF ! IF (CCLOUD == 'LIMA') THEN IF (CGETCLOUD/='READ') THEN - CALL SET_CONC_LIMA(CGETCLOUD,XRHODREF,XRT,XSVT(:,:,:,NSV_LIMA_BEG:NSV_LIMA_END)) + CALL SET_CONC_LIMA(IMI,CGETCLOUD,XRHODREF,XRT,XSVT(:,:,:,NSV_LIMA_BEG:NSV_LIMA_END)) END IF END IF ! @@ -326,7 +327,6 @@ END IF ! ---------------------------------- ! ! -IMI = GET_CURRENT_MODEL_INDEX() !IF (CELEC /= 'NONE') THEN ! CALL INI_ELEC(IMI,CINIFILE,CLUOUT,XTSTEP,ZDZMIN,NSPLITR, & ! XDXX,XDYY,XDZZ,XDZX,XDZY ) diff --git a/src/MNH/ini_one_wayn.f90 b/src/MNH/ini_one_wayn.f90 index 4182d6a2e97b4d4116f158724d6ea4698cb096ec..1c0ad2b5901320189bbe83a3595c7ef33a226bda 100644 --- a/src/MNH/ini_one_wayn.f90 +++ b/src/MNH/ini_one_wayn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1999-2020 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ####################### @@ -139,8 +139,8 @@ SUBROUTINE INI_ONE_WAY_n(KDAD,HLUOUT,PTSTEP,KMI,KTCOUNT, & !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! J.Escobar : 18/12/2015 : Correction of bug in bound in // for NHALO <>1 !! B.VIE 2016 : LIMA -!! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -!! +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 04/06/2020: correct call to Set_conc_lima !------------------------------------------------------------------------------ ! !* 0. DECLARATIONS @@ -164,7 +164,7 @@ USE MODI_SET_CONC_RAIN_C2R2 USE MODI_SET_CONC_ICE_C1R3 USE MODI_SET_CHEMAQ_1WAY ! -USE MODI_SET_CONC_LIMA +USE MODE_SET_CONC_LIMA ! IMPLICIT NONE ! @@ -407,7 +407,7 @@ IF (HCLOUD=="LIMA" ) THEN ELSE ZINIT_TYPE = "NONE" END IF - CALL SET_CONC_LIMA (ZINIT_TYPE,XRHODREF,XRT,ZCONCM) + CALL SET_CONC_LIMA (KMI,ZINIT_TYPE,XRHODREF,XRT,ZCONCM) DO JSV=1,NSV_LIMA_A(KMI) CALL SET_LSFIELD_1WAY_ll(ZCONCM(:,:,:,JSV),& &ZTSVM(:,:,:,JSV-1+NSV_LIMA_BEG_A(KMI)),KMI) diff --git a/src/MNH/one_wayn.f90 b/src/MNH/one_wayn.f90 index 0490f8fd1ea6f988b1efd0d1c37c8483841e805c..baa51ac836518fb8f3581189526b0f1b2839c026 100644 --- a/src/MNH/one_wayn.f90 +++ b/src/MNH/one_wayn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1996-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2020 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################### @@ -186,7 +186,8 @@ SUBROUTINE ONE_WAY_n(KDAD,PTSTEP,KMI,KTCOUNT, & !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! J.Escobar : 18/12/2015 : Correction of bug in bound in // for NHALO <>1 !! Modification 01/2016 (JP Pinty) Add LIMA -!! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 04/06/2020: correct call to Set_conc_lima !------------------------------------------------------------------------------ ! !* 0. DECLARATIONS @@ -209,7 +210,7 @@ USE MODI_VER_INTERP_LIN USE MODI_SET_CONC_RAIN_C2R2 USE MODI_SET_CONC_ICE_C1R3 USE MODI_SET_CHEMAQ_1WAY -USE MODI_SET_CONC_LIMA +USE MODE_SET_CONC_LIMA ! IMPLICIT NONE ! @@ -487,7 +488,7 @@ IF (HCLOUD=="LIMA" ) THEN ELSE ZINIT_TYPE = "NONE" END IF - CALL SET_CONC_LIMA (ZINIT_TYPE,XRHODREF,XRT,ZCONCT) + CALL SET_CONC_LIMA (KMI,ZINIT_TYPE,XRHODREF,XRT,ZCONCT) DO JSV=1,NSV_LIMA_A(KMI) CALL SET_LSFIELD_1WAY_ll(ZCONCT(:,:,:,JSV),& &ZTSVT(:,:,:,JSV-1+NSV_LIMA_BEG_A(KMI)),KMI) diff --git a/src/MNH/set_conc_lima.f90 b/src/MNH/set_conc_lima.f90 index f9be36c90261d250318864a8b140810299151bb2..25223e03c5e982fc0d2a53d385bcc5f66f9a6f66 100644 --- a/src/MNH/set_conc_lima.f90 +++ b/src/MNH/set_conc_lima.f90 @@ -1,32 +1,18 @@ -!MNH_LIC Copyright 2000-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2000-2020 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !####################################### - MODULE MODI_SET_CONC_LIMA -! ####################################### -! -INTERFACE -! - SUBROUTINE SET_CONC_LIMA (HGETCLOUD,PRHODREF,PRT,PSVT) -! -CHARACTER (LEN=4), INTENT(IN) :: HGETCLOUD ! Get indicator -REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF ! Reference density -! -REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRT ! microphysical mixing ratios -! -REAL, DIMENSION(:,:,:,:), INTENT(INOUT):: PSVT ! microphys. concentrations -! -! -END SUBROUTINE SET_CONC_LIMA -! -END INTERFACE -! -END MODULE MODI_SET_CONC_LIMA -! +module mode_set_conc_lima +!####################################### + +implicit none + +contains + ! ########################################################################### - SUBROUTINE SET_CONC_LIMA (HGETCLOUD,PRHODREF,PRT,PSVT) + SUBROUTINE SET_CONC_LIMA( kmi, HGETCLOUD, PRHODREF, PRT, PSVT ) ! ########################################################################### ! !!**** *SET_CONC_LIMA * - initialize droplet, raindrop and ice @@ -79,7 +65,9 @@ END MODULE MODI_SET_CONC_LIMA !! Original 15/11/00 !! 2014 G.Delautier : remplace MODD_RAIN_C2R2_PARAM par MODD_RAIN_C2R2_KHKO_PARAM * !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -!! B.Vié : 03/03/2020 secure physical tests +! B. Vié 03/03/2020: secure physical tests +! P. Wautelet 04/06/2020: correct array start for microphys. concentrations + add kmi dummy argument +! (this subroutine is also called for other models) !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -87,7 +75,8 @@ END MODULE MODI_SET_CONC_LIMA ! USE MODD_PARAM_LIMA, ONLY : XRTMIN, XCTMIN, LCOLD, LWARM, LRAIN, NMOD_CCN, NMOD_IFN USE MODD_PARAM_LIMA_COLD, ONLY : XAI, XBI -USE MODD_NSV, ONLY : NSV_LIMA_NC, NSV_LIMA_NR, NSV_LIMA_CCN_ACTI, NSV_LIMA_NI, NSV_LIMA_IFN_NUCL +USE MODD_NSV, ONLY : NSV_LIMA_BEG_A, NSV_LIMA_NC_A, NSV_LIMA_NR_A, NSV_LIMA_CCN_ACTI_A, & + NSV_LIMA_NI_A, NSV_LIMA_IFN_NUCL_A USE MODD_CST, ONLY : XPI, XRHOLW, XRHOLI USE MODD_CONF, ONLY : NVERB USE MODD_CONF_n, ONLY : NRR @@ -100,12 +89,13 @@ IMPLICIT NONE ! !* 0.1 Declarations of dummy arguments : ! +integer, intent(in) :: kmi ! Model number CHARACTER (LEN=4), INTENT(IN) :: HGETCLOUD ! Get indicator REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF ! Reference density ! REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRT ! microphysical mixing ratios ! -REAL, DIMENSION(:,:,:,:), INTENT(INOUT):: PSVT ! microphys. concentrations +REAL, DIMENSION(:,:,:,NSV_LIMA_BEG_A(kmi):), INTENT(INOUT):: PSVT ! microphys. concentrations ! ! !* 0.2 Declarations of local variables : @@ -129,19 +119,19 @@ IF (LWARM .AND. NRR.GE.2) THEN ! ZCONCC = 300.E6 ! droplet concentration set at 300 cm-3 WHERE ( PRT(:,:,:,2) > 1.E-11 ) - PSVT(:,:,:,NSV_LIMA_NC) = ZCONCC + PSVT(:,:,:,NSV_LIMA_NC_A(kmi)) = ZCONCC END WHERE WHERE ( PRT(:,:,:,2) <= 1.E-11 ) PRT(:,:,:,2) = 0.0 - PSVT(:,:,:,NSV_LIMA_NC) = 0.0 + PSVT(:,:,:,NSV_LIMA_NC_A(kmi)) = 0.0 END WHERE IF (NMOD_CCN .GE. 1) THEN WHERE ( PRT(:,:,:,2) > 1.E-11 ) - PSVT(:,:,:,NSV_LIMA_CCN_ACTI) = ZCONCC + PSVT(:,:,:,NSV_LIMA_CCN_ACTI_A(kmi)) = ZCONCC END WHERE WHERE ( PRT(:,:,:,2) <= 1.E-11 ) - PSVT(:,:,:,NSV_LIMA_CCN_ACTI) = 0.0 + PSVT(:,:,:,NSV_LIMA_CCN_ACTI_A(kmi)) = 0.0 END WHERE END IF @@ -157,15 +147,15 @@ IF (LWARM .AND. LRAIN .AND. NRR.GE.3) THEN ! ZCONCR = (1.E7)**3/(XPI*XRHOLW) ! cf XCONCR_PARAM_INI in ini_rain_c2r2.f90 IF (HGETCLOUD == 'INI1') THEN ! init from REVE scheme - PSVT(:,:,:,NSV_LIMA_NR) = 0.0 + PSVT(:,:,:,NSV_LIMA_NR_A(kmi)) = 0.0 ELSE ! init from KESS, ICE3... WHERE ( PRT(:,:,:,3) > 1.E-11 ) - PSVT(:,:,:,NSV_LIMA_NR) = MAX( SQRT(SQRT(PRHODREF(:,:,:)*PRT(:,:,:,3) & + PSVT(:,:,:,NSV_LIMA_NR_A(kmi)) = MAX( SQRT(SQRT(PRHODREF(:,:,:)*PRT(:,:,:,3) & *ZCONCR)),1. ) END WHERE WHERE ( PRT(:,:,:,3) <= 1.E-11 ) PRT(:,:,:,3) = 0.0 - PSVT(:,:,:,NSV_LIMA_NR) = 0.0 + PSVT(:,:,:,NSV_LIMA_NR_A(kmi)) = 0.0 END WHERE IF( NVERB >= 5 ) THEN WRITE (UNIT=ILUOUT,FMT=*) "!INI_MODEL$n: The raindrop concentration has " @@ -181,23 +171,23 @@ IF (LCOLD .AND. NRR.GE.4) THEN ZCONCI = 100.E3 ! maximum ice concentration set at 100/L WHERE ( PRT(:,:,:,4) > 1.E-11 ) ! -! PSVT(:,:,:,NSV_LIMA_NI) = MIN( PRHODREF(:,:,:) / & +! PSVT(:,:,:,NSV_LIMA_NI_A(kmi)) = MIN( PRHODREF(:,:,:) / & ! ( XRHOLI * XAI*(10.E-06)**XBI * PRT(:,:,:,4) ), & ! ZCONCI ) ! Correction - PSVT(:,:,:,NSV_LIMA_NI) = MIN(PRT(:,:,:,4)/(0.82*(10.E-06)**2.5),ZCONCI ) + PSVT(:,:,:,NSV_LIMA_NI_A(kmi)) = MIN(PRT(:,:,:,4)/(0.82*(10.E-06)**2.5),ZCONCI ) END WHERE WHERE ( PRT(:,:,:,4) <= 1.E-11 ) PRT(:,:,:,4) = 0.0 - PSVT(:,:,:,NSV_LIMA_NI) = 0.0 + PSVT(:,:,:,NSV_LIMA_NI_A(kmi)) = 0.0 END WHERE IF (NMOD_IFN .GE. 1) THEN WHERE ( PRT(:,:,:,4) > 1.E-11 ) - PSVT(:,:,:,NSV_LIMA_IFN_NUCL) = PSVT(:,:,:,NSV_LIMA_NI) + PSVT(:,:,:,NSV_LIMA_IFN_NUCL_A(kmi)) = PSVT(:,:,:,NSV_LIMA_NI_A(kmi)) END WHERE WHERE ( PRT(:,:,:,4) <= 1.E-11 ) - PSVT(:,:,:,NSV_LIMA_IFN_NUCL) = 0.0 + PSVT(:,:,:,NSV_LIMA_IFN_NUCL_A(kmi)) = 0.0 END WHERE END IF @@ -209,3 +199,5 @@ IF (LCOLD .AND. NRR.GE.4) THEN END IF ! END SUBROUTINE SET_CONC_LIMA + +end module mode_set_conc_lima