From 518209e3c9e7bfbfc6d32c0ff575495dda7aceb0 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Thu, 4 Feb 2021 09:31:33 +0100 Subject: [PATCH] Philippe 04/02/2021: budgets: add IMLT source for IFN_NUCL budgets (cherry picked from commit 17e8e415dd6fd8011a99aa5136e9f37a17ee572d) --- src/MNH/ini_budget.f90 | 2 +- src/MNH/lima.f90 | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/MNH/ini_budget.f90 b/src/MNH/ini_budget.f90 index 9fac5a81c..3bae859ef 100644 --- a/src/MNH/ini_budget.f90 +++ b/src/MNH/ini_budget.f90 @@ -3733,7 +3733,7 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN YWORK2(12+JSV,ILAST_PROC_NBR)= 'HIND_' IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 END IF - IF (OPTSPLIT .OR. (OCOLD .AND. OWARM)) THEN + IF (OPTSPLIT .OR. (.NOT.OPTSPLIT .AND. 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 diff --git a/src/MNH/lima.f90 b/src/MNH/lima.f90 index a4ae853bb..97974b1d1 100644 --- a/src/MNH/lima.f90 +++ b/src/MNH/lima.f90 @@ -293,6 +293,7 @@ REAL, DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3)) :: & 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 +REAL, DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3),NIFN) :: ZTOT_IFNN_IMLT ! !For mixing-ratio splitting @@ -314,7 +315,7 @@ INTEGER :: INB_ITER_MAX INTEGER :: KRR INTEGER :: IIB, IIE, IIT, IJB, IJE, IJT, IKB, IKE, IKT, IKTB, IKTE ! loops and packing -INTEGER :: II, IPACK +INTEGER :: II, IPACK, JI INTEGER, DIMENSION(:), ALLOCATABLE :: I1, I2, I3 ! Inverse ov PTSTEP REAL :: ZINV_TSTEP @@ -390,6 +391,7 @@ IF(LBU_ENABLE) THEN ZTOT_TH_IMLT(:,:,:) = 0. ZTOT_RC_IMLT(:,:,:) = 0. ZTOT_CC_IMLT(:,:,:) = 0. + ZTOT_IFNN_IMLT(:,:,:,:) = 0. ZTOT_TH_HONC(:,:,:) = 0. ZTOT_RC_HONC(:,:,:) = 0. ZTOT_CC_HONC(:,:,:) = 0. @@ -1243,6 +1245,10 @@ DO WHILE(ANY(ZTIME(IIB:IIE,IJB:IJE,IKB:IKE)<PTSTEP)) ZTOT_TH_IMLT(I1(II),I2(II),I3(II)) = ZTOT_TH_IMLT(I1(II),I2(II),I3(II)) + Z_TH_IMLT(II) ZTOT_RC_IMLT(I1(II),I2(II),I3(II)) = ZTOT_RC_IMLT(I1(II),I2(II),I3(II)) + Z_RC_IMLT(II) ZTOT_CC_IMLT(I1(II),I2(II),I3(II)) = ZTOT_CC_IMLT(I1(II),I2(II),I3(II)) + Z_CC_IMLT(II) + DO JI = 1, NMOD_IFN + ZTOT_IFNN_IMLT(I1(II),I2(II),I3(II),JI) = ZTOT_IFNN_IMLT(I1(II),I2(II),I3(II),JI) + ZB_IFNN(II,JI) + END DO + ! Tendencies ZTOT_TH_HONC(I1(II),I2(II),I3(II)) = ZTOT_TH_HONC(I1(II),I2(II),I3(II)) + Z_TH_HONC(II) * ZMAXTIME(II) ZTOT_RC_HONC(I1(II),I2(II),I3(II)) = ZTOT_RC_HONC(I1(II),I2(II),I3(II)) + Z_RC_HONC(II) * ZMAXTIME(II) @@ -1767,6 +1773,11 @@ IF(LBU_ENABLE) THEN 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') + + DO II=1,NMOD_IFN + ZIFNNS(:,:,:,II) = ZIFNNS(:,:,:,II) + ZTOT_IFNN_IMLT(:,:,:,II)/PTSTEP + CALL BUDGET (ZIFNNS(:,:,:,II)*PRHODJ(:,:,:), 12+NSV_LIMA_IFN_NUCL+II-1, 'IMLT_BU_RSV') + END DO 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) -- GitLab