diff --git a/src/MNH/adjust_langlois.f90 b/src/MNH/adjust_langlois.f90 index 42c73b53f3bbc5f05cf0d9a2889a4615179cf3e7..531ccc9f7301f3b28e975affe1ea62fd684d6926 100644 --- a/src/MNH/adjust_langlois.f90 +++ b/src/MNH/adjust_langlois.f90 @@ -86,7 +86,6 @@ END MODULE MODI_ADJUST_LANGLOIS !! Module MODD_BUDGET: !! NBUMOD !! CBUTYPE -!! NBUPROCCTR !! LBU_RTH !! LBU_RRV !! LBU_RRC diff --git a/src/MNH/c2r2_adjust.f90 b/src/MNH/c2r2_adjust.f90 index 1be09d2308fb03483168e5e77a9c0890c901e0d5..974bdefb90b7d8d0a1438d8ef32475cda3277a52 100644 --- a/src/MNH/c2r2_adjust.f90 +++ b/src/MNH/c2r2_adjust.f90 @@ -90,7 +90,6 @@ END MODULE MODI_C2R2_ADJUST !! Module MODD_BUDGET: !! NBUMOD !! CBUTYPE -!! NBUPROCCTR !! LBU_RTH !! LBU_RRV !! LBU_RRC diff --git a/src/MNH/dyn_sources.f90 b/src/MNH/dyn_sources.f90 index d2c15f0ff9af0317d14f927cc939114364759aa3..ad9f3773d84569ef947e06cf4b5ab0431430f5c6 100644 --- a/src/MNH/dyn_sources.f90 +++ b/src/MNH/dyn_sources.f90 @@ -106,7 +106,6 @@ END MODULE MODI_DYN_SOURCES !! 'CART' for cartesian box configuration !! 'MASK' for budget zone defined by a mask !! 'NONE' ' for no budget -!! NBUPROCCTR : process counter used for each budget variable !! LBU_RTH : logical for budget of RTH (potential temperature) !! .TRUE. = budget of RTH !! .FALSE. = no budget of RTH diff --git a/src/MNH/endstep.f90 b/src/MNH/endstep.f90 index dfa7e6195ca56f8272f8019ab15949207d678e01..665de2a84e479f2e36bd304fe3699e0d5edc7c36 100644 --- a/src/MNH/endstep.f90 +++ b/src/MNH/endstep.f90 @@ -147,7 +147,6 @@ END MODULE MODI_ENDSTEP !! MODULE MODD_CTURB containing XTKEMIN, XEPSMIN !! MODULE MODD_BUDGET: !! NBUMOD : model in which budget is calculated -!! NBUPROCCTR : process counter used for each budget variable !! NBUTSHIFT : temporal shift for budgets writing !! !! REFERENCE @@ -204,7 +203,7 @@ use modd_budget, only: lbudget_u, lbudget_v, lbudget_w, lbudget_th, lbudg lbudget_rr, lbudget_ri, lbudget_rs, lbudget_rg, lbudget_rh, lbudget_sv, lbu_enable, & NBUDGET_U, NBUDGET_V, NBUDGET_W, NBUDGET_TH, NBUDGET_TKE, NBUDGET_RV, NBUDGET_RC, & NBUDGET_RR, NBUDGET_RI, NBUDGET_RS, NBUDGET_RG, NBUDGET_RH, NBUDGET_SV1, & - nbuctr_actv, nbuprocctr, nbustep, tbudgets + nbustep, tbudgets USE MODD_CH_AEROSOL, ONLY: LORILAM USE MODD_CONF USE MODD_CTURB @@ -521,9 +520,6 @@ END IF !* 10. STORAGE IN BUDGET ARRAYS ! IF (LBU_ENABLE) THEN - NBUPROCCTR (1 : NBUDGET_SV1 - 1 + KSV ) = 3 - NBUCTR_ACTV(1 : NBUDGET_SV1 - 1 + KSV ) = 3 - !Division by nbustep to compute average on the selected time period if ( lbudget_u .or. lbudget_v .or. lbudget_u .or. lbudget_v .or. lbudget_w .or. lbudget_th & .or. lbudget_tke .or. lbudget_rv .or. lbudget_rc .or. lbudget_rr .or. lbudget_ri & @@ -548,9 +544,6 @@ IF (LBU_ENABLE) THEN call Budget_store_end( tbudgets(jsv + NBUDGET_SV1 - 1), 'AVEF', psvt(:, :, :, jsv) * zrhodjontime(:, :, :) ) end do end if -! - NBUPROCCTR (1 : NBUDGET_SV1 - 1 + KSV ) = 2 - NBUCTR_ACTV(1 : NBUDGET_SV1 - 1 + KSV ) = 2 if ( lbudget_u ) call Budget_store_end( tbudgets(NBUDGET_U ), 'ENDF', pus (:, :, :) * Mxm( prhodj(:, :, :) ) / ptstep ) if ( lbudget_v ) call Budget_store_end( tbudgets(NBUDGET_V ), 'ENDF', pvs (:, :, :) * Mym( prhodj(:, :, :) ) / ptstep ) diff --git a/src/MNH/endstep_budget.f90 b/src/MNH/endstep_budget.f90 index e145ea79c8323696a76ccc1817c2bff511de95e1..20a580b3f975ad293ce53961d659864a93a320c4 100644 --- a/src/MNH/endstep_budget.f90 +++ b/src/MNH/endstep_budget.f90 @@ -55,25 +55,6 @@ END MODULE MODI_ENDSTEP_BUDGET !! IMPLICIT ARGUMENTS !! ------------------ !! Module MODD_BUDGET -!! CBUTYPE : budget type : CART, MASK or NONE -!! LBU_BEG : switch for the budget begining -!! NBUTIME : number of the budget step -!! NBUWRI : NUMBER of budget steps when the budget -!! is written on FM-file -!! XBURU : budget array of the variable RU -!! XBURV : budget array of the variable RV -!! XBURW : budget array of the variable RW -!! XBURTH : budget array of the variable RTH -!! XBURTKE : budget array of the variable RTKE -!! XBURRV : budget array of the variable RRV -!! XBURRC : budget array of the variable RRC -!! XBURRR : budget array of the variable RRR -!! XBURRI : budget array of the variable RRI -!! XBURRS : budget array of the variable RRS -!! XBURRG : budget array of the variable RRG -!! XBURRH : budget array of the variable RRH -!! XBURSVx : budget array of the variable RSVx -!! !! !! REFERENCE !! --------- @@ -139,24 +120,6 @@ SELECT CASE(CBUTYPE) !* 1.2 resetting the budget arrays to 0. ! ! Rhodj arrays - IF (ALLOCATED(XBURU)) XBURU=0. - IF (ALLOCATED(XBURV)) XBURV=0. - IF (ALLOCATED(XBURW)) XBURW=0. - IF (ALLOCATED(XBURTH)) XBURTH=0. - IF (ALLOCATED(XBURTKE)) XBURTKE=0. - IF (ALLOCATED(XBURRV)) XBURRV=0. - IF (ALLOCATED(XBURRC)) XBURRC=0. - IF (ALLOCATED(XBURRR)) XBURRR=0. - IF (ALLOCATED(XBURRI)) XBURRI=0. - IF (ALLOCATED(XBURRS)) XBURRS=0. - IF (ALLOCATED(XBURRG)) XBURRG=0. - IF (ALLOCATED(XBURRH)) XBURRH=0. - IF (ALLOCATED(XBURSV)) XBURSV=0. - IF (ALLOCATED(XBURHODJU)) XBURHODJU=0. - IF (ALLOCATED(XBURHODJV)) XBURHODJV=0. - IF (ALLOCATED(XBURHODJW)) XBURHODJW=0. - IF (ALLOCATED(XBURHODJ)) XBURHODJ =0. - if ( tbudgets(NBUDGET_U)%lenabled ) tbudgets(NBUDGET_U)%trhodj%xdata(:, :, :) = 0. if ( tbudgets(NBUDGET_V)%lenabled ) tbudgets(NBUDGET_V)%trhodj%xdata(:, :, :) = 0. if ( tbudgets(NBUDGET_W)%lenabled ) tbudgets(NBUDGET_W)%trhodj%xdata(:, :, :) = 0. @@ -196,24 +159,6 @@ SELECT CASE(CBUTYPE) ! Rhodj array for other budgets than U, V, W if ( associated( tburhodj ) ) tburhodj%xdata(:, :, :) = 0. ! Budget arrays - IF (ALLOCATED(XBURU)) XBURU=0. - IF (ALLOCATED(XBURV)) XBURV=0. - IF (ALLOCATED(XBURW)) XBURW=0. - IF (ALLOCATED(XBURTH)) XBURTH=0. - IF (ALLOCATED(XBURTKE)) XBURTKE=0. - IF (ALLOCATED(XBURRV)) XBURRV=0. - IF (ALLOCATED(XBURRC)) XBURRC=0. - IF (ALLOCATED(XBURRR)) XBURRR=0. - IF (ALLOCATED(XBURRI)) XBURRI=0. - IF (ALLOCATED(XBURRS)) XBURRS=0. - IF (ALLOCATED(XBURRG)) XBURRG=0. - IF (ALLOCATED(XBURRH)) XBURRH=0. - IF (ALLOCATED(XBURSV)) XBURSV=0. - IF (ALLOCATED(XBURHODJU)) XBURHODJU=0. - IF (ALLOCATED(XBURHODJV)) XBURHODJV=0. - IF (ALLOCATED(XBURHODJW)) XBURHODJW=0. - IF (ALLOCATED(XBURHODJ)) XBURHODJ =0. - do jbu = 1, nbudgets if ( tbudgets(jbu)%lenabled ) then do jgrp = 1, tbudgets(jbu)%ngroups diff --git a/src/MNH/fast_terms.f90 b/src/MNH/fast_terms.f90 index a64f5977a0e044de1974b42f3685799a56e1774d..1438f1e65b9f777692f94c1220b86a270e244918 100644 --- a/src/MNH/fast_terms.f90 +++ b/src/MNH/fast_terms.f90 @@ -103,7 +103,6 @@ END MODULE MODI_FAST_TERMS !! Module MODD_BUDGET: !! NBUMOD !! CBUTYPE -!! NBUPROCCTR !! LBU_RTH !! LBU_RRV !! LBU_RRC diff --git a/src/MNH/gravity.f90 b/src/MNH/gravity.f90 index a6432a68e01bd0429e334171bfe4959aa80427f2..a5664d1b4e4c011960fdff1eee0f9678a495ab6e 100644 --- a/src/MNH/gravity.f90 +++ b/src/MNH/gravity.f90 @@ -74,7 +74,6 @@ END MODULE MODI_GRAVITY !! 'CART' for cartesian box configuration !! 'MASK' for budget zone defined by a mask !! 'NONE' ' for no budget -!! NBUPROCCTR : process counter used for each budget variable !! LBU_RTH : logical for budget of RTH (potential temperature) !! .TRUE. = budget of RTH !! .FALSE. = no budget of RTH diff --git a/src/MNH/ice_adjust.f90 b/src/MNH/ice_adjust.f90 index 3d599521c7c97b10ffbe0b9cb56c7dd020127729..3e3ef2d61044ac6567ffe81d4194de9c108bc9b6 100644 --- a/src/MNH/ice_adjust.f90 +++ b/src/MNH/ice_adjust.f90 @@ -128,7 +128,6 @@ END MODULE MODI_ICE_ADJUST !! Module MODD_BUDGET: !! NBUMOD !! CBUTYPE -!! NBUPROCCTR !! LBU_RTH !! LBU_RRV !! LBU_RRC diff --git a/src/MNH/ini_budget.f90 b/src/MNH/ini_budget.f90 index c226c7121f9f1b701f0e238af3462b70b2f70dd4..6c2e8d0f2ddb9e9ac0472b283b842a7691f85ede 100644 --- a/src/MNH/ini_budget.f90 +++ b/src/MNH/ini_budget.f90 @@ -14,7 +14,7 @@ module mode_ini_budget contains ! ################################################################# - SUBROUTINE INI_BUDGET(KLUOUT,PTSTEP,KSV,KRR, & + SUBROUTINE Ini_budget(KLUOUT,PTSTEP,KSV,KRR, & ONUMDIFU,ONUMDIFTH,ONUMDIFSV, & OHORELAX_UVWTH,OHORELAX_RV,OHORELAX_RC,OHORELAX_RR, & OHORELAX_RI,OHORELAX_RS, OHORELAX_RG, OHORELAX_RH,OHORELAX_TKE, & @@ -191,10 +191,7 @@ CHARACTER (LEN=*), INTENT(IN) :: HTURBDIM! dimensionnality of the turbulence CHARACTER (LEN=*), INTENT(IN) :: HCLOUD ! type of microphysical scheme ! !* 0.2 declarations of local variables -! -INTEGER, DIMENSION(JPBUMAX,JPBUPROMAX+1) :: IPROACTV ! switches set by the - ! user for process - ! activation +! INTEGER :: JI, JJ, JK , JJJ ! loop indices INTEGER :: IIMAX_ll, IJMAX_ll ! size of the physical global domain INTEGER :: IIU, IJU ! size along x and y directions @@ -208,18 +205,8 @@ INTEGER :: IBUDIM2 ! second dimension of INTEGER :: IBUDIM3 ! third dimension of the budget arrays ! = NBUKMAX in CART case ! = NBUMASK in MASK case -LOGICAL :: GERROR ! switch for error in - ! budget specifcation -CHARACTER(LEN=7), DIMENSION(JPBUMAX) :: YEND_COMMENT ! last part of comment - ! for budgets records -CHARACTER(LEN=6), DIMENSION(JPBUMAX,JPBUPROMAX) :: YWORK2 ! used for - ! concatenattion of - ! comments for budgets -CHARACTER(LEN=40) :: YSTRING character(len=3) :: ybudgetnum -INTEGER :: ILEN INTEGER :: JSV ! loop indice for the SVs -INTEGER :: IBUPROCNBR_SV_MAX ! Max number of processes for the SVs INTEGER :: IINFO_ll ! return status of the interface routine integer :: ibudget integer :: isourcesmax ! Maximum number of source terms in a budget @@ -353,15 +340,6 @@ END IF !* 2. ALLOCATE MEMORY FOR BUDGET ARRAYS AND INITIALIZE ! ------------------------------------------------ ! -ALLOCATE( NBUPROCNBR(JPBUMAX) ) -ALLOCATE( NBUPROCCTR(JPBUMAX) ) -ALLOCATE( CBUACTION(JPBUMAX, JPBUPROMAX) ) -ALLOCATE( CBUCOMMENT(JPBUMAX, JPBUPROMAX) ) -NBUPROCCTR(:) = 0 -NBUCTR_ACTV(:) = 0 -NBUPROCNBR(:) = 0 -CBUACTION(:,:) = 'OF' -CBUCOMMENT(:,:) = ' ' LBU_BEG =.TRUE. ! !------------------------------------------------------------------------------- @@ -369,13 +347,6 @@ LBU_BEG =.TRUE. !* 3. INITALIZE VARIABLES ! ------------------- ! -IPROACTV(:,:) = 3 -IPROACTV(:,4) = 1 -IPROACTV(:,JPBUPROMAX+1) = 0 -GERROR=.FALSE. -YWORK2(:,:) = ' ' -YEND_COMMENT(:) = ' ' - !Create intermediate variable to store rhodj for scalar variables if ( lbu_rth .or. lbu_rtke .or. lbu_rrv .or. lbu_rrc .or. lbu_rrr .or. & lbu_rri .or. lbu_rrs .or. lbu_rrg .or. lbu_rrh .or. lbu_rsv ) then @@ -3527,119 +3498,6 @@ SV_BUDGETS: do jsv = 1, ksv end if end do SV_BUDGETS -!------------------------------------------------------------------------------- -!* 4. COMPUTE THE INCREMENT BETWEEN TWO ACTIVE SOURCES -! ------------------------------------------------ -! -NBUINC(:,:) = 1 -DO JI = 1, JPBUMAX - DO JJ = 4, JPBUPROMAX-1 - DO JK = JJ+1,JPBUPROMAX - IF ( IPROACTV(JI,JK) /= 3 ) EXIT - NBUINC(JI,JJ) = NBUINC(JI,JJ) +1 - END DO - END DO -END DO -! -!------------------------------------------------------------------------------- -!* 5. COMPUTE PROCESSES ACTIONS AND NAMES OF BUDGET OUTPUT ARRAYS -! ----------------------------------------------------------- -! -! -DO JI=1,JPBUMAX ! loop on the allowed budgets names of recording files - IF (IPROACTV(JI,4) >= 2) THEN - WRITE(UNIT=KLUOUT,FMT= '("Error in budget specification of ",A7,/," & - & The first source either is the first element of a group of sources or & - & is not considered")') YEND_COMMENT(JI) - WRITE(UNIT=KLUOUT,FMT= '("change this namelist element ")') - GERROR = .TRUE. - END IF -! - DO JJ=4,JPBUPROMAX ! loop on the allowed processes - IF (IPROACTV(JI,JJ) == 0) THEN - IF(IPROACTV(JI,JJ+NBUINC(JI,JJ)) == 0) THEN - CBUACTION(JI,JJ)='OF' - ELSE IF (IPROACTV(JI,JJ+NBUINC(JI,JJ)) == 1) THEN - CBUACTION(JI,JJ)='CC' - ELSE IF (IPROACTV(JI,JJ+NBUINC(JI,JJ)) == 2) THEN - WRITE(UNIT=KLUOUT,FMT= '("Error in budget specification of ",A15)') & - ADJUSTL( ADJUSTR(YWORK2(JI,JJ+NBUINC(JI,JJ)))//ADJUSTL(YEND_COMMENT(JI))) - WRITE(UNIT=KLUOUT,FMT= '("change this namelist ")') - GERROR = .TRUE. - END IF - ELSE IF (IPROACTV(JI,JJ) <= 2) THEN - DO JJJ = JJ+NBUINC(JI,JJ), JPBUPROMAX - IF(IPROACTV(JI,JJJ) /= 3 .AND. IPROACTV(JI,JJJ) /= 4) EXIT - END DO -! - IF (IPROACTV(JI,JJJ) == 1) THEN - NBUPROCNBR(JI) = NBUPROCNBR(JI)+1 - CBUACTION(JI,JJ) = 'DC' - CBUCOMMENT(JI,NBUPROCNBR(JI)) = ADJUSTL( & - ADJUSTR( CBUCOMMENT(JI,NBUPROCNBR(JI)) ) // & - ADJUSTL( ADJUSTR( YWORK2(JI,JJ) ) // & - ADJUSTL( YEND_COMMENT(JI) ) ) ) - ELSE IF (IPROACTV(JI,JJJ) == 0) THEN - NBUPROCNBR(JI) = NBUPROCNBR(JI)+1 - CBUACTION(JI,JJ) = 'DD' - CBUCOMMENT(JI,NBUPROCNBR(JI)) = ADJUSTL( & - ADJUSTR( CBUCOMMENT(JI,NBUPROCNBR(JI)) ) // & - ADJUSTL( ADJUSTR( YWORK2(JI,JJ) ) // & - ADJUSTL( YEND_COMMENT(JI) ) ) ) - ELSE IF (IPROACTV(JI,JJJ) == 2) THEN - CBUACTION(JI,JJ) = 'NO' - CBUCOMMENT(JI,NBUPROCNBR(JI)+1) = ADJUSTL( & - ADJUSTR( CBUCOMMENT(JI,NBUPROCNBR(JI)+1)) // & - ADJUSTL( YWORK2(JI,JJ) ) ) - END IF - ELSEIF (IPROACTV(JI,JJ) == 3) THEN - CBUACTION(JI,JJ) = 'RM' - ELSEIF (IPROACTV(JI,JJ) == 4) THEN - CBUACTION(JI,JJ) = 'OF' - ELSE - WRITE(UNIT=KLUOUT,FMT= '("Error in budget specification of ",A7)') & - YEND_COMMENT(JI) - WRITE(UNIT=KLUOUT,FMT= '("change this namelist ")') - GERROR = .TRUE. - END IF - END DO -END DO -! writes on output the explicit chain of sources for all the budgets -DO JI=1,JPBUMAX ! loop over the allowed budgets - YSTRING = ADJUSTL( YEND_COMMENT(JI) ) - ILEN = LEN_TRIM(YSTRING) - IF( ILEN /= 0 ) THEN - IF( JI < NBUDGET_SV1 ) THEN - WRITE (UNIT=KLUOUT,FMT='(/,"budget ",A7," with ",I2," vectors")') & - YSTRING(1:ILEN),NBUPROCNBR(JI) - DO JJ=1,3 - YSTRING = CBUCOMMENT(JI,JJ) - ILEN = LEN_TRIM(YSTRING) - WRITE (UNIT=KLUOUT,FMT='(12X,A40)') YSTRING(1:ILEN) - END DO - DO JJ=4,NBUPROCNBR(JI) ! loop over the allowed processes - YSTRING = CBUCOMMENT(JI,JJ) - ILEN = LEN_TRIM(YSTRING) - WRITE (UNIT=KLUOUT,FMT='(20X,A40)') YSTRING(1:ILEN) - END DO - ELSE - WRITE (UNIT=KLUOUT, & - FMT='(/,"budget ",A7," (number ",I3,") with ",I2," vectors")') & - YSTRING(1:ILEN),JI-NBUDGET_SV1+1,NBUPROCNBR(JI) - DO JJ=1,3 - YSTRING = CBUCOMMENT(JI,JJ) - ILEN = LEN_TRIM(YSTRING) - WRITE (UNIT=KLUOUT,FMT='(12X,A40)') YSTRING(1:ILEN) - END DO - DO JJ=4,NBUPROCNBR(JI) ! loop over the allowed processes - YSTRING = CBUCOMMENT(JI,JJ) - ILEN = LEN_TRIM(YSTRING) - WRITE (UNIT=KLUOUT,FMT='(20X,A40)') YSTRING(1:ILEN) - END DO - END IF - END IF -END DO -! IF (CBUTYPE=='CART') THEN WRITE(UNIT=KLUOUT, FMT= '(2/,"DESCRIPTION OF THE BUDGET BOX")' ) WRITE(UNIT=KLUOUT, FMT= '("BUIL = ",I4.4)' ) NBUIL @@ -3664,95 +3522,10 @@ IF (CBUTYPE=='MASK') THEN WRITE(UNIT=KLUOUT, FMT= '("BUWRNB = ",I4.4)' ) NBUWRNB WRITE(UNIT=KLUOUT, FMT= '("BUMASK = ",I4.4)' ) NBUMASK END IF -IF (GERROR) THEN - call Print_msg( NVERB_FATAL, 'BUD', 'INI_BUDGET', '' ) -ENDIF call Ini_budget_groups( tbudgets, ibudim1, ibudim2, ibudim3 ) -!------------------------------------------------------------------------------- -!* 5. ALLOCATE MEMORY FOR BUDGET STORAGE ARRAYS -! ----------------------------------------- -IF (LBU_RU) THEN - 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(NBUDGET_V)) ) - XBURV(:,:,:,:)=0. - ALLOCATE ( XBURHODJV(IBUDIM1, IBUDIM2, IBUDIM3) ) - XBURHODJV(:,:,:)=0. -END IF -! -IF (LBU_RW) THEN - ALLOCATE ( XBURW(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_W)) ) - XBURW(:,:,:,:)=0. - ALLOCATE ( XBURHODJW(IBUDIM1, IBUDIM2, IBUDIM3) ) - XBURHODJW(:,:,:)=0. -END IF -! -IF (LBU_RTH .OR. LBU_RTKE .OR. LBU_RRV .OR. LBU_RRC .OR. LBU_RRR .OR. & - LBU_RRI .OR. LBU_RRS .OR. LBU_RRG .OR. LBU_RRH .OR. LBU_RSV ) THEN - ALLOCATE ( XBURHODJ(IBUDIM1, IBUDIM2, IBUDIM3) ) - XBURHODJ(:,:,:)=0. -END IF -! -IF (LBU_RTH) THEN - ALLOCATE ( XBURTH(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_TH)) ) - XBURTH(:,:,:,:)=0. -END IF -! -IF (LBU_RTKE) THEN - ALLOCATE ( XBURTKE(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_TKE)) ) - XBURTKE(:,:,:,:)=0. -END IF -! -IF (LBU_RRV) THEN - ALLOCATE ( XBURRV(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RV)) ) - XBURRV(:,:,:,:)=0. -END IF -! -IF (LBU_RRC) THEN - ALLOCATE ( XBURRC(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RC)) ) - XBURRC(:,:,:,:)=0. -END IF -! -IF (LBU_RRR) THEN - ALLOCATE ( XBURRR(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RR)) ) - XBURRR(:,:,:,:)=0. -END IF -! -IF (LBU_RRI) THEN - ALLOCATE ( XBURRI(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RI)) ) - XBURRI(:,:,:,:)=0. -END IF -! -IF (LBU_RRS) THEN - ALLOCATE ( XBURRS(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RS)) ) - XBURRS(:,:,:,:)=0. -END IF -! -IF (LBU_RRG) THEN - ALLOCATE ( XBURRG(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RG)) ) - XBURRG(:,:,:,:)=0. -END IF -! -IF (LBU_RRH) THEN - ALLOCATE ( XBURRH(IBUDIM1, IBUDIM2, IBUDIM3, NBUPROCNBR(NBUDGET_RH)) ) - XBURRH(:,:,:,:)=0. -END IF -! -IF (LBU_RSV) THEN - ALLOCATE ( XBURSV(IBUDIM1, IBUDIM2, IBUDIM3, IBUPROCNBR_SV_MAX, KSV) ) - XBURSV(:,:,:,:,:)=0. -END IF -! -!------------------------------------------------------------------------------- -! -END SUBROUTINE INI_BUDGET +end subroutine Ini_budget subroutine Budget_source_add( tpbudget, tpsource, ocond, kgroupin, odonotinit, ooverwrite ) diff --git a/src/MNH/initial_guess.f90 b/src/MNH/initial_guess.f90 index 7cf04e71e5d13b4769571f27166f8df6c39c22ac..6cffec168e49103fc509f7691bb965cd582fcbf9 100644 --- a/src/MNH/initial_guess.f90 +++ b/src/MNH/initial_guess.f90 @@ -77,7 +77,6 @@ END MODULE MODI_INITIAL_GUESS !! LBU_BEG : logical for budget begnning !! .TRUE. = budget begining !! .FALSE. = no budget begining -!! NBUPROCCTR : process counter used for each budget variable !! Switches for budgets activations: !! !! LBU_RU : logical for budget of RU (wind component along x) @@ -152,7 +151,7 @@ use modd_budget, only: lbudget_u, lbudget_v, lbudget_w, lbudget_th, lbudg lbudget_rr, lbudget_ri, lbudget_rs, lbudget_rg, lbudget_rh, lbudget_sv, & NBUDGET_U, NBUDGET_V, NBUDGET_W, NBUDGET_TH, NBUDGET_TKE, NBUDGET_RV, NBUDGET_RC, & NBUDGET_RR, NBUDGET_RI, NBUDGET_RS, NBUDGET_RG, NBUDGET_RH, NBUDGET_SV1, & - lbu_beg, lbu_enable, nbuctr_actv, nbuprocctr, tbudgets + lbu_beg, lbu_enable, tbudgets USE MODD_CONF USE MODD_GRID_n @@ -237,9 +236,6 @@ END IF ! IF (LBU_ENABLE) THEN IF (LBU_BEG) THEN - NBUPROCCTR(:)=1 - NBUCTR_ACTV(:)=1 - !Remark: does not need a call to Budget_store_init because the budget array is overwritten for this source term if ( lbudget_u ) call Budget_store_end( tbudgets(NBUDGET_U ), 'INIF', prus (:, :, :) ) if ( lbudget_v ) call Budget_store_end( tbudgets(NBUDGET_V ), 'INIF', prvs (:, :, :) ) @@ -259,9 +255,6 @@ IF (LBU_ENABLE) THEN end do end if END IF -! - NBUPROCCTR(:)=4 - NBUCTR_ACTV(:)=4 ! ! stores the Asselin source term ! diff --git a/src/MNH/lima_adjust.f90 b/src/MNH/lima_adjust.f90 index bf61da8e357cc35a9acf2469e198396f8ba7c2ab..db514c5ff444a6ec46f23be4273f9332c229de55 100644 --- a/src/MNH/lima_adjust.f90 +++ b/src/MNH/lima_adjust.f90 @@ -108,7 +108,6 @@ END MODULE MODI_LIMA_ADJUST !! Module MODD_BUDGET: !! NBUMOD !! CBUTYPE -!! NBUPROCCTR !! LBU_RTH !! LBU_RRV !! LBU_RRC diff --git a/src/MNH/modd_budget.f90 b/src/MNH/modd_budget.f90 index d472e2ebd8e68d9380632afef8445ddf2a069a63..7148c157e0d7e9913e073378ab420a89b34ec271 100644 --- a/src/MNH/modd_budget.f90 +++ b/src/MNH/modd_budget.f90 @@ -124,33 +124,12 @@ type(tburhodata), pointer, save :: tburhodj => null() ! Budge ! General variables LOGICAL, SAVE :: LBU_ENABLE ! -INTEGER, SAVE, DIMENSION(JPBUMAX,JPBUPROMAX) & ! number of processes to be - :: NBUINC ! avoided for every budget - ! between one active - ! source to the next one -INTEGER, SAVE, DIMENSION(JPBUMAX) & ! counter for all the processes - :: NBUCTR_ACTV ! activated or not -! CHARACTER (LEN=4), SAVE :: CBUTYPE ! type of desired budget 'CART' ! (cartesian box) or 'MASK' (budget ! zone defined by a mask) or 'NONE' ! (no budget) INTEGER, SAVE :: NBUMOD ! model in which budget is ! calculated -INTEGER, SAVE, DIMENSION(:), & ! number of processes for each - ALLOCATABLE :: NBUPROCNBR ! budget -! -INTEGER, SAVE, DIMENSION(:), & ! process counter linked to each - ALLOCATABLE :: NBUPROCCTR ! budget -! -CHARACTER(LEN=2), SAVE, DIMENSION(:,:), & ! resulting string character of the - ALLOCATABLE :: CBUACTION ! transcription of the budget actions - ! (integer) read in namelists or - ! set by default -! -CHARACTER (LEN=99), SAVE, DIMENSION(:,:),& ! name of a process for a budget. It - ALLOCATABLE :: CBUCOMMENT ! will appear in the comment part of - ! the previous record ! LOGICAL, SAVE :: LBU_BEG ! switch for budget beginning ! @@ -210,26 +189,6 @@ INTEGER, SAVE :: NBUJMAX ! second dimension of the budget ! tabular INTEGER, SAVE :: NBUKMAX ! dimension along K of the budget ! tabular -REAL, SAVE, DIMENSION(:,:,:,:), & ! budget arrays for RU, RV and - ALLOCATABLE :: XBURU, XBURV, XBURW ! RW (wind components) respectively -REAL, SAVE, DIMENSION(:,:,:,:), & ! budget arrays for RTH (potential - ALLOCATABLE :: XBURTH, XBURTKE ! temperature) and RTKE (kinetic - ! energy) -REAL, SAVE, DIMENSION(:,:,:,:), & ! budget arrays for RRV (water vapor) - ALLOCATABLE :: XBURRV, XBURRC ! and RRC (cloud water) -REAL, SAVE, DIMENSION(:,:,:,:), & ! budget arrays for RRR (rain water) - ALLOCATABLE :: XBURRR, XBURRI ! and RRI (ice) -REAL, SAVE, DIMENSION(:,:,:,:), & ! budget arrays for RRS (snow) - ALLOCATABLE :: XBURRS, XBURRG ! and RRG (graupel) -REAL, SAVE, DIMENSION(:,:,:,:), & ! budget array for RRH (hail) - ALLOCATABLE :: XBURRH ! -REAL, SAVE, DIMENSION(:,:,:,:,:), & - ALLOCATABLE :: XBURSV ! Budget of the SVx -REAL, SAVE, DIMENSION(:,:,:), & ! budget arrays for RHODJ at - ALLOCATABLE :: XBURHODJ , & ! scalar localization - XBURHODJU, & ! U localization - XBURHODJV, & ! V localization - XBURHODJW ! and W localization ! ! Allowed processes for the budget of the x scalar variables ! (transport part only) diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90 index adba0be8503e43a83d9b60b1266101f64539f27e..c6cd72db3a5629193b839d05bb30405b211fa4ed 100644 --- a/src/MNH/modeln.f90 +++ b/src/MNH/modeln.f90 @@ -283,7 +283,7 @@ USE MODD_BLOWSNOW_n use modd_budget, only: cbutype, lbu_ru, lbu_rv, lbu_rw, lbudget_u, lbudget_v, lbudget_w, lbu_enable, & NBUDGET_U, NBUDGET_V, NBUDGET_W, nbumod, nbutime, & tbudgets, tburhodj, & - xburhodj, xburhodju, xburhodjv, xburhodjw, xtime_bu, xtime_bu_process + xtime_bu, xtime_bu_process USE MODD_CH_AERO_n, ONLY: XSOLORG, XMI USE MODD_CH_MNHC_n, ONLY: LUSECHEM,LCH_CONV_LINOX,LUSECHAQ,LUSECHIC, & LCH_INIT_FIELD @@ -990,16 +990,7 @@ ELSE END IF ! IF (NBUMOD==IMI .AND. CBUTYPE=='MASK' ) THEN - CALL SET_MASK - IF (LBU_RU) XBURHODJU(:,NBUTIME,:) = XBURHODJU(:,NBUTIME,:) & - + MASK_COMPRESS(MXM(XRHODJ)) - IF (LBU_RV) XBURHODJV(:,NBUTIME,:) = XBURHODJV(:,NBUTIME,:) & - + MASK_COMPRESS(MYM(XRHODJ)) - IF (LBU_RW) XBURHODJW(:,NBUTIME,:) = XBURHODJW(:,NBUTIME,:) & - + MASK_COMPRESS(MZM(1,IKU,1,XRHODJ)) - IF (ALLOCATED(XBURHODJ)) & - XBURHODJ (:,NBUTIME,:) = XBURHODJ (:,NBUTIME,:) & - + MASK_COMPRESS(XRHODJ) + CALL SET_MASK() if ( lbu_ru ) then tbudgets(NBUDGET_U)%trhodj%xdata(:, nbutime, :) = tbudgets(NBUDGET_U)%trhodj%xdata(:, nbutime, :) & + Mask_compress( Mxm( xrhodj(:, :, :) ) ) @@ -1016,15 +1007,6 @@ IF (NBUMOD==IMI .AND. CBUTYPE=='MASK' ) THEN END IF ! IF (NBUMOD==IMI .AND. CBUTYPE=='CART' ) THEN - IF (LBU_RU) XBURHODJU(:,:,:) = XBURHODJU(:,:,:) & - + CART_COMPRESS(MXM(XRHODJ)) - IF (LBU_RV) XBURHODJV(:,:,:) = XBURHODJV(:,:,:) & - + CART_COMPRESS(MYM(XRHODJ)) - IF (LBU_RW) XBURHODJW(:,:,:) = XBURHODJW(:,:,:) & - + CART_COMPRESS(MZM(1,IKU,1,XRHODJ)) - IF (ALLOCATED(XBURHODJ)) & - XBURHODJ (:,:,:) = XBURHODJ (:,:,:) & - + CART_COMPRESS(XRHODJ) if ( lbu_ru ) then tbudgets(NBUDGET_U)%trhodj%xdata(:, :, :) = tbudgets(NBUDGET_U)%trhodj%xdata(:, :, :) + Cart_compress( Mxm( xrhodj(:, :, :) ) ) end if diff --git a/src/MNH/num_diff.f90 b/src/MNH/num_diff.f90 index df99a7930a628eb1e5f36b802856900946605095..011ca0d61b018d4b7b65eafc7355741a784fc4e7 100644 --- a/src/MNH/num_diff.f90 +++ b/src/MNH/num_diff.f90 @@ -129,7 +129,6 @@ END MODULE MODI_NUM_DIFF !! 'CART' for cartesian box configuration !! 'MASK' for budget zone defined by a mask !! 'NONE' ' for no budget -!! NBUPROCCTR : process counter used for each budget variable !! Switches for budgets activations: !! !! LBU_RU : logical for budget of RU (wind component along x) diff --git a/src/MNH/rain_c2r2_khko.f90 b/src/MNH/rain_c2r2_khko.f90 index 715a8cba57738c0fc64309a347ad41393e70a204..582717631b246a2c6c810d2aac8bdca372830a5a 100644 --- a/src/MNH/rain_c2r2_khko.f90 +++ b/src/MNH/rain_c2r2_khko.f90 @@ -161,7 +161,6 @@ END MODULE MODI_RAIN_C2R2_KHKO !! 'CART' for cartesian box configuration !! 'MASK' for budget zone defined by a mask !! 'NONE' ' for no budget -!! NBUPROCCTR : process counter used for each budget variable !! LBU_RTH : logical for budget of RTH (potential temperature) !! .TRUE. = budget of RTH !! .FALSE. = no budget of RTH diff --git a/src/MNH/rain_ice_red.f90 b/src/MNH/rain_ice_red.f90 index ca6b946c352f411101ca0b85de184fd52c618f41..2b60d5375302a820e69ecd3cd74bb13534f434d5 100644 --- a/src/MNH/rain_ice_red.f90 +++ b/src/MNH/rain_ice_red.f90 @@ -142,7 +142,6 @@ END MODULE MODI_RAIN_ICE_RED !! 'CART' for cartesian box configuration !! 'MASK' for budget zone defined by a mask !! 'NONE' ' for no budget -!! NBUPROCCTR : process counter used for each budget variable !! LBU_RTH : logical for budget of RTH (potential temperature) !! .TRUE. = budget of RTH !! .FALSE. = no budget of RTH diff --git a/src/MNH/slow_terms.f90 b/src/MNH/slow_terms.f90 index 2b0c58658dcd21e3622d8ab85c051368ee86e3e4..7e76852bdc980e9a5c3e31b4ae29e2c2293e7623 100644 --- a/src/MNH/slow_terms.f90 +++ b/src/MNH/slow_terms.f90 @@ -111,7 +111,6 @@ END MODULE MODI_SLOW_TERMS !! 'CART' for cartesian box configuration !! 'MASK' for budget zone defined by a mask !! 'NONE' ' for no budget -!! NBUPROCCTR : process counter used for each budget variable !! LBU_RTH : logical for budget of RTH (potential temperature) !! .TRUE. = budget of RTH !! .FALSE. = no budget of RTH diff --git a/src/MNH/tke_eps_sources.f90 b/src/MNH/tke_eps_sources.f90 index d945774a3e93e7b2704654cc7b69d19345aa6678..e773799be9ff0d2c4b77b8e0a891fd43681dd385 100644 --- a/src/MNH/tke_eps_sources.f90 +++ b/src/MNH/tke_eps_sources.f90 @@ -122,7 +122,6 @@ END MODULE MODI_TKE_EPS_SOURCES !! 'CART' for cartesian box configuration !! 'MASK' for budget zone defined by a mask !! 'NONE' ' for no budget -!! NBUPROCCTR : process counter used for each budget variable !! LBU_RTKE : logical for budget of RTKE (turbulent kinetic energy) !! .TRUE. = budget of RTKE !! .FALSE. = no budget of RTKE diff --git a/src/MNH/turb.f90 b/src/MNH/turb.f90 index cbd731e713867673b61430a2b275e92de396127e..e03e039d79aeb233385b3e9557e8e590bc62ea80 100644 --- a/src/MNH/turb.f90 +++ b/src/MNH/turb.f90 @@ -250,7 +250,6 @@ END MODULE MODI_TURB !! Module MODD_BUDGET: !! NBUMOD !! CBUTYPE -!! NBUPROCCTR !! LBU_RU !! LBU_RV !! LBU_RW