diff --git a/src/MNH/ini_budget.f90 b/src/MNH/ini_budget.f90 index 9174772780303bdf7a4babe2965e7874e9826b0b..5a18aeef519d95e25087fa51a3cd1b926f0cc184 100644 --- a/src/MNH/ini_budget.f90 +++ b/src/MNH/ini_budget.f90 @@ -169,6 +169,7 @@ END MODULE MODI_INI_BUDGET ! P. Wautelet 01/02/2021: bugfix: manage correctly MAFL and ADV source for SV budgets ! P. Wautelet 01/02/2021: add missing source: VISC ! P. Wautelet 01/02/2021: bugfix: add missing CEDS source terms for SV budgets +! P. Wautelet 02/02/2021: budgets: add missing source terms for SV budgets in LIMA !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -184,7 +185,9 @@ USE MODD_PARAM_ICE USE MODD_PARAM_C2R2 USE MODD_ELEC_DESCR, ONLY : LINDUCTIVE USE MODD_2D_FRC -USE MODD_PARAM_LIMA, ONLY : OWARM=>LWARM, OCOLD=>LCOLD, OSEDI=>LSEDI, & +USE MODD_NSV +USE MODD_PARAM_LIMA, ONLY : OAERO_MASS=>LAERO_MASS, & + OWARM=>LWARM, OCOLD=>LCOLD, OSEDI=>LSEDI, & OHHONI=>LHHONI, ORAIN=>LRAIN, OSEDC=>LSEDC, & ONUCL=>LNUCL, OACTI=>LACTI, OSNOW=>LSNOW, & OHAIL=>LHAIL, OSCAV=>LSCAV, OMEYERS=>LMEYERS,& @@ -3433,7 +3436,7 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN YWORK2(12+JSV,ILAST_PROC_NBR)= 'HENU_' IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 END IF - IF (OCOLD .AND. ONUCL .AND. OHHONI .AND. NMOD_CCN.GE.1) THEN + IF (OCOLD .AND. ONUCL .AND. OHHONI) THEN ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'HONH_' IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 @@ -3472,6 +3475,16 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEGA_' IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEGASV + IF (OWARM .AND. OACTI .AND. OPTSPLIT) THEN + ILAST_PROC_NBR = ILAST_PROC_NBR + 1 + YWORK2(12+JSV,ILAST_PROC_NBR)= 'HENU_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + END IF + IF (OCOLD .AND. ONUCL .AND. .NOT. OMEYERS .AND. OPTSPLIT) THEN + ILAST_PROC_NBR = ILAST_PROC_NBR + 1 + YWORK2(12+JSV,ILAST_PROC_NBR)= 'HINC_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + END IF ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'CEDS_' IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 @@ -3679,6 +3692,24 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEGA_' IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEGASV + IF (OCOLD .AND. ONUCL .AND. OMEYERS .AND. JSV == NSV_LIMA_IFN_NUCL .AND. OPTSPLIT) THEN + ILAST_PROC_NBR = ILAST_PROC_NBR + 1 + YWORK2(12+JSV,ILAST_PROC_NBR)= 'HIND_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + ILAST_PROC_NBR = ILAST_PROC_NBR + 1 + YWORK2(12+JSV,ILAST_PROC_NBR)= 'HINC_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + END IF + IF (OCOLD .AND. ONUCL .AND. .NOT. OMEYERS .AND. OPTSPLIT) THEN + ILAST_PROC_NBR = ILAST_PROC_NBR + 1 + YWORK2(12+JSV,ILAST_PROC_NBR)= 'HIND_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + END IF + IF (OPTSPLIT .OR. (OCOLD .AND. OWARM)) THEN + ILAST_PROC_NBR = ILAST_PROC_NBR + 1 + YWORK2(12+JSV,ILAST_PROC_NBR)= 'IMLT_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + END IF ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'CEDS_' IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 @@ -3708,6 +3739,11 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'NEGA_' IPROACTV(12+JSV,ILAST_PROC_NBR) = NNEGASV + IF (OCOLD .AND. ONUCL .AND. .NOT. OMEYERS .AND. OPTSPLIT) THEN + ILAST_PROC_NBR = ILAST_PROC_NBR + 1 + YWORK2(12+JSV,ILAST_PROC_NBR)= 'HINC_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + END IF IF ( OCOLD ) THEN ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'CEDS_' diff --git a/src/MNH/lima_meyers.f90 b/src/MNH/lima_meyers.f90 index 1dd7bf0ac630fcb5f6b73665ed00b7850c9bb8a8..df5f065d2a394218d6a1be740545c81c4658ef2d 100644 --- a/src/MNH/lima_meyers.f90 +++ b/src/MNH/lima_meyers.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 2013-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2013-2021 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. @@ -106,21 +106,22 @@ END MODULE MODI_LIMA_MEYERS !! ------------- !! Original ??/??/13 !! C. Barthe * LACy * jan. 2014 add budgets -!! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -!! B.Vie 03/2020 Correction of budgets parallelization -!! +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 28/05/2019: move COUNTJV function to tools.f90 +! B. Vie 03/2020: correction of budgets parallelization +! P. Wautelet 02/02/2021: budgets: add missing source terms for SV budgets in LIMA !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS ! ------------ ! -USE MODD_PARAMETERS +USE MODD_BUDGET USE MODD_CST +USE MODD_NSV, ONLY: NSV_LIMA_NC, NSV_LIMA_NI, NSV_LIMA_IFN_NUCL +USE MODD_PARAMETERS USE MODD_PARAM_LIMA USE MODD_PARAM_LIMA_COLD -USE MODD_BUDGET USE MODI_BUDGET -USE MODD_NSV, ONLY : NSV_LIMA_NC, NSV_LIMA_NI ! USE MODI_LIMA_FUNCTIONS, ONLY : COUNTJV ! @@ -357,6 +358,7 @@ IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9,'HIND_BU_RRI') IF (LBUDGET_SV) THEN CALL BUDGET (PCIS(:,:,:)*PRHODJ(:,:,:),12+NSV_LIMA_NI,'HIND_BU_RSV') + CALL BUDGET (PINS(:,:,:,1)*PRHODJ(:,:,:),12+NSV_LIMA_IFN_NUCL,'HIND_BU_RSV') END IF END IF ! @@ -443,6 +445,7 @@ IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN IF (LBUDGET_SV) THEN CALL BUDGET ( PCCS(:,:,:)*PRHODJ(:,:,:),12+NSV_LIMA_NC,'HINC_BU_RSV') CALL BUDGET ( PCIS(:,:,:)*PRHODJ(:,:,:),12+NSV_LIMA_NI,'HINC_BU_RSV') + CALL BUDGET ( PINS(:,:,:,1)*PRHODJ(:,:,:),12+NSV_LIMA_IFN_NUCL,'HINC_BU_RSV') END IF END IF ! diff --git a/src/MNH/lima_mixed.f90 b/src/MNH/lima_mixed.f90 index c71914ed7349b3a658111aaffca3dc0f6c1c4681..40b73c924ae54ad14d2b186f53748e3f24f0f564 100644 --- a/src/MNH/lima_mixed.f90 +++ b/src/MNH/lima_mixed.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 2013-2020 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2013-2021 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. @@ -532,7 +532,7 @@ IF( IMICRO >= 0 ) THEN ZLBDAI, ZLBDAG, & ZRHODJ, GMICRO, PRHODJ, KMI, & PTHS, PRVS, PRCS, PRIS, PRGS, & - PCCS, PCIS ) + PCCS, PCIS, PINS ) ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/lima_mixed_slow_processes.f90 b/src/MNH/lima_mixed_slow_processes.f90 index 7c58f4910a4603219de2d1c7887db6b2760be388..f2a23fe75038137775a4d534cbb0aac5d75c968e 100644 --- a/src/MNH/lima_mixed_slow_processes.f90 +++ b/src/MNH/lima_mixed_slow_processes.f90 @@ -1,3 +1,8 @@ +!MNH_LIC Copyright 2013-2021 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. +!----------------------------------------------------------------- ! ##################################### MODULE MODI_LIMA_MIXED_SLOW_PROCESSES ! ##################################### @@ -11,7 +16,7 @@ INTERFACE ZLBDAI, ZLBDAG, & ZRHODJ, GMICRO, PRHODJ, KMI, & PTHS, PRVS, PRCS, PRIS, PRGS, & - PCCS, PCIS ) + PCCS, PCIS, PINS ) ! REAL, DIMENSION(:), INTENT(IN) :: ZRHODREF ! RHO Dry REFerence REAL, DIMENSION(:), INTENT(IN) :: ZZT ! Temperature @@ -52,6 +57,7 @@ REAL, DIMENSION(:,:,:), INTENT(IN) :: PRIS REAL, DIMENSION(:,:,:), INTENT(IN) :: PRGS REAL, DIMENSION(:,:,:), INTENT(IN) :: PCCS REAL, DIMENSION(:,:,:), INTENT(IN) :: PCIS +REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PINS ! END SUBROUTINE LIMA_MIXED_SLOW_PROCESSES END INTERFACE @@ -66,7 +72,7 @@ END MODULE MODI_LIMA_MIXED_SLOW_PROCESSES ZLBDAI, ZLBDAG, & ZRHODJ, GMICRO, PRHODJ, KMI, & PTHS, PRVS, PRCS, PRIS, PRGS, & - PCCS, PCIS ) + PCCS, PCIS, PINS ) ! ####################################################################### ! !! @@ -105,7 +111,7 @@ END MODULE MODI_LIMA_MIXED_SLOW_PROCESSES !! ------------- !! Original ??/??/13 !! C. Barthe * LACy * jan. 2014 add budgets -!! +! P. Wautelet 02/02/2021: budgets: add missing source terms for SV budgets in LIMA !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -165,6 +171,7 @@ REAL, DIMENSION(:,:,:), INTENT(IN) :: PRIS REAL, DIMENSION(:,:,:), INTENT(IN) :: PRGS REAL, DIMENSION(:,:,:), INTENT(IN) :: PCCS REAL, DIMENSION(:,:,:), INTENT(IN) :: PCIS +REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PINS ! !* 0.2 Declarations of local variables : ! @@ -241,6 +248,10 @@ END IF 12+NSV_LIMA_NC,'IMLT_BU_RSV') CALL BUDGET (UNPACK(ZCIS(:),MASK=GMICRO(:,:,:),FIELD=PCIS)*PRHODJ(:,:,:), & 12+NSV_LIMA_NI,'IMLT_BU_RSV') + DO JMOD_IFN = 1,NMOD_IFN + CALL BUDGET (UNPACK(ZINS(:,JMOD_IFN),MASK=GMICRO(:,:,:),FIELD=PINS(:,:,:,JMOD_IFN))*PRHODJ(:,:,:), & + 12+NSV_LIMA_IFN_NUCL+JMOD_IFN-1,'IMLT_BU_RSV') + ENDDO END IF END IF ! diff --git a/src/MNH/lima_phillips.f90 b/src/MNH/lima_phillips.f90 index 0aa2276d319683fbbec5c194ae9082e304425ba5..4f45b93de56c64ccc0c3837eb179a0bbb970a757 100644 --- a/src/MNH/lima_phillips.f90 +++ b/src/MNH/lima_phillips.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 2013-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2013-2021 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. @@ -115,18 +115,20 @@ END MODULE MODI_LIMA_PHILLIPS !! ------------- !! Original ??/??/13 !! C. Barthe * LACy * jan. 2014 add budgets -!! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -!! B.Vie 03/2020 Correction of budgets parallelization -!! +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 28/05/2019: move COUNTJV function to tools.f90 +! B. Vie 03/2020: Correction of budgets parallelization +! P. Wautelet 02/02/2021: budgets: add missing source terms for SV budgets in LIMA !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS ! ------------ ! -USE MODD_PARAMETERS, ONLY : JPHEXT, JPVEXT USE MODD_CST, ONLY : XP00, XRD, XMV, XMD, XCPD, XCPV, XCL, XCI, & XTT, XLSTT, XLVTT, XALPI, XBETAI, XGAMI, & XALPW, XBETAW, XGAMW, XPI +USE MODD_NSV, ONLY : NSV_LIMA_NC, NSV_LIMA_NI, NSV_LIMA_IFN_FREE, NSV_LIMA_CCN_ACTI, NSV_LIMA_IFN_NUCL, NSV_LIMA_IMM_NUCL +USE MODD_PARAMETERS, ONLY : JPHEXT, JPVEXT USE MODD_PARAM_LIMA, ONLY : NMOD_IFN, NSPECIE, XFRAC, & NMOD_CCN, NMOD_IMM, NIND_SPECIE, NINDICE_CCN_IMM, & XDSI0, XRTMIN, XCTMIN, NPHILLIPS @@ -138,7 +140,6 @@ USE MODI_LIMA_PHILLIPS_INTEG ! USE MODD_BUDGET USE MODI_BUDGET -USE MODD_NSV, ONLY : NSV_LIMA_NC, NSV_LIMA_NI, NSV_LIMA_IFN_FREE ! ! IMPLICIT NONE @@ -482,12 +483,11 @@ IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:)*PRHODJ(:,:,:),6,'HIND_BU_RRV') IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9,'HIND_BU_RRI') IF (LBUDGET_SV) THEN - CALL BUDGET (PCIS(:,:,:)*PRHODJ(:,:,:),12+NSV_LIMA_NI,'HIND_BU_RSV') - IF (NMOD_IFN.GE.1) THEN - DO JL=1, NMOD_IFN - CALL BUDGET (PIFS(:,:,:,JL)*PRHODJ(:,:,:),12+NSV_LIMA_IFN_FREE+JL-1,'HIND_BU_RSV') - END DO - END IF + CALL BUDGET (PCIS(:,:,:)*PRHODJ(:,:,:),12+NSV_LIMA_NI,'HIND_BU_RSV') + DO JL=1, NMOD_IFN + CALL BUDGET (PIFS(:,:,:,JL)*PRHODJ(:,:,:),12+NSV_LIMA_IFN_FREE+JL-1,'HIND_BU_RSV') + CALL BUDGET (PINS(:,:,:,JL)*PRHODJ(:,:,:),12+NSV_LIMA_IFN_NUCL+JL-1,'HIND_BU_RSV') + END DO END IF END IF ! @@ -560,6 +560,12 @@ IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN IF (LBUDGET_SV) THEN CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:),12+NSV_LIMA_NC,'HINC_BU_RSV') CALL BUDGET (PCIS(:,:,:)*PRHODJ(:,:,:),12+NSV_LIMA_NI,'HINC_BU_RSV') + DO JL=1, NMOD_CCN + CALL BUDGET (PNAS(:,:,:,JL)*PRHODJ(:,:,:),12+NSV_LIMA_CCN_ACTI+JL-1,'HINC_BU_RSV') + END DO + DO JL=1, NMOD_IMM + CALL BUDGET (PNIS(:,:,:,JL)*PRHODJ(:,:,:),12+NSV_LIMA_IMM_NUCL+JL-1,'HINC_BU_RSV') + END DO END IF END IF ! diff --git a/src/MNH/lima_warm.f90 b/src/MNH/lima_warm.f90 index 01b4c413d081f414ddec6c8d8bf45777e04ea0e9..034c381301d9785968ed8e5e74c8ff6a7e424d3a 100644 --- a/src/MNH/lima_warm.f90 +++ b/src/MNH/lima_warm.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 2013-2020 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2013-2021 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. @@ -131,6 +131,7 @@ END MODULE MODI_LIMA_WARM ! B. Vié 03/02/2020: correction of activation of water deposition on the ground ! B. Vié 03/03/2020: use DTHRAD instead of dT/dt in Smax diagnostic computation ! P. Wautelet 28/05/2020: bugfix: correct array start for PSVT and PSVS +! P. Wautelet 02/02/2021: budgets: add missing source terms for SV budgets in LIMA !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -367,7 +368,8 @@ IF (LACTI .AND. NMOD_CCN.GE.1) THEN IF (LBUDGET_SV) THEN CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:),12+NSV_LIMA_NC,'HENU_BU_RSV') ! RCN DO JL=1, NMOD_CCN - CALL BUDGET ( ZNFS(:,:,:,JL)*PRHODJ(:,:,:),12+NSV_LIMA_CCN_FREE+JL-1,'HENU_BU_RSV') + CALL BUDGET ( ZNFS(:,:,:,JL)*PRHODJ(:,:,:),12+NSV_LIMA_CCN_FREE+JL-1,'HENU_BU_RSV') + CALL BUDGET ( ZNAS(:,:,:,JL)*PRHODJ(:,:,:),12+NSV_LIMA_CCN_ACTI+JL-1,'HENU_BU_RSV') END DO END IF !