diff --git a/src/MNH/ini_budget.f90 b/src/MNH/ini_budget.f90 index 5a18aeef519d95e25087fa51a3cd1b926f0cc184..9fac5a81cda20d854f8983efe975a0977e47dc07 100644 --- a/src/MNH/ini_budget.f90 +++ b/src/MNH/ini_budget.f90 @@ -170,6 +170,7 @@ END MODULE MODI_INI_BUDGET ! 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 +! P. Wautelet 03/02/2021: budgets: add new source if LIMA splitting: CORR2 !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -1232,6 +1233,8 @@ IF (LBU_RRV) THEN IF (OPTSPLIT .OR. (OCOLD .AND. OSNOW)) IPROACTV(6,IPROC) = NDEPSRV IPROC=IPROC+1 IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW)) IPROACTV(6,IPROC) = NDEPGRV + IPROC=IPROC+1 + IF (OPTSPLIT) IPROACTV(6,IPROC) = NCORR2RV IPROC=IPROC+1 IPROACTV(6,IPROC) = NCEDSRV IPROC=IPROC+1 @@ -1322,6 +1325,8 @@ IF (HCLOUD == 'LIMA') THEN IPROC=IPROC+1 YWORK2(6,IPROC) = 'DEPG_' IPROC=IPROC+1 + YWORK2(6,IPROC) = 'CORR2_' + IPROC=IPROC+1 YWORK2(6,IPROC) = 'CEDS_' ELSE YWORK2(6,IPROC) = 'ADJU_' @@ -1450,6 +1455,8 @@ IF (LBU_RRC) THEN IPROC=IPROC+1 IF (OPTSPLIT) IPROACTV(7,IPROC) = NCVRCRC IPROC=IPROC+1 + IF (OPTSPLIT) IPROACTV(7,IPROC) = NCORR2RC + IPROC=IPROC+1 IF (.NOT.OPTSPLIT .AND. OHAIL) IPROACTV(7,IPROC) = NWETHRC IPROC=IPROC+1 IPROACTV(7,IPROC) = NCEDSRC @@ -1588,6 +1595,8 @@ END IF IPROC=IPROC+1 YWORK2(7,IPROC) = 'CVRC_' IPROC=IPROC+1 + YWORK2(7,IPROC) = 'CORR2_' + IPROC=IPROC+1 YWORK2(7,IPROC) = 'WETH_' IPROC=IPROC+1 YWORK2(7,IPROC) = 'CEDS_' @@ -1715,6 +1724,8 @@ IF (LBU_RRR) THEN IPROC=IPROC+1 IF (OPTSPLIT) IPROACTV(8,IPROC) = NCVRCRR IPROC=IPROC+1 + IF (OPTSPLIT) IPROACTV(8,IPROC) = NCORR2RR + IPROC=IPROC+1 IF (.NOT.OPTSPLIT .AND. OHAIL) IPROACTV(8,IPROC) = NWETHRR IPROC=IPROC+1 IF (.NOT.OPTSPLIT .AND. OHAIL) IPROACTV(8,IPROC) = NHMLTRR @@ -1829,6 +1840,8 @@ IF (HCLOUD == 'LIMA') THEN IPROC=IPROC+1 YWORK2(8,IPROC) = 'CVRC_' IPROC=IPROC+1 + YWORK2(8,IPROC) = 'CORR2_' + IPROC=IPROC+1 YWORK2(8,IPROC) = 'WETH_' IPROC=IPROC+1 YWORK2(8,IPROC) = 'HMLT_' @@ -1980,6 +1993,8 @@ IF (LBU_RRI) THEN IPROC=IPROC+1 IF (OPTSPLIT .OR. (OCOLD .AND. OWARM .AND. OSNOW)) IPROACTV(9,IPROC) = NHMGRI IPROC=IPROC+1 + IF (OPTSPLIT) IPROACTV(9,IPROC) = NCORR2RI + IPROC=IPROC+1 IF (.NOT.OPTSPLIT .AND. OHAIL) IPROACTV(9,IPROC) = NWETHRI IPROC=IPROC+1 IPROACTV(9,IPROC) = NCEDSRI @@ -2087,6 +2102,8 @@ IF (LBU_RRI) THEN IPROC= IPROC+1 YWORK2(9,IPROC) = 'HMG_' IPROC= IPROC+1 + YWORK2(9,IPROC) = 'CORR2_' + IPROC= IPROC+1 YWORK2(9,IPROC) = 'WETH_' IPROC= IPROC+1 YWORK2(9,IPROC) = 'CEDS_' @@ -3290,6 +3307,9 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'CVRC_' IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + ILAST_PROC_NBR = ILAST_PROC_NBR + 1 + YWORK2(12+JSV,ILAST_PROC_NBR)= 'CORR2_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 END IF IF (.NOT.OPTSPLIT .AND. OHAIL) THEN ILAST_PROC_NBR = ILAST_PROC_NBR + 1 @@ -3394,6 +3414,9 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'CVRC_' IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + ILAST_PROC_NBR = ILAST_PROC_NBR + 1 + YWORK2(12+JSV,ILAST_PROC_NBR)= 'CORR2_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 END IF IF (.NOT.OPTSPLIT .AND. OHAIL) THEN ILAST_PROC_NBR = ILAST_PROC_NBR + 1 @@ -3619,6 +3642,11 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN YWORK2(12+JSV,ILAST_PROC_NBR)= 'HMG_' IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 END IF + IF (OPTSPLIT) THEN + ILAST_PROC_NBR = ILAST_PROC_NBR + 1 + YWORK2(12+JSV,ILAST_PROC_NBR)= 'CORR2_' + IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 + END IF IF (.NOT.OPTSPLIT .AND. OHAIL) THEN ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'WETH_' diff --git a/src/MNH/lima.f90 b/src/MNH/lima.f90 index 9b11af0aaffb8eea18a0480fcab9f5d5e70c11f3..a4ae853bb0e0baba41390e51f8d838eb672259be 100644 --- a/src/MNH/lima.f90 +++ b/src/MNH/lima.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. @@ -101,6 +101,7 @@ END MODULE MODI_LIMA ! P. Wautelet 26/02/2020: bugfix: corrected condition to write budget CORR_BU_RRS ! 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 03/02/2021: budgets: add new source if LIMA splitting: CORR2 !----------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -239,7 +240,9 @@ REAL, DIMENSION(:), ALLOCATABLE :: & Z_RC_WETH, Z_CC_WETH, Z_RR_WETH, Z_CR_WETH, & ! wet growth of hail (WETH) : rc, Nc, rr, Nr, ri, Ni, rs, rg, rh, th Z_RI_WETH, Z_CI_WETH, Z_RS_WETH, Z_RG_WETH, Z_RH_WETH, & ! wet growth of hail (WETH) : rc, Nc, rr, Nr, ri, Ni, rs, rg, rh, th Z_RG_COHG, & ! conversion of hail into graupel (COHG) : rg, rh - Z_RR_HMLT, Z_CR_HMLT ! hail melting (HMLT) : rr, Nr, rh=-rr, th + Z_RR_HMLT, Z_CR_HMLT, & ! hail melting (HMLT) : rr, Nr, rh=-rr, th + Z_RV_CORR2, Z_RC_CORR2, Z_RR_CORR2, Z_RI_CORR2, & + Z_CC_CORR2, Z_CR_CORR2, Z_CI_CORR2 ! ! for the conversion from rain to cloud, we need a 3D variable instead of a 1D packed variable REAL, DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3)) :: & @@ -287,13 +290,14 @@ REAL, DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3)) :: & ZTOT_RI_WETH, ZTOT_CI_WETH, ZTOT_RS_WETH, ZTOT_RG_WETH, ZTOT_RH_WETH, & ! wet growth of hail (WETH) ZTOT_RG_COHG, & ! conversion of hail into graupel (COHG) ZTOT_RR_HMLT, ZTOT_CR_HMLT, & ! hail melting (HMLT) - ZTOT_RR_CVRC, ZTOT_CR_CVRC ! conversion of rain into cloud droplets if diameter too small + ZTOT_RR_CVRC, ZTOT_CR_CVRC, & ! conversion of rain into cloud droplets if diameter too small + ZTOT_RV_CORR2, ZTOT_RC_CORR2, ZTOT_RR_CORR2, ZTOT_RI_CORR2, & + ZTOT_CC_CORR2, ZTOT_CR_CORR2, ZTOT_CI_CORR2 ! !For mixing-ratio splitting REAL, DIMENSION(SIZE(PRT,1),SIZE(PRT,2),SIZE(PRT,3)) :: Z0RVT, Z0RCT, Z0RRT, Z0RIT, Z0RST, Z0RGT, Z0RHT -REAL, DIMENSION(:), ALLOCATABLE :: Z0RVT1D, Z0RCT1D, Z0RRT1D, Z0RIT1D, Z0RST1D, Z0RGT1D, Z0RHT1D - +REAL, DIMENSION(:), ALLOCATABLE :: Z0RVT1D, Z0RCT1D, Z0RRT1D, Z0RIT1D, Z0RST1D, Z0RGT1D, Z0RHT1D ! ! Loop control variables REAL, DIMENSION(SIZE(PRT,1),SIZE(PRT,2),SIZE(PRT,3)) :: ZTIME, ZTIME_LASTCALL, IITER @@ -471,6 +475,14 @@ IF(LBU_ENABLE) THEN ZTOT_CR_HMLT(:,:,:) = 0. ZTOT_RR_CVRC(:,:,:) = 0. ZTOT_CR_CVRC(:,:,:) = 0. + + ZTOT_RV_CORR2(:,:,:) = 0. + ZTOT_RC_CORR2(:,:,:) = 0. + ZTOT_RR_CORR2(:,:,:) = 0. + ZTOT_RI_CORR2(:,:,:) = 0. + ZTOT_CC_CORR2(:,:,:) = 0. + ZTOT_CR_CORR2(:,:,:) = 0. + ZTOT_CI_CORR2(:,:,:) = 0. END IF ! ! Initial values computed as source * PTSTEP @@ -937,6 +949,13 @@ DO WHILE(ANY(ZTIME(IIB:IIE,IJB:IJE,IKB:IKE)<PTSTEP)) ALLOCATE(Z_RR_GMLT(IPACK)) ; Z_RR_GMLT = 0. ALLOCATE(Z_CR_GMLT(IPACK)) ; Z_CR_GMLT = 0. + ALLOCATE(Z_RV_CORR2(IPACK)) ; Z_RV_CORR2 = 0. + ALLOCATE(Z_RC_CORR2(IPACK)) ; Z_RC_CORR2 = 0. + ALLOCATE(Z_RR_CORR2(IPACK)) ; Z_RR_CORR2 = 0. + ALLOCATE(Z_RI_CORR2(IPACK)) ; Z_RI_CORR2 = 0. + ALLOCATE(Z_CC_CORR2(IPACK)) ; Z_CC_CORR2 = 0. + ALLOCATE(Z_CR_CORR2(IPACK)) ; Z_CR_CORR2 = 0. + ALLOCATE(Z_CI_CORR2(IPACK)) ; Z_CI_CORR2 = 0. ! !*** 4.1 Tendecies computation ! @@ -1143,7 +1162,6 @@ DO WHILE(ANY(ZTIME(IIB:IIE,IJB:IJE,IKB:IKE)<PTSTEP)) ZRGT1D = ZRGT1D + ZA_RG(:) * ZMAXTIME(:) + ZB_RG(:) ZRHT1D = ZRHT1D + ZA_RH(:) * ZMAXTIME(:) + ZB_RH(:) ! - DO II=1,NMOD_IFN ZIFNN1D(:,II) = ZIFNN1D(:,II) + ZB_IFNN(:,II) END DO @@ -1151,16 +1169,28 @@ DO WHILE(ANY(ZTIME(IIB:IIE,IJB:IJE,IKB:IKE)<PTSTEP)) !*** 4.5 ! WHERE (ZRCT1D .LE. XRTMIN(2)) + Z_RV_CORR2(:) = ZRCT1D(:) + Z_RC_CORR2(:) = -ZRCT1D(:) + Z_CC_CORR2(:) = -ZCCT1D(:) + ZRVT1D = ZRVT1D + ZRCT1D ZRCT1D = 0. ZCCT1D = 0. END WHERE WHERE (ZRRT1D .LE. XRTMIN(3)) + Z_RV_CORR2(:) = Z_RV_CORR2(:) + ZRRT1D(:) + Z_RR_CORR2(:) = -ZRRT1D(:) + Z_CR_CORR2(:) = -ZCRT1D(:) + ZRVT1D = ZRVT1D + ZRRT1D ZRRT1D = 0. ZCRT1D = 0. END WHERE WHERE (ZRIT1D .LE. XRTMIN(4)) + Z_RV_CORR2(:) = Z_RV_CORR2(:) + ZRIT1D(:) + Z_RI_CORR2(:) = -ZRIT1D(:) + Z_CI_CORR2(:) = -ZCIT1D(:) + ZRVT1D = ZRVT1D + ZRIT1D ZRIT1D = 0. ZCIT1D = 0. @@ -1294,6 +1324,15 @@ DO WHILE(ANY(ZTIME(IIB:IIE,IJB:IJE,IKB:IKE)<PTSTEP)) !!$ ZTOT_RG_COHG(I1(II),I2(II),I3(II)) = ZTOT_RG_COHG(I1(II),I2(II),I3(II)) + Z_RG_COHG(II) * ZMAXTIME(II) !!$ ZTOT_RR_HMLT(I1(II),I2(II),I3(II)) = ZTOT_RR_HMLT(I1(II),I2(II),I3(II)) + Z_RR_HMLT(II) * ZMAXTIME(II) !!$ ZTOT_CR_HMLT(I1(II),I2(II),I3(II)) = ZTOT_CR_HMLT(I1(II),I2(II),I3(II)) + Z_CR_HMLT(II) * ZMAXTIME(II) + + !Correction term + ZTOT_RV_CORR2(I1(II),I2(II),I3(II)) = ZTOT_RV_CORR2(I1(II),I2(II),I3(II)) + Z_RV_CORR2(II) + ZTOT_RC_CORR2(I1(II),I2(II),I3(II)) = ZTOT_RC_CORR2(I1(II),I2(II),I3(II)) + Z_RC_CORR2(II) + ZTOT_RR_CORR2(I1(II),I2(II),I3(II)) = ZTOT_RR_CORR2(I1(II),I2(II),I3(II)) + Z_RR_CORR2(II) + ZTOT_RI_CORR2(I1(II),I2(II),I3(II)) = ZTOT_RI_CORR2(I1(II),I2(II),I3(II)) + Z_RI_CORR2(II) + ZTOT_CC_CORR2(I1(II),I2(II),I3(II)) = ZTOT_CC_CORR2(I1(II),I2(II),I3(II)) + Z_CC_CORR2(II) + ZTOT_CR_CORR2(I1(II),I2(II),I3(II)) = ZTOT_CR_CORR2(I1(II),I2(II),I3(II)) + Z_CR_CORR2(II) + ZTOT_CI_CORR2(I1(II),I2(II),I3(II)) = ZTOT_CI_CORR2(I1(II),I2(II),I3(II)) + Z_CI_CORR2(II) END DO ENDIF ! @@ -1434,7 +1473,15 @@ DO WHILE(ANY(ZTIME(IIB:IIE,IJB:IJE,IKB:IKE)<PTSTEP)) DEALLOCATE(Z_TH_GMLT) DEALLOCATE(Z_RR_GMLT) DEALLOCATE(Z_CR_GMLT) - ! + + DEALLOCATE(Z_RV_CORR2) + DEALLOCATE(Z_RC_CORR2) + DEALLOCATE(Z_RR_CORR2) + DEALLOCATE(Z_RI_CORR2) + DEALLOCATE(Z_CC_CORR2) + DEALLOCATE(Z_CR_CORR2) + DEALLOCATE(Z_CI_CORR2) + ! ENDDO ENDDO ! @@ -1507,6 +1554,8 @@ IF(LBU_ENABLE) THEN CALL BUDGET (ZRVS(:,:,:)*PRHODJ(:,:,:), 6 , 'DEPS_BU_RRV') ZRVS(:,:,:) = ZRVS(:,:,:) - ZTOT_RG_DEPG(:,:,:)/PTSTEP CALL BUDGET (ZRVS(:,:,:)*PRHODJ(:,:,:), 6 , 'DEPG_BU_RRV') + ZRVS(:,:,:) = ZRVS(:,:,:) + ZTOT_RV_CORR2(:,:,:)/PTSTEP + CALL BUDGET (ZRVS(:,:,:)*PRHODJ(:,:,:), 6 , 'CORR2_BU_RRV') END IF IF (LBUDGET_RC) THEN @@ -1531,6 +1580,8 @@ IF(LBU_ENABLE) THEN CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:), 7 , 'DRYG_BU_RRC') ZRCS(:,:,:) = ZRCS(:,:,:) - ZTOT_RR_CVRC(:,:,:)/PTSTEP CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:), 7 , 'CVRC_BU_RRC') + ZRCS(:,:,:) = ZRCS(:,:,:) + ZTOT_RC_CORR2(:,:,:)/PTSTEP + CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:), 7 , 'CORR2_BU_RRC') END IF IF (LBUDGET_RR) THEN @@ -1554,6 +1605,8 @@ IF(LBU_ENABLE) THEN CALL BUDGET (ZRRS(:,:,:)*PRHODJ(:,:,:), 8 , 'GMLT_BU_RRR') ZRRS(:,:,:) = ZRRS(:,:,:) + ZTOT_RR_CVRC(:,:,:)/PTSTEP CALL BUDGET (ZRRS(:,:,:)*PRHODJ(:,:,:), 8 , 'CVRC_BU_RRR') + ZRRS(:,:,:) = ZRRS(:,:,:) + ZTOT_RR_CORR2(:,:,:)/PTSTEP + CALL BUDGET (ZRRS(:,:,:)*PRHODJ(:,:,:), 8 , 'CORR2_BU_RRR') END IF IF (LBUDGET_RI) THEN @@ -1579,6 +1632,8 @@ IF(LBU_ENABLE) THEN CALL BUDGET (ZRIS(:,:,:)*PRHODJ(:,:,:), 9 , 'DRYG_BU_RRI') ZRIS(:,:,:) = ZRIS(:,:,:) + ZTOT_RI_HMG(:,:,:)/PTSTEP CALL BUDGET (ZRIS(:,:,:)*PRHODJ(:,:,:), 9 , 'HMG_BU_RRI') + ZRIS(:,:,:) = ZRIS(:,:,:) + ZTOT_RI_CORR2(:,:,:)/PTSTEP + CALL BUDGET (ZRIS(:,:,:)*PRHODJ(:,:,:), 9 , 'CORR2_BU_RRI') END IF IF (LBUDGET_RS) THEN @@ -1657,6 +1712,8 @@ IF(LBU_ENABLE) THEN CALL BUDGET (ZCCS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NC , 'DRYG_BU_RSV') ZCCS(:,:,:) = ZCCS(:,:,:) - ZTOT_CR_CVRC(:,:,:)/PTSTEP CALL BUDGET (ZCCS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NC , 'CVRC_BU_RSV') + ZCCS(:,:,:) = ZCCS(:,:,:) + ZTOT_CC_CORR2(:,:,:)/PTSTEP + CALL BUDGET (ZCCS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NC , 'CORR2_BU_RSV') ! ! Rain drops ! @@ -1683,6 +1740,8 @@ IF(LBU_ENABLE) THEN CALL BUDGET (ZCRS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NR , 'GMLT_BU_RSV') ZCRS(:,:,:) = ZCRS(:,:,:) + ZTOT_CR_CVRC(:,:,:)/PTSTEP CALL BUDGET (ZCRS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NR , 'CVRC_BU_RSV') + ZCRS(:,:,:) = ZCRS(:,:,:) + ZTOT_CR_CORR2(:,:,:)/PTSTEP + CALL BUDGET (ZCRS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NR , 'CORR2_BU_RSV') ! ! Ice crystals ! @@ -1706,6 +1765,8 @@ IF(LBU_ENABLE) THEN CALL BUDGET (ZCIS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NI , 'DRYG_BU_RSV') ZCIS(:,:,:) = ZCIS(:,:,:) + ZTOT_CI_HMG(:,:,:)/PTSTEP CALL BUDGET (ZCIS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NI , 'HMG_BU_RSV') + ZCIS(:,:,:) = ZCIS(:,:,:) + ZTOT_CI_CORR2(:,:,:)/PTSTEP + CALL BUDGET (ZCIS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NI , 'CORR2_BU_RSV') END IF !!$ ZTOT_RC_EVAP(I1(II),I2(II),I3(II)) = ZTOT_RC_EVAP(I1(II),I2(II),I3(II)) + Z_RC_EVAP(II) * ZMAXTIME(II) !!$ ZTOT_CC_EVAP(I1(II),I2(II),I3(II)) = ZTOT_CC_EVAP(I1(II),I2(II),I3(II)) + Z_CC_EVAP(II) * ZMAXTIME(II) diff --git a/src/MNH/modd_budget.f90 b/src/MNH/modd_budget.f90 index 15d0bf3938f7e08bdcaad5669a6bf752c6b5bc68..7f7d64494605b50ff99e2c06ecb3d55c84f85f5f 100644 --- a/src/MNH/modd_budget.f90 +++ b/src/MNH/modd_budget.f90 @@ -46,6 +46,7 @@ ! B. Vié 03/02/2020: LIMA negativity checks after turbulence, advection and microphysics budgets ! P. Wautelet 30/06/2020: add NNETURSV, NNEADVSV and NNECONSV variables ! P. Wautelet 01/02/2021: add missing source: VISC +! P. Wautelet 03/02/2021: budgets: add new source if LIMA splitting: CORR2 !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -349,6 +350,7 @@ INTEGER, SAVE :: NCORRRV ! tendencies correction after ICE3 INTEGER, SAVE :: NHINDRV ! Heterogeneous Nucleation by Deposition LIMA INTEGER, SAVE :: NHONHRV ! Haze Homogeneous Nucleation LIMA INTEGER, SAVE :: NCEDSRV ! adjustement +INTEGER, SAVE :: NCORR2RV ! Correction in LIMA splitting ! ! Allowed processes for the budget of moist variable RRC (cloud water) ! @@ -395,6 +397,7 @@ INTEGER, SAVE :: NREVARC ! evaporation of rain drops INTEGER, SAVE :: NCORRRC ! rain <-> cloud transfer at the beginning of LIMA INTEGER, SAVE :: NR2C1RC ! rain -> cloud change after sedimentation in LIMA INTEGER, SAVE :: NCVRCRC ! rain -> cloud change after other microphysical processes in LIMA +INTEGER, SAVE :: NCORR2RC ! Correction in LIMA splitting ! ! Allowed processes for the budget of moist variable RRR (rain water) ! @@ -431,6 +434,7 @@ INTEGER, SAVE :: NCORRRR ! tendencies correction after ICE3 INTEGER, SAVE :: NHONRRR ! drop homogeneous nucleation LIMA INTEGER, SAVE :: NR2C1RR ! rain -> cloud change after sedimentation in LIMA INTEGER, SAVE :: NCVRCRR ! rain -> cloud change after other microphysical processes in LIMA +INTEGER, SAVE :: NCORR2RR ! Correction in LIMA splitting ! ! Allowed processes for the budget of moist variable RRI (ice) ! @@ -476,6 +480,7 @@ INTEGER, SAVE :: NHMSRI ! Hallett-Mossop ice multiplication process due to snow INTEGER, SAVE :: NHMGRI ! Hallett-Mossop ice multiplication process due to graupel riming LIMA INTEGER, SAVE :: NCEDSRI ! adjustement LIMA INTEGER, SAVE :: NCORRRI ! ice <-> snow transfer at the beginning of LIMA +INTEGER, SAVE :: NCORR2RI ! Correction in LIMA splitting ! ! Allowed processes for the budget of moist variable RRS (snow) !