From 70859f1347dbfacab2d34677a3d9fefd3558c150 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Riette?= <sebastien.riette@meteo.fr> Date: Tue, 15 Mar 2022 17:14:01 +0100 Subject: [PATCH] =?UTF-8?q?S=C3=A9bastien=20Riette=2015/03/2022=20REPRO48/?= =?UTF-8?q?55=20for=20hail=20option?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hail and graupel (with ICE4 option) budgets was wrong in the initial commit and different, but still wrong, in the previsous commit. Bug correction in fast_rh protected by a REPRO48 macro --- src/common/micro/mode_ice4_fast_rh.F90 | 4 ++++ src/common/micro/rain_ice.F90 | 21 ++++++++++++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/common/micro/mode_ice4_fast_rh.F90 b/src/common/micro/mode_ice4_fast_rh.F90 index dec2b1da5..f95db3691 100644 --- a/src/common/micro/mode_ice4_fast_rh.F90 +++ b/src/common/micro/mode_ice4_fast_rh.F90 @@ -438,7 +438,11 @@ ENDIF DO JL=1, KSIZE ZDRYH(JL) = ZHAIL(JL) * & & MAX(0., -SIGN(1., PT(JL)-CST%XTT)) * & ! WHERE(PT(:)<XTT) +#ifdef REPRO48 + & MAX(0., -SIGN(1., -ZRDRYH_INIT(JL))) * & !WHERE(ZRDRYH_INIT(:)>0.) +#else & MAX(0., -SIGN(1., 1.E-20-ZRDRYH_INIT(JL))) * & !WHERE(ZRDRYH_INIT(:)>0.) +#endif & MAX(0., -SIGN(1., MAX(0., ZRDRYH_INIT(JL)-PRH_TEND(JL, IRIDRYH)-PRH_TEND(JL, IRSDRYH)) - & &MAX(0., ZRWETH_INIT(JL)-PRH_TEND(JL, IRIWETH)-PRH_TEND(JL, IRSWETH)))) ENDDO diff --git a/src/common/micro/rain_ice.F90 b/src/common/micro/rain_ice.F90 index 190701ef6..24b643ade 100644 --- a/src/common/micro/rain_ice.F90 +++ b/src/common/micro/rain_ice.F90 @@ -1423,16 +1423,21 @@ IF(BUCONF%LBU_ENABLE) THEN IF (BUCONF%LBUDGET_RR) CALL BUDGET_STORE_ADD(TBUDGETS(NBUDGET_RR), 'WETH', -ZW2(:, :, :) *PRHODJ(:, :, :)) IF (BUCONF%LBUDGET_RI) CALL BUDGET_STORE_ADD(TBUDGETS(NBUDGET_RI), 'WETH', -ZW3(:, :, :) *PRHODJ(:, :, :)) IF (BUCONF%LBUDGET_RS) CALL BUDGET_STORE_ADD(TBUDGETS(NBUDGET_RS), 'WETH', -ZW4(:, :, :) *PRHODJ(:, :, :)) +#ifdef REPRO48 +#else IF (BUCONF%LBUDGET_RG) CALL BUDGET_STORE_ADD(TBUDGETS(NBUDGET_RG), 'WETH', -ZW5(:, :, :) *PRHODJ(:, :, :)) +#endif IF (BUCONF%LBUDGET_RH) CALL BUDGET_STORE_ADD(TBUDGETS(NBUDGET_RH), 'WETH', (ZW1(:, :, :)+ZW2(:, :, :)+ZW3(:, :, :)+ & &ZW4(:, :, :)+ZW5(:, :, : )) *PRHODJ(:, :, :)) +#if defined(REPRO48) || defined(REPRO55) ZW(:,:,:) = 0. DO JL=1, KSIZE ZW(I1TOT(JL), I2TOT(JL), I3TOT(JL)) = ZTOT_RGWETH(JL) * ZINV_TSTEP END DO - IF (BUCONF%LBUDGET_RG) CALL BUDGET_STORE_ADD(TBUDGETS(NBUDGET_RG), 'HGCV', -ZW(:, :, :)*PRHODJ(:, :, :)) + IF (BUCONF%LBUDGET_RG) CALL BUDGET_STORE_ADD(TBUDGETS(NBUDGET_RG), 'HGCV', (-ZW5(:, :, :)-ZW(:, :, :))*PRHODJ(:, :, :)) IF (BUCONF%LBUDGET_RH) CALL BUDGET_STORE_ADD(TBUDGETS(NBUDGET_RH), 'HGCV', ZW(:, :, :)*PRHODJ(:, :, :)) +#endif ZW1(:,:,:) = 0. DO JL=1, KSIZE @@ -1455,9 +1460,12 @@ IF(BUCONF%LBU_ENABLE) THEN ZW5(I1TOT(JL), I2TOT(JL), I3TOT(JL)) = ZTOT_RGDRYH(JL) * ZINV_TSTEP END DO ZW6(:,:,:) = 0. +#if defined(REPRO48) || defined(REPRO55) + !ZW6 must be removed when REPRO48 will be suppressed DO JL=1, KSIZE ZW6(I1TOT(JL), I2TOT(JL), I3TOT(JL)) = ZTOT_RDRYHG(JL) * ZINV_TSTEP END DO +#endif IF (BUCONF%LBUDGET_TH) & CALL BUDGET_STORE_ADD(TBUDGETS(NBUDGET_TH), 'DRYH', (ZW1(:, :, :)+ZW2(:, :, :))*ZZ_DIFF(:, :, :)*PRHODJ(:, :, :)) IF (BUCONF%LBUDGET_RC) CALL BUDGET_STORE_ADD(TBUDGETS(NBUDGET_RC), 'DRYH', -ZW1(:, :, :) *PRHODJ(:, :, :)) @@ -1469,6 +1477,17 @@ IF(BUCONF%LBU_ENABLE) THEN &ZW4(:, :, :)+ZW5(:, :, : )-ZW6(:, :, :)) & & *PRHODJ(:, :, :)) +#if defined(REPRO48) || defined(REPRO55) +#else + !When REPRO48 will be suppressed, ZW6 must be removed + ZW(:,:,:) = 0. + DO JL=1, KSIZE + ZW(I1TOT(JL), I2TOT(JL), I3TOT(JL)) = ZTOT_RDRYHG(JL) * ZINV_TSTEP + END DO + IF (BUCONF%LBUDGET_RG) CALL BUDGET_STORE_ADD(TBUDGETS(NBUDGET_RG), 'HGCV', -ZW(:, :, :)*PRHODJ(:, :, :)) + IF (BUCONF%LBUDGET_RH) CALL BUDGET_STORE_ADD(TBUDGETS(NBUDGET_RH), 'HGCV', ZW(:, :, :)*PRHODJ(:, :, :)) +#endif + ZW(:,:,:) = 0. DO JL=1, KSIZE ZW(I1TOT(JL), I2TOT(JL), I3TOT(JL)) = ZTOT_RHMLTR(JL) * ZINV_TSTEP -- GitLab