From 18f936796fe1173db7d0adb3ae3955df4e5a55a8 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 15 Nov 2019 14:48:42 +0100 Subject: [PATCH] Philippe 15/11/2019: use NBUDGET_* parameters to identify all budget indices (continued) --- src/MNH/endstep.f90 | 8 ++++---- src/MNH/ini_budget.f90 | 28 ++++++++++++++-------------- src/MNH/les_budget.f90 | 22 +++++++++++----------- 3 files changed, 29 insertions(+), 29 deletions(-) diff --git a/src/MNH/endstep.f90 b/src/MNH/endstep.f90 index f5b1244bf..d29f434ea 100644 --- a/src/MNH/endstep.f90 +++ b/src/MNH/endstep.f90 @@ -514,8 +514,8 @@ END IF !* 10. STORAGE IN BUDGET ARRAYS ! IF (LBU_ENABLE) THEN - NBUPROCCTR(1:12+KSV)=3 - NBUCTR_ACTV(1:12+KSV)=3 + NBUPROCCTR (1 : NBUDGET_SV1 - 1 + KSV ) = 3 + NBUCTR_ACTV(1 : NBUDGET_SV1 - 1 + KSV ) = 3 ! IF (LBUDGET_U) CALL BUDGET( PUT(:,:,:) * PRHODJ(:,:,:) / PTSTEP, NBUDGET_U, 'AVEF_BU_RU' ) IF (LBUDGET_V) CALL BUDGET( PVT(:,:,:) * PRHODJ(:,:,:) / PTSTEP, NBUDGET_V, 'AVEF_BU_RV' ) @@ -535,8 +535,8 @@ IF (LBU_ENABLE) THEN END DO END IF ! - NBUPROCCTR(1:12+KSV)=2 - NBUCTR_ACTV(1:12+KSV)=2 + NBUPROCCTR (1 : NBUDGET_SV1 - 1 + KSV ) = 2 + NBUCTR_ACTV(1 : NBUDGET_SV1 - 1 + KSV ) = 2 ! IF (LBUDGET_U) CALL BUDGET( PUS * MXM(PRHODJ) / PTSTEP, NBUDGET_U, 'ENDF_BU_RU' ) IF (LBUDGET_V) CALL BUDGET( PVS * MYM(PRHODJ) / PTSTEP, NBUDGET_V, 'ENDF_BU_RV' ) diff --git a/src/MNH/ini_budget.f90 b/src/MNH/ini_budget.f90 index 6f188f7ef..21bd6fe45 100644 --- a/src/MNH/ini_budget.f90 +++ b/src/MNH/ini_budget.f90 @@ -2740,7 +2740,7 @@ DO JI=1,JPBUMAX ! loop over the allowed budgets YSTRING = ADJUSTL( YEND_COMMENT(JI) ) ILEN = LEN_TRIM(YSTRING) IF( ILEN /= 0 ) THEN - IF( JI <= 12 ) THEN + IF( JI < NBUDGET_SV1 ) THEN WRITE (UNIT=KLUOUT,FMT='(/,"budget ",A7," with ",I2," vectors")') & YSTRING(1:ILEN),NBUPROCNBR(JI) DO JJ=1,3 @@ -2756,7 +2756,7 @@ DO JI=1,JPBUMAX ! loop over the allowed budgets ELSE WRITE (UNIT=KLUOUT, & FMT='(/,"budget ",A7," (number ",I3,") with ",I2," vectors")') & - YSTRING(1:ILEN),JI-12,NBUPROCNBR(JI) + YSTRING(1:ILEN),JI-NBUDGET_SV1+1,NBUPROCNBR(JI) DO JJ=1,3 YSTRING = CBUCOMMENT(JI,JJ) ILEN = LEN_TRIM(YSTRING) @@ -2802,21 +2802,21 @@ ENDIF !* 5. ALLOCATE MEMORY FOR BUDGET STORAGE ARRAYS ! ----------------------------------------- IF (LBU_RU) THEN - ALLOCATE ( XBURU(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(1)) ) + ALLOCATE ( XBURU(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_U)) ) XBURU(:,:,:,:)=0. ALLOCATE ( XBURHODJU(IBUDIM1, IBUDIM2, IBUDIM3) ) XBURHODJU(:,:,:)=0. END IF ! IF (LBU_RV) THEN - ALLOCATE ( XBURV(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(2)) ) + ALLOCATE ( XBURV(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_V)) ) XBURV(:,:,:,:)=0. ALLOCATE ( XBURHODJV(IBUDIM1, IBUDIM2, IBUDIM3) ) XBURHODJV(:,:,:)=0. END IF ! IF (LBU_RW) THEN - ALLOCATE ( XBURW(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(3)) ) + ALLOCATE ( XBURW(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_W)) ) XBURW(:,:,:,:)=0. ALLOCATE ( XBURHODJW(IBUDIM1, IBUDIM2, IBUDIM3) ) XBURHODJW(:,:,:)=0. @@ -2829,47 +2829,47 @@ IF (LBU_RTH .OR. LBU_RTKE .OR. LBU_RRV .OR. LBU_RRC .OR. LBU_RRR .OR. & END IF ! IF (LBU_RTH) THEN - ALLOCATE ( XBURTH(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(4)) ) + ALLOCATE ( XBURTH(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_TH)) ) XBURTH(:,:,:,:)=0. END IF ! IF (LBU_RTKE) THEN - ALLOCATE ( XBURTKE(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(5)) ) + ALLOCATE ( XBURTKE(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_TKE)) ) XBURTKE(:,:,:,:)=0. END IF ! IF (LBU_RRV) THEN - ALLOCATE ( XBURRV(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(6)) ) + ALLOCATE ( XBURRV(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RV)) ) XBURRV(:,:,:,:)=0. END IF ! IF (LBU_RRC) THEN - ALLOCATE ( XBURRC(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(7)) ) + ALLOCATE ( XBURRC(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RC)) ) XBURRC(:,:,:,:)=0. END IF ! IF (LBU_RRR) THEN - ALLOCATE ( XBURRR(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(8)) ) + ALLOCATE ( XBURRR(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RR)) ) XBURRR(:,:,:,:)=0. END IF ! IF (LBU_RRI) THEN - ALLOCATE ( XBURRI(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(9)) ) + ALLOCATE ( XBURRI(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RI)) ) XBURRI(:,:,:,:)=0. END IF ! IF (LBU_RRS) THEN - ALLOCATE ( XBURRS(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(10)) ) + ALLOCATE ( XBURRS(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RS)) ) XBURRS(:,:,:,:)=0. END IF ! IF (LBU_RRG) THEN - ALLOCATE ( XBURRG(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(11)) ) + ALLOCATE ( XBURRG(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RG)) ) XBURRG(:,:,:,:)=0. END IF ! IF (LBU_RRH) THEN - ALLOCATE ( XBURRH(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(12)) ) + ALLOCATE ( XBURRH(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RH)) ) XBURRH(:,:,:,:)=0. END IF ! diff --git a/src/MNH/les_budget.f90 b/src/MNH/les_budget.f90 index 5984be32b..4ad63f048 100644 --- a/src/MNH/les_budget.f90 +++ b/src/MNH/les_budget.f90 @@ -225,7 +225,7 @@ SELECT CASE (KBUDN) ! CASE( NBUDGET_RV, NBUDGET_RR, NBUDGET_RI, NBUDGET_RS, NBUDGET_RG, NBUDGET_RH ) !* transformation into conservative variables: RT - XCURRENT_RRTS = XCURRENT_RRTS + PVARS(:,:,:) - XCURRENT_RRS(:,:,:,KBUDN-5) + XCURRENT_RRTS = XCURRENT_RRTS + PVARS(:,:,:) - XCURRENT_RRS(:,:,:,KBUDN-(NBUDGET_RV-1)) CALL LES_BUDGET_ANOMALY(XCURRENT_RRTS,'-',ZANOM) ! !* action in WRT budget @@ -245,16 +245,16 @@ SELECT CASE (KBUDN) X_LES_BU_RES_THLRT(:,ILES_BU) = X_LES_BU_RES_THLRT(:,ILES_BU) + ZLES_PROF(:) ! !* update fields - XCURRENT_RRS(:,:,:,KBUDN-5) = PVARS + XCURRENT_RRS(:,:,:,KBUDN-(NBUDGET_RV-1)) = PVARS XRT_ANOM = ZANOM ! !* Rc ! CASE( NBUDGET_RC ) !* transformation into conservative variables: theta_l; RT - XCURRENT_RRTS = XCURRENT_RRTS + PVARS(:,:,:) - XCURRENT_RRS(:,:,:,KBUDN-5) + XCURRENT_RRTS = XCURRENT_RRTS + PVARS(:,:,:) - XCURRENT_RRS(:,:,:,KBUDN-(NBUDGET_RV-1)) XCURRENT_RTHLS = XCURRENT_RTHLS - XCURRENT_L_O_EXN_CP & - * (PVARS(:,:,:) - XCURRENT_RRS(:,:,:,KBUDN-5)) + * (PVARS(:,:,:) - XCURRENT_RRS(:,:,:,KBUDN-(NBUDGET_RV-1))) !* anomaly of THL ALLOCATE(ZTHL_ANOM(IIU,IJU,NLES_K)) @@ -292,7 +292,7 @@ SELECT CASE (KBUDN) ! ! !* update fields - XCURRENT_RRS(:,:,:,KBUDN-5) = PVARS + XCURRENT_RRS(:,:,:,KBUDN-(NBUDGET_RV-1)) = PVARS XRT_ANOM = ZANOM XTHL_ANOM = ZTHL_ANOM DEALLOCATE(ZTHL_ANOM) @@ -303,20 +303,20 @@ SELECT CASE (KBUDN) CALL LES_BUDGET_ANOMALY(PVARS,'-',ZANOM) ! !* action in WSV budget - ZWORK_LES = ( ZANOM * XW_ANOM - XSV_ANOM(:,:,:,KBUDN-12) * XW_ANOM ) / & + ZWORK_LES = ( ZANOM * XW_ANOM - XSV_ANOM(:,:,:,KBUDN-(NBUDGET_SV1-1)) * XW_ANOM ) / & XCURRENT_TSTEP CALL LES_MEAN_ll( ZWORK_LES, LLES_CURRENT_CART_MASK, ZLES_PROF) - X_LES_BU_RES_WSV(:,ILES_BU,KBUDN-12) = X_LES_BU_RES_WSV(:,ILES_BU,KBUDN-12) + ZLES_PROF(:) + X_LES_BU_RES_WSV(:,ILES_BU,KBUDN-(NBUDGET_SV1-1)) = X_LES_BU_RES_WSV(:,ILES_BU,KBUDN-(NBUDGET_SV1-1)) + ZLES_PROF(:) ! !* action in SV2 budget - ZWORK_LES = ( ZANOM **2 - XSV_ANOM(:,:,:,KBUDN-12) **2 ) / & + ZWORK_LES = ( ZANOM **2 - XSV_ANOM(:,:,:,KBUDN-(NBUDGET_SV1-1)) **2 ) / & XCURRENT_TSTEP CALL LES_MEAN_ll( ZWORK_LES, LLES_CURRENT_CART_MASK, ZLES_PROF) - X_LES_BU_RES_SV2(:,ILES_BU,KBUDN-12) = X_LES_BU_RES_SV2(:,ILES_BU,KBUDN-12) + ZLES_PROF(:) + X_LES_BU_RES_SV2(:,ILES_BU,KBUDN-(NBUDGET_SV1-1)) = X_LES_BU_RES_SV2(:,ILES_BU,KBUDN-(NBUDGET_SV1-1)) + ZLES_PROF(:) ! !* update fields - XCURRENT_RSVS(:,:,:,KBUDN-12) = PVARS - XSV_ANOM(:,:,:,KBUDN-12) = ZANOM + XCURRENT_RSVS(:,:,:,KBUDN-(NBUDGET_SV1-1)) = PVARS + XSV_ANOM(:,:,:,KBUDN-(NBUDGET_SV1-1)) = ZANOM END SELECT ! -- GitLab