Skip to content
Snippets Groups Projects
Commit 18f93679 authored by WAUTELET Philippe's avatar WAUTELET Philippe
Browse files

Philippe 15/11/2019: use NBUDGET_* parameters to identify all budget indices (continued)

parent 6c8af480
No related branches found
No related tags found
No related merge requests found
...@@ -514,8 +514,8 @@ END IF ...@@ -514,8 +514,8 @@ END IF
!* 10. STORAGE IN BUDGET ARRAYS !* 10. STORAGE IN BUDGET ARRAYS
! !
IF (LBU_ENABLE) THEN IF (LBU_ENABLE) THEN
NBUPROCCTR(1:12+KSV)=3 NBUPROCCTR (1 : NBUDGET_SV1 - 1 + KSV ) = 3
NBUCTR_ACTV(1:12+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_U) CALL BUDGET( PUT(:,:,:) * PRHODJ(:,:,:) / PTSTEP, NBUDGET_U, 'AVEF_BU_RU' )
IF (LBUDGET_V) CALL BUDGET( PVT(:,:,:) * PRHODJ(:,:,:) / PTSTEP, NBUDGET_V, 'AVEF_BU_RV' ) IF (LBUDGET_V) CALL BUDGET( PVT(:,:,:) * PRHODJ(:,:,:) / PTSTEP, NBUDGET_V, 'AVEF_BU_RV' )
...@@ -535,8 +535,8 @@ IF (LBU_ENABLE) THEN ...@@ -535,8 +535,8 @@ IF (LBU_ENABLE) THEN
END DO END DO
END IF END IF
! !
NBUPROCCTR(1:12+KSV)=2 NBUPROCCTR (1 : NBUDGET_SV1 - 1 + KSV ) = 2
NBUCTR_ACTV(1:12+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_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' ) IF (LBUDGET_V) CALL BUDGET( PVS * MYM(PRHODJ) / PTSTEP, NBUDGET_V, 'ENDF_BU_RV' )
......
...@@ -2740,7 +2740,7 @@ DO JI=1,JPBUMAX ! loop over the allowed budgets ...@@ -2740,7 +2740,7 @@ DO JI=1,JPBUMAX ! loop over the allowed budgets
YSTRING = ADJUSTL( YEND_COMMENT(JI) ) YSTRING = ADJUSTL( YEND_COMMENT(JI) )
ILEN = LEN_TRIM(YSTRING) ILEN = LEN_TRIM(YSTRING)
IF( ILEN /= 0 ) THEN IF( ILEN /= 0 ) THEN
IF( JI <= 12 ) THEN IF( JI < NBUDGET_SV1 ) THEN
WRITE (UNIT=KLUOUT,FMT='(/,"budget ",A7," with ",I2," vectors")') & WRITE (UNIT=KLUOUT,FMT='(/,"budget ",A7," with ",I2," vectors")') &
YSTRING(1:ILEN),NBUPROCNBR(JI) YSTRING(1:ILEN),NBUPROCNBR(JI)
DO JJ=1,3 DO JJ=1,3
...@@ -2756,7 +2756,7 @@ DO JI=1,JPBUMAX ! loop over the allowed budgets ...@@ -2756,7 +2756,7 @@ DO JI=1,JPBUMAX ! loop over the allowed budgets
ELSE ELSE
WRITE (UNIT=KLUOUT, & WRITE (UNIT=KLUOUT, &
FMT='(/,"budget ",A7," (number ",I3,") with ",I2," vectors")') & 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 DO JJ=1,3
YSTRING = CBUCOMMENT(JI,JJ) YSTRING = CBUCOMMENT(JI,JJ)
ILEN = LEN_TRIM(YSTRING) ILEN = LEN_TRIM(YSTRING)
...@@ -2802,21 +2802,21 @@ ENDIF ...@@ -2802,21 +2802,21 @@ ENDIF
!* 5. ALLOCATE MEMORY FOR BUDGET STORAGE ARRAYS !* 5. ALLOCATE MEMORY FOR BUDGET STORAGE ARRAYS
! ----------------------------------------- ! -----------------------------------------
IF (LBU_RU) THEN IF (LBU_RU) THEN
ALLOCATE ( XBURU(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(1)) ) ALLOCATE ( XBURU(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_U)) )
XBURU(:,:,:,:)=0. XBURU(:,:,:,:)=0.
ALLOCATE ( XBURHODJU(IBUDIM1, IBUDIM2, IBUDIM3) ) ALLOCATE ( XBURHODJU(IBUDIM1, IBUDIM2, IBUDIM3) )
XBURHODJU(:,:,:)=0. XBURHODJU(:,:,:)=0.
END IF END IF
! !
IF (LBU_RV) THEN IF (LBU_RV) THEN
ALLOCATE ( XBURV(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(2)) ) ALLOCATE ( XBURV(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_V)) )
XBURV(:,:,:,:)=0. XBURV(:,:,:,:)=0.
ALLOCATE ( XBURHODJV(IBUDIM1, IBUDIM2, IBUDIM3) ) ALLOCATE ( XBURHODJV(IBUDIM1, IBUDIM2, IBUDIM3) )
XBURHODJV(:,:,:)=0. XBURHODJV(:,:,:)=0.
END IF END IF
! !
IF (LBU_RW) THEN IF (LBU_RW) THEN
ALLOCATE ( XBURW(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(3)) ) ALLOCATE ( XBURW(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_W)) )
XBURW(:,:,:,:)=0. XBURW(:,:,:,:)=0.
ALLOCATE ( XBURHODJW(IBUDIM1, IBUDIM2, IBUDIM3) ) ALLOCATE ( XBURHODJW(IBUDIM1, IBUDIM2, IBUDIM3) )
XBURHODJW(:,:,:)=0. XBURHODJW(:,:,:)=0.
...@@ -2829,47 +2829,47 @@ IF (LBU_RTH .OR. LBU_RTKE .OR. LBU_RRV .OR. LBU_RRC .OR. LBU_RRR .OR. & ...@@ -2829,47 +2829,47 @@ IF (LBU_RTH .OR. LBU_RTKE .OR. LBU_RRV .OR. LBU_RRC .OR. LBU_RRR .OR. &
END IF END IF
! !
IF (LBU_RTH) THEN IF (LBU_RTH) THEN
ALLOCATE ( XBURTH(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(4)) ) ALLOCATE ( XBURTH(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_TH)) )
XBURTH(:,:,:,:)=0. XBURTH(:,:,:,:)=0.
END IF END IF
! !
IF (LBU_RTKE) THEN IF (LBU_RTKE) THEN
ALLOCATE ( XBURTKE(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(5)) ) ALLOCATE ( XBURTKE(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_TKE)) )
XBURTKE(:,:,:,:)=0. XBURTKE(:,:,:,:)=0.
END IF END IF
! !
IF (LBU_RRV) THEN IF (LBU_RRV) THEN
ALLOCATE ( XBURRV(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(6)) ) ALLOCATE ( XBURRV(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RV)) )
XBURRV(:,:,:,:)=0. XBURRV(:,:,:,:)=0.
END IF END IF
! !
IF (LBU_RRC) THEN IF (LBU_RRC) THEN
ALLOCATE ( XBURRC(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(7)) ) ALLOCATE ( XBURRC(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RC)) )
XBURRC(:,:,:,:)=0. XBURRC(:,:,:,:)=0.
END IF END IF
! !
IF (LBU_RRR) THEN IF (LBU_RRR) THEN
ALLOCATE ( XBURRR(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(8)) ) ALLOCATE ( XBURRR(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RR)) )
XBURRR(:,:,:,:)=0. XBURRR(:,:,:,:)=0.
END IF END IF
! !
IF (LBU_RRI) THEN IF (LBU_RRI) THEN
ALLOCATE ( XBURRI(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(9)) ) ALLOCATE ( XBURRI(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RI)) )
XBURRI(:,:,:,:)=0. XBURRI(:,:,:,:)=0.
END IF END IF
! !
IF (LBU_RRS) THEN IF (LBU_RRS) THEN
ALLOCATE ( XBURRS(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(10)) ) ALLOCATE ( XBURRS(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RS)) )
XBURRS(:,:,:,:)=0. XBURRS(:,:,:,:)=0.
END IF END IF
! !
IF (LBU_RRG) THEN IF (LBU_RRG) THEN
ALLOCATE ( XBURRG(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(11)) ) ALLOCATE ( XBURRG(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RG)) )
XBURRG(:,:,:,:)=0. XBURRG(:,:,:,:)=0.
END IF END IF
! !
IF (LBU_RRH) THEN IF (LBU_RRH) THEN
ALLOCATE ( XBURRH(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(12)) ) ALLOCATE ( XBURRH(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RH)) )
XBURRH(:,:,:,:)=0. XBURRH(:,:,:,:)=0.
END IF END IF
! !
......
...@@ -225,7 +225,7 @@ SELECT CASE (KBUDN) ...@@ -225,7 +225,7 @@ SELECT CASE (KBUDN)
! !
CASE( NBUDGET_RV, NBUDGET_RR, NBUDGET_RI, NBUDGET_RS, NBUDGET_RG, NBUDGET_RH ) CASE( NBUDGET_RV, NBUDGET_RR, NBUDGET_RI, NBUDGET_RS, NBUDGET_RG, NBUDGET_RH )
!* transformation into conservative variables: RT !* 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) CALL LES_BUDGET_ANOMALY(XCURRENT_RRTS,'-',ZANOM)
! !
!* action in WRT budget !* action in WRT budget
...@@ -245,16 +245,16 @@ SELECT CASE (KBUDN) ...@@ -245,16 +245,16 @@ SELECT CASE (KBUDN)
X_LES_BU_RES_THLRT(:,ILES_BU) = X_LES_BU_RES_THLRT(:,ILES_BU) + ZLES_PROF(:) X_LES_BU_RES_THLRT(:,ILES_BU) = X_LES_BU_RES_THLRT(:,ILES_BU) + ZLES_PROF(:)
! !
!* update fields !* update fields
XCURRENT_RRS(:,:,:,KBUDN-5) = PVARS XCURRENT_RRS(:,:,:,KBUDN-(NBUDGET_RV-1)) = PVARS
XRT_ANOM = ZANOM XRT_ANOM = ZANOM
! !
!* Rc !* Rc
! !
CASE( NBUDGET_RC ) CASE( NBUDGET_RC )
!* transformation into conservative variables: theta_l; RT !* 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 & XCURRENT_RTHLS = XCURRENT_RTHLS - XCURRENT_L_O_EXN_CP &
* (PVARS(:,:,:) - XCURRENT_RRS(:,:,:,KBUDN-5)) * (PVARS(:,:,:) - XCURRENT_RRS(:,:,:,KBUDN-(NBUDGET_RV-1)))
!* anomaly of THL !* anomaly of THL
ALLOCATE(ZTHL_ANOM(IIU,IJU,NLES_K)) ALLOCATE(ZTHL_ANOM(IIU,IJU,NLES_K))
...@@ -292,7 +292,7 @@ SELECT CASE (KBUDN) ...@@ -292,7 +292,7 @@ SELECT CASE (KBUDN)
! !
! !
!* update fields !* update fields
XCURRENT_RRS(:,:,:,KBUDN-5) = PVARS XCURRENT_RRS(:,:,:,KBUDN-(NBUDGET_RV-1)) = PVARS
XRT_ANOM = ZANOM XRT_ANOM = ZANOM
XTHL_ANOM = ZTHL_ANOM XTHL_ANOM = ZTHL_ANOM
DEALLOCATE(ZTHL_ANOM) DEALLOCATE(ZTHL_ANOM)
...@@ -303,20 +303,20 @@ SELECT CASE (KBUDN) ...@@ -303,20 +303,20 @@ SELECT CASE (KBUDN)
CALL LES_BUDGET_ANOMALY(PVARS,'-',ZANOM) CALL LES_BUDGET_ANOMALY(PVARS,'-',ZANOM)
! !
!* action in WSV budget !* 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 XCURRENT_TSTEP
CALL LES_MEAN_ll( ZWORK_LES, LLES_CURRENT_CART_MASK, ZLES_PROF) 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 !* 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 XCURRENT_TSTEP
CALL LES_MEAN_ll( ZWORK_LES, LLES_CURRENT_CART_MASK, ZLES_PROF) 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 !* update fields
XCURRENT_RSVS(:,:,:,KBUDN-12) = PVARS XCURRENT_RSVS(:,:,:,KBUDN-(NBUDGET_SV1-1)) = PVARS
XSV_ANOM(:,:,:,KBUDN-12) = ZANOM XSV_ANOM(:,:,:,KBUDN-(NBUDGET_SV1-1)) = ZANOM
END SELECT END SELECT
! !
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment