From 6c8af480151588f281a0ef70074af97b047b7dc5 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 8 Nov 2019 13:18:02 +0100 Subject: [PATCH] Philippe 08/11/2019: use NBUDGET_* parameters to identify all budget indices --- src/MNH/adv_forcingn.f90 | 5 +- src/MNH/advecmet.f90 | 63 ++- src/MNH/advecmet_4th.f90 | 63 ++- src/MNH/advecscalar.f90 | 15 +- src/MNH/advecscalar_4th.f90 | 13 +- src/MNH/advection_metsv.f90 | 26 +- src/MNH/advection_uvw.f90 | 6 +- src/MNH/advection_uvw_cen.f90 | 6 +- src/MNH/advecuvw.f90 | 25 +- src/MNH/c2r2_adjust.f90 | 10 +- src/MNH/ch_monitorn.f90 | 2 +- src/MNH/drag_veg.f90 | 15 +- src/MNH/dyn_sources.f90 | 22 +- src/MNH/exchange.f90 | 6 +- src/MNH/fast_terms.f90 | 6 +- src/MNH/fct_met.f90 | 81 ++-- src/MNH/fct_scalar.f90 | 15 +- src/MNH/forcing.f90 | 26 +- src/MNH/gravity_impl.f90 | 6 +- src/MNH/ice_adjust.f90 | 8 +- src/MNH/ice_adjust_elec.f90 | 16 +- src/MNH/ion_attach_elec.f90 | 4 +- src/MNH/khko_notadjust.f90 | 10 +- src/MNH/les_budget.f90 | 19 +- src/MNH/lima.f90 | 248 +++++------ src/MNH/lima_adjust.f90 | 16 +- src/MNH/lima_cold.f90 | 10 +- src/MNH/lima_cold_hom_nucl.f90 | 60 +-- src/MNH/lima_cold_slow_processes.f90 | 48 +-- src/MNH/lima_meyers.f90 | 40 +- src/MNH/lima_mixed.f90 | 148 +++---- src/MNH/lima_mixed_fast_processes.f90 | 122 +++--- src/MNH/lima_mixed_slow_processes.f90 | 27 +- src/MNH/lima_nucleation_procs.f90 | 69 +-- src/MNH/lima_phillips.f90 | 40 +- src/MNH/lima_precip_scavenging.f90 | 6 +- src/MNH/lima_warm.f90 | 36 +- src/MNH/lima_warm_coal.f90 | 36 +- src/MNH/mpdata.f90 | 26 +- src/MNH/mpdata_scalar.f90 | 6 +- src/MNH/nudging.f90 | 19 +- src/MNH/num_diff.f90 | 28 +- src/MNH/phys_paramn.f90 | 12 +- src/MNH/pressure.f90 | 6 +- src/MNH/pressurez.f90 | 6 +- src/MNH/rain_c2r2_khko.f90 | 102 ++--- src/MNH/rain_ice.f90 | 144 +++---- src/MNH/rain_ice_elec.f90 | 508 +++++++++++------------ src/MNH/rain_ice_fast_rg.f90 | 45 +- src/MNH/rain_ice_fast_rh.f90 | 23 +- src/MNH/rain_ice_fast_ri.f90 | 15 +- src/MNH/rain_ice_fast_rs.f90 | 23 +- src/MNH/rain_ice_nucleation.f90 | 9 +- src/MNH/rain_ice_red.f90 | 212 +++++----- src/MNH/rain_ice_sedimentation_split.f90 | 17 +- src/MNH/rain_ice_sedimentation_stat.f90 | 17 +- src/MNH/rain_ice_slow.f90 | 35 +- src/MNH/rain_ice_warm.f90 | 17 +- src/MNH/rel_forcingn.f90 | 4 +- src/MNH/relax2fw_ion.f90 | 21 +- src/MNH/relaxation.f90 | 33 +- src/MNH/resolved_cloud.f90 | 38 +- src/MNH/resolved_elecn.f90 | 18 +- src/MNH/shallow_mf_pack.f90 | 10 +- src/MNH/slow_terms.f90 | 16 +- src/MNH/tke_eps_sources.f90 | 8 +- src/MNH/turb.f90 | 62 +-- src/MNH/two_way.f90 | 24 +- src/MNH/viscosity.f90 | 24 +- 69 files changed, 1444 insertions(+), 1458 deletions(-) diff --git a/src/MNH/adv_forcingn.f90 b/src/MNH/adv_forcingn.f90 index 5a8246825..71b55df3e 100644 --- a/src/MNH/adv_forcingn.f90 +++ b/src/MNH/adv_forcingn.f90 @@ -2,6 +2,7 @@ !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ##################### MODULE MODI_ADV_FORCING_n ! ##################### @@ -227,8 +228,8 @@ END IF ! !* 3. BUDGET CALLS ! ------------ -IF (LBUDGET_TH) CALL BUDGET (PRTHS,4,'2DADV_BU_RTH') -IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),6,'2DADV_BU_RRV') +IF (LBUDGET_TH) CALL BUDGET (PRTHS,NBUDGET_TH,'2DADV_BU_RTH') +IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),NBUDGET_RV,'2DADV_BU_RRV') !---------------------------------------------------------------------------- ! END SUBROUTINE ADV_FORCING_n diff --git a/src/MNH/advecmet.f90 b/src/MNH/advecmet.f90 index 0297798cf..d375b1082 100644 --- a/src/MNH/advecmet.f90 +++ b/src/MNH/advecmet.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 adiab 2006/05/22 19:02:00 -!----------------------------------------------------------------- ! ####################### MODULE MODI_ADVECMET ! ####################### @@ -174,15 +169,15 @@ IKU=SIZE(XZHAT) ! Thermodynamical variable PRTHS(:,:,:) = PRTHS(:,:,:) & -DXF( PRUCT(:,:,:) * MXM (PTHT(:,:,:)) ) -IF (LBUDGET_TH) CALL BUDGET (PRTHS,4,'ADVX_BU_RTH') +IF (LBUDGET_TH) CALL BUDGET (PRTHS,NBUDGET_TH,'ADVX_BU_RTH') ! PRTHS(:,:,:) = PRTHS(:,:,:) & -DYF( PRVCT(:,:,:) * MYM (PTHT(:,:,:)) ) -IF (LBUDGET_TH) CALL BUDGET (PRTHS,4,'ADVY_BU_RTH') +IF (LBUDGET_TH) CALL BUDGET (PRTHS,NBUDGET_TH,'ADVY_BU_RTH') ! PRTHS(:,:,:) = PRTHS(:,:,:) & -DZF(1,IKU,1, PRWCT(:,:,:) * MZM (1,IKU,1,PTHT(:,:,:)) ) -IF (LBUDGET_TH) CALL BUDGET (PRTHS,4,'ADVZ_BU_RTH') +IF (LBUDGET_TH) CALL BUDGET (PRTHS,NBUDGET_TH,'ADVZ_BU_RTH') ! ! Case with KRR moist variables DO JRR=1,KRR @@ -190,53 +185,53 @@ DO JRR=1,KRR -DXF( PRUCT(:,:,:) * MXM (PRT(:,:,:,JRR)) ) END DO ! -IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),6 ,'ADVX_BU_RRV') -IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),7 ,'ADVX_BU_RRC') -IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:,3),8 ,'ADVX_BU_RRR') -IF (LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,4),9 ,'ADVX_BU_RRI') -IF (LBUDGET_RS) CALL BUDGET (PRRS(:,:,:,5),10,'ADVX_BU_RRS') -IF (LBUDGET_RG) CALL BUDGET (PRRS(:,:,:,6),11,'ADVX_BU_RRG') -IF (LBUDGET_RH) CALL BUDGET (PRRS(:,:,:,7),12,'ADVX_BU_RRH') +IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),NBUDGET_RV,'ADVX_BU_RRV') +IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),NBUDGET_RC,'ADVX_BU_RRC') +IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:,3),NBUDGET_RR,'ADVX_BU_RRR') +IF (LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,4),NBUDGET_RI,'ADVX_BU_RRI') +IF (LBUDGET_RS) CALL BUDGET (PRRS(:,:,:,5),NBUDGET_RS,'ADVX_BU_RRS') +IF (LBUDGET_RG) CALL BUDGET (PRRS(:,:,:,6),NBUDGET_RG,'ADVX_BU_RRG') +IF (LBUDGET_RH) CALL BUDGET (PRRS(:,:,:,7),NBUDGET_RH,'ADVX_BU_RRH') ! DO JRR=1,KRR PRRS(:,:,:,JRR) = PRRS(:,:,:,JRR) & -DYF( PRVCT(:,:,:) * MYM (PRT(:,:,:,JRR)) ) END DO ! -IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),6 ,'ADVY_BU_RRV') -IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),7 ,'ADVY_BU_RRC') -IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:,3),8 ,'ADVY_BU_RRR') -IF (LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,4),9 ,'ADVY_BU_RRI') -IF (LBUDGET_RS) CALL BUDGET (PRRS(:,:,:,5),10,'ADVY_BU_RRS') -IF (LBUDGET_RG) CALL BUDGET (PRRS(:,:,:,6),11,'ADVY_BU_RRG') -IF (LBUDGET_RH) CALL BUDGET (PRRS(:,:,:,7),12,'ADVY_BU_RRH') +IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),NBUDGET_RV,'ADVY_BU_RRV') +IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),NBUDGET_RC,'ADVY_BU_RRC') +IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:,3),NBUDGET_RR,'ADVY_BU_RRR') +IF (LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,4),NBUDGET_RI,'ADVY_BU_RRI') +IF (LBUDGET_RS) CALL BUDGET (PRRS(:,:,:,5),NBUDGET_RS,'ADVY_BU_RRS') +IF (LBUDGET_RG) CALL BUDGET (PRRS(:,:,:,6),NBUDGET_RG,'ADVY_BU_RRG') +IF (LBUDGET_RH) CALL BUDGET (PRRS(:,:,:,7),NBUDGET_RH,'ADVY_BU_RRH') ! DO JRR=1,KRR PRRS(:,:,:,JRR) = PRRS(:,:,:,JRR) & -DZF(1,IKU,1, PRWCT(:,:,:) * MZM (1,IKU,1,PRT(:,:,:,JRR)) ) END DO ! -IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),6 ,'ADVZ_BU_RRV') -IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),7 ,'ADVZ_BU_RRC') -IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:,3),8 ,'ADVZ_BU_RRR') -IF (LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,4),9 ,'ADVZ_BU_RRI') -IF (LBUDGET_RS) CALL BUDGET (PRRS(:,:,:,5),10,'ADVZ_BU_RRS') -IF (LBUDGET_RG) CALL BUDGET (PRRS(:,:,:,6),11,'ADVZ_BU_RRG') -IF (LBUDGET_RH) CALL BUDGET (PRRS(:,:,:,7),12,'ADVZ_BU_RRH') +IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),NBUDGET_RV,'ADVZ_BU_RRV') +IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),NBUDGET_RC,'ADVZ_BU_RRC') +IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:,3),NBUDGET_RR,'ADVZ_BU_RRR') +IF (LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,4),NBUDGET_RI,'ADVZ_BU_RRI') +IF (LBUDGET_RS) CALL BUDGET (PRRS(:,:,:,5),NBUDGET_RS,'ADVZ_BU_RRS') +IF (LBUDGET_RG) CALL BUDGET (PRRS(:,:,:,6),NBUDGET_RG,'ADVZ_BU_RRG') +IF (LBUDGET_RH) CALL BUDGET (PRRS(:,:,:,7),NBUDGET_RH,'ADVZ_BU_RRH') ! ! TKE variable IF (SIZE(PTKET,1) /= 0) THEN PRTKES(:,:,:) = PRTKES(:,:,:) & -DXF( PRUCT(:,:,:) * MXM (PTKET(:,:,:)) ) - IF (LBUDGET_TKE) CALL BUDGET (PRTKES,5,'ADVX_BU_RTKE') + IF (LBUDGET_TKE) CALL BUDGET (PRTKES,NBUDGET_TKE,'ADVX_BU_RTKE') ! PRTKES(:,:,:) = PRTKES(:,:,:) & -DYF( PRVCT(:,:,:) * MYM (PTKET(:,:,:)) ) - IF (LBUDGET_TKE) CALL BUDGET (PRTKES,5,'ADVY_BU_RTKE') + IF (LBUDGET_TKE) CALL BUDGET (PRTKES,NBUDGET_TKE,'ADVY_BU_RTKE') ! PRTKES(:,:,:) = PRTKES(:,:,:) & -DZF(1,IKU,1, PRWCT(:,:,:) * MZM (1,IKU,1,PTKET(:,:,:)) ) - IF (LBUDGET_TKE) CALL BUDGET (PRTKES,5,'ADVZ_BU_RTKE') + IF (LBUDGET_TKE) CALL BUDGET (PRTKES,NBUDGET_TKE,'ADVZ_BU_RTKE') END IF ! ! diff --git a/src/MNH/advecmet_4th.f90 b/src/MNH/advecmet_4th.f90 index b708b8cf0..61c463f30 100644 --- a/src/MNH/advecmet_4th.f90 +++ b/src/MNH/advecmet_4th.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2005-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 adiab 2006/05/22 19:00:38 -!----------------------------------------------------------------- ! ############################### MODULE MODI_ADVECMET_4TH ! ############################### @@ -237,15 +232,15 @@ IGRID = 1 ! PRTHS(:,:,:) = PRTHS(:,:,:) & -DXF( PRUCT(:,:,:) * ZMEANX(:,:,:) ) -IF (LBUDGET_TH) CALL BUDGET (PRTHS,4,'ADVX_BU_RTH') +IF (LBUDGET_TH) CALL BUDGET (PRTHS,NBUDGET_TH,'ADVX_BU_RTH') ! PRTHS(:,:,:) = PRTHS(:,:,:) & -DYF( PRVCT(:,:,:) * ZMEANY(:,:,:) ) -IF (LBUDGET_TH) CALL BUDGET (PRTHS,4,'ADVY_BU_RTH') +IF (LBUDGET_TH) CALL BUDGET (PRTHS,NBUDGET_TH,'ADVY_BU_RTH') ! PRTHS(:,:,:) = PRTHS(:,:,:) & -DZF(1,IKU,1, PRWCT(:,:,:) * MZM4(PTHT(:,:,:)) ) -IF (LBUDGET_TH) CALL BUDGET (PRTHS,4,'ADVZ_BU_RTH') +IF (LBUDGET_TH) CALL BUDGET (PRTHS,NBUDGET_TH,'ADVZ_BU_RTH') ! ! Turbulence variables ! @@ -260,15 +255,15 @@ IF ( GTKEALLOC ) THEN ! PRTKES(:,:,:) = PRTKES(:,:,:) & -DXF( PRUCT(:,:,:) * ZMEANX(:,:,:) ) - IF (LBUDGET_TKE) CALL BUDGET (PRTKES,5,'ADVX_BU_RTKE') + IF (LBUDGET_TKE) CALL BUDGET (PRTKES,NBUDGET_TKE,'ADVX_BU_RTKE') ! PRTKES(:,:,:) = PRTKES(:,:,:) & -DYF( PRVCT(:,:,:) * ZMEANY(:,:,:) ) - IF (LBUDGET_TKE) CALL BUDGET (PRTKES,5,'ADVY_BU_RTKE') + IF (LBUDGET_TKE) CALL BUDGET (PRTKES,NBUDGET_TKE,'ADVY_BU_RTKE') ! PRTKES(:,:,:) = PRTKES(:,:,:) & -DZF(1,IKU,1, PRWCT(:,:,:) * MZM4(PTKET(:,:,:)) ) - IF (LBUDGET_TKE) CALL BUDGET (PRTKES,5,'ADVZ_BU_RTKE') + IF (LBUDGET_TKE) CALL BUDGET (PRTKES,NBUDGET_TKE,'ADVZ_BU_RTKE') ENDIF ! ! @@ -285,33 +280,33 @@ DO JRR=1, KRR ! PRRS(:,:,:,JRR) = PRRS(:,:,:,JRR) & -DXF( PRUCT(:,:,:) * ZMEANX(:,:,:) ) - IF (JRR==1 .AND. LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),6 ,'ADVX_BU_RRV') - IF (JRR==2 .AND. LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),7 ,'ADVX_BU_RRC') - IF (JRR==3 .AND. LBUDGET_RR) CALL BUDGET (PRRS(:,:,:,3),8 ,'ADVX_BU_RRR') - IF (JRR==4 .AND. LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,4),9 ,'ADVX_BU_RRI') - IF (JRR==5 .AND. LBUDGET_RS) CALL BUDGET (PRRS(:,:,:,5),10,'ADVX_BU_RRS') - IF (JRR==6 .AND. LBUDGET_RG) CALL BUDGET (PRRS(:,:,:,6),11,'ADVX_BU_RRG') - IF (JRR==7 .AND. LBUDGET_RH) CALL BUDGET (PRRS(:,:,:,7),12,'ADVX_BU_RRH') + IF (JRR==1 .AND. LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),NBUDGET_RV,'ADVX_BU_RRV') + IF (JRR==2 .AND. LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),NBUDGET_RC,'ADVX_BU_RRC') + IF (JRR==3 .AND. LBUDGET_RR) CALL BUDGET (PRRS(:,:,:,3),NBUDGET_RR,'ADVX_BU_RRR') + IF (JRR==4 .AND. LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,4),NBUDGET_RI,'ADVX_BU_RRI') + IF (JRR==5 .AND. LBUDGET_RS) CALL BUDGET (PRRS(:,:,:,5),NBUDGET_RS,'ADVX_BU_RRS') + IF (JRR==6 .AND. LBUDGET_RG) CALL BUDGET (PRRS(:,:,:,6),NBUDGET_RG,'ADVX_BU_RRG') + IF (JRR==7 .AND. LBUDGET_RH) CALL BUDGET (PRRS(:,:,:,7),NBUDGET_RH,'ADVX_BU_RRH') ! PRRS(:,:,:,JRR) = PRRS(:,:,:,JRR) & -DYF( PRVCT(:,:,:) * ZMEANY(:,:,:) ) - IF (JRR==1 .AND. LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),6 ,'ADVY_BU_RRV') - IF (JRR==2 .AND. LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),7 ,'ADVY_BU_RRC') - IF (JRR==3 .AND. LBUDGET_RR) CALL BUDGET (PRRS(:,:,:,3),8 ,'ADVY_BU_RRR') - IF (JRR==4 .AND. LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,4),9 ,'ADVY_BU_RRI') - IF (JRR==5 .AND. LBUDGET_RS) CALL BUDGET (PRRS(:,:,:,5),10,'ADVY_BU_RRS') - IF (JRR==6 .AND. LBUDGET_RG) CALL BUDGET (PRRS(:,:,:,6),11,'ADVY_BU_RRG') - IF (JRR==7 .AND. LBUDGET_RH) CALL BUDGET (PRRS(:,:,:,7),12,'ADVY_BU_RRH') + IF (JRR==1 .AND. LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),NBUDGET_RV,'ADVY_BU_RRV') + IF (JRR==2 .AND. LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),NBUDGET_RC,'ADVY_BU_RRC') + IF (JRR==3 .AND. LBUDGET_RR) CALL BUDGET (PRRS(:,:,:,3),NBUDGET_RR,'ADVY_BU_RRR') + IF (JRR==4 .AND. LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,4),NBUDGET_RI,'ADVY_BU_RRI') + IF (JRR==5 .AND. LBUDGET_RS) CALL BUDGET (PRRS(:,:,:,5),NBUDGET_RS,'ADVY_BU_RRS') + IF (JRR==6 .AND. LBUDGET_RG) CALL BUDGET (PRRS(:,:,:,6),NBUDGET_RG,'ADVY_BU_RRG') + IF (JRR==7 .AND. LBUDGET_RH) CALL BUDGET (PRRS(:,:,:,7),NBUDGET_RH,'ADVY_BU_RRH') ! PRRS(:,:,:,JRR) = PRRS(:,:,:,JRR) & -DZF(1,IKU,1, PRWCT(:,:,:) * MZM4(PRT(:,:,:,JRR)) ) - IF (JRR==1 .AND. LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),6 ,'ADVZ_BU_RRV') - IF (JRR==2 .AND. LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),7 ,'ADVZ_BU_RRC') - IF (JRR==3 .AND. LBUDGET_RR) CALL BUDGET (PRRS(:,:,:,3),8 ,'ADVZ_BU_RRR') - IF (JRR==4 .AND. LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,4),9 ,'ADVZ_BU_RRI') - IF (JRR==5 .AND. LBUDGET_RS) CALL BUDGET (PRRS(:,:,:,5),10,'ADVZ_BU_RRS') - IF (JRR==6 .AND. LBUDGET_RG) CALL BUDGET (PRRS(:,:,:,6),11,'ADVZ_BU_RRG') - IF (JRR==7 .AND. LBUDGET_RH) CALL BUDGET (PRRS(:,:,:,7),12,'ADVZ_BU_RRH') + IF (JRR==1 .AND. LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),NBUDGET_RV,'ADVZ_BU_RRV') + IF (JRR==2 .AND. LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),NBUDGET_RC,'ADVZ_BU_RRC') + IF (JRR==3 .AND. LBUDGET_RR) CALL BUDGET (PRRS(:,:,:,3),NBUDGET_RR,'ADVZ_BU_RRR') + IF (JRR==4 .AND. LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,4),NBUDGET_RI,'ADVZ_BU_RRI') + IF (JRR==5 .AND. LBUDGET_RS) CALL BUDGET (PRRS(:,:,:,5),NBUDGET_RS,'ADVZ_BU_RRS') + IF (JRR==6 .AND. LBUDGET_RG) CALL BUDGET (PRRS(:,:,:,6),NBUDGET_RG,'ADVZ_BU_RRG') + IF (JRR==7 .AND. LBUDGET_RH) CALL BUDGET (PRRS(:,:,:,7),NBUDGET_RH,'ADVZ_BU_RRH') ENDDO ! ! diff --git a/src/MNH/advecscalar.f90 b/src/MNH/advecscalar.f90 index 0377dc0db..4fd1e47a4 100644 --- a/src/MNH/advecscalar.f90 +++ b/src/MNH/advecscalar.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 adiab 2006/05/18 13:07:25 -!----------------------------------------------------------------- ! ####################### MODULE MODI_ADVECSCALAR ! ####################### @@ -146,7 +141,7 @@ DO JSV=1,KSV END DO IF (LBUDGET_SV) THEN DO JSV=1,KSV - CALL BUDGET (PRSVS(:,:,:,JSV),JSV+12,'ADVX_BU_RSV') + CALL BUDGET (PRSVS(:,:,:,JSV),JSV+NBUDGET_SV1-1,'ADVX_BU_RSV') END DO END IF ! @@ -156,7 +151,7 @@ DO JSV=1,KSV END DO IF (LBUDGET_SV) THEN DO JSV=1,KSV - CALL BUDGET (PRSVS(:,:,:,JSV),JSV+12,'ADVY_BU_RSV') + CALL BUDGET (PRSVS(:,:,:,JSV),JSV+NBUDGET_SV1-1,'ADVY_BU_RSV') END DO END IF ! @@ -166,7 +161,7 @@ DO JSV=1,KSV END DO IF (LBUDGET_SV) THEN DO JSV=1,KSV - CALL BUDGET (PRSVS(:,:,:,JSV),JSV+12,'ADVZ_BU_RSV') + CALL BUDGET (PRSVS(:,:,:,JSV),JSV+NBUDGET_SV1-1,'ADVZ_BU_RSV') END DO END IF ! diff --git a/src/MNH/advecscalar_4th.f90 b/src/MNH/advecscalar_4th.f90 index 1cf233594..d41632edb 100644 --- a/src/MNH/advecscalar_4th.f90 +++ b/src/MNH/advecscalar_4th.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2005-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 adiab 2006/05/18 13:07:25 -!----------------------------------------------------------------- ! ############################### MODULE MODI_ADVECSCALAR_4TH ! ############################### @@ -193,15 +188,15 @@ DO JSV=1,KSV ! PRSVS(:,:,:,JSV) = PRSVS(:,:,:,JSV) & -DXF( PRUCT(:,:,:) * ZMEANX(:,:,:) ) - IF (LBUDGET_SV) CALL BUDGET (PRSVS(:,:,:,JSV),JSV+12,'ADVX_BU_RSV') + IF (LBUDGET_SV) CALL BUDGET (PRSVS(:,:,:,JSV),JSV+NBUDGET_SV1-1,'ADVX_BU_RSV') ! PRSVS(:,:,:,JSV) = PRSVS(:,:,:,JSV) & -DYF( PRVCT(:,:,:) * ZMEANY(:,:,:) ) - IF (LBUDGET_SV) CALL BUDGET (PRSVS(:,:,:,JSV),JSV+12,'ADVY_BU_RSV') + IF (LBUDGET_SV) CALL BUDGET (PRSVS(:,:,:,JSV),JSV+NBUDGET_SV1-1,'ADVY_BU_RSV') ! PRSVS(:,:,:,JSV) = PRSVS(:,:,:,JSV) & -DZF(1,IKU,1, PRWCT(:,:,:) * MZM4(PSVT(:,:,:,JSV)) ) - IF (LBUDGET_SV) CALL BUDGET (PRSVS(:,:,:,JSV),JSV+12,'ADVZ_BU_RSV') + IF (LBUDGET_SV) CALL BUDGET (PRSVS(:,:,:,JSV),JSV+NBUDGET_SV1-1,'ADVZ_BU_RSV') ENDDO ! !------------------------------------------------------------------------------- diff --git a/src/MNH/advection_metsv.f90 b/src/MNH/advection_metsv.f90 index 507178426..082a38516 100644 --- a/src/MNH/advection_metsv.f90 +++ b/src/MNH/advection_metsv.f90 @@ -656,17 +656,17 @@ END IF !* 5. BUDGETS ! ------- ! -IF (LBUDGET_TH) CALL BUDGET (PRTHS,4,'ADV_BU_RTH') -IF (LBUDGET_TKE) CALL BUDGET (PRTKES,5,'ADV_BU_RTKE') -IF (KRR>=1.AND.LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),6,'ADV_BU_RRV') -IF (KRR>=2.AND.LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),7,'ADV_BU_RRC') -IF (KRR>=3.AND.LBUDGET_RR) CALL BUDGET (PRRS(:,:,:,3),8,'ADV_BU_RRR') -IF (KRR>=4.AND.LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,4),9,'ADV_BU_RRI') -IF (KRR>=5.AND.LBUDGET_RS) CALL BUDGET (PRRS(:,:,:,5),10,'ADV_BU_RRS') -IF (KRR>=6.AND.LBUDGET_RG) CALL BUDGET (PRRS(:,:,:,6),11,'ADV_BU_RRG') -IF (KRR>=7.AND.LBUDGET_RH) CALL BUDGET (PRRS(:,:,:,7),12,'ADV_BU_RRH') +IF ( LBUDGET_TH ) CALL BUDGET( PRTHS, NBUDGET_TH, 'ADV_BU_RTH' ) +IF ( LBUDGET_TKE ) CALL BUDGET( PRTKES, NBUDGET_TKE, 'ADV_BU_RTKE' ) +IF ( KRR >= 1 .AND. LBUDGET_RV ) CALL BUDGET( PRRS(:, :, :, 1 ), NBUDGET_RV, 'ADV_BU_RRV' ) +IF ( KRR >= 2 .AND. LBUDGET_RC ) CALL BUDGET( PRRS(:, :, :, 2 ), NBUDGET_RC, 'ADV_BU_RRC' ) +IF ( KRR >= 3 .AND. LBUDGET_RR ) CALL BUDGET( PRRS(:, :, :, 3 ), NBUDGET_RR, 'ADV_BU_RRR' ) +IF ( KRR >= 4 .AND. LBUDGET_RI ) CALL BUDGET( PRRS(:, :, :, 4 ), NBUDGET_RI, 'ADV_BU_RRI' ) +IF ( KRR >= 5 .AND. LBUDGET_RS ) CALL BUDGET( PRRS(:, :, :, 5 ), NBUDGET_RS, 'ADV_BU_RRS' ) +IF ( KRR >= 6 .AND. LBUDGET_RG ) CALL BUDGET( PRRS(:, :, :, 6 ), NBUDGET_RG, 'ADV_BU_RRG' ) +IF ( KRR >= 7 .AND. LBUDGET_RH ) CALL BUDGET( PRRS(:, :, :, 7 ), NBUDGET_RH, 'ADV_BU_RRH' ) DO JSV=1,KSV - IF (LBUDGET_SV) CALL BUDGET (PRSVS(:,:,:,JSV),JSV+12,'ADV_BU_RSV') + IF ( LBUDGET_SV ) CALL BUDGET (PRSVS(:,:,:,JSV), JSV+NBUDGET_SV1-1, 'ADV_BU_RSV' ) END DO ! IF ((HCLOUD == 'KHKO') .OR. (HCLOUD == 'C2R2')) THEN @@ -691,9 +691,9 @@ IF ((HCLOUD == 'KHKO') .OR. (HCLOUD == 'C2R2')) THEN END WHERE END DO ! - IF (LBUDGET_TH) CALL BUDGET (PRTHS(:,:,:) , 4,'NEADV_BU_RTH') - IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1), 6,'NEADV_BU_RRV') - IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2), 7,'NEADV_BU_RRC') + IF (LBUDGET_TH) CALL BUDGET (PRTHS(:,:,:) , NBUDGET_TH,'NEADV_BU_RTH') + IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1), NBUDGET_RV,'NEADV_BU_RRV') + IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2), NBUDGET_RC,'NEADV_BU_RRC') END IF diff --git a/src/MNH/advection_uvw.f90 b/src/MNH/advection_uvw.f90 index cce091935..54b6db96a 100644 --- a/src/MNH/advection_uvw.f90 +++ b/src/MNH/advection_uvw.f90 @@ -319,9 +319,9 @@ END DO !* 4. BUDGETS ! ------- ! -IF (LBUDGET_U) CALL BUDGET (PRUS,1,'ADV_BU_RU') -IF (LBUDGET_V) CALL BUDGET (PRVS,2,'ADV_BU_RV') -IF (LBUDGET_W) CALL BUDGET (PRWS,3,'ADV_BU_RW') +IF (LBUDGET_U) CALL BUDGET (PRUS,NBUDGET_U,'ADV_BU_RU') +IF (LBUDGET_V) CALL BUDGET (PRVS,NBUDGET_V,'ADV_BU_RV') +IF (LBUDGET_W) CALL BUDGET (PRWS,NBUDGET_W,'ADV_BU_RW') !------------------------------------------------------------------------------- ! END SUBROUTINE ADVECTION_UVW diff --git a/src/MNH/advection_uvw_cen.f90 b/src/MNH/advection_uvw_cen.f90 index e675af5bf..ea8051c4e 100644 --- a/src/MNH/advection_uvw_cen.f90 +++ b/src/MNH/advection_uvw_cen.f90 @@ -248,9 +248,9 @@ PDUM = ZUS(:,:,:) - PUM(:,:,:) PDVM = ZVS(:,:,:) - PVM(:,:,:) PDWM = ZWS(:,:,:) - PWM(:,:,:) ! -IF (LBUDGET_U) CALL BUDGET (PRUS,1,'ADV_BU_RU') -IF (LBUDGET_V) CALL BUDGET (PRVS,2,'ADV_BU_RV') -IF (LBUDGET_W) CALL BUDGET (PRWS,3,'ADV_BU_RW') +IF (LBUDGET_U) CALL BUDGET (PRUS,NBUDGET_U,'ADV_BU_RU') +IF (LBUDGET_V) CALL BUDGET (PRVS,NBUDGET_V,'ADV_BU_RV') +IF (LBUDGET_W) CALL BUDGET (PRWS,NBUDGET_W,'ADV_BU_RW') ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/advecuvw.f90 b/src/MNH/advecuvw.f90 index d0f32702b..c0488bbda 100644 --- a/src/MNH/advecuvw.f90 +++ b/src/MNH/advecuvw.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 adiab 2006/05/18 13:07:25 -!----------------------------------------------------------------- ! #################### MODULE MODI_ADVECUVW ! #################### @@ -146,41 +141,41 @@ IKU=SIZE(XZHAT) ! PRUS(:,:,:) = PRUS(:,:,:) & -DXM( MXF(PRUCT(:,:,:))*MXF(PUT(:,:,:)) ) -IF (LBUDGET_U) CALL BUDGET (PRUS,1,'ADVX_BU_RU') +IF (LBUDGET_U) CALL BUDGET (PRUS,NBUDGET_U,'ADVX_BU_RU') ! PRUS(:,:,:) = PRUS(:,:,:) & -DYF( MXM(PRVCT(:,:,:))*MYM(PUT(:,:,:)) ) -IF (LBUDGET_U) CALL BUDGET (PRUS,1,'ADVY_BU_RU') +IF (LBUDGET_U) CALL BUDGET (PRUS,NBUDGET_U,'ADVY_BU_RU') ! PRUS(:,:,:) = PRUS(:,:,:) & -DZF(1,IKU,1, MXM(PRWCT(:,:,:))*MZM(1,IKU,1,PUT(:,:,:)) ) -IF (LBUDGET_U) CALL BUDGET (PRUS,1,'ADVZ_BU_RU') +IF (LBUDGET_U) CALL BUDGET (PRUS,NBUDGET_U,'ADVZ_BU_RU') ! ! PRVS(:,:,:) = PRVS(:,:,:) & -DXF( MYM(PRUCT(:,:,:))*MXM(PVT(:,:,:)) ) -IF (LBUDGET_V) CALL BUDGET (PRVS,2,'ADVX_BU_RV') +IF (LBUDGET_V) CALL BUDGET (PRVS,NBUDGET_V,'ADVX_BU_RV') ! PRVS(:,:,:) = PRVS(:,:,:) & -DYM( MYF(PRVCT(:,:,:))*MYF(PVT(:,:,:)) ) -IF (LBUDGET_V) CALL BUDGET (PRVS,2,'ADVY_BU_RV') +IF (LBUDGET_V) CALL BUDGET (PRVS,NBUDGET_V,'ADVY_BU_RV') ! PRVS(:,:,:) = PRVS(:,:,:) & -DZF(1,IKU,1, MYM(PRWCT(:,:,:))*MZM(1,IKU,1,PVT(:,:,:)) ) -IF (LBUDGET_V) CALL BUDGET (PRVS,2,'ADVZ_BU_RV') +IF (LBUDGET_V) CALL BUDGET (PRVS,NBUDGET_V,'ADVZ_BU_RV') ! ! PRWS(:,:,:) = PRWS(:,:,:) & -DXF( MZM(1,IKU,1,PRUCT(:,:,:))*MXM(PWT(:,:,:)) ) -IF (LBUDGET_W) CALL BUDGET (PRWS,3,'ADVX_BU_RW') +IF (LBUDGET_W) CALL BUDGET (PRWS,NBUDGET_W,'ADVX_BU_RW') ! PRWS(:,:,:) = PRWS(:,:,:) & -DYF( MZM(1,IKU,1,PRVCT(:,:,:))*MYM(PWT(:,:,:)) ) -IF (LBUDGET_W) CALL BUDGET (PRWS,3,'ADVY_BU_RW') +IF (LBUDGET_W) CALL BUDGET (PRWS,NBUDGET_W,'ADVY_BU_RW') ! PRWS(:,:,:) = PRWS(:,:,:) & -DZM(1,IKU,1, MZF(1,IKU,1,PRWCT(:,:,:))*MZF(1,IKU,1,PWT(:,:,:)) ) -IF (LBUDGET_W) CALL BUDGET (PRWS,3,'ADVZ_BU_RW') +IF (LBUDGET_W) CALL BUDGET (PRWS,NBUDGET_W,'ADVZ_BU_RW') ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/c2r2_adjust.f90 b/src/MNH/c2r2_adjust.f90 index 265452f16..ebbdb572f 100644 --- a/src/MNH/c2r2_adjust.f90 +++ b/src/MNH/c2r2_adjust.f90 @@ -420,12 +420,12 @@ END IF ! ---------------------- ! ! -IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:) * PRHODJ(:,:,:),6,'COND_BU_RRV') -IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:) * PRHODJ(:,:,:),7,'COND_BU_RRC') -IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:) * PRHODJ(:,:,:),4,'COND_BU_RTH') +IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:) * PRHODJ(:,:,:),NBUDGET_RV,'COND_BU_RRV') +IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:) * PRHODJ(:,:,:),NBUDGET_RC,'COND_BU_RRC') +IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:) * PRHODJ(:,:,:),NBUDGET_TH,'COND_BU_RTH') IF (LBUDGET_SV) THEN - CALL BUDGET (PCNUCS(:,:,:) * PRHODJ(:,:,:),13+(NSV_C2R2BEG-1),'CEVA_BU_RSV') ! RCN - CALL BUDGET (PCCS(:,:,:) * PRHODJ(:,:,:),14+(NSV_C2R2BEG-1),'CEVA_BU_RSV') ! RCC + CALL BUDGET (PCNUCS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1+(NSV_C2R2BEG-1), 'CEVA_BU_RSV') ! RCN + CALL BUDGET (PCCS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1+(NSV_C2R2BEG-1)+1,'CEVA_BU_RSV') ! RCC END IF ! !------------------------------------------------------------------------------ diff --git a/src/MNH/ch_monitorn.f90 b/src/MNH/ch_monitorn.f90 index 30ea34766..b81da5894 100644 --- a/src/MNH/ch_monitorn.f90 +++ b/src/MNH/ch_monitorn.f90 @@ -1278,7 +1278,7 @@ END DO ! IF (LBUDGET_SV) THEN DO JSV=NSV_CHEMBEG,NSV_CHEMEND - CALL BUDGET(XRSVS(:,:,:,JSV),JSV+12,'CHEM_BU_RSV') + CALL BUDGET(XRSVS(:,:,:,JSV),NBUDGET_SV1-1+JSV,'CHEM_BU_RSV') ENDDO ENDIF ! diff --git a/src/MNH/drag_veg.f90 b/src/MNH/drag_veg.f90 index ce157a154..e8ece294e 100644 --- a/src/MNH/drag_veg.f90 +++ b/src/MNH/drag_veg.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2009-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ####################### MODULE MODI_DRAG_VEG ! ####################### @@ -270,10 +271,10 @@ IF (ODEPOTREE) THEN ! END IF ! -IF (LBUDGET_U) CALL BUDGET (PRUS,1,'DRAG_BU_RU') -IF (LBUDGET_V) CALL BUDGET (PRVS,2,'DRAG_BU_RV') -IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),7,'DEPOTR_BU_RRC') -IF (LBUDGET_SV) CALL BUDGET (PSVS(:,:,:,NSV_C2R2BEG+1),14+(NSV_C2R2BEG-1),'DEPOTR_BU_RSV') +IF (LBUDGET_U) CALL BUDGET (PRUS,NBUDGET_U,'DRAG_BU_RU') +IF (LBUDGET_V) CALL BUDGET (PRVS,NBUDGET_V,'DRAG_BU_RV') +IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),NBUDGET_RC,'DEPOTR_BU_RRC') +IF (LBUDGET_SV) CALL BUDGET (PSVS(:,:,:,NSV_C2R2BEG+1),NBUDGET_SV1+(NSV_C2R2BEG-1)+1,'DEPOTR_BU_RSV') ! ! !* 3. Computations of TKE tendency due to canopy drag @@ -300,6 +301,6 @@ ZTKES(:,:,:)= (ZTKET(:,:,:) + (ZCDRAG(:,:,:)* ZDENSITY(:,:,:) & ! PRTKES(:,:,:)=PRTKES(:,:,:)+((ZTKES(:,:,:)-ZTKET(:,:,:))*PRHODJ(:,:,:)/PTSTEP) ! -IF (LBUDGET_TKE) CALL BUDGET (PRTKES(:,:,:),5,'DRAG_BU_RTKE') +IF (LBUDGET_TKE) CALL BUDGET (PRTKES(:,:,:),NBUDGET_TKE,'DRAG_BU_RTKE') ! END SUBROUTINE DRAG_VEG diff --git a/src/MNH/dyn_sources.f90 b/src/MNH/dyn_sources.f90 index 5bdb5483a..56c6a2010 100644 --- a/src/MNH/dyn_sources.f90 +++ b/src/MNH/dyn_sources.f90 @@ -1,12 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -!----------------------------------------------------------------- ! ####################### MODULE MODI_DYN_SOURCES ! ####################### @@ -267,9 +263,9 @@ IF ((.NOT.L1D).AND.(.NOT.LCARTESIAN) ) THEN ! END IF ! -IF (LBUDGET_U) CALL BUDGET (PRUS,1,'CURV_BU_RU') -IF (LBUDGET_V) CALL BUDGET (PRVS,2,'CURV_BU_RV') -IF (LBUDGET_W) CALL BUDGET (PRWS,3,'CURV_BU_RW') +IF (LBUDGET_U) CALL BUDGET (PRUS,NBUDGET_U,'CURV_BU_RU') +IF (LBUDGET_V) CALL BUDGET (PRVS,NBUDGET_V,'CURV_BU_RV') +IF (LBUDGET_W) CALL BUDGET (PRWS,NBUDGET_W,'CURV_BU_RW') ! !------------------------------------------------------------------------------- ! @@ -298,9 +294,9 @@ IF (LCORIO) THEN ! END IF ! -IF (LBUDGET_U) CALL BUDGET (PRUS,1,'COR_BU_RU') -IF (LBUDGET_V) CALL BUDGET (PRVS,2,'COR_BU_RV') -IF (LBUDGET_W) CALL BUDGET (PRWS,3,'COR_BU_RW') +IF (LBUDGET_U) CALL BUDGET (PRUS,NBUDGET_U,'COR_BU_RU') +IF (LBUDGET_V) CALL BUDGET (PRVS,NBUDGET_V,'COR_BU_RV') +IF (LBUDGET_W) CALL BUDGET (PRWS,NBUDGET_W,'COR_BU_RW') ! !------------------------------------------------------------------------------- ! @@ -339,7 +335,7 @@ IF( .NOT.L1D ) THEN ! END IF ! - IF (LBUDGET_TH) CALL BUDGET (PRTHS,4,'PREF_BU_RTH') + IF (LBUDGET_TH) CALL BUDGET (PRTHS,NBUDGET_TH,'PREF_BU_RTH') ! END IF ! diff --git a/src/MNH/exchange.f90 b/src/MNH/exchange.f90 index b6d8bb8b3..01634dd55 100644 --- a/src/MNH/exchange.f90 +++ b/src/MNH/exchange.f90 @@ -98,7 +98,7 @@ END MODULE MODI_EXCHANGE USE MODD_ARGSLIST_ll, ONLY : LIST_ll USE MODD_GRID_n USE MODD_NSV -USE MODD_BUDGET, ONLY : LBUDGET_SV +USE MODD_BUDGET, ONLY : LBUDGET_SV, NBUDGET_SV1 USE MODD_CST, ONLY : XMNH_TINY USE MODD_LUNIT_n, ONLY : TLUOUT USE MODI_SHUMAN @@ -210,7 +210,7 @@ IF (LUSECHEM) THEN ! IF (LBUDGET_SV) THEN DO JSV=NSV_CHEMBEG,NSV_CHEMEND - CALL BUDGET(PRSVS(:,:,:,JSV),JSV+12,'NEGA_BU_RSV') + CALL BUDGET(PRSVS(:,:,:,JSV),NBUDGET_SV1-1+JSV,'NEGA_BU_RSV') ENDDO ENDIF ! @@ -251,7 +251,7 @@ IF (LUSECHEM) THEN END DO IF (LBUDGET_SV) THEN DO JSV=NSV_AERBEG,NSV_AEREND - CALL BUDGET(PRSVS(:,:,:,JSV),JSV+12,'NEGA_BU_RSV') + CALL BUDGET(PRSVS(:,:,:,JSV),NBUDGET_SV1-1+JSV,'NEGA_BU_RSV') ENDDO ENDIF ENDIF diff --git a/src/MNH/fast_terms.f90 b/src/MNH/fast_terms.f90 index eba11a693..23532ed69 100644 --- a/src/MNH/fast_terms.f90 +++ b/src/MNH/fast_terms.f90 @@ -420,9 +420,9 @@ ENDIF ! ---------------------- ! ! -IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:) * PRHODJ(:,:,:),6,'COND_BU_RRV') -IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:) * PRHODJ(:,:,:),7,'COND_BU_RRC') -IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:) * PRHODJ(:,:,:),4,'COND_BU_RTH') +IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:) * PRHODJ(:,:,:),NBUDGET_RV,'COND_BU_RRV') +IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:) * PRHODJ(:,:,:),NBUDGET_RC,'COND_BU_RRC') +IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:) * PRHODJ(:,:,:),NBUDGET_TH,'COND_BU_RTH') ! !------------------------------------------------------------------------------ ! diff --git a/src/MNH/fct_met.f90 b/src/MNH/fct_met.f90 index 653b238a2..70ca6911e 100644 --- a/src/MNH/fct_met.f90 +++ b/src/MNH/fct_met.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 newsrc 2006/06/06 12:00:47 -!----------------------------------------------------------------- ! ###################### MODULE MODI_FCT_MET ! ###################### @@ -168,15 +163,15 @@ IKU=SIZE(XZHAT) ! PRTHS(:,:,:) = PRTHS(:,:,:) & - DXF(PRUCT(:,:,:)*MXM (PTHT(:,:,:))) - IF (LBUDGET_TH) CALL BUDGET (PRTHS,4,'ADVX_BU_RTH') + IF (LBUDGET_TH) CALL BUDGET (PRTHS,NBUDGET_TH,'ADVX_BU_RTH') ! PRTHS(:,:,:) = PRTHS(:,:,:) & - DYF(PRVCT(:,:,:)*MYM (PTHT(:,:,:))) - IF (LBUDGET_TH) CALL BUDGET (PRTHS,4,'ADVY_BU_RTH') + IF (LBUDGET_TH) CALL BUDGET (PRTHS,NBUDGET_TH,'ADVY_BU_RTH') ! PRTHS(:,:,:) = PRTHS(:,:,:) & - DZF(1,IKU,1,PRWCT(:,:,:)*MZM (1,IKU,1,PTHT(:,:,:))) - IF (LBUDGET_TH) CALL BUDGET (PRTHS,4,'ADVZ_BU_RTH') + IF (LBUDGET_TH) CALL BUDGET (PRTHS,NBUDGET_TH,'ADVZ_BU_RTH') ! !* 1.2 No condensation case: Vapor ---> advected by a FCT scheme ! @@ -190,15 +185,15 @@ IKU=SIZE(XZHAT) ! PRRS(:,:,:,1) = PRRS(:,:,:,1) - DXF(ZFX(:,:,:)) IF (LBUDGET_RV) & - CALL BUDGET (PRRS(:,:,:,1),6 ,'ADVX_BU_RRV') + CALL BUDGET (PRRS(:,:,:,1), NBUDGET_RV,'ADVX_BU_RRV') ! PRRS(:,:,:,1) = PRRS(:,:,:,1) - DYF(ZFY(:,:,:)) IF (LBUDGET_RV) & - CALL BUDGET (PRRS(:,:,:,1),6 ,'ADVY_BU_RRV') + CALL BUDGET (PRRS(:,:,:,1), NBUDGET_RV,'ADVY_BU_RRV') ! PRRS(:,:,:,1) = PRRS(:,:,:,1) - DZF(1,IKU,1,ZFZ(:,:,:)) IF (LBUDGET_RV) & - CALL BUDGET (PRRS(:,:,:,1),6 ,'ADVZ_BU_RRV') + CALL BUDGET (PRRS(:,:,:,1), NBUDGET_RV,'ADVZ_BU_RRV') END IF ! !* 1.3 No ice case: rv+rc ---> advected by the FCT scheme @@ -220,18 +215,18 @@ IKU=SIZE(XZHAT) ! PRRS(:,:,:,1) = PRRS(:,:,:,1) - DXF(ZRTFX(:,:,:)) PRRS(:,:,:,2) = PRRS(:,:,:,2) - DXF( ZFX(:,:,:)) - IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),6 ,'ADVX_BU_RRV') - IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),7 ,'ADVX_BU_RRC') + IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1), NBUDGET_RV,'ADVX_BU_RRV') + IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2), NBUDGET_RC,'ADVX_BU_RRC') ! PRRS(:,:,:,1) = PRRS(:,:,:,1) - DYF(ZRTFY(:,:,:)) PRRS(:,:,:,2) = PRRS(:,:,:,2) - DYF( ZFY(:,:,:)) - IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),6 ,'ADVY_BU_RRV') - IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),7 ,'ADVY_BU_RRC') + IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1), NBUDGET_RV,'ADVY_BU_RRV') + IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2), NBUDGET_RC,'ADVY_BU_RRC') ! PRRS(:,:,:,1) = PRRS(:,:,:,1) - DZF(1,IKU,1,ZRTFZ(:,:,:)) PRRS(:,:,:,2) = PRRS(:,:,:,2) - DZF(1,IKU,1, ZFZ(:,:,:)) - IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),6 ,'ADVZ_BU_RRV') - IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),7 ,'ADVZ_BU_RRC') + IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1), NBUDGET_RV,'ADVZ_BU_RRV') + IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2), NBUDGET_RC,'ADVZ_BU_RRC') ! END IF ! @@ -255,13 +250,13 @@ IKU=SIZE(XZHAT) ZRTFZ(:,:,:) = ZRTFZ(:,:,:) - ZFZ(:,:,:) ! ! PRRS(:,:,:,2) = PRRS(:,:,:,2) - DXF( ZFX(:,:,:)) - IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),7 ,'ADVX_BU_RRC') + IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2), NBUDGET_RC,'ADVX_BU_RRC') ! PRRS(:,:,:,2) = PRRS(:,:,:,2) - DYF( ZFY(:,:,:)) - IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),7 ,'ADVY_BU_RRC') + IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2), NBUDGET_RC,'ADVY_BU_RRC') ! PRRS(:,:,:,2) = PRRS(:,:,:,2) - DZF(1,IKU,1, ZFZ(:,:,:)) - IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),7 ,'ADVZ_BU_RRC') + IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2), NBUDGET_RC,'ADVZ_BU_RRC') ! ! ZFX(:,:,:) = PRUCT(:,:,:) * MXM (PRT(:,:,:,4)) ! @@ -274,18 +269,18 @@ IKU=SIZE(XZHAT) ! PRRS(:,:,:,1) = PRRS(:,:,:,1) - DXF(ZRTFX(:,:,:)) PRRS(:,:,:,4) = PRRS(:,:,:,4) - DXF( ZFX(:,:,:)) - IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),6 ,'ADVX_BU_RRV') - IF (LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,4),9 ,'ADVX_BU_RRI') + IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1), NBUDGET_RV,'ADVX_BU_RRV') + IF (LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,4), NBUDGET_RI,'ADVX_BU_RRI') ! PRRS(:,:,:,1) = PRRS(:,:,:,1) - DYF(ZRTFY(:,:,:)) PRRS(:,:,:,4) = PRRS(:,:,:,4) - DYF( ZFY(:,:,:)) - IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),6 ,'ADVY_BU_RRV') - IF (LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,4),9 ,'ADVY_BU_RRI') + IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1), NBUDGET_RV,'ADVY_BU_RRV') + IF (LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,4), NBUDGET_RI,'ADVY_BU_RRI') ! PRRS(:,:,:,1) = PRRS(:,:,:,1) - DZF(1,IKU,1,ZRTFZ(:,:,:)) PRRS(:,:,:,4) = PRRS(:,:,:,4) - DZF(1,IKU,1, ZFZ(:,:,:)) - IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),6 ,'ADVZ_BU_RRV') - IF (LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,4),9 ,'ADVZ_BU_RRI') + IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1), NBUDGET_RV,'ADVZ_BU_RRV') + IF (LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,4), NBUDGET_RI,'ADVZ_BU_RRI') ! END IF ! @@ -298,13 +293,13 @@ IKU=SIZE(XZHAT) ZFX(:,:,:), ZFY(:,:,:), ZFZ(:,:,:) ) ! PRRS(:,:,:,3) = PRRS(:,:,:,3) - DXF( ZFX(:,:,:)) - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:,3),8 ,'ADVX_BU_RRR') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:,3), NBUDGET_RR,'ADVX_BU_RRR') ! PRRS(:,:,:,3) = PRRS(:,:,:,3) - DYF( ZFY(:,:,:)) - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:,3),8 ,'ADVY_BU_RRR') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:,3), NBUDGET_RR,'ADVY_BU_RRR') ! PRRS(:,:,:,3) = PRRS(:,:,:,3) - DZF(1,IKU,1, ZFZ(:,:,:)) - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:,3),8 ,'ADVZ_BU_RRR') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:,3), NBUDGET_RR,'ADVZ_BU_RRR') ! END IF ! @@ -318,27 +313,27 @@ IKU=SIZE(XZHAT) ! PRRS(:,:,:,JRR) = PRRS(:,:,:,JRR) - DXF(ZFX(:,:,:)) IF (JRR==5.AND.LBUDGET_RS) & - CALL BUDGET (PRRS(:,:,:,5),10,'ADVX_BU_RRS') + CALL BUDGET (PRRS(:,:,:,5),NBUDGET_RS,'ADVX_BU_RRS') IF (JRR==6.AND.LBUDGET_RG) & - CALL BUDGET (PRRS(:,:,:,6),11,'ADVX_BU_RRG') + CALL BUDGET (PRRS(:,:,:,6),NBUDGET_RG,'ADVX_BU_RRG') IF (JRR==7.AND.LBUDGET_RH) & - CALL BUDGET (PRRS(:,:,:,7),12,'ADVX_BU_RRH') + CALL BUDGET (PRRS(:,:,:,7),NBUDGET_RH,'ADVX_BU_RRH') ! PRRS(:,:,:,JRR) = PRRS(:,:,:,JRR) - DYF(ZFY(:,:,:)) IF (JRR==5.AND.LBUDGET_RS) & - CALL BUDGET (PRRS(:,:,:,5),10,'ADVY_BU_RRS') + CALL BUDGET (PRRS(:,:,:,5),NBUDGET_RS,'ADVY_BU_RRS') IF (JRR==6.AND.LBUDGET_RG) & - CALL BUDGET (PRRS(:,:,:,6),11,'ADVY_BU_RRG') + CALL BUDGET (PRRS(:,:,:,6),NBUDGET_RG,'ADVY_BU_RRG') IF (JRR==7.AND.LBUDGET_RH) & - CALL BUDGET (PRRS(:,:,:,7),12,'ADVY_BU_RRH') + CALL BUDGET (PRRS(:,:,:,7),NBUDGET_RH,'ADVY_BU_RRH') ! PRRS(:,:,:,JRR) = PRRS(:,:,:,JRR) - DZF(1,IKU,1,ZFZ(:,:,:)) IF (JRR==5.AND.LBUDGET_RS) & - CALL BUDGET (PRRS(:,:,:,5),10,'ADVZ_BU_RRS') + CALL BUDGET (PRRS(:,:,:,5),NBUDGET_RS,'ADVZ_BU_RRS') IF (JRR==6.AND.LBUDGET_RG) & - CALL BUDGET (PRRS(:,:,:,6),11,'ADVZ_BU_RRG') + CALL BUDGET (PRRS(:,:,:,6),NBUDGET_RG,'ADVZ_BU_RRG') IF (JRR==7.AND.LBUDGET_RH) & - CALL BUDGET (PRRS(:,:,:,7),12,'ADVZ_BU_RRH') + CALL BUDGET (PRRS(:,:,:,7),NBUDGET_RH,'ADVZ_BU_RRH') ! END DO ! @@ -354,13 +349,13 @@ IKU=SIZE(XZHAT) ZFX(:,:,:), ZFY(:,:,:), ZFZ(:,:,:) ) ! PRTKES(:,:,:) = PRTKES(:,:,:) - DXF(ZFX(:,:,:)) - IF (LBUDGET_TKE) CALL BUDGET (PRTKES,5,'ADVX_BU_RTKE') + IF (LBUDGET_TKE) CALL BUDGET (PRTKES,NBUDGET_TKE,'ADVX_BU_RTKE') ! PRTKES(:,:,:) = PRTKES(:,:,:) - DYF(ZFY(:,:,:)) - IF (LBUDGET_TKE) CALL BUDGET (PRTKES,5,'ADVY_BU_RTKE') + IF (LBUDGET_TKE) CALL BUDGET (PRTKES,NBUDGET_TKE,'ADVY_BU_RTKE') ! PRTKES(:,:,:) = PRTKES(:,:,:) - DZF(1,IKU,1,ZFZ(:,:,:)) - IF (LBUDGET_TKE) CALL BUDGET (PRTKES,5,'ADVZ_BU_RTKE') + IF (LBUDGET_TKE) CALL BUDGET (PRTKES,NBUDGET_TKE,'ADVZ_BU_RTKE') ! END IF ! diff --git a/src/MNH/fct_scalar.f90 b/src/MNH/fct_scalar.f90 index 75df10804..9af746bb5 100644 --- a/src/MNH/fct_scalar.f90 +++ b/src/MNH/fct_scalar.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 adiab 2006/06/06 12:01:31 -!----------------------------------------------------------------- ! ###################### MODULE MODI_FCT_SCALAR ! ###################### @@ -157,15 +152,15 @@ IKU=SIZE(XZHAT) ! PRSVS(:,:,:,JSV) = PRSVS(:,:,:,JSV) - DXF(ZFX(:,:,:)) IF (LBUDGET_SV) & - CALL BUDGET (PRSVS(:,:,:,JSV),JSV+12,'ADVX_BU_RSV') + CALL BUDGET (PRSVS(:,:,:,JSV),NBUDGET_SV1-1+JSV,'ADVX_BU_RSV') ! PRSVS(:,:,:,JSV) = PRSVS(:,:,:,JSV) - DYF(ZFY(:,:,:)) IF (LBUDGET_SV) & - CALL BUDGET (PRSVS(:,:,:,JSV),JSV+12,'ADVY_BU_RSV') + CALL BUDGET (PRSVS(:,:,:,JSV),NBUDGET_SV1-1+JSV,'ADVY_BU_RSV') ! PRSVS(:,:,:,JSV) = PRSVS(:,:,:,JSV) - DZF(1,IKU,1,ZFZ(:,:,:)) IF (LBUDGET_SV) & - CALL BUDGET (PRSVS(:,:,:,JSV),JSV+12,'ADVZ_BU_RSV') + CALL BUDGET (PRSVS(:,:,:,JSV),NBUDGET_SV1-1+JSV,'ADVZ_BU_RSV') END DO ! !------------------------------------------------------------------------------- diff --git a/src/MNH/forcing.f90 b/src/MNH/forcing.f90 index e2cecf24f..fbf7f239a 100644 --- a/src/MNH/forcing.f90 +++ b/src/MNH/forcing.f90 @@ -827,21 +827,21 @@ END IF ! ------------ ! ! -IF (LBUDGET_U) CALL BUDGET (PRUS,1,'FRC_BU_RU') -IF (LBUDGET_V) CALL BUDGET (PRVS,2,'FRC_BU_RV') -IF (LBUDGET_W) CALL BUDGET (PRWS,3,'FRC_BU_RW') -IF (LBUDGET_TH) CALL BUDGET (PRTHS,4,'FRC_BU_RTH') -IF (LBUDGET_TKE) CALL BUDGET (PRTKES,5,'FRC_BU_RTKE') -IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),6,'FRC_BU_RRV') -IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),7,'FRC_BU_RRC') -IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:,3),8,'FRC_BU_RRR') -IF (LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,4),9,'FRC_BU_RRI') -IF (LBUDGET_RS) CALL BUDGET (PRRS(:,:,:,5),10,'FRC_BU_RRS') -IF (LBUDGET_RG) CALL BUDGET (PRRS(:,:,:,6),11,'FRC_BU_RRG') -IF (LBUDGET_RH) CALL BUDGET (PRRS(:,:,:,7),12,'FRC_BU_RRH') +IF (LBUDGET_U) CALL BUDGET (PRUS, NBUDGET_U, 'FRC_BU_RU') +IF (LBUDGET_V) CALL BUDGET (PRVS, NBUDGET_V, 'FRC_BU_RV') +IF (LBUDGET_W) CALL BUDGET (PRWS, NBUDGET_W, 'FRC_BU_RW') +IF (LBUDGET_TH) CALL BUDGET (PRTHS, NBUDGET_TH, 'FRC_BU_RTH') +IF (LBUDGET_TKE) CALL BUDGET (PRTKES, NBUDGET_TKE,'FRC_BU_RTKE') +IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),NBUDGET_RV, 'FRC_BU_RRV') +IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),NBUDGET_RC, 'FRC_BU_RRC') +IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:,3),NBUDGET_RR, 'FRC_BU_RRR') +IF (LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,4),NBUDGET_RI, 'FRC_BU_RRI') +IF (LBUDGET_RS) CALL BUDGET (PRRS(:,:,:,5),NBUDGET_RS, 'FRC_BU_RRS') +IF (LBUDGET_RG) CALL BUDGET (PRRS(:,:,:,6),NBUDGET_RG, 'FRC_BU_RRG') +IF (LBUDGET_RH) CALL BUDGET (PRRS(:,:,:,7),NBUDGET_RH, 'FRC_BU_RRH') IF (LBUDGET_SV) THEN DO JL = 1 , SIZE(PRSVS,4) - CALL BUDGET (PRSVS(:,:,:,JL),JL+12,'FRC_BU_RSV') + CALL BUDGET (PRSVS(:,:,:,JL),JL+NBUDGET_SV1-1,'FRC_BU_RSV') END DO END IF ! diff --git a/src/MNH/gravity_impl.f90 b/src/MNH/gravity_impl.f90 index 19241d022..8c623c54a 100644 --- a/src/MNH/gravity_impl.f90 +++ b/src/MNH/gravity_impl.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2011-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ##################### @@ -147,7 +147,7 @@ CALL GRAVITY ( KRR,KRRL, KRRI, ZTH, ZR, PRHODJ, PTHVREF, ZRWS_GRAV(:,:,:) ) ! PRWS(:,:,:) = PRWS(:,:,:) + ZRWS_GRAV(:,:,:) ! -IF (LBUDGET_W) CALL BUDGET (PRWS,3,'GRAV_BU_RW') +IF (LBUDGET_W) CALL BUDGET (PRWS,NBUDGET_W,'GRAV_BU_RW') ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/ice_adjust.f90 b/src/MNH/ice_adjust.f90 index d89d7227f..0beb2e0ea 100644 --- a/src/MNH/ice_adjust.f90 +++ b/src/MNH/ice_adjust.f90 @@ -430,10 +430,10 @@ ENDIF !* 6. STORE THE BUDGET TERMS ! ---------------------- ! -IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:) * PRHODJ(:,:,:),6,HBUNAME//'_BU_RRV') -IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:) * PRHODJ(:,:,:),7,HBUNAME//'_BU_RRC') -IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:) * PRHODJ(:,:,:),9,HBUNAME//'_BU_RRI') -IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:) * PRHODJ(:,:,:),4,HBUNAME//'_BU_RTH') +IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:) * PRHODJ(:,:,:),NBUDGET_RV,HBUNAME//'_BU_RRV') +IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:) * PRHODJ(:,:,:),NBUDGET_RC,HBUNAME//'_BU_RRC') +IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:) * PRHODJ(:,:,:),NBUDGET_RI,HBUNAME//'_BU_RRI') +IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:) * PRHODJ(:,:,:),NBUDGET_TH,HBUNAME//'_BU_RTH') ! !------------------------------------------------------------------------------ ! diff --git a/src/MNH/ice_adjust_elec.f90 b/src/MNH/ice_adjust_elec.f90 index 8d802babf..4114d7a2e 100644 --- a/src/MNH/ice_adjust_elec.f90 +++ b/src/MNH/ice_adjust_elec.f90 @@ -625,15 +625,15 @@ ENDIF !* 6. STORE THE BUDGET TERMS ! ---------------------- ! -IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:) * PRHODJ(:,:,:),6,'DEPI_BU_RRV') -IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:) * PRHODJ(:,:,:),7,'DEPI_BU_RRC') -IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:) * PRHODJ(:,:,:),9,'DEPI_BU_RRI') -IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:) * PRHODJ(:,:,:),4,'DEPI_BU_RTH') +IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:) * PRHODJ(:,:,:),NBUDGET_RV,'DEPI_BU_RRV') +IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:) * PRHODJ(:,:,:),NBUDGET_RC,'DEPI_BU_RRC') +IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:) * PRHODJ(:,:,:),NBUDGET_RI,'DEPI_BU_RRI') +IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:) * PRHODJ(:,:,:),NBUDGET_TH,'DEPI_BU_RTH') IF (LBUDGET_SV) THEN - CALL BUDGET(PQPIS(:,:,:) * PRHODJ(:,:,:), 12+NSV_ELECBEG, 'DEPI_BU_RSV') - CALL BUDGET(PQNIS(:,:,:) * PRHODJ(:,:,:), 12+NSV_ELECEND, 'DEPI_BU_RSV') - CALL BUDGET(PQCS(:,:,:) * PRHODJ(:,:,:), 12+NSV_ELECBEG+1, 'DEPI_BU_RSV') - CALL BUDGET(PQIS(:,:,:) * PRHODJ(:,:,:), 12+NSV_ELECBEG+3, 'DEPI_BU_RSV') + CALL BUDGET(PQPIS(:,:,:) * PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_ELECBEG, 'DEPI_BU_RSV') + CALL BUDGET(PQNIS(:,:,:) * PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_ELECEND, 'DEPI_BU_RSV') + CALL BUDGET(PQCS(:,:,:) * PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_ELECBEG+1, 'DEPI_BU_RSV') + CALL BUDGET(PQIS(:,:,:) * PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_ELECBEG+3, 'DEPI_BU_RSV') END IF ! !------------------------------------------------------------------------------ diff --git a/src/MNH/ion_attach_elec.f90 b/src/MNH/ion_attach_elec.f90 index bfecbd9a1..be198dae2 100644 --- a/src/MNH/ion_attach_elec.f90 +++ b/src/MNH/ion_attach_elec.f90 @@ -91,7 +91,7 @@ USE MODD_ELEC_PARAM USE MODD_RAIN_ICE_DESCR USE MODD_RAIN_ICE_PARAM USE MODD_NSV, ONLY : NSV_ELECBEG, NSV_ELEC -USE MODD_BUDGET, ONLY : LBU_RSV +USE MODD_BUDGET, ONLY : LBU_RSV, NBUDGET_SV1 USE MODD_REF, ONLY : XTHVREFZ use mode_tools_ll, only: GET_INDICE_ll @@ -263,7 +263,7 @@ ENDDO ! IF (LBU_RSV) THEN DO JRR = 1, NSV_ELEC - CALL BUDGET(PSVS(:,:,:,JRR), 11+NSV_ELECBEG+JRR, 'NEUT_BU_RSV') + CALL BUDGET(PSVS(:,:,:,JRR), NBUDGET_SV1-1+NSV_ELECBEG+JRR-1, 'NEUT_BU_RSV') ENDDO END IF ! diff --git a/src/MNH/khko_notadjust.f90 b/src/MNH/khko_notadjust.f90 index 806c6c965..533ed78e7 100644 --- a/src/MNH/khko_notadjust.f90 +++ b/src/MNH/khko_notadjust.f90 @@ -412,12 +412,12 @@ END IF ! ---------------------- ! ! -IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:) * PRHODJ(:,:,:),6,'COND_BU_RRV') -IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:) * PRHODJ(:,:,:),7,'COND_BU_RRC') -IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:) * PRHODJ(:,:,:),4,'COND_BU_RTH') +IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:) * PRHODJ(:,:,:),NBUDGET_RV,'COND_BU_RRV') +IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:) * PRHODJ(:,:,:),NBUDGET_RC,'COND_BU_RRC') +IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:) * PRHODJ(:,:,:),NBUDGET_TH,'COND_BU_RTH') IF (LBUDGET_SV) THEN - CALL BUDGET (PCNUCS(:,:,:) * PRHODJ(:,:,:),13+(NSV_C2R2BEG-1),'CEVA_BU_RSV') ! RCN - CALL BUDGET (PCCS(:,:,:) * PRHODJ(:,:,:),14+(NSV_C2R2BEG-1),'CEVA_BU_RSV') ! RCC + CALL BUDGET (PCNUCS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_C2R2BEG, 'CEVA_BU_RSV') ! RCN + CALL BUDGET (PCCS(:,:,:) * PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_C2R2BEG+1,'CEVA_BU_RSV') ! RCC END IF ! END SUBROUTINE KHKO_NOTADJUST diff --git a/src/MNH/les_budget.f90 b/src/MNH/les_budget.f90 index c11a00da0..5984be32b 100644 --- a/src/MNH/les_budget.f90 +++ b/src/MNH/les_budget.f90 @@ -53,12 +53,13 @@ END MODULE MODI_LES_BUDGET !* 0. DECLARATIONS ! ------------ ! +use modd_budget, only: 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 USE MODD_LES USE MODD_LES_BUDGET USE MODD_NSV ! USE MODI_SHUMAN -USE MODI_THL_RT_FROM_TH_R USE MODI_LES_VER_INT USE MODI_LES_MEAN_ll ! @@ -122,7 +123,7 @@ SELECT CASE (KBUDN) ! !* u ! - CASE(1) + CASE( NBUDGET_U ) CALL LES_BUDGET_ANOMALY(PVARS,'X',ZANOM) ! !* action in KE budget @@ -136,7 +137,7 @@ SELECT CASE (KBUDN) ! !* v ! - CASE(2) + CASE( NBUDGET_V ) CALL LES_BUDGET_ANOMALY(PVARS,'Y',ZANOM) ! !* action in KE budget @@ -150,7 +151,7 @@ SELECT CASE (KBUDN) ! !* w ! - CASE(3) + CASE( NBUDGET_W ) CALL LES_BUDGET_ANOMALY(PVARS,'Z',ZANOM) ! !* action in KE budget @@ -183,7 +184,7 @@ SELECT CASE (KBUDN) ! !* Th ! - CASE(4) + CASE( NBUDGET_TH ) XCURRENT_RTHLS = XCURRENT_RTHLS + PVARS - XCURRENT_RTHS CALL LES_BUDGET_ANOMALY(XCURRENT_RTHLS,'-',ZANOM) ! @@ -211,7 +212,7 @@ SELECT CASE (KBUDN) ! !* Tke ! - CASE(5) + CASE( NBUDGET_TKE ) ALLOCATE(ZTEND(IIU,IJU,IKU)) ZTEND(:,:,:) = (PVARS(:,:,:)-XCURRENT_RTKES(:,:,:)) / XCURRENT_RHODJ XCURRENT_RTKES = PVARS @@ -222,7 +223,7 @@ SELECT CASE (KBUDN) ! !* Rv, Rr, Ri, Rs, Rg, Rh ! - CASE(6,8,9,10,11,12) + 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) CALL LES_BUDGET_ANOMALY(XCURRENT_RRTS,'-',ZANOM) @@ -249,7 +250,7 @@ SELECT CASE (KBUDN) ! !* Rc ! - CASE(7) + CASE( NBUDGET_RC ) !* transformation into conservative variables: theta_l; RT XCURRENT_RRTS = XCURRENT_RRTS + PVARS(:,:,:) - XCURRENT_RRS(:,:,:,KBUDN-5) XCURRENT_RTHLS = XCURRENT_RTHLS - XCURRENT_L_O_EXN_CP & @@ -298,7 +299,7 @@ SELECT CASE (KBUDN) ! !* SV ! - CASE(13:) + CASE( NBUDGET_SV1: ) CALL LES_BUDGET_ANOMALY(PVARS,'-',ZANOM) ! !* action in WSV budget diff --git a/src/MNH/lima.f90 b/src/MNH/lima.f90 index 851660cf9..2711c496a 100644 --- a/src/MNH/lima.f90 +++ b/src/MNH/lima.f90 @@ -102,7 +102,9 @@ END MODULE MODI_LIMA !* 0. DECLARATIONS ! ------------ USE MODD_BUDGET, ONLY: LBU_ENABLE, LBUDGET_TH, LBUDGET_RV, LBUDGET_RC, LBUDGET_RR, & - LBUDGET_RI, LBUDGET_RS, LBUDGET_RG, LBUDGET_RH, LBUDGET_SV + LBUDGET_RI, LBUDGET_RS, LBUDGET_RG, LBUDGET_RH, LBUDGET_SV, & + NBUDGET_TH, NBUDGET_RV, NBUDGET_RC, NBUDGET_RR, NBUDGET_RI, & + NBUDGET_RS, NBUDGET_RG, NBUDGET_RH, NBUDGET_SV1 USE MODD_CLOUDPAR_n, ONLY: NSPLITR, NSPLITG USE MODD_CST, ONLY: XCI, XCL, XCPD, XCPV, XLSTT, XLVTT, XTT, XRHOLW, XP00, XRD USE MODD_IO, ONLY: TFILEDATA @@ -560,14 +562,14 @@ IF (LCOLD .AND. LSNOW) THEN END IF ! IF(LBU_ENABLE) THEN - IF (LBUDGET_RC .AND. LWARM .AND. LRAIN) CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:), 7 , 'CORR_BU_RRC') - IF (LBUDGET_RR .AND. LWARM .AND. LRAIN) CALL BUDGET (ZRRS(:,:,:)*PRHODJ(:,:,:), 8 , 'CORR_BU_RRR') - IF (LBUDGET_RI .AND. LCOLD .AND. LSNOW) CALL BUDGET (ZRIS(:,:,:)*PRHODJ(:,:,:), 9 , 'CORR_BU_RRI') - IF (LBUDGET_RI .AND. LCOLD .AND. LSNOW) CALL BUDGET (ZRSS(:,:,:)*PRHODJ(:,:,:),10 , 'CORR_BU_RRS') + IF (LBUDGET_RC .AND. LWARM .AND. LRAIN) CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC, 'CORR_BU_RRC') + IF (LBUDGET_RR .AND. LWARM .AND. LRAIN) CALL BUDGET (ZRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR, 'CORR_BU_RRR') + IF (LBUDGET_RI .AND. LCOLD .AND. LSNOW) CALL BUDGET (ZRIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RI, 'CORR_BU_RRI') + IF (LBUDGET_RI .AND. LCOLD .AND. LSNOW) CALL BUDGET (ZRSS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RS, 'CORR_BU_RRS') IF (LBUDGET_SV) THEN - IF (LWARM .AND. LRAIN) CALL BUDGET (ZCCS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NC , 'CORR_BU_RSV') - IF (LWARM .AND. LRAIN) CALL BUDGET (ZCRS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NR , 'CORR_BU_RSV') - IF (LCOLD .AND. LSNOW) CALL BUDGET (ZCIS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NI , 'CORR_BU_RSV') + IF (LWARM .AND. LRAIN) CALL BUDGET (ZCCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NC, 'CORR_BU_RSV') + IF (LWARM .AND. LRAIN) CALL BUDGET (ZCRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NR, 'CORR_BU_RSV') + IF (LCOLD .AND. LSNOW) CALL BUDGET (ZCIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NI, 'CORR_BU_RSV') END IF END IF !------------------------------------------------------------------------------- @@ -606,17 +608,17 @@ ZTHS(:,:,:) = ZT(:,:,:) / ZEXN(:,:,:) * ZINV_TSTEP ! Call budgets ! IF(LBU_ENABLE) THEN - IF (LBUDGET_TH) CALL BUDGET (ZTHS(:,:,:)*PRHODJ(:,:,:), 4 , 'SEDI_BU_RTH') - IF (LBUDGET_RC .AND. LWARM .AND. LSEDC) CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:), 7 , 'SEDI_BU_RRC') - IF (LBUDGET_RR .AND. LWARM .AND. LRAIN) CALL BUDGET (ZRRS(:,:,:)*PRHODJ(:,:,:), 8 , 'SEDI_BU_RRR') - IF (LBUDGET_RI .AND. LCOLD .AND. LSEDI) CALL BUDGET (ZRIS(:,:,:)*PRHODJ(:,:,:), 9 , 'SEDI_BU_RRI') - IF (LBUDGET_RS .AND. LCOLD .AND. LSNOW) CALL BUDGET (ZRSS(:,:,:)*PRHODJ(:,:,:), 10 , 'SEDI_BU_RRS') - IF (LBUDGET_RG .AND. LCOLD .AND. LSNOW) CALL BUDGET (ZRGS(:,:,:)*PRHODJ(:,:,:), 11 , 'SEDI_BU_RRG') - IF (LBUDGET_RH .AND. LCOLD .AND. LHAIL) CALL BUDGET (ZRHS(:,:,:)*PRHODJ(:,:,:), 12 , 'SEDI_BU_RRH') + IF (LBUDGET_TH) CALL BUDGET (ZTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH, 'SEDI_BU_RTH') + IF (LBUDGET_RC .AND. LWARM .AND. LSEDC) CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC, 'SEDI_BU_RRC') + IF (LBUDGET_RR .AND. LWARM .AND. LRAIN) CALL BUDGET (ZRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR, 'SEDI_BU_RRR') + IF (LBUDGET_RI .AND. LCOLD .AND. LSEDI) CALL BUDGET (ZRIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RI, 'SEDI_BU_RRI') + IF (LBUDGET_RS .AND. LCOLD .AND. LSNOW) CALL BUDGET (ZRSS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RS, 'SEDI_BU_RRS') + IF (LBUDGET_RG .AND. LCOLD .AND. LSNOW) CALL BUDGET (ZRGS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RG, 'SEDI_BU_RRG') + IF (LBUDGET_RH .AND. LCOLD .AND. LHAIL) CALL BUDGET (ZRHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RH, 'SEDI_BU_RRH') IF (LBUDGET_SV) THEN - IF (LWARM .AND. LSEDC) CALL BUDGET (ZCCS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NC , 'SEDI_BU_RSV') - IF (LWARM .AND. LRAIN) CALL BUDGET (ZCRS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NR , 'SEDI_BU_RSV') - IF (LCOLD .AND. LSEDI) CALL BUDGET (ZCIS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NI , 'SEDI_BU_RSV') + IF (LWARM .AND. LSEDC) CALL BUDGET (ZCCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NC, 'SEDI_BU_RSV') + IF (LWARM .AND. LRAIN) CALL BUDGET (ZCRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NR, 'SEDI_BU_RSV') + IF (LCOLD .AND. LSEDI) CALL BUDGET (ZCIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NI, 'SEDI_BU_RSV') END IF END IF ! @@ -633,8 +635,8 @@ IF (LWARM .AND. LDEPOC) THEN PINDEP(:,:) = XVDEPOC * ZRCT(:,:,IKB) * PRHODREF(:,:,IKB) /XRHOLW END WHERE ! - IF ( LBUDGET_RC ) CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:),7 ,'DEPO_BU_RRC') - IF ( LBUDGET_SV ) CALL BUDGET (ZCCS(:,:,:)*PRHODJ(:,:,:),12+NSV_LIMA_NC,'DEPO_BU_RSV') + IF ( LBUDGET_RC ) CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC, 'DEPO_BU_RRC') + IF ( LBUDGET_SV ) CALL BUDGET (ZCCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NC, 'DEPO_BU_RSV') END IF ! ! @@ -650,11 +652,11 @@ IF (LWARM .AND. LRAIN) THEN ZCRS(:,:,:) = ZCRS(:,:,:) + Z_CR_CVRC(:,:,:)/PTSTEP ! IF(LBU_ENABLE) THEN - IF (LBUDGET_RC) CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:), 7 , 'R2C1_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET (ZRRS(:,:,:)*PRHODJ(:,:,:), 8 , 'R2C1_BU_RRR') + IF (LBUDGET_RC) CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC, 'R2C1_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET (ZRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR, 'R2C1_BU_RRR') IF (LBUDGET_SV) THEN - CALL BUDGET (ZCCS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NC , 'R2C1_BU_RSV') - CALL BUDGET (ZCRS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NR , 'R2C1_BU_RSV') + CALL BUDGET (ZCCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NC , 'R2C1_BU_RSV') + CALL BUDGET (ZCRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NR , 'R2C1_BU_RSV') END IF END IF END IF @@ -1476,163 +1478,163 @@ IF ( LCOLD .AND. LHHONI) PSVS(:,:,:,NSV_LIMA_HOM_HAZE) = ZHOMFT(:,:,:) *ZINV_TST IF(LBU_ENABLE) THEN IF (LBUDGET_TH) THEN ZTHS(:,:,:) = ZTHS(:,:,:) + ZTOT_TH_EVAP(:,:,:)/PTSTEP - CALL BUDGET (ZTHS(:,:,:)*PRHODJ(:,:,:), 4 , 'REVA_BU_RTH') + CALL BUDGET (ZTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH, 'REVA_BU_RTH') ZTHS(:,:,:) = ZTHS(:,:,:) + ZTOT_TH_HONC(:,:,:)/PTSTEP - CALL BUDGET (ZTHS(:,:,:)*PRHODJ(:,:,:), 4 , 'HONC_BU_RTH') + CALL BUDGET (ZTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH, 'HONC_BU_RTH') ZTHS(:,:,:) = ZTHS(:,:,:) + ZTOT_TH_HONR(:,:,:)/PTSTEP - CALL BUDGET (ZTHS(:,:,:)*PRHODJ(:,:,:), 4 , 'HONR_BU_RTH') + CALL BUDGET (ZTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH, 'HONR_BU_RTH') ZTHS(:,:,:) = ZTHS(:,:,:) + ZTOT_TH_DEPS(:,:,:)/PTSTEP - CALL BUDGET (ZTHS(:,:,:)*PRHODJ(:,:,:), 4 , 'DEPS_BU_RTH') + CALL BUDGET (ZTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH, 'DEPS_BU_RTH') ZTHS(:,:,:) = ZTHS(:,:,:) + ZTOT_TH_DEPG(:,:,:)/PTSTEP - CALL BUDGET (ZTHS(:,:,:)*PRHODJ(:,:,:), 4 , 'DEPG_BU_RTH') + CALL BUDGET (ZTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH, 'DEPG_BU_RTH') ZTHS(:,:,:) = ZTHS(:,:,:) + ZTOT_TH_IMLT(:,:,:)/PTSTEP - CALL BUDGET (ZTHS(:,:,:)*PRHODJ(:,:,:), 4 , 'IMLT_BU_RTH') + CALL BUDGET (ZTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH, 'IMLT_BU_RTH') ZTHS(:,:,:) = ZTHS(:,:,:) + ZTOT_TH_BERFI(:,:,:)/PTSTEP - CALL BUDGET (ZTHS(:,:,:)*PRHODJ(:,:,:), 4 , 'BERFI_BU_RTH') + CALL BUDGET (ZTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH, 'BERFI_BU_RTH') ZTHS(:,:,:) = ZTHS(:,:,:) + ZTOT_TH_RIM(:,:,:)/PTSTEP - CALL BUDGET (ZTHS(:,:,:)*PRHODJ(:,:,:), 4 , 'RIM_BU_RTH') + CALL BUDGET (ZTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH, 'RIM_BU_RTH') ZTHS(:,:,:) = ZTHS(:,:,:) + ZTOT_TH_ACC(:,:,:)/PTSTEP - CALL BUDGET (ZTHS(:,:,:)*PRHODJ(:,:,:), 4 , 'ACC_BU_RTH') + CALL BUDGET (ZTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH, 'ACC_BU_RTH') ZTHS(:,:,:) = ZTHS(:,:,:) + ZTOT_TH_CFRZ(:,:,:)/PTSTEP - CALL BUDGET (ZTHS(:,:,:)*PRHODJ(:,:,:), 4 , 'CFRZ_BU_RTH') + CALL BUDGET (ZTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH, 'CFRZ_BU_RTH') ZTHS(:,:,:) = ZTHS(:,:,:) + ZTOT_TH_WETG(:,:,:)/PTSTEP - CALL BUDGET (ZTHS(:,:,:)*PRHODJ(:,:,:), 4 , 'WETG_BU_RTH') + CALL BUDGET (ZTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH, 'WETG_BU_RTH') ZTHS(:,:,:) = ZTHS(:,:,:) + ZTOT_TH_DRYG(:,:,:)/PTSTEP - CALL BUDGET (ZTHS(:,:,:)*PRHODJ(:,:,:), 4 , 'DRYG_BU_RTH') + CALL BUDGET (ZTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH, 'DRYG_BU_RTH') ZTHS(:,:,:) = ZTHS(:,:,:) + ZTOT_TH_GMLT(:,:,:)/PTSTEP - CALL BUDGET (ZTHS(:,:,:)*PRHODJ(:,:,:), 4 , 'GMLT_BU_RTH') + CALL BUDGET (ZTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH, 'GMLT_BU_RTH') END IF IF (LBUDGET_RV) THEN ZRVS(:,:,:) = ZRVS(:,:,:) - ZTOT_RR_EVAP(:,:,:)/PTSTEP - CALL BUDGET (ZRVS(:,:,:)*PRHODJ(:,:,:), 6 , 'REVA_BU_RRV') + CALL BUDGET (ZRVS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RV, 'REVA_BU_RRV') ZRVS(:,:,:) = ZRVS(:,:,:) - ZTOT_RS_DEPS(:,:,:)/PTSTEP - CALL BUDGET (ZRVS(:,:,:)*PRHODJ(:,:,:), 6 , 'DEPS_BU_RRV') + CALL BUDGET (ZRVS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RV, 'DEPS_BU_RRV') ZRVS(:,:,:) = ZRVS(:,:,:) - ZTOT_RG_DEPG(:,:,:)/PTSTEP - CALL BUDGET (ZRVS(:,:,:)*PRHODJ(:,:,:), 6 , 'DEPG_BU_RRV') + CALL BUDGET (ZRVS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RV, 'DEPG_BU_RRV') END IF IF (LBUDGET_RC) THEN ZRCS(:,:,:) = ZRCS(:,:,:) + ZTOT_RC_AUTO(:,:,:)/PTSTEP - CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:), 7 , 'AUTO_BU_RRC') + CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC, 'AUTO_BU_RRC') ZRCS(:,:,:) = ZRCS(:,:,:) + ZTOT_RC_ACCR(:,:,:)/PTSTEP - CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:), 7 , 'ACCR_BU_RRC') + CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC, 'ACCR_BU_RRC') ! impact of rain evap !!!!!! ZRCS(:,:,:) = ZRCS(:,:,:) - CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:), 7 , 'REVA_BU_RRC') + CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC, 'REVA_BU_RRC') ZRCS(:,:,:) = ZRCS(:,:,:) + ZTOT_RC_HONC(:,:,:)/PTSTEP - CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:), 7 , 'HONC_BU_RRC') + CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC, 'HONC_BU_RRC') ZRCS(:,:,:) = ZRCS(:,:,:) + ZTOT_RC_IMLT(:,:,:)/PTSTEP - CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:), 7 , 'IMLT_BU_RRC') + CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC, 'IMLT_BU_RRC') ZRCS(:,:,:) = ZRCS(:,:,:) + ZTOT_RC_BERFI(:,:,:)/PTSTEP - CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:), 7 , 'BERFI_BU_RRC') + CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC, 'BERFI_BU_RRC') ZRCS(:,:,:) = ZRCS(:,:,:) + ZTOT_RC_RIM(:,:,:)/PTSTEP - CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:), 7 , 'RIM_BU_RRC') + CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC, 'RIM_BU_RRC') ZRCS(:,:,:) = ZRCS(:,:,:) + ZTOT_RC_WETG(:,:,:)/PTSTEP - CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:), 7 , 'WETG_BU_RRC') + CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC, 'WETG_BU_RRC') ZRCS(:,:,:) = ZRCS(:,:,:) + ZTOT_RC_DRYG(:,:,:)/PTSTEP - CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:), 7 , 'DRYG_BU_RRC') + CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC, 'DRYG_BU_RRC') ZRCS(:,:,:) = ZRCS(:,:,:) - ZTOT_RR_CVRC(:,:,:)/PTSTEP - CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:), 7 , 'CVRC_BU_RRC') + CALL BUDGET (ZRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC, 'CVRC_BU_RRC') END IF IF (LBUDGET_RR) THEN ZRRS(:,:,:) = ZRRS(:,:,:) - ZTOT_RC_AUTO(:,:,:)/PTSTEP - CALL BUDGET (ZRRS(:,:,:)*PRHODJ(:,:,:), 8 , 'AUTO_BU_RRR') + CALL BUDGET (ZRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR, 'AUTO_BU_RRR') ZRRS(:,:,:) = ZRRS(:,:,:) - ZTOT_RC_ACCR(:,:,:)/PTSTEP - CALL BUDGET (ZRRS(:,:,:)*PRHODJ(:,:,:), 8 , 'ACCR_BU_RRR') + CALL BUDGET (ZRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR, 'ACCR_BU_RRR') ZRRS(:,:,:) = ZRRS(:,:,:) + ZTOT_RR_EVAP(:,:,:)/PTSTEP - CALL BUDGET (ZRRS(:,:,:)*PRHODJ(:,:,:), 8 , 'REVA_BU_RRR') + CALL BUDGET (ZRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR, 'REVA_BU_RRR') ZRRS(:,:,:) = ZRRS(:,:,:) + ZTOT_RR_HONR(:,:,:)/PTSTEP - CALL BUDGET (ZRRS(:,:,:)*PRHODJ(:,:,:), 8 , 'HONR_BU_RRR') + CALL BUDGET (ZRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR, 'HONR_BU_RRR') ZRRS(:,:,:) = ZRRS(:,:,:) + ZTOT_RR_ACC(:,:,:)/PTSTEP - CALL BUDGET (ZRRS(:,:,:)*PRHODJ(:,:,:), 8 , 'ACC_BU_RRR') + CALL BUDGET (ZRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR, 'ACC_BU_RRR') ZRRS(:,:,:) = ZRRS(:,:,:) + ZTOT_RR_CFRZ(:,:,:)/PTSTEP - CALL BUDGET (ZRRS(:,:,:)*PRHODJ(:,:,:), 8 , 'CFRZ_BU_RRR') + CALL BUDGET (ZRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR, 'CFRZ_BU_RRR') ZRRS(:,:,:) = ZRRS(:,:,:) + ZTOT_RR_WETG(:,:,:)/PTSTEP - CALL BUDGET (ZRRS(:,:,:)*PRHODJ(:,:,:), 8 , 'WETG_BU_RRR') + CALL BUDGET (ZRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR, 'WETG_BU_RRR') ZRRS(:,:,:) = ZRRS(:,:,:) + ZTOT_RR_DRYG(:,:,:)/PTSTEP - CALL BUDGET (ZRRS(:,:,:)*PRHODJ(:,:,:), 8 , 'DRYG_BU_RRR') + CALL BUDGET (ZRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR, 'DRYG_BU_RRR') ZRRS(:,:,:) = ZRRS(:,:,:) + ZTOT_RR_GMLT(:,:,:)/PTSTEP - CALL BUDGET (ZRRS(:,:,:)*PRHODJ(:,:,:), 8 , 'GMLT_BU_RRR') + CALL BUDGET (ZRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR, 'GMLT_BU_RRR') ZRRS(:,:,:) = ZRRS(:,:,:) + ZTOT_RR_CVRC(:,:,:)/PTSTEP - CALL BUDGET (ZRRS(:,:,:)*PRHODJ(:,:,:), 8 , 'CVRC_BU_RRR') + CALL BUDGET (ZRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR, 'CVRC_BU_RRR') END IF IF (LBUDGET_RI) THEN ZRIS(:,:,:) = ZRIS(:,:,:) - ZTOT_RC_HONC(:,:,:)/PTSTEP - CALL BUDGET (ZRIS(:,:,:)*PRHODJ(:,:,:), 9 , 'HONC_BU_RRI') + CALL BUDGET (ZRIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RI, 'HONC_BU_RRI') ZRIS(:,:,:) = ZRIS(:,:,:) + ZTOT_RI_CNVI(:,:,:)/PTSTEP - CALL BUDGET (ZRIS(:,:,:)*PRHODJ(:,:,:), 9 , 'CNVI_BU_RRI') + CALL BUDGET (ZRIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RI, 'CNVI_BU_RRI') ZRIS(:,:,:) = ZRIS(:,:,:) + ZTOT_RI_CNVS(:,:,:)/PTSTEP - CALL BUDGET (ZRIS(:,:,:)*PRHODJ(:,:,:), 9 , 'CNVS_BU_RRI') + CALL BUDGET (ZRIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RI, 'CNVS_BU_RRI') ZRIS(:,:,:) = ZRIS(:,:,:) + ZTOT_RI_AGGS(:,:,:)/PTSTEP - CALL BUDGET (ZRIS(:,:,:)*PRHODJ(:,:,:), 9 , 'AGGS_BU_RRI') + CALL BUDGET (ZRIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RI, 'AGGS_BU_RRI') ZRIS(:,:,:) = ZRIS(:,:,:) - ZTOT_RC_IMLT(:,:,:)/PTSTEP - CALL BUDGET (ZRIS(:,:,:)*PRHODJ(:,:,:), 9 , 'IMLT_BU_RRI') + CALL BUDGET (ZRIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RI, 'IMLT_BU_RRI') ZRIS(:,:,:) = ZRIS(:,:,:) - ZTOT_RC_BERFI(:,:,:)/PTSTEP - CALL BUDGET (ZRIS(:,:,:)*PRHODJ(:,:,:), 9 , 'BERFI_BU_RRI') + CALL BUDGET (ZRIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RI, 'BERFI_BU_RRI') ZRIS(:,:,:) = ZRIS(:,:,:) + ZTOT_RI_HMS(:,:,:)/PTSTEP - CALL BUDGET (ZRIS(:,:,:)*PRHODJ(:,:,:), 9 , 'HMS_BU_RRI') + CALL BUDGET (ZRIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RI, 'HMS_BU_RRI') ZRIS(:,:,:) = ZRIS(:,:,:) + ZTOT_RI_CFRZ(:,:,:)/PTSTEP - CALL BUDGET (ZRIS(:,:,:)*PRHODJ(:,:,:), 9 , 'CFRZ_BU_RRI') + CALL BUDGET (ZRIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RI, 'CFRZ_BU_RRI') ZRIS(:,:,:) = ZRIS(:,:,:) + ZTOT_RI_WETG(:,:,:)/PTSTEP - CALL BUDGET (ZRIS(:,:,:)*PRHODJ(:,:,:), 9 , 'WETG_BU_RRI') + CALL BUDGET (ZRIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RI, 'WETG_BU_RRI') ZRIS(:,:,:) = ZRIS(:,:,:) + ZTOT_RI_DRYG(:,:,:)/PTSTEP - CALL BUDGET (ZRIS(:,:,:)*PRHODJ(:,:,:), 9 , 'DRYG_BU_RRI') + CALL BUDGET (ZRIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RI, 'DRYG_BU_RRI') ZRIS(:,:,:) = ZRIS(:,:,:) + ZTOT_RI_HMG(:,:,:)/PTSTEP - CALL BUDGET (ZRIS(:,:,:)*PRHODJ(:,:,:), 9 , 'HMG_BU_RRI') + CALL BUDGET (ZRIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RI, 'HMG_BU_RRI') END IF IF (LBUDGET_RS) THEN ZRSS(:,:,:) = ZRSS(:,:,:) - ZTOT_RI_CNVI(:,:,:)/PTSTEP - CALL BUDGET (ZRSS(:,:,:)*PRHODJ(:,:,:), 10 , 'CNVI_BU_RRS') + CALL BUDGET (ZRSS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RS, 'CNVI_BU_RRS') ZRSS(:,:,:) = ZRSS(:,:,:) + ZTOT_RS_DEPS(:,:,:)/PTSTEP - CALL BUDGET (ZRSS(:,:,:)*PRHODJ(:,:,:), 10 , 'DEPS_BU_RRS') + CALL BUDGET (ZRSS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RS, 'DEPS_BU_RRS') ZRSS(:,:,:) = ZRSS(:,:,:) - ZTOT_RI_CNVS(:,:,:)/PTSTEP - CALL BUDGET (ZRSS(:,:,:)*PRHODJ(:,:,:), 10 , 'CNVS_BU_RRS') + CALL BUDGET (ZRSS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RS, 'CNVS_BU_RRS') ZRSS(:,:,:) = ZRSS(:,:,:) - ZTOT_RI_AGGS(:,:,:)/PTSTEP - CALL BUDGET (ZRSS(:,:,:)*PRHODJ(:,:,:), 10 , 'AGGS_BU_RRS') + CALL BUDGET (ZRSS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RS, 'AGGS_BU_RRS') ZRSS(:,:,:) = ZRSS(:,:,:) + ZTOT_RS_RIM(:,:,:)/PTSTEP - CALL BUDGET (ZRSS(:,:,:)*PRHODJ(:,:,:), 10 , 'RIM_BU_RRS') + CALL BUDGET (ZRSS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RS, 'RIM_BU_RRS') ZRSS(:,:,:) = ZRSS(:,:,:) + ZTOT_RS_HMS(:,:,:)/PTSTEP - CALL BUDGET (ZRSS(:,:,:)*PRHODJ(:,:,:), 10 , 'HMS_BU_RRS') + CALL BUDGET (ZRSS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RS, 'HMS_BU_RRS') ZRSS(:,:,:) = ZRSS(:,:,:) + ZTOT_RS_ACC(:,:,:)/PTSTEP - CALL BUDGET (ZRSS(:,:,:)*PRHODJ(:,:,:), 10 , 'ACC_BU_RRS') + CALL BUDGET (ZRSS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RS, 'ACC_BU_RRS') ZRSS(:,:,:) = ZRSS(:,:,:) + ZTOT_RS_CMEL(:,:,:)/PTSTEP - CALL BUDGET (ZRSS(:,:,:)*PRHODJ(:,:,:), 10 , 'CMEL_BU_RRS') + CALL BUDGET (ZRSS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RS, 'CMEL_BU_RRS') ZRSS(:,:,:) = ZRSS(:,:,:) + ZTOT_RS_WETG(:,:,:)/PTSTEP - CALL BUDGET (ZRSS(:,:,:)*PRHODJ(:,:,:), 10 , 'WETG_BU_RRS') + CALL BUDGET (ZRSS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RS, 'WETG_BU_RRS') ZRSS(:,:,:) = ZRSS(:,:,:) + ZTOT_RS_DRYG(:,:,:)/PTSTEP - CALL BUDGET (ZRSS(:,:,:)*PRHODJ(:,:,:), 10 , 'DRYG_BU_RRS') + CALL BUDGET (ZRSS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RS, 'DRYG_BU_RRS') END IF IF (LBUDGET_RG) THEN ZRGS(:,:,:) = ZRGS(:,:,:) - ZTOT_RR_HONR(:,:,:)/PTSTEP - CALL BUDGET (ZRGS(:,:,:)*PRHODJ(:,:,:), 11 , 'HONR_BU_RRG') + CALL BUDGET (ZRGS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RG, 'HONR_BU_RRG') ZRGS(:,:,:) = ZRGS(:,:,:) + ZTOT_RG_DEPG(:,:,:)/PTSTEP - CALL BUDGET (ZRGS(:,:,:)*PRHODJ(:,:,:), 11 , 'DEPG_BU_RRG') + CALL BUDGET (ZRGS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RG, 'DEPG_BU_RRG') ZRGS(:,:,:) = ZRGS(:,:,:) + ZTOT_RG_RIM(:,:,:)/PTSTEP - CALL BUDGET (ZRGS(:,:,:)*PRHODJ(:,:,:), 11 , 'RIM_BU_RRG') + CALL BUDGET (ZRGS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RG, 'RIM_BU_RRG') ZRGS(:,:,:) = ZRGS(:,:,:) + ZTOT_RG_ACC(:,:,:)/PTSTEP - CALL BUDGET (ZRGS(:,:,:)*PRHODJ(:,:,:), 11 , 'ACC_BU_RRG') + CALL BUDGET (ZRGS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RG, 'ACC_BU_RRG') ZRGS(:,:,:) = ZRGS(:,:,:) - ZTOT_RS_CMEL(:,:,:)/PTSTEP - CALL BUDGET (ZRGS(:,:,:)*PRHODJ(:,:,:), 11 , 'CMEL_BU_RRG') + CALL BUDGET (ZRGS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RG, 'CMEL_BU_RRG') ZRGS(:,:,:) = ZRGS(:,:,:) - ZTOT_RR_CFRZ(:,:,:)/PTSTEP - ZTOT_RI_CFRZ(:,:,:)/PTSTEP - CALL BUDGET (ZRGS(:,:,:)*PRHODJ(:,:,:), 11 , 'CFRZ_BU_RRG') + CALL BUDGET (ZRGS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RG, 'CFRZ_BU_RRG') ZRGS(:,:,:) = ZRGS(:,:,:) + ZTOT_RG_WETG(:,:,:)/PTSTEP - CALL BUDGET (ZRGS(:,:,:)*PRHODJ(:,:,:), 11 , 'WETG_BU_RRG') + CALL BUDGET (ZRGS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RG, 'WETG_BU_RRG') ZRGS(:,:,:) = ZRGS(:,:,:) + ZTOT_RG_DRYG(:,:,:)/PTSTEP - CALL BUDGET (ZRGS(:,:,:)*PRHODJ(:,:,:), 11 , 'DRYG_BU_RRG') + CALL BUDGET (ZRGS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RG, 'DRYG_BU_RRG') ZRGS(:,:,:) = ZRGS(:,:,:) + ZTOT_RG_HMG(:,:,:)/PTSTEP - CALL BUDGET (ZRGS(:,:,:)*PRHODJ(:,:,:), 11 , 'HMG_BU_RRG') + CALL BUDGET (ZRGS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RG, 'HMG_BU_RRG') ZRGS(:,:,:) = ZRGS(:,:,:) - ZTOT_RR_GMLT(:,:,:)/PTSTEP - CALL BUDGET (ZRGS(:,:,:)*PRHODJ(:,:,:), 11 , 'GMLT_BU_RRG') + CALL BUDGET (ZRGS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RG, 'GMLT_BU_RRG') END IF IF (LBUDGET_RH) THEN ZRHS(:,:,:) = ZRHS(:,:,:) + ZTOT_RH_WETG(:,:,:)/PTSTEP - CALL BUDGET (ZRHS(:,:,:)*PRHODJ(:,:,:), 12 , 'WETG_BU_RRH') + CALL BUDGET (ZRHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RH, 'WETG_BU_RRH') END IF IF (LBUDGET_SV) THEN @@ -1640,75 +1642,75 @@ IF(LBU_ENABLE) THEN ! Cloud droplets ! ZCCS(:,:,:) = ZCCS(:,:,:) + ZTOT_CC_SELF(:,:,:)/PTSTEP - CALL BUDGET (ZCCS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NC , 'SELF_BU_RSV') + CALL BUDGET (ZCCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NC, 'SELF_BU_RSV') ZCCS(:,:,:) = ZCCS(:,:,:) + ZTOT_CC_AUTO(:,:,:)/PTSTEP - CALL BUDGET (ZCCS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NC , 'AUTO_BU_RSV') + CALL BUDGET (ZCCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NC, 'AUTO_BU_RSV') ZCCS(:,:,:) = ZCCS(:,:,:) + ZTOT_CC_ACCR(:,:,:)/PTSTEP - CALL BUDGET (ZCCS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NC , 'ACCR_BU_RSV') + CALL BUDGET (ZCCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NC, 'ACCR_BU_RSV') ! impact of rain evap !!!!!! ZCCS(:,:,:) = ZCCS(:,:,:) - CALL BUDGET (ZCCS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NC , 'REVA_BU_RSV') + CALL BUDGET (ZCCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NC, 'REVA_BU_RSV') ZCCS(:,:,:) = ZCCS(:,:,:) + ZTOT_CC_HONC(:,:,:)/PTSTEP - CALL BUDGET (ZCCS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NC , 'HONC_BU_RSV') + CALL BUDGET (ZCCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NC, 'HONC_BU_RSV') ZCCS(:,:,:) = ZCCS(:,:,:) + ZTOT_CC_IMLT(:,:,:)/PTSTEP - CALL BUDGET (ZCCS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NC , 'IMLT_BU_RSV') + CALL BUDGET (ZCCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NC, 'IMLT_BU_RSV') ZCCS(:,:,:) = ZCCS(:,:,:) + ZTOT_CC_RIM(:,:,:)/PTSTEP - CALL BUDGET (ZCCS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NC , 'RIM_BU_RSV') + CALL BUDGET (ZCCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NC, 'RIM_BU_RSV') ZCCS(:,:,:) = ZCCS(:,:,:) + ZTOT_CC_WETG(:,:,:)/PTSTEP - CALL BUDGET (ZCCS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NC , 'WETG_BU_RSV') + CALL BUDGET (ZCCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NC, 'WETG_BU_RSV') ZCCS(:,:,:) = ZCCS(:,:,:) + ZTOT_CC_DRYG(:,:,:)/PTSTEP - CALL BUDGET (ZCCS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NC , 'DRYG_BU_RSV') + CALL BUDGET (ZCCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NC, 'DRYG_BU_RSV') ZCCS(:,:,:) = ZCCS(:,:,:) - ZTOT_CR_CVRC(:,:,:)/PTSTEP - CALL BUDGET (ZCCS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NC , 'CVRC_BU_RSV') + CALL BUDGET (ZCCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NC, 'CVRC_BU_RSV') ! ! Rain drops ! ZCRS(:,:,:) = ZCRS(:,:,:) + ZTOT_CR_AUTO(:,:,:)/PTSTEP - CALL BUDGET (ZCRS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NR , 'AUTO_BU_RSV') + CALL BUDGET (ZCRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NR, 'AUTO_BU_RSV') ZCRS(:,:,:) = ZCRS(:,:,:) + ZTOT_CR_SCBU(:,:,:)/PTSTEP - CALL BUDGET (ZCRS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NR , 'SCBU_BU_RSV') + CALL BUDGET (ZCRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NR, 'SCBU_BU_RSV') ! Rain evaporation !!!!!!!!!!!!! ZCRS(:,:,:) = ZCRS(:,:,:) - CALL BUDGET (ZCRS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NR , 'REVA_BU_RSV') + CALL BUDGET (ZCRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NR, 'REVA_BU_RSV') ZCRS(:,:,:) = ZCRS(:,:,:) + ZTOT_CR_BRKU(:,:,:)/PTSTEP - CALL BUDGET (ZCRS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NR , 'BRKU_BU_RSV') + CALL BUDGET (ZCRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NR, 'BRKU_BU_RSV') ZCRS(:,:,:) = ZCRS(:,:,:) + ZTOT_CR_HONR(:,:,:)/PTSTEP - CALL BUDGET (ZCRS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NR , 'HONR_BU_RSV') + CALL BUDGET (ZCRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NR, 'HONR_BU_RSV') ZCRS(:,:,:) = ZCRS(:,:,:) + ZTOT_CR_ACC(:,:,:)/PTSTEP - CALL BUDGET (ZCRS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NR , 'ACC_BU_RSV') + CALL BUDGET (ZCRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NR, 'ACC_BU_RSV') ZCRS(:,:,:) = ZCRS(:,:,:) + ZTOT_CR_CFRZ(:,:,:)/PTSTEP - CALL BUDGET (ZCRS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NR , 'CFRZ_BU_RSV') + CALL BUDGET (ZCRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NR, 'CFRZ_BU_RSV') ZCRS(:,:,:) = ZCRS(:,:,:) + ZTOT_CR_WETG(:,:,:)/PTSTEP - CALL BUDGET (ZCRS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NR , 'WETG_BU_RSV') + CALL BUDGET (ZCRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NR, 'WETG_BU_RSV') ZCRS(:,:,:) = ZCRS(:,:,:) + ZTOT_CR_DRYG(:,:,:)/PTSTEP - CALL BUDGET (ZCRS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NR , 'DRYG_BU_RSV') + CALL BUDGET (ZCRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NR, 'DRYG_BU_RSV') ZCRS(:,:,:) = ZCRS(:,:,:) + ZTOT_CR_GMLT(:,:,:)/PTSTEP - CALL BUDGET (ZCRS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NR , 'GMLT_BU_RSV') + CALL BUDGET (ZCRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NR, 'GMLT_BU_RSV') ZCRS(:,:,:) = ZCRS(:,:,:) + ZTOT_CR_CVRC(:,:,:)/PTSTEP - CALL BUDGET (ZCRS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NR , 'CVRC_BU_RSV') + CALL BUDGET (ZCRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NR, 'CVRC_BU_RSV') ! ! Ice crystals ! ZCIS(:,:,:) = ZCIS(:,:,:) - ZTOT_CC_HONC(:,:,:)/PTSTEP - CALL BUDGET (ZCIS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NI , 'HONC_BU_RSV') + CALL BUDGET (ZCIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NI, 'HONC_BU_RSV') ZCIS(:,:,:) = ZCIS(:,:,:) + ZTOT_CI_CNVI(:,:,:)/PTSTEP - CALL BUDGET (ZCIS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NI , 'CNVI_BU_RSV') + CALL BUDGET (ZCIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NI, 'CNVI_BU_RSV') ZCIS(:,:,:) = ZCIS(:,:,:) + ZTOT_CI_CNVS(:,:,:)/PTSTEP - CALL BUDGET (ZCIS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NI , 'CNVS_BU_RSV') + CALL BUDGET (ZCIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NI, 'CNVS_BU_RSV') ZCIS(:,:,:) = ZCIS(:,:,:) + ZTOT_CI_AGGS(:,:,:)/PTSTEP - CALL BUDGET (ZCIS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NI , 'AGGS_BU_RSV') + CALL BUDGET (ZCIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NI, 'AGGS_BU_RSV') ZCIS(:,:,:) = ZCIS(:,:,:) - ZTOT_CC_IMLT(:,:,:)/PTSTEP - CALL BUDGET (ZCIS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NI , 'IMLT_BU_RSV') + CALL BUDGET (ZCIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NI, 'IMLT_BU_RSV') ZCIS(:,:,:) = ZCIS(:,:,:) + ZTOT_CI_HMS(:,:,:)/PTSTEP - CALL BUDGET (ZCIS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NI , 'HMS_BU_RSV') + CALL BUDGET (ZCIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NI, 'HMS_BU_RSV') ZCIS(:,:,:) = ZCIS(:,:,:) + ZTOT_CI_CFRZ(:,:,:)/PTSTEP - CALL BUDGET (ZCIS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NI , 'CFRZ_BU_RSV') + CALL BUDGET (ZCIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NI, 'CFRZ_BU_RSV') ZCIS(:,:,:) = ZCIS(:,:,:) + ZTOT_CI_WETG(:,:,:)/PTSTEP - CALL BUDGET (ZCIS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NI , 'WETG_BU_RSV') + CALL BUDGET (ZCIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NI, 'WETG_BU_RSV') ZCIS(:,:,:) = ZCIS(:,:,:) + ZTOT_CI_DRYG(:,:,:)/PTSTEP - CALL BUDGET (ZCIS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NI , 'DRYG_BU_RSV') + CALL BUDGET (ZCIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NI, 'DRYG_BU_RSV') ZCIS(:,:,:) = ZCIS(:,:,:) + ZTOT_CI_HMG(:,:,:)/PTSTEP - CALL BUDGET (ZCIS(:,:,:)*PRHODJ(:,:,:), 12+NSV_LIMA_NI , 'HMG_BU_RSV') + CALL BUDGET (ZCIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NI, 'HMG_BU_RSV') 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) diff --git a/src/MNH/lima_adjust.f90 b/src/MNH/lima_adjust.f90 index 752c861b9..4b2056f20 100644 --- a/src/MNH/lima_adjust.f90 +++ b/src/MNH/lima_adjust.f90 @@ -1197,21 +1197,21 @@ END IF ! ! IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:) * PRHODJ(:,:,:),4,'CEDS_BU_RTH') - IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:) * PRHODJ(:,:,:),6,'CEDS_BU_RRV') - IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:) * PRHODJ(:,:,:),7,'CEDS_BU_RRC') - IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:) * PRHODJ(:,:,:),9,'CEDS_BU_RRI') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:) * PRHODJ(:,:,:),NBUDGET_TH,'CEDS_BU_RTH') + IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:) * PRHODJ(:,:,:),NBUDGET_RV,'CEDS_BU_RRV') + IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:) * PRHODJ(:,:,:),NBUDGET_RC,'CEDS_BU_RRC') + IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:) * PRHODJ(:,:,:),NBUDGET_RI,'CEDS_BU_RRI') IF (LBUDGET_SV) THEN - CALL BUDGET (PCCS(:,:,:) * PRHODJ(:,:,:),12+NSV_LIMA_NC,'CEDS_BU_RSV') ! RCC - CALL BUDGET (PCIS(:,:,:) * PRHODJ(:,:,:),12+NSV_LIMA_NI,'CEDS_BU_RSV') ! RCI + CALL BUDGET (PCCS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_LIMA_NC,'CEDS_BU_RSV') ! RCC + CALL BUDGET (PCIS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_LIMA_NI,'CEDS_BU_RSV') ! RCI IF (NMOD_CCN .GE. 1) THEN DO JL = 1, NMOD_CCN - CALL BUDGET (PNFS(:,:,:,JL)*PRHODJ(:,:,:),12+NSV_LIMA_CCN_FREE+JL-1,'CEDS_BU_RSV') ! RCC + CALL BUDGET (PNFS(:,:,:,JL)*PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_LIMA_CCN_FREE+JL-1,'CEDS_BU_RSV') ! RCC END DO END IF IF (NMOD_IFN .GE. 1) THEN DO JL = 1, NMOD_IFN - CALL BUDGET (PIFS(:,:,:,JL)*PRHODJ(:,:,:),12+NSV_LIMA_IFN_FREE+JL-1,'CEDS_BU_RSV') ! RCC + CALL BUDGET (PIFS(:,:,:,JL)*PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_LIMA_IFN_FREE+JL-1,'CEDS_BU_RSV') ! RCC END DO END IF END IF diff --git a/src/MNH/lima_cold.f90 b/src/MNH/lima_cold.f90 index 28b88ca60..587d2712d 100644 --- a/src/MNH/lima_cold.f90 +++ b/src/MNH/lima_cold.f90 @@ -309,12 +309,12 @@ CALL LIMA_COLD_SEDIMENTATION (OSEDI, KSPLITG, PTSTEP, KMI, & PINPRH ) IF (LBU_ENABLE) THEN - IF (LBUDGET_RI .AND. OSEDI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9 ,'SEDI_BU_RRI') - IF (LBUDGET_RS .AND. LSNOW) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),10 ,'SEDI_BU_RRS') - IF (LBUDGET_RG .AND. LSNOW) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11 ,'SEDI_BU_RRG') - IF (LBUDGET_RH .AND. LHAIL) CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:),12 ,'SEDI_BU_RRH') + IF (LBUDGET_RI .AND. OSEDI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RI,'SEDI_BU_RRI') + IF (LBUDGET_RS .AND. LSNOW) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RS,'SEDI_BU_RRS') + IF (LBUDGET_RG .AND. LSNOW) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RG,'SEDI_BU_RRG') + IF (LBUDGET_RH .AND. LHAIL) CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RH,'SEDI_BU_RRH') IF (LBUDGET_SV) THEN - IF (OSEDI) CALL BUDGET (PCIS(:,:,:)*PRHODJ(:,:,:),12+NSV_LIMA_NI,'SEDI_BU_RSV') ! RCI + IF (OSEDI) CALL BUDGET (PCIS(:,:,:)*PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_LIMA_NI,'SEDI_BU_RSV') ! RCI END IF END IF !------------------------------------------------------------------------------- diff --git a/src/MNH/lima_cold_hom_nucl.f90 b/src/MNH/lima_cold_hom_nucl.f90 index f6c3f4211..3882ac276 100644 --- a/src/MNH/lima_cold_hom_nucl.f90 +++ b/src/MNH/lima_cold_hom_nucl.f90 @@ -449,23 +449,23 @@ IF (INEGT.GT.0) THEN IF (NBUMOD==KMI .AND. LBU_ENABLE .AND. OHHONI .AND. NMOD_CCN.GT.0 ) THEN IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GNEGT(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:),& - 4,'HONH_BU_RTH') + NBUDGET_TH,'HONH_BU_RTH') IF (LBUDGET_RV) CALL BUDGET ( & UNPACK(ZRVS(:),MASK=GNEGT(:,:,:),FIELD=PRVS)*PRHODJ(:,:,:),& - 6,'HONH_BU_RRV') + NBUDGET_RV,'HONH_BU_RRV') IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(ZRIS(:),MASK=GNEGT(:,:,:),FIELD=PRIS)*PRHODJ(:,:,:),& - 9,'HONH_BU_RRI') + NBUDGET_RI,'HONH_BU_RRI') IF (LBUDGET_SV) THEN CALL BUDGET ( UNPACK(ZCIS(:),MASK=GNEGT(:,:,:),FIELD=PCIS)*PRHODJ(:,:,:),& - 12+NSV_LIMA_NI,'HONH_BU_RSV') ! RCI + NBUDGET_SV1-1+NSV_LIMA_NI,'HONH_BU_RSV') ! RCI IF (NMOD_CCN.GE.1) THEN DO JL=1, NMOD_CCN CALL BUDGET ( UNPACK(ZNFS(:,JL),MASK=GNEGT(:,:,:),FIELD=PNFS(:,:,:,JL))*PRHODJ(:,:,:),& - 12+NSV_LIMA_CCN_FREE+JL-1,'HONH_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_CCN_FREE+JL-1,'HONH_BU_RSV') END DO CALL BUDGET ( UNPACK(ZZNHS(:),MASK=GNEGT(:,:,:),FIELD=ZNHS(:,:,:))*PRHODJ(:,:,:),& - 12+NSV_LIMA_HOM_HAZE,'HONH_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_HOM_HAZE,'HONH_BU_RSV') END IF END IF @@ -508,18 +508,18 @@ IF (LWARM) THEN IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GNEGT(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:),& - 4,'HONC_BU_RTH') + NBUDGET_TH,'HONC_BU_RTH') IF (LBUDGET_RC) CALL BUDGET ( & UNPACK(ZRCS(:),MASK=GNEGT(:,:,:),FIELD=PRCS)*PRHODJ(:,:,:),& - 7,'HONC_BU_RRC') + NBUDGET_RC,'HONC_BU_RRC') IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(ZRIS(:),MASK=GNEGT(:,:,:),FIELD=PRIS)*PRHODJ(:,:,:),& - 9,'HONC_BU_RRI') + NBUDGET_RI,'HONC_BU_RRI') IF (LBUDGET_SV) THEN CALL BUDGET ( UNPACK(ZCCS(:),MASK=GNEGT(:,:,:),FIELD=PCCS)*PRHODJ(:,:,:),& - 12+NSV_LIMA_NC,'HONC_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_NC,'HONC_BU_RSV') CALL BUDGET ( UNPACK(ZCIS(:),MASK=GNEGT(:,:,:),FIELD=PCIS)*PRHODJ(:,:,:),& - 12+NSV_LIMA_NI,'HONC_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_NI,'HONC_BU_RSV') END IF END IF END IF @@ -549,16 +549,16 @@ IF (LWARM .AND. LRAIN) THEN IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GNEGT(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:),& - 4,'HONR_BU_RTH') + NBUDGET_TH,'HONR_BU_RTH') IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(ZRRS(:),MASK=GNEGT(:,:,:),FIELD=PRRS)*PRHODJ(:,:,:),& - 8,'HONR_BU_RRR') + NBUDGET_RR,'HONR_BU_RRR') IF (LBUDGET_RG) CALL BUDGET ( & UNPACK(ZRGS(:),MASK=GNEGT(:,:,:),FIELD=PRGS)*PRHODJ(:,:,:),& - 11,'HONR_BU_RRG') + NBUDGET_RG,'HONR_BU_RRG') IF (LBUDGET_SV) THEN CALL BUDGET ( UNPACK(ZCRS(:),MASK=GNEGT(:,:,:),FIELD=PCRS)*PRHODJ(:,:,:),& - 12+NSV_LIMA_NR,'HONR_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_NR,'HONR_BU_RSV') END IF END IF END IF @@ -639,46 +639,46 @@ ELSE IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN IF (LBUDGET_TH) THEN ZW(:,:,:) = PTHS(:,:,:)*PRHODJ(:,:,:) - IF( OHHONI .AND. NMOD_CCN.GT.0 ) CALL BUDGET (ZW,4,'HONH_BU_RTH') - IF (LWARM) CALL BUDGET (ZW,4,'HONC_BU_RTH') - IF (LWARM .AND. LRAIN) CALL BUDGET (ZW,4,'HONR_BU_RTH') + IF( OHHONI .AND. NMOD_CCN.GT.0 ) CALL BUDGET (ZW,NBUDGET_TH,'HONH_BU_RTH') + IF (LWARM) CALL BUDGET (ZW,NBUDGET_TH,'HONC_BU_RTH') + IF (LWARM .AND. LRAIN) CALL BUDGET (ZW,NBUDGET_TH,'HONR_BU_RTH') ENDIF IF (LBUDGET_RV) THEN ZW(:,:,:) = PRVS(:,:,:)*PRHODJ(:,:,:) - IF( OHHONI .AND. NMOD_CCN.GT.0 ) CALL BUDGET (ZW,6,'HONH_BU_RRV') + IF( OHHONI .AND. NMOD_CCN.GT.0 ) CALL BUDGET (ZW,NBUDGET_RV,'HONH_BU_RRV') ENDIF IF (LBUDGET_RC) THEN ZW(:,:,:) = PRCS(:,:,:)*PRHODJ(:,:,:) - IF (LWARM) CALL BUDGET (ZW,7,'HONC_BU_RRC') + IF (LWARM) CALL BUDGET (ZW,NBUDGET_RC,'HONC_BU_RRC') ENDIF IF (LBUDGET_RR) THEN ZW(:,:,:) = PRRS(:,:,:)*PRHODJ(:,:,:) - IF (LWARM .AND. LRAIN) CALL BUDGET (ZW,8,'HONR_BU_RRR') + IF (LWARM .AND. LRAIN) CALL BUDGET (ZW,NBUDGET_RR,'HONR_BU_RRR') ENDIF IF (LBUDGET_RI) THEN ZW(:,:,:) = PRIS(:,:,:)*PRHODJ(:,:,:) - IF( OHHONI .AND. NMOD_CCN.GT.0 ) CALL BUDGET (ZW,9,'HONH_BU_RRI') - IF (LWARM) CALL BUDGET (ZW,9,'HONC_BU_RRI') + IF( OHHONI .AND. NMOD_CCN.GT.0 ) CALL BUDGET (ZW,NBUDGET_RI,'HONH_BU_RRI') + IF (LWARM) CALL BUDGET (ZW,NBUDGET_RI,'HONC_BU_RRI') ENDIF IF (LBUDGET_RG) THEN ZW(:,:,:) = PRGS(:,:,:)*PRHODJ(:,:,:) - IF (LWARM .AND. LRAIN) CALL BUDGET (ZW,11,'HONR_BU_RRG') + IF (LWARM .AND. LRAIN) CALL BUDGET (ZW,NBUDGET_RG,'HONR_BU_RRG') ENDIF IF (LBUDGET_SV) THEN ZW(:,:,:) = PCCS(:,:,:)*PRHODJ(:,:,:) - IF (LWARM) CALL BUDGET (ZW,12+NSV_LIMA_NC,'HONC_BU_RSV') + IF (LWARM) CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_NC,'HONC_BU_RSV') ZW(:,:,:) = PCRS(:,:,:)*PRHODJ(:,:,:) - IF (LWARM .AND. LRAIN) CALL BUDGET (ZW,12+NSV_LIMA_NR,'HONR_BU_RSV') + IF (LWARM .AND. LRAIN) CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_NR,'HONR_BU_RSV') ZW(:,:,:) = PCIS(:,:,:)*PRHODJ(:,:,:) - IF( OHHONI .AND. NMOD_CCN.GT.0 ) CALL BUDGET (ZW,12+NSV_LIMA_NI,'HONH_BU_RSV') - IF (LWARM) CALL BUDGET (ZW,12+NSV_LIMA_NI,'HONC_BU_RSV') + IF( OHHONI .AND. NMOD_CCN.GT.0 ) CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_NI,'HONH_BU_RSV') + IF (LWARM) CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_NI,'HONC_BU_RSV') IF( OHHONI .AND. NMOD_CCN.GT.0 ) THEN DO JL=1, NMOD_CCN ZW(:,:,:) = PNFS(:,:,:,JL)*PRHODJ(:,:,:) - CALL BUDGET (ZW,12+NSV_LIMA_CCN_FREE+JL-1,'HONH_BU_RSV') + CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_CCN_FREE+JL-1,'HONH_BU_RSV') END DO ZW(:,:,:) = ZNHS(:,:,:)*PRHODJ(:,:,:) - CALL BUDGET (ZW,12+NSV_LIMA_HOM_HAZE,'HONH_BU_RSV') + CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_HOM_HAZE,'HONH_BU_RSV') END IF END IF END IF diff --git a/src/MNH/lima_cold_slow_processes.f90 b/src/MNH/lima_cold_slow_processes.f90 index 1973c65f3..53cdf53a7 100644 --- a/src/MNH/lima_cold_slow_processes.f90 +++ b/src/MNH/lima_cold_slow_processes.f90 @@ -356,13 +356,13 @@ IF( IMICRO >= 1 ) THEN IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(ZRIS(:),MASK=GMICRO(:,:,:),FIELD=PRIS)*PRHODJ(:,:,:),& - 9,'CNVI_BU_RRI') + NBUDGET_RI,'CNVI_BU_RRI') IF (LBUDGET_RS) CALL BUDGET ( & UNPACK(ZRSS(:),MASK=GMICRO(:,:,:),FIELD=PRSS)*PRHODJ(:,:,:),& - 10,'CNVI_BU_RRS') + NBUDGET_RS,'CNVI_BU_RRS') IF (LBUDGET_SV) CALL BUDGET ( & UNPACK(ZCIS(:),MASK=GMICRO(:,:,:),FIELD=PCIS)*PRHODJ(:,:,:), & - 12+NSV_LIMA_NI,'CNVI_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_NI,'CNVI_BU_RSV') END IF ! ! @@ -385,13 +385,13 @@ IF( IMICRO >= 1 ) THEN IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:),& - 4,'DEPS_BU_RTH') + NBUDGET_TH,'DEPS_BU_RTH') IF (LBUDGET_RV) CALL BUDGET ( & UNPACK(ZRVS(:),MASK=GMICRO(:,:,:),FIELD=PRVS)*PRHODJ(:,:,:),& - 6,'DEPS_BU_RRV') + NBUDGET_RV,'DEPS_BU_RRV') IF (LBUDGET_RS) CALL BUDGET ( & UNPACK(ZRSS(:),MASK=GMICRO(:,:,:),FIELD=PRSS)*PRHODJ(:,:,:),& - 10,'DEPS_BU_RRS') + NBUDGET_RS,'DEPS_BU_RRS') END IF ! ! @@ -421,13 +421,13 @@ IF( IMICRO >= 1 ) THEN IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(ZRIS(:),MASK=GMICRO(:,:,:),FIELD=PRIS)*PRHODJ(:,:,:),& - 9,'CNVS_BU_RRI') + NBUDGET_RI,'CNVS_BU_RRI') IF (LBUDGET_RS) CALL BUDGET ( & UNPACK(ZRSS(:),MASK=GMICRO(:,:,:),FIELD=PRSS)*PRHODJ(:,:,:),& - 10,'CNVS_BU_RRS') + NBUDGET_RS,'CNVS_BU_RRS') IF (LBUDGET_SV) CALL BUDGET ( & UNPACK(ZCIS(:),MASK=GMICRO(:,:,:),FIELD=PCIS)*PRHODJ(:,:,:), & - 12+NSV_LIMA_NI,'CNVS_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_NI,'CNVS_BU_RSV') END IF ! ! @@ -453,13 +453,13 @@ IF( IMICRO >= 1 ) THEN IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(ZRIS(:),MASK=GMICRO(:,:,:),FIELD=PRIS)*PRHODJ(:,:,:), & - 9,'AGGS_BU_RRI') + NBUDGET_RI,'AGGS_BU_RRI') IF (LBUDGET_RS) CALL BUDGET ( & UNPACK(ZRSS(:),MASK=GMICRO(:,:,:),FIELD=PRSS)*PRHODJ(:,:,:), & - 10,'AGGS_BU_RRS') + NBUDGET_RS,'AGGS_BU_RRS') IF (LBUDGET_SV) CALL BUDGET ( & UNPACK(ZCIS(:),MASK=GMICRO(:,:,:),FIELD=PCIS)*PRHODJ(:,:,:), & - 12+NSV_LIMA_NI,'AGGS_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_NI,'AGGS_BU_RSV') END IF ! ! @@ -521,30 +521,30 @@ ELSE IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN IF (LBUDGET_TH) THEN ZW(:,:,:) = PTHS(:,:,:)*PRHODJ(:,:,:) - CALL BUDGET (ZW,4,'DEPS_BU_RTH') + CALL BUDGET (ZW,NBUDGET_TH,'DEPS_BU_RTH') ENDIF IF (LBUDGET_RV) THEN ZW(:,:,:) = PRVS(:,:,:)*PRHODJ(:,:,:) - CALL BUDGET (ZW,6,'DEPS_BU_RRV') + CALL BUDGET (ZW,NBUDGET_RV,'DEPS_BU_RRV') ENDIF IF (LBUDGET_RI) THEN ZW(:,:,:) = PRIS(:,:,:)*PRHODJ(:,:,:) - CALL BUDGET (ZW,9,'CNVI_BU_RRI') - CALL BUDGET (ZW,9,'CNVS_BU_RRI') - CALL BUDGET (ZW,9,'AGGS_BU_RRI') + CALL BUDGET (ZW,NBUDGET_RI,'CNVI_BU_RRI') + CALL BUDGET (ZW,NBUDGET_RI,'CNVS_BU_RRI') + CALL BUDGET (ZW,NBUDGET_RI,'AGGS_BU_RRI') ENDIF IF (LBUDGET_RS) THEN ZW(:,:,:) = PRSS(:,:,:)*PRHODJ(:,:,:) - CALL BUDGET (ZW,10,'CNVI_BU_RRS') - CALL BUDGET (ZW,10,'DEPS_BU_RRS') - CALL BUDGET (ZW,10,'CNVS_BU_RRS') - CALL BUDGET (ZW,10,'AGGS_BU_RRS') + CALL BUDGET (ZW,NBUDGET_RS,'CNVI_BU_RRS') + CALL BUDGET (ZW,NBUDGET_RS,'DEPS_BU_RRS') + CALL BUDGET (ZW,NBUDGET_RS,'CNVS_BU_RRS') + CALL BUDGET (ZW,NBUDGET_RS,'AGGS_BU_RRS') ENDIF IF (LBUDGET_SV) THEN ZW(:,:,:) = PCIS(:,:,:)*PRHODJ(:,:,:) - CALL BUDGET (ZW,12+NSV_LIMA_NI,'CNVI_BU_RSV') - CALL BUDGET (ZW,12+NSV_LIMA_NI,'CNVS_BU_RSV') - CALL BUDGET (ZW,12+NSV_LIMA_NI,'AGGS_BU_RSV') + CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_NI,'CNVI_BU_RSV') + CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_NI,'CNVS_BU_RSV') + CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_NI,'AGGS_BU_RSV') ENDIF ENDIF ! diff --git a/src/MNH/lima_meyers.f90 b/src/MNH/lima_meyers.f90 index 775a104ec..28c90601f 100644 --- a/src/MNH/lima_meyers.f90 +++ b/src/MNH/lima_meyers.f90 @@ -341,16 +341,16 @@ IF( INEGT >= 1 ) THEN IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GNEGT(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:),& - 4,'HIND_BU_RTH') + NBUDGET_TH,'HIND_BU_RTH') IF (LBUDGET_RV) CALL BUDGET ( & UNPACK(ZRVS(:),MASK=GNEGT(:,:,:),FIELD=PRVS)*PRHODJ(:,:,:),& - 6,'HIND_BU_RRV') + NBUDGET_RV,'HIND_BU_RRV') IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(ZRIS(:),MASK=GNEGT(:,:,:),FIELD=PRIS)*PRHODJ(:,:,:),& - 9,'HIND_BU_RRI') + NBUDGET_RI,'HIND_BU_RRI') IF (LBUDGET_SV) THEN CALL BUDGET ( UNPACK(ZCIS(:),MASK=GNEGT(:,:,:),FIELD=PCIS)*PRHODJ(:,:,:),& - 12+NSV_LIMA_NI,'HIND_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_NI,'HIND_BU_RSV') END IF END IF ! @@ -397,12 +397,12 @@ IF( INEGT >= 1 ) THEN ! ! Budget storage IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:), 4,'HINC_BU_RTH') - IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:), 7,'HINC_BU_RRC') - IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:), 9,'HINC_BU_RRI') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH,'HINC_BU_RTH') + IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC,'HINC_BU_RRC') + IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RI,'HINC_BU_RRI') IF (LBUDGET_SV) THEN - CALL BUDGET ( PCCS(:,:,:)*PRHODJ(:,:,:),12+NSV_LIMA_NC,'HINC_BU_RSV') - CALL BUDGET ( PCIS(:,:,:)*PRHODJ(:,:,:),12+NSV_LIMA_NI,'HINC_BU_RSV') + CALL BUDGET ( PCCS(:,:,:)*PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_LIMA_NC,'HINC_BU_RSV') + CALL BUDGET ( PCIS(:,:,:)*PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_LIMA_NI,'HINC_BU_RSV') END IF END IF @@ -445,36 +445,32 @@ ELSE IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN IF (LBUDGET_TH) THEN ZW(:,:,:) = PTHS(:,:,:)*PRHODJ(:,:,:) - CALL BUDGET (ZW,4,'HIND_BU_RTH') - CALL BUDGET (ZW,4,'HINC_BU_RTH') + CALL BUDGET (ZW,NBUDGET_TH,'HIND_BU_RTH') + CALL BUDGET (ZW,NBUDGET_TH,'HINC_BU_RTH') ENDIF IF (LBUDGET_RV) THEN ZW(:,:,:) = PRVS(:,:,:)*PRHODJ(:,:,:) - CALL BUDGET (ZW,6,'HIND_BU_RRV') + CALL BUDGET (ZW,NBUDGET_RV,'HIND_BU_RRV') ENDIF IF (LBUDGET_RC) THEN ZW(:,:,:) = PRCS(:,:,:)*PRHODJ(:,:,:) - CALL BUDGET (ZW,7,'HINC_BU_RRC') + CALL BUDGET (ZW,NBUDGET_RC,'HINC_BU_RRC') ENDIF IF (LBUDGET_RI) THEN ZW(:,:,:) = PRIS(:,:,:)*PRHODJ(:,:,:) - CALL BUDGET (ZW,9,'HIND_BU_RRI') - CALL BUDGET (ZW,9,'HINC_BU_RRI') + CALL BUDGET (ZW,NBUDGET_RI,'HIND_BU_RRI') + CALL BUDGET (ZW,NBUDGET_RI,'HINC_BU_RRI') ENDIF IF (LBUDGET_SV) THEN ZW(:,:,:) = PCCS(:,:,:)*PRHODJ(:,:,:) - CALL BUDGET (ZW,12+NSV_LIMA_NC,'HINC_BU_RSV') + CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_NC,'HINC_BU_RSV') ZW(:,:,:) = PCIS(:,:,:)*PRHODJ(:,:,:) - CALL BUDGET (ZW,12+NSV_LIMA_NI,'HIND_BU_RSV') - CALL BUDGET (ZW,12+NSV_LIMA_NI,'HINC_BU_RSV') + CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_NI,'HIND_BU_RSV') + CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_NI,'HINC_BU_RSV') END IF END IF ! END IF - - - - ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/lima_mixed.f90 b/src/MNH/lima_mixed.f90 index 7525be5b3..9f1769c81 100644 --- a/src/MNH/lima_mixed.f90 +++ b/src/MNH/lima_mixed.f90 @@ -650,108 +650,108 @@ ELSE IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN IF (LBUDGET_TH) THEN ZW(:,:,:) = PTHS(:,:,:)*PRHODJ(:,:,:) - IF (LSNOW) CALL BUDGET (ZW,4,'DEPG_BU_RTH') - CALL BUDGET (ZW,4,'IMLT_BU_RTH') - CALL BUDGET (ZW,4,'BERFI_BU_RTH') - IF (LSNOW) CALL BUDGET (ZW,4,'RIM_BU_RTH') - IF (LSNOW .AND. LRAIN) CALL BUDGET (ZW,4,'ACC_BU_RTH') - IF (LSNOW) CALL BUDGET (ZW,4,'CFRZ_BU_RTH') - IF (LSNOW) CALL BUDGET (ZW,4,'WETG_BU_RTH') - IF (LSNOW) CALL BUDGET (ZW,4,'DRYG_BU_RTH') - IF (LSNOW) CALL BUDGET (ZW,4,'GMLT_BU_RTH') - IF (LHAIL) CALL BUDGET (ZW,4,'WETH_BU_RTH') - IF (LHAIL) CALL BUDGET (ZW,4,'HMLT_BU_RTH') + IF (LSNOW) CALL BUDGET (ZW,NBUDGET_TH,'DEPG_BU_RTH') + CALL BUDGET (ZW,NBUDGET_TH,'IMLT_BU_RTH') + CALL BUDGET (ZW,NBUDGET_TH,'BERFI_BU_RTH') + IF (LSNOW) CALL BUDGET (ZW,NBUDGET_TH,'RIM_BU_RTH') + IF (LSNOW .AND. LRAIN) CALL BUDGET (ZW,NBUDGET_TH,'ACC_BU_RTH') + IF (LSNOW) CALL BUDGET (ZW,NBUDGET_TH,'CFRZ_BU_RTH') + IF (LSNOW) CALL BUDGET (ZW,NBUDGET_TH,'WETG_BU_RTH') + IF (LSNOW) CALL BUDGET (ZW,NBUDGET_TH,'DRYG_BU_RTH') + IF (LSNOW) CALL BUDGET (ZW,NBUDGET_TH,'GMLT_BU_RTH') + IF (LHAIL) CALL BUDGET (ZW,NBUDGET_TH,'WETH_BU_RTH') + IF (LHAIL) CALL BUDGET (ZW,NBUDGET_TH,'HMLT_BU_RTH') ENDIF IF (LBUDGET_RV) THEN ZW(:,:,:) = PRVS(:,:,:)*PRHODJ(:,:,:) - IF (LSNOW) CALL BUDGET (ZW,6,'DEPG_BU_RRV') + IF (LSNOW) CALL BUDGET (ZW,NBUDGET_RV,'DEPG_BU_RRV') ENDIF IF (LBUDGET_RC) THEN ZW(:,:,:) = PRCS(:,:,:)*PRHODJ(:,:,:) - CALL BUDGET (ZW,7,'IMLT_BU_RRC') - CALL BUDGET (ZW,7,'BERFI_BU_RRC') - IF (LSNOW) CALL BUDGET (ZW,7,'RIM_BU_RRC') - IF (LSNOW) CALL BUDGET (ZW,7,'WETG_BU_RRC') - IF (LSNOW) CALL BUDGET (ZW,7,'DRYG_BU_RRC') - IF (LHAIL) CALL BUDGET (ZW,7,'WETH_BU_RRC') + CALL BUDGET (ZW,NBUDGET_RC,'IMLT_BU_RRC') + CALL BUDGET (ZW,NBUDGET_RC,'BERFI_BU_RRC') + IF (LSNOW) CALL BUDGET (ZW,NBUDGET_RC,'RIM_BU_RRC') + IF (LSNOW) CALL BUDGET (ZW,NBUDGET_RC,'WETG_BU_RRC') + IF (LSNOW) CALL BUDGET (ZW,NBUDGET_RC,'DRYG_BU_RRC') + IF (LHAIL) CALL BUDGET (ZW,NBUDGET_RC,'WETH_BU_RRC') ENDIF IF (LBUDGET_RR .AND. LRAIN) THEN ZW(:,:,:) = PRRS(:,:,:)*PRHODJ(:,:,:) - IF (LSNOW .AND. LRAIN) CALL BUDGET (ZW,8,'ACC_BU_RRR') - IF (LSNOW) CALL BUDGET (ZW,8,'CFRZ_BU_RRR') - IF (LSNOW) CALL BUDGET (ZW,8,'WETG_BU_RRR') - IF (LSNOW) CALL BUDGET (ZW,8,'DRYG_BU_RRR') - IF (LSNOW) CALL BUDGET (ZW,8,'GMLT_BU_RRR') - IF (LHAIL) CALL BUDGET (ZW,8,'WETH_BU_RRR') - IF (LHAIL) CALL BUDGET (ZW,8,'HMLT_BU_RRR') + IF (LSNOW .AND. LRAIN) CALL BUDGET (ZW,NBUDGET_RR,'ACC_BU_RRR') + IF (LSNOW) CALL BUDGET (ZW,NBUDGET_RR,'CFRZ_BU_RRR') + IF (LSNOW) CALL BUDGET (ZW,NBUDGET_RR,'WETG_BU_RRR') + IF (LSNOW) CALL BUDGET (ZW,NBUDGET_RR,'DRYG_BU_RRR') + IF (LSNOW) CALL BUDGET (ZW,NBUDGET_RR,'GMLT_BU_RRR') + IF (LHAIL) CALL BUDGET (ZW,NBUDGET_RR,'WETH_BU_RRR') + IF (LHAIL) CALL BUDGET (ZW,NBUDGET_RR,'HMLT_BU_RRR') ENDIF IF (LBUDGET_RI) THEN ZW(:,:,:) = PRIS(:,:,:)*PRHODJ(:,:,:) - CALL BUDGET (ZW,9,'IMLT_BU_RRI') - CALL BUDGET (ZW,9,'BERFI_BU_RRI') - IF (LSNOW) CALL BUDGET (ZW,9,'HMS_BU_RRI') - IF (LSNOW) CALL BUDGET (ZW,9,'CFRZ_BU_RRI') - IF (LSNOW) CALL BUDGET (ZW,9,'WETG_BU_RRI') - IF (LSNOW) CALL BUDGET (ZW,9,'DRYG_BU_RRI') - IF (LSNOW) CALL BUDGET (ZW,9,'HMG_BU_RRI') - IF (LHAIL) CALL BUDGET (ZW,9,'WETH_BU_RRI') + CALL BUDGET (ZW,NBUDGET_RI,'IMLT_BU_RRI') + CALL BUDGET (ZW,NBUDGET_RI,'BERFI_BU_RRI') + IF (LSNOW) CALL BUDGET (ZW,NBUDGET_RI,'HMS_BU_RRI') + IF (LSNOW) CALL BUDGET (ZW,NBUDGET_RI,'CFRZ_BU_RRI') + IF (LSNOW) CALL BUDGET (ZW,NBUDGET_RI,'WETG_BU_RRI') + IF (LSNOW) CALL BUDGET (ZW,NBUDGET_RI,'DRYG_BU_RRI') + IF (LSNOW) CALL BUDGET (ZW,NBUDGET_RI,'HMG_BU_RRI') + IF (LHAIL) CALL BUDGET (ZW,NBUDGET_RI,'WETH_BU_RRI') ENDIF IF (LBUDGET_RS .AND. LSNOW) THEN ZW(:,:,:) = PRSS(:,:,:)*PRHODJ(:,:,:) - CALL BUDGET (ZW,10,'RIM_BU_RRS') - CALL BUDGET (ZW,10,'HMS_BU_RRS') - IF (LRAIN) CALL BUDGET (ZW,10,'ACC_BU_RRS') - CALL BUDGET (ZW,10,'CMEL_BU_RRS') - CALL BUDGET (ZW,10,'WETG_BU_RRS') - CALL BUDGET (ZW,10,'DRYG_BU_RRS') - IF (LHAIL) CALL BUDGET (ZW,10,'WETH_BU_RRS') + CALL BUDGET (ZW,NBUDGET_RS,'RIM_BU_RRS') + CALL BUDGET (ZW,NBUDGET_RS,'HMS_BU_RRS') + IF (LRAIN) CALL BUDGET (ZW,NBUDGET_RS,'ACC_BU_RRS') + CALL BUDGET (ZW,NBUDGET_RS,'CMEL_BU_RRS') + CALL BUDGET (ZW,NBUDGET_RS,'WETG_BU_RRS') + CALL BUDGET (ZW,NBUDGET_RS,'DRYG_BU_RRS') + IF (LHAIL) CALL BUDGET (ZW,NBUDGET_RS,'WETH_BU_RRS') ENDIF IF (LBUDGET_RG .AND. LSNOW) THEN ZW(:,:,:) = PRGS(:,:,:)*PRHODJ(:,:,:) - CALL BUDGET (ZW,11,'DEPG_BU_RRG') - CALL BUDGET (ZW,11,'RIM_BU_RRG') - IF (LRAIN) CALL BUDGET (ZW,11,'ACC_BU_RRG') - CALL BUDGET (ZW,11,'CMEL_BU_RRG') - CALL BUDGET (ZW,11,'CFRZ_BU_RRG') - CALL BUDGET (ZW,11,'WETG_BU_RRG') - CALL BUDGET (ZW,11,'DRYG_BU_RRG') - CALL BUDGET (ZW,11,'HMG_BU_RRG') - CALL BUDGET (ZW,11,'GMLT_BU_RRG') - IF (LHAIL) CALL BUDGET (ZW,11,'WETH_BU_RRG') - IF (LHAIL) CALL BUDGET (ZW,11,'COHG_BU_RRG') + CALL BUDGET (ZW,NBUDGET_RG,'DEPG_BU_RRG') + CALL BUDGET (ZW,NBUDGET_RG,'RIM_BU_RRG') + IF (LRAIN) CALL BUDGET (ZW,NBUDGET_RG,'ACC_BU_RRG') + CALL BUDGET (ZW,NBUDGET_RG,'CMEL_BU_RRG') + CALL BUDGET (ZW,NBUDGET_RG,'CFRZ_BU_RRG') + CALL BUDGET (ZW,NBUDGET_RG,'WETG_BU_RRG') + CALL BUDGET (ZW,NBUDGET_RG,'DRYG_BU_RRG') + CALL BUDGET (ZW,NBUDGET_RG,'HMG_BU_RRG') + CALL BUDGET (ZW,NBUDGET_RG,'GMLT_BU_RRG') + IF (LHAIL) CALL BUDGET (ZW,NBUDGET_RG,'WETH_BU_RRG') + IF (LHAIL) CALL BUDGET (ZW,NBUDGET_RG,'COHG_BU_RRG') ENDIF IF (LBUDGET_RH .AND. LHAIL) THEN ZW(:,:,:) = PRHS(:,:,:)*PRHODJ(:,:,:) - CALL BUDGET (ZW,12,'WETG_BU_RRH') - IF (LHAIL) CALL BUDGET (ZW,12,'WETH_BU_RRH') - IF (LHAIL) CALL BUDGET (ZW,12,'COHG_BU_RRH') - IF (LHAIL) CALL BUDGET (ZW,12,'HMLT_BU_RRH') + CALL BUDGET (ZW,NBUDGET_RH,'WETG_BU_RRH') + IF (LHAIL) CALL BUDGET (ZW,NBUDGET_RH,'WETH_BU_RRH') + IF (LHAIL) CALL BUDGET (ZW,NBUDGET_RH,'COHG_BU_RRH') + IF (LHAIL) CALL BUDGET (ZW,NBUDGET_RH,'HMLT_BU_RRH') ENDIF IF (LBUDGET_SV) THEN ZW(:,:,:) = PCCS(:,:,:)*PRHODJ(:,:,:) - CALL BUDGET (ZW,12+NSV_LIMA_NC,'IMLT_BU_RSV') - IF (LSNOW) CALL BUDGET (ZW,12+NSV_LIMA_NC,'RIM_BU_RSV') - IF (LSNOW) CALL BUDGET (ZW,12+NSV_LIMA_NC,'WETG_BU_RSV') - IF (LSNOW) CALL BUDGET (ZW,12+NSV_LIMA_NC,'DRYG_BU_RSV') - IF (LHAIL) CALL BUDGET (ZW,12+NSV_LIMA_NC,'WETH_BU_RSV') + CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_NC,'IMLT_BU_RSV') + IF (LSNOW) CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_NC,'RIM_BU_RSV') + IF (LSNOW) CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_NC,'WETG_BU_RSV') + IF (LSNOW) CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_NC,'DRYG_BU_RSV') + IF (LHAIL) CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_NC,'WETH_BU_RSV') ! ZW(:,:,:) = PCRS(:,:,:)*PRHODJ(:,:,:) - IF (LSNOW) CALL BUDGET (ZW,12+NSV_LIMA_NR,'ACC_BU_RSV') - IF (LSNOW) CALL BUDGET (ZW,12+NSV_LIMA_NR,'CFRZ_BU_RSV') - IF (LSNOW) CALL BUDGET (ZW,12+NSV_LIMA_NR,'WETG_BU_RSV') - IF (LSNOW) CALL BUDGET (ZW,12+NSV_LIMA_NR,'DRYG_BU_RSV') - IF (LSNOW) CALL BUDGET (ZW,12+NSV_LIMA_NR,'GMLT_BU_RSV') - IF (LHAIL) CALL BUDGET (ZW,12+NSV_LIMA_NR,'WETH_BU_RSV') - IF (LHAIL) CALL BUDGET (ZW,12+NSV_LIMA_NR,'HMLT_BU_RSV') + IF (LSNOW) CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_NR,'ACC_BU_RSV') + IF (LSNOW) CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_NR,'CFRZ_BU_RSV') + IF (LSNOW) CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_NR,'WETG_BU_RSV') + IF (LSNOW) CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_NR,'DRYG_BU_RSV') + IF (LSNOW) CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_NR,'GMLT_BU_RSV') + IF (LHAIL) CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_NR,'WETH_BU_RSV') + IF (LHAIL) CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_NR,'HMLT_BU_RSV') ! ZW(:,:,:) = PCIS(:,:,:)*PRHODJ(:,:,:) - CALL BUDGET (ZW,12+NSV_LIMA_NI,'IMLT_BU_RSV') - IF (LSNOW) CALL BUDGET (ZW,12+NSV_LIMA_NI,'HMS_BU_RSV') - IF (LSNOW) CALL BUDGET (ZW,12+NSV_LIMA_NI,'CFRZ_BU_RSV') - IF (LSNOW) CALL BUDGET (ZW,12+NSV_LIMA_NI,'WETG_BU_RSV') - IF (LSNOW) CALL BUDGET (ZW,12+NSV_LIMA_NI,'DRYG_BU_RSV') - IF (LSNOW) CALL BUDGET (ZW,12+NSV_LIMA_NI,'HMG_BU_RSV') - IF (LHAIL) CALL BUDGET (ZW,12+NSV_LIMA_NI,'WETH_BU_RSV') + CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_NI,'IMLT_BU_RSV') + IF (LSNOW) CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_NI,'HMS_BU_RSV') + IF (LSNOW) CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_NI,'CFRZ_BU_RSV') + IF (LSNOW) CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_NI,'WETG_BU_RSV') + IF (LSNOW) CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_NI,'DRYG_BU_RSV') + IF (LSNOW) CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_NI,'HMG_BU_RSV') + IF (LHAIL) CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_NI,'WETH_BU_RSV') ENDIF ENDIF ! diff --git a/src/MNH/lima_mixed_fast_processes.f90 b/src/MNH/lima_mixed_fast_processes.f90 index fdb9724bc..09ea55a1b 100644 --- a/src/MNH/lima_mixed_fast_processes.f90 +++ b/src/MNH/lima_mixed_fast_processes.f90 @@ -329,19 +329,19 @@ END IF IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:), & - 4,'RIM_BU_RTH') + NBUDGET_TH,'RIM_BU_RTH') IF (LBUDGET_RC) CALL BUDGET ( & UNPACK(ZRCS(:),MASK=GMICRO(:,:,:),FIELD=PRCS)*PRHODJ(:,:,:), & - 7,'RIM_BU_RRC') + NBUDGET_RC,'RIM_BU_RRC') IF (LBUDGET_RS) CALL BUDGET ( & UNPACK(ZRSS(:),MASK=GMICRO(:,:,:),FIELD=PRSS)*PRHODJ(:,:,:), & - 10,'RIM_BU_RRS') + NBUDGET_RS,'RIM_BU_RRS') IF (LBUDGET_RG) CALL BUDGET ( & UNPACK(ZRGS(:),MASK=GMICRO(:,:,:),FIELD=PRGS)*PRHODJ(:,:,:), & - 11,'RIM_BU_RRG') + NBUDGET_RG,'RIM_BU_RRG') IF (LBUDGET_SV) THEN CALL BUDGET (UNPACK(ZCCS(:),MASK=GMICRO(:,:,:),FIELD=PCCS)*PRHODJ(:,:,:), & - 12+NSV_LIMA_NC,'RIM_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_NC,'RIM_BU_RSV') END IF END IF ! @@ -386,13 +386,13 @@ END IF IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(ZRIS(:),MASK=GMICRO,FIELD=PRIS)*PRHODJ(:,:,:), & - 9,'HMS_BU_RRI') + NBUDGET_RI,'HMS_BU_RRI') IF (LBUDGET_RS) CALL BUDGET ( & UNPACK(ZRSS(:),MASK=GMICRO,FIELD=PRSS)*PRHODJ(:,:,:), & - 10,'HMS_BU_RRS') + NBUDGET_RS,'HMS_BU_RRS') IF (LBUDGET_SV) CALL BUDGET ( & UNPACK(ZCIS(:),MASK=GMICRO,FIELD=PCIS)*PRHODJ(:,:,:), & - 12+NSV_LIMA_NI,'HMS_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_NI,'HMS_BU_RSV') END IF ! ! @@ -515,19 +515,19 @@ END IF IF (NBUMOD==KMI .AND. LBU_ENABLE .AND. LRAIN) THEN IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:),& - 4,'ACC_BU_RTH') + NBUDGET_TH,'ACC_BU_RTH') IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(ZRRS(:),MASK=GMICRO(:,:,:),FIELD=PRRS)*PRHODJ(:,:,:), & - 8,'ACC_BU_RRR') + NBUDGET_RR,'ACC_BU_RRR') IF (LBUDGET_RS) CALL BUDGET ( & UNPACK(ZRSS(:),MASK=GMICRO(:,:,:),FIELD=PRSS)*PRHODJ(:,:,:), & - 10,'ACC_BU_RRS') + NBUDGET_RS,'ACC_BU_RRS') IF (LBUDGET_RG) CALL BUDGET ( & UNPACK(ZRGS(:),MASK=GMICRO(:,:,:),FIELD=PRGS)*PRHODJ(:,:,:), & - 11,'ACC_BU_RRG') + NBUDGET_RG,'ACC_BU_RRG') IF (LBUDGET_SV) THEN CALL BUDGET (UNPACK(ZCRS(:),MASK=GMICRO(:,:,:),FIELD=PCRS)*PRHODJ(:,:,:), & - 12+NSV_LIMA_NR,'ACC_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_NR,'ACC_BU_RSV') END IF END IF ! @@ -563,10 +563,10 @@ END WHERE IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN IF (LBUDGET_RS) CALL BUDGET ( & UNPACK(ZRSS(:),MASK=GMICRO(:,:,:),FIELD=PRSS)*PRHODJ(:,:,:), & - 10,'CMEL_BU_RRS') + NBUDGET_RS,'CMEL_BU_RRS') IF (LBUDGET_RG) CALL BUDGET ( & UNPACK(ZRGS(:),MASK=GMICRO(:,:,:),FIELD=PRGS)*PRHODJ(:,:,:), & - 11,'CMEL_BU_RRG') + NBUDGET_RG,'CMEL_BU_RRG') END IF ! END IF ! LSNOW @@ -603,21 +603,21 @@ END WHERE IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:), & - 4,'CFRZ_BU_RTH') + NBUDGET_TH,'CFRZ_BU_RTH') IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(ZRRS(:),MASK=GMICRO(:,:,:),FIELD=PRRS)*PRHODJ(:,:,:), & - 8,'CFRZ_BU_RRR') + NBUDGET_RR,'CFRZ_BU_RRR') IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(ZRIS(:),MASK=GMICRO(:,:,:),FIELD=PRIS)*PRHODJ(:,:,:), & - 9,'CFRZ_BU_RRI') + NBUDGET_RI,'CFRZ_BU_RRI') IF (LBUDGET_RG) CALL BUDGET ( & UNPACK(ZRGS(:),MASK=GMICRO(:,:,:),FIELD=PRGS)*PRHODJ(:,:,:), & - 11,'CFRZ_BU_RRG') + NBUDGET_RG,'CFRZ_BU_RRG') IF (LBUDGET_SV) THEN CALL BUDGET ( UNPACK(ZCRS(:),MASK=GMICRO(:,:,:),FIELD=PCRS)*PRHODJ(:,:,:), & - 12+NSV_LIMA_NR,'CFRZ_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_NR,'CFRZ_BU_RSV') CALL BUDGET ( UNPACK(ZCIS(:),MASK=GMICRO(:,:,:),FIELD=PCIS)*PRHODJ(:,:,:), & - 12+NSV_LIMA_NI,'CFRZ_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_NI,'CFRZ_BU_RSV') END IF END IF ! @@ -839,32 +839,32 @@ END WHERE IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:),& - 4,'WETG_BU_RTH') + NBUDGET_TH,'WETG_BU_RTH') IF (LBUDGET_RC) CALL BUDGET ( & UNPACK(ZRCS(:),MASK=GMICRO(:,:,:),FIELD=PRCS)*PRHODJ(:,:,:), & - 7,'WETG_BU_RRC') + NBUDGET_RC,'WETG_BU_RRC') IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(ZRRS(:),MASK=GMICRO(:,:,:),FIELD=PRRS)*PRHODJ(:,:,:), & - 8,'WETG_BU_RRR') + NBUDGET_RR,'WETG_BU_RRR') IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(ZRIS(:),MASK=GMICRO(:,:,:),FIELD=PRIS)*PRHODJ(:,:,:), & - 9,'WETG_BU_RRI') + NBUDGET_RI,'WETG_BU_RRI') IF (LBUDGET_RS) CALL BUDGET ( & UNPACK(ZRSS(:),MASK=GMICRO(:,:,:),FIELD=PRSS)*PRHODJ(:,:,:), & - 10,'WETG_BU_RRS') + NBUDGET_RS,'WETG_BU_RRS') IF (LBUDGET_RG) CALL BUDGET ( & UNPACK(ZRGS(:),MASK=GMICRO(:,:,:),FIELD=PRGS)*PRHODJ(:,:,:), & - 11,'WETG_BU_RRG') + NBUDGET_RG,'WETG_BU_RRG') IF (LBUDGET_RH) CALL BUDGET ( & UNPACK(ZRHS(:),MASK=GMICRO(:,:,:),FIELD=PRHS)*PRHODJ(:,:,:), & - 12,'WETG_BU_RRH') + NBUDGET_RH,'WETG_BU_RRH') IF (LBUDGET_SV) THEN CALL BUDGET (UNPACK(ZCCS(:),MASK=GMICRO(:,:,:),FIELD=PCCS)*PRHODJ(:,:,:), & - 12+NSV_LIMA_NC,'WETG_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_NC,'WETG_BU_RSV') CALL BUDGET (UNPACK(ZCRS(:),MASK=GMICRO(:,:,:),FIELD=PCRS)*PRHODJ(:,:,:), & - 12+NSV_LIMA_NR,'WETG_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_NR,'WETG_BU_RSV') CALL BUDGET (UNPACK(ZCIS(:),MASK=GMICRO(:,:,:),FIELD=PCIS)*PRHODJ(:,:,:), & - 12+NSV_LIMA_NI,'WETG_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_NI,'WETG_BU_RSV') END IF END IF ! @@ -890,29 +890,29 @@ END WHERE IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:),& - 4,'DRYG_BU_RTH') + NBUDGET_TH,'DRYG_BU_RTH') IF (LBUDGET_RC) CALL BUDGET ( & UNPACK(ZRCS(:),MASK=GMICRO(:,:,:),FIELD=PRCS)*PRHODJ(:,:,:), & - 7,'DRYG_BU_RRC') + NBUDGET_RC,'DRYG_BU_RRC') IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(ZRRS(:),MASK=GMICRO(:,:,:),FIELD=PRRS)*PRHODJ(:,:,:), & - 8,'DRYG_BU_RRR') + NBUDGET_RR,'DRYG_BU_RRR') IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(ZRIS(:),MASK=GMICRO(:,:,:),FIELD=PRIS)*PRHODJ(:,:,:), & - 9,'DRYG_BU_RRI') + NBUDGET_RI,'DRYG_BU_RRI') IF (LBUDGET_RS) CALL BUDGET ( & UNPACK(ZRSS(:),MASK=GMICRO(:,:,:),FIELD=PRSS)*PRHODJ(:,:,:), & - 10,'DRYG_BU_RRS') + NBUDGET_RS,'DRYG_BU_RRS') IF (LBUDGET_RG) CALL BUDGET ( & UNPACK(ZRGS(:),MASK=GMICRO(:,:,:),FIELD=PRGS)*PRHODJ(:,:,:), & - 11,'DRYG_BU_RRG') + NBUDGET_RG,'DRYG_BU_RRG') IF (LBUDGET_SV) THEN CALL BUDGET ( UNPACK(ZCCS(:),MASK=GMICRO(:,:,:),FIELD=PCCS)*PRHODJ(:,:,:), & - 12+NSV_LIMA_NC,'DRYG_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_NC,'DRYG_BU_RSV') CALL BUDGET ( UNPACK(ZCRS(:),MASK=GMICRO(:,:,:),FIELD=PCRS)*PRHODJ(:,:,:), & - 12+NSV_LIMA_NR,'DRYG_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_NR,'DRYG_BU_RSV') CALL BUDGET ( UNPACK(ZCIS(:),MASK=GMICRO(:,:,:),FIELD=PCIS)*PRHODJ(:,:,:), & - 12+NSV_LIMA_NI,'DRYG_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_NI,'DRYG_BU_RSV') END IF END IF ! @@ -956,13 +956,13 @@ END IF IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(ZRIS(:),MASK=GMICRO,FIELD=PRIS)*PRHODJ(:,:,:), & - 9,'HMG_BU_RRI') + NBUDGET_RI,'HMG_BU_RRI') IF (LBUDGET_RG) CALL BUDGET ( & UNPACK(ZRGS(:),MASK=GMICRO,FIELD=PRGS)*PRHODJ(:,:,:), & - 11,'HMG_BU_RRG') + NBUDGET_RG,'HMG_BU_RRG') IF (LBUDGET_SV) CALL BUDGET ( & UNPACK(ZCIS(:),MASK=GMICRO,FIELD=PCIS)*PRHODJ(:,:,:), & - 12+NSV_LIMA_NI,'HMG_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_NI,'HMG_BU_RSV') END IF ! ! @@ -997,16 +997,16 @@ END WHERE IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:),& - 4,'GMLT_BU_RTH') + NBUDGET_TH,'GMLT_BU_RTH') IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(ZRRS(:),MASK=GMICRO(:,:,:),FIELD=PRRS)*PRHODJ(:,:,:), & - 8,'GMLT_BU_RRR') + NBUDGET_RR,'GMLT_BU_RRR') IF (LBUDGET_RG) CALL BUDGET ( & UNPACK(ZRGS(:),MASK=GMICRO(:,:,:),FIELD=PRGS)*PRHODJ(:,:,:), & - 11,'GMLT_BU_RRG') + NBUDGET_RG,'GMLT_BU_RRG') IF (LBUDGET_SV) THEN CALL BUDGET ( UNPACK(ZCRS(:),MASK=GMICRO(:,:,:),FIELD=PCRS)*PRHODJ(:,:,:), & - 12+NSV_LIMA_NR,'GMLT_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_NR,'GMLT_BU_RSV') END IF END IF ! @@ -1216,32 +1216,32 @@ END IF ! IHAIL>0 IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:), & - 4,'WETH_BU_RTH') + NBUDGET_TH,'WETH_BU_RTH') IF (LBUDGET_RC) CALL BUDGET ( & UNPACK(ZRCS(:),MASK=GMICRO(:,:,:),FIELD=PRCS)*PRHODJ(:,:,:), & - 7,'WETH_BU_RRC') + NBUDGET_RC,'WETH_BU_RRC') IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(ZRRS(:),MASK=GMICRO(:,:,:),FIELD=PRRS)*PRHODJ(:,:,:), & - 8,'WETH_BU_RRR') + NBUDGET_RR,'WETH_BU_RRR') IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(ZRIS(:),MASK=GMICRO(:,:,:),FIELD=PRIS)*PRHODJ(:,:,:), & - 9,'WETH_BU_RRI') + NBUDGET_RI,'WETH_BU_RRI') IF (LBUDGET_RS) CALL BUDGET ( & UNPACK(ZRSS(:),MASK=GMICRO(:,:,:),FIELD=PRSS)*PRHODJ(:,:,:), & - 10,'WETH_BU_RRS') + NBUDGET_RS,'WETH_BU_RRS') IF (LBUDGET_RG) CALL BUDGET ( & UNPACK(ZRGS(:),MASK=GMICRO(:,:,:),FIELD=PRGS)*PRHODJ(:,:,:), & - 11,'WETH_BU_RRG') + NBUDGET_RG,'WETH_BU_RRG') IF (LBUDGET_RH) CALL BUDGET ( & UNPACK(ZRHS(:),MASK=GMICRO(:,:,:),FIELD=PRHS)*PRHODJ(:,:,:), & - 12,'WETH_BU_RRH') + NBUDGET_RH,'WETH_BU_RRH') IF (LBUDGET_SV) THEN CALL BUDGET (UNPACK(ZCCS(:),MASK=GMICRO(:,:,:),FIELD=PCCS)*PRHODJ(:,:,:), & - 12+NSV_LIMA_NC,'WETH_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_NC,'WETH_BU_RSV') CALL BUDGET (UNPACK(ZCRS(:),MASK=GMICRO(:,:,:),FIELD=PCRS)*PRHODJ(:,:,:), & - 12+NSV_LIMA_NR,'WETH_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_NR,'WETH_BU_RSV') CALL BUDGET (UNPACK(ZCIS(:),MASK=GMICRO(:,:,:),FIELD=PCIS)*PRHODJ(:,:,:), & - 12+NSV_LIMA_NI,'WETH_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_NI,'WETH_BU_RSV') END IF END IF ! @@ -1307,16 +1307,16 @@ END IF IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:),& - 4,'HMLT_BU_RTH') + NBUDGET_TH, 'HMLT_BU_RTH') IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(ZRRS(:),MASK=GMICRO(:,:,:),FIELD=PRRS)*PRHODJ(:,:,:), & - 8,'HMLT_BU_RRR') + NBUDGET_RR, 'HMLT_BU_RRR') IF (LBUDGET_RH) CALL BUDGET ( & UNPACK(ZRHS(:),MASK=GMICRO(:,:,:),FIELD=PRHS)*PRHODJ(:,:,:), & - 12,'HMLT_BU_RRH') + NBUDGET_RH, 'HMLT_BU_RRH') IF (LBUDGET_SV) THEN CALL BUDGET ( UNPACK(ZCRS(:),MASK=GMICRO(:,:,:),FIELD=PCRS)*PRHODJ(:,:,:), & - 12+NSV_LIMA_NR,'HMLT_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_NR, 'HMLT_BU_RSV') END IF END IF ! diff --git a/src/MNH/lima_mixed_slow_processes.f90 b/src/MNH/lima_mixed_slow_processes.f90 index 7c58f4910..bf559a2b5 100644 --- a/src/MNH/lima_mixed_slow_processes.f90 +++ b/src/MNH/lima_mixed_slow_processes.f90 @@ -1,3 +1,8 @@ +!MNH_LIC Copyright 2013-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ##################################### MODULE MODI_LIMA_MIXED_SLOW_PROCESSES ! ##################################### @@ -194,13 +199,13 @@ IF (LSNOW) THEN IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:),& - 4,'DEPG_BU_RTH') + NBUDGET_TH,'DEPG_BU_RTH') IF (LBUDGET_RV) CALL BUDGET ( & UNPACK(ZRVS(:),MASK=GMICRO(:,:,:),FIELD=PRVS)*PRHODJ(:,:,:),& - 6,'DEPG_BU_RRV') + NBUDGET_RV,'DEPG_BU_RRV') IF (LBUDGET_RG) CALL BUDGET ( & UNPACK(ZRGS(:),MASK=GMICRO(:,:,:),FIELD=PRGS)*PRHODJ(:,:,:), & - 11,'DEPG_BU_RRG') + NBUDGET_RG,'DEPG_BU_RRG') END IF END IF ! @@ -229,18 +234,18 @@ END IF IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:),& - 4,'IMLT_BU_RTH') + NBUDGET_TH,'IMLT_BU_RTH') IF (LBUDGET_RC) CALL BUDGET ( & UNPACK(ZRCS(:),MASK=GMICRO(:,:,:),FIELD=PRCS)*PRHODJ(:,:,:), & - 7,'IMLT_BU_RRC') + NBUDGET_RC,'IMLT_BU_RRC') IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(ZRIS(:),MASK=GMICRO(:,:,:),FIELD=PRIS)*PRHODJ(:,:,:), & - 9,'IMLT_BU_RRI') + NBUDGET_RI,'IMLT_BU_RRI') IF (LBUDGET_SV) THEN CALL BUDGET (UNPACK(ZCCS(:),MASK=GMICRO(:,:,:),FIELD=PCCS)*PRHODJ(:,:,:), & - 12+NSV_LIMA_NC,'IMLT_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_NC,'IMLT_BU_RSV') CALL BUDGET (UNPACK(ZCIS(:),MASK=GMICRO(:,:,:),FIELD=PCIS)*PRHODJ(:,:,:), & - 12+NSV_LIMA_NI,'IMLT_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_NI,'IMLT_BU_RSV') END IF END IF ! @@ -265,13 +270,13 @@ END IF IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:),& - 4,'BERFI_BU_RTH') + NBUDGET_TH,'BERFI_BU_RTH') IF (LBUDGET_RC) CALL BUDGET ( & UNPACK(ZRCS(:),MASK=GMICRO(:,:,:),FIELD=PRCS)*PRHODJ(:,:,:), & - 7,'BERFI_BU_RRC') + NBUDGET_RC,'BERFI_BU_RRC') IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(ZRIS(:),MASK=GMICRO(:,:,:),FIELD=PRIS)*PRHODJ(:,:,:), & - 9,'BERFI_BU_RRI') + NBUDGET_RI,'BERFI_BU_RRI') END IF ! !------------------------------------------------------------------------------ diff --git a/src/MNH/lima_nucleation_procs.f90 b/src/MNH/lima_nucleation_procs.f90 index e3efc478d..f0e61b630 100644 --- a/src/MNH/lima_nucleation_procs.f90 +++ b/src/MNH/lima_nucleation_procs.f90 @@ -72,11 +72,12 @@ SUBROUTINE LIMA_NUCLEATION_PROCS (PTSTEP, TPFILE, OCLOSE_OUT, PRHODJ, !! !------------------------------------------------------------------------------- ! -USE MODD_PARAM_LIMA, ONLY : LCOLD, LNUCL, LMEYERS, LSNOW, LWARM, LACTI, LRAIN, LHHONI, & +USE MODD_PARAM_LIMA, ONLY : LCOLD, LNUCL, LMEYERS, LSNOW, LWARM, LACTI, LRAIN, LHHONI, & NMOD_CCN, NMOD_IFN, NMOD_IMM -USE MODD_BUDGET, ONLY : LBU_ENABLE, LBUDGET_TH, LBUDGET_RV, LBUDGET_RC, LBUDGET_RR,& - LBUDGET_RI, LBUDGET_RS, LBUDGET_RG, LBUDGET_RH, LBUDGET_SV -USE MODD_NSV, ONLY : NSV_LIMA_NC, NSV_LIMA_NR, NSV_LIMA_CCN_FREE, & +USE MODD_BUDGET, ONLY : LBU_ENABLE, LBUDGET_TH, LBUDGET_RV, LBUDGET_RC, LBUDGET_RR, & + LBUDGET_RI, LBUDGET_RS, LBUDGET_RG, LBUDGET_RH, LBUDGET_SV, & + NBUDGET_TH, NBUDGET_RV, NBUDGET_RC, NBUDGET_RI, NBUDGET_SV1 +USE MODD_NSV, ONLY : NSV_LIMA_NC, NSV_LIMA_NR, NSV_LIMA_CCN_FREE, & NSV_LIMA_NI, NSV_LIMA_IFN_FREE ! USE MODD_IO, ONLY: TFILEDATA @@ -169,13 +170,13 @@ IF (LWARM .AND. LACTI .AND. NMOD_CCN.GE.1) THEN ! Call budgets ! IF (LBU_ENABLE) THEN - IF (LBUDGET_TH) CALL BUDGET (PTHT(:,:,:)*PRHODJ(:,:,:)/PTSTEP, 4, 'HENU_BU_RTH') - IF (LBUDGET_RV) CALL BUDGET (PRVT(:,:,:)*PRHODJ(:,:,:)/PTSTEP, 6, 'HENU_BU_RRV') - IF (LBUDGET_RC) CALL BUDGET (PRCT(:,:,:)*PRHODJ(:,:,:)/PTSTEP, 7, 'HENU_BU_RRC') + IF (LBUDGET_TH) CALL BUDGET (PTHT(:,:,:)*PRHODJ(:,:,:)/PTSTEP, NBUDGET_TH, 'HENU_BU_RTH') + IF (LBUDGET_RV) CALL BUDGET (PRVT(:,:,:)*PRHODJ(:,:,:)/PTSTEP, NBUDGET_RV, 'HENU_BU_RRV') + IF (LBUDGET_RC) CALL BUDGET (PRCT(:,:,:)*PRHODJ(:,:,:)/PTSTEP, NBUDGET_RC, 'HENU_BU_RRC') IF (LBUDGET_SV) THEN - CALL BUDGET (PCCT(:,:,:)*PRHODJ(:,:,:)/PTSTEP, 12+NSV_LIMA_NC, 'HENU_BU_RSV') + CALL BUDGET (PCCT(:,:,:)*PRHODJ(:,:,:)/PTSTEP, NBUDGET_SV1-1+NSV_LIMA_NC, 'HENU_BU_RSV') DO JL=1, NMOD_CCN - CALL BUDGET (PNFT(:,:,:,JL)*PRHODJ(:,:,:)/PTSTEP,12+NSV_LIMA_CCN_FREE+JL-1,'HENU_BU_RSV') + CALL BUDGET (PNFT(:,:,:,JL)*PRHODJ(:,:,:)/PTSTEP,NBUDGET_SV1-1+NSV_LIMA_CCN_FREE+JL-1, 'HENU_BU_RSV') END DO END IF END IF @@ -194,24 +195,24 @@ IF (LCOLD .AND. LNUCL .AND. .NOT.LMEYERS .AND. NMOD_IFN.GE.1) THEN ! Call budgets ! IF (LBU_ENABLE) THEN - IF (LBUDGET_TH) CALL BUDGET ((PTHT(:,:,:)+Z_TH_HIND(:,:,:))*PRHODJ(:,:,:)/PTSTEP,4, 'HIND_BU_RTH') - IF (LBUDGET_RV) CALL BUDGET ((PRVT(:,:,:)-Z_RI_HIND(:,:,:))*PRHODJ(:,:,:)/PTSTEP,6, 'HIND_BU_RRV') - IF (LBUDGET_RI) CALL BUDGET ((PRIT(:,:,:)+Z_RI_HIND(:,:,:))*PRHODJ(:,:,:)/PTSTEP,9, 'HIND_BU_RRI') + IF (LBUDGET_TH) CALL BUDGET ((PTHT(:,:,:)+Z_TH_HIND(:,:,:))*PRHODJ(:,:,:)/PTSTEP,NBUDGET_TH, 'HIND_BU_RTH') + IF (LBUDGET_RV) CALL BUDGET ((PRVT(:,:,:)-Z_RI_HIND(:,:,:))*PRHODJ(:,:,:)/PTSTEP,NBUDGET_RV, 'HIND_BU_RRV') + IF (LBUDGET_RI) CALL BUDGET ((PRIT(:,:,:)+Z_RI_HIND(:,:,:))*PRHODJ(:,:,:)/PTSTEP,NBUDGET_RI, 'HIND_BU_RRI') IF (LBUDGET_SV) THEN - CALL BUDGET ((PCIT(:,:,:)+Z_CI_HIND(:,:,:))*PRHODJ(:,:,:)/PTSTEP,12+NSV_LIMA_NI, 'HIND_BU_RSV') + CALL BUDGET ((PCIT(:,:,:)+Z_CI_HIND(:,:,:))*PRHODJ(:,:,:)/PTSTEP,NBUDGET_SV1-1+NSV_LIMA_NI, 'HIND_BU_RSV') IF (NMOD_IFN.GE.1) THEN DO JL=1, NMOD_IFN - CALL BUDGET ((ZIFT(:,:,:,JL))*PRHODJ(:,:,:)/PTSTEP, 12+NSV_LIMA_IFN_FREE+JL-1,'HIND_BU_RSV') + CALL BUDGET ((ZIFT(:,:,:,JL))*PRHODJ(:,:,:)/PTSTEP, NBUDGET_SV1-1+NSV_LIMA_IFN_FREE+JL-1,'HIND_BU_RSV') END DO END IF END IF ! - IF (LBUDGET_TH) CALL BUDGET (ZTHT(:,:,:)*PRHODJ(:,:,:)/PTSTEP,4,'HINC_BU_RTH') - IF (LBUDGET_RC) CALL BUDGET (ZRCT(:,:,:)*PRHODJ(:,:,:)/PTSTEP,7,'HINC_BU_RRC') - IF (LBUDGET_RI) CALL BUDGET (ZRIT(:,:,:)*PRHODJ(:,:,:)/PTSTEP,9,'HINC_BU_RRI') + IF (LBUDGET_TH) CALL BUDGET (ZTHT(:,:,:)*PRHODJ(:,:,:)/PTSTEP,NBUDGET_TH,'HINC_BU_RTH') + IF (LBUDGET_RC) CALL BUDGET (ZRCT(:,:,:)*PRHODJ(:,:,:)/PTSTEP,NBUDGET_RC,'HINC_BU_RRC') + IF (LBUDGET_RI) CALL BUDGET (ZRIT(:,:,:)*PRHODJ(:,:,:)/PTSTEP,NBUDGET_RI,'HINC_BU_RRI') IF (LBUDGET_SV) THEN - CALL BUDGET (ZCCT(:,:,:)*PRHODJ(:,:,:)/PTSTEP,12+NSV_LIMA_NC,'HINC_BU_RSV') - CALL BUDGET (ZCIT(:,:,:)*PRHODJ(:,:,:)/PTSTEP,12+NSV_LIMA_NI,'HINC_BU_RSV') + CALL BUDGET (ZCCT(:,:,:)*PRHODJ(:,:,:)/PTSTEP,NBUDGET_SV1-1+NSV_LIMA_NC,'HINC_BU_RSV') + CALL BUDGET (ZCIT(:,:,:)*PRHODJ(:,:,:)/PTSTEP,NBUDGET_SV1-1+NSV_LIMA_NI,'HINC_BU_RSV') END IF END IF ! @@ -240,17 +241,17 @@ IF (LCOLD .AND. LNUCL .AND. LMEYERS) THEN ! Call budgets ! IF (LBU_ENABLE) THEN - IF (LBUDGET_TH) CALL BUDGET ((PTHT(:,:,:)+Z_TH_HIND(:,:,:))*PRHODJ(:,:,:)/PTSTEP,4, 'HIND_BU_RTH') - IF (LBUDGET_RV) CALL BUDGET ((PRVT(:,:,:)-Z_RI_HIND(:,:,:))*PRHODJ(:,:,:)/PTSTEP,6, 'HIND_BU_RRV') - IF (LBUDGET_RI) CALL BUDGET ((PRIT(:,:,:)+Z_RI_HIND(:,:,:))*PRHODJ(:,:,:)/PTSTEP,9, 'HIND_BU_RRI') - IF (LBUDGET_SV) CALL BUDGET ((PCIT(:,:,:)+Z_CI_HIND(:,:,:))*PRHODJ(:,:,:)/PTSTEP,12+NSV_LIMA_NI,'HIND_BU_RSV') -! - IF (LBUDGET_TH) CALL BUDGET (ZTHT(:,:,:)*PRHODJ(:,:,:)/PTSTEP,4,'HINC_BU_RTH') - IF (LBUDGET_RC) CALL BUDGET (ZRCT(:,:,:)*PRHODJ(:,:,:)/PTSTEP,7,'HINC_BU_RRC') - IF (LBUDGET_RI) CALL BUDGET (ZRIT(:,:,:)*PRHODJ(:,:,:)/PTSTEP,9,'HINC_BU_RRI') + IF (LBUDGET_TH) CALL BUDGET ((PTHT(:,:,:)+Z_TH_HIND(:,:,:))*PRHODJ(:,:,:)/PTSTEP,NBUDGET_TH, 'HIND_BU_RTH') + IF (LBUDGET_RV) CALL BUDGET ((PRVT(:,:,:)-Z_RI_HIND(:,:,:))*PRHODJ(:,:,:)/PTSTEP,NBUDGET_RV, 'HIND_BU_RRV') + IF (LBUDGET_RI) CALL BUDGET ((PRIT(:,:,:)+Z_RI_HIND(:,:,:))*PRHODJ(:,:,:)/PTSTEP,NBUDGET_RI, 'HIND_BU_RRI') + IF (LBUDGET_SV) CALL BUDGET ((PCIT(:,:,:)+Z_CI_HIND(:,:,:))*PRHODJ(:,:,:)/PTSTEP,NBUDGET_SV1-1+NSV_LIMA_NI,'HIND_BU_RSV') +! + IF (LBUDGET_TH) CALL BUDGET (ZTHT(:,:,:)*PRHODJ(:,:,:)/PTSTEP,NBUDGET_TH,'HINC_BU_RTH') + IF (LBUDGET_RC) CALL BUDGET (ZRCT(:,:,:)*PRHODJ(:,:,:)/PTSTEP,NBUDGET_RC,'HINC_BU_RRC') + IF (LBUDGET_RI) CALL BUDGET (ZRIT(:,:,:)*PRHODJ(:,:,:)/PTSTEP,NBUDGET_RI,'HINC_BU_RRI') IF (LBUDGET_SV) THEN - CALL BUDGET (ZCCT(:,:,:)*PRHODJ(:,:,:)/PTSTEP,12+NSV_LIMA_NC,'HINC_BU_RSV') - CALL BUDGET (ZCIT(:,:,:)*PRHODJ(:,:,:)/PTSTEP,12+NSV_LIMA_NI,'HINC_BU_RSV') + CALL BUDGET (ZCCT(:,:,:)*PRHODJ(:,:,:)/PTSTEP,NBUDGET_SV1-1+NSV_LIMA_NC,'HINC_BU_RSV') + CALL BUDGET (ZCIT(:,:,:)*PRHODJ(:,:,:)/PTSTEP,NBUDGET_SV1-1+NSV_LIMA_NI,'HINC_BU_RSV') END IF END IF ! @@ -273,13 +274,13 @@ IF (LCOLD .AND. LNUCL .AND. LHHONI .AND. NMOD_CCN.GE.1) THEN ! Call budgets ! IF (LBU_ENABLE) THEN - IF (LBUDGET_TH) CALL BUDGET (ZTHT(:,:,:)*PRHODJ(:,:,:)/PTSTEP, 4, 'HONH_BU_RTH') - IF (LBUDGET_RV) CALL BUDGET (ZRVT(:,:,:)*PRHODJ(:,:,:)/PTSTEP, 6, 'HONH_BU_RRV') - IF (LBUDGET_RI) CALL BUDGET (ZRIT(:,:,:)*PRHODJ(:,:,:)/PTSTEP, 9, 'HONH_BU_RRI') + IF (LBUDGET_TH) CALL BUDGET (ZTHT(:,:,:)*PRHODJ(:,:,:)/PTSTEP, NBUDGET_TH, 'HONH_BU_RTH') + IF (LBUDGET_RV) CALL BUDGET (ZRVT(:,:,:)*PRHODJ(:,:,:)/PTSTEP, NBUDGET_RV, 'HONH_BU_RRV') + IF (LBUDGET_RI) CALL BUDGET (ZRIT(:,:,:)*PRHODJ(:,:,:)/PTSTEP, NBUDGET_RI, 'HONH_BU_RRI') IF (LBUDGET_SV) THEN - CALL BUDGET (ZCIT(:,:,:)*PRHODJ(:,:,:)/PTSTEP, 12+NSV_LIMA_NI, 'HONH_BU_RSV') + CALL BUDGET (ZCIT(:,:,:)*PRHODJ(:,:,:)/PTSTEP, NBUDGET_SV1-1+NSV_LIMA_NI, 'HONH_BU_RSV') DO JL=1, NMOD_CCN - CALL BUDGET (ZNFT(:,:,:,JL)*PRHODJ(:,:,:)/PTSTEP,12+NSV_LIMA_CCN_FREE+JL-1,'HONH_BU_RSV') + CALL BUDGET (ZNFT(:,:,:,JL)*PRHODJ(:,:,:)/PTSTEP,NBUDGET_SV1-1+NSV_LIMA_CCN_FREE+JL-1,'HONH_BU_RSV') END DO END IF END IF diff --git a/src/MNH/lima_phillips.f90 b/src/MNH/lima_phillips.f90 index 03af388b7..3f654dc33 100644 --- a/src/MNH/lima_phillips.f90 +++ b/src/MNH/lima_phillips.f90 @@ -470,19 +470,19 @@ END DO IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GNEGT(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:),& - 4,'HIND_BU_RTH') + NBUDGET_TH,'HIND_BU_RTH') IF (LBUDGET_RV) CALL BUDGET ( & UNPACK(ZRVS(:),MASK=GNEGT(:,:,:),FIELD=PRVS)*PRHODJ(:,:,:),& - 6,'HIND_BU_RRV') + NBUDGET_RV,'HIND_BU_RRV') IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(ZRIS(:),MASK=GNEGT(:,:,:),FIELD=PRIS)*PRHODJ(:,:,:),& - 9,'HIND_BU_RRI') + NBUDGET_RI,'HIND_BU_RRI') IF (LBUDGET_SV) THEN CALL BUDGET ( UNPACK(ZCIS(:),MASK=GNEGT(:,:,:),FIELD=PCIS)*PRHODJ(:,:,:),& - 12+NSV_LIMA_NI,'HIND_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_NI,'HIND_BU_RSV') IF (NMOD_IFN.GE.1) THEN DO JL=1, NMOD_IFN - CALL BUDGET ( PIFS(:,:,:,JL)*PRHODJ(:,:,:),12+NSV_LIMA_IFN_FREE+JL-1,'HIND_BU_RSV') + CALL BUDGET ( PIFS(:,:,:,JL)*PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_LIMA_IFN_FREE+JL-1,'HIND_BU_RSV') END DO END IF END IF @@ -540,18 +540,18 @@ END DO IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GNEGT(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:),& - 4,'HINC_BU_RTH') + NBUDGET_TH,'HINC_BU_RTH') IF (LBUDGET_RC) CALL BUDGET ( & UNPACK(ZRCS(:),MASK=GNEGT(:,:,:),FIELD=PRCS)*PRHODJ(:,:,:),& - 7,'HINC_BU_RRC') + NBUDGET_RC,'HINC_BU_RRC') IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(ZRIS(:),MASK=GNEGT(:,:,:),FIELD=PRIS)*PRHODJ(:,:,:),& - 9,'HINC_BU_RRI') + NBUDGET_RI,'HINC_BU_RRI') IF (LBUDGET_SV) THEN CALL BUDGET ( UNPACK(ZCCS(:),MASK=GNEGT(:,:,:),FIELD=PCCS)*PRHODJ(:,:,:),& - 12+NSV_LIMA_NC,'HINC_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_NC,'HINC_BU_RSV') CALL BUDGET ( UNPACK(ZCIS(:),MASK=GNEGT(:,:,:),FIELD=PCIS)*PRHODJ(:,:,:),& - 12+NSV_LIMA_NI,'HINC_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_NI,'HINC_BU_RSV') END IF END IF ! @@ -627,32 +627,32 @@ ELSE IF (NBUMOD==KMI .AND. LBU_ENABLE) THEN IF (LBUDGET_TH) THEN ZW(:,:,:) = PTHS(:,:,:)*PRHODJ(:,:,:) - CALL BUDGET (ZW,4,'HIND_BU_RTH') - CALL BUDGET (ZW,4,'HINC_BU_RTH') + CALL BUDGET (ZW,NBUDGET_TH,'HIND_BU_RTH') + CALL BUDGET (ZW,NBUDGET_TH,'HINC_BU_RTH') ENDIF IF (LBUDGET_RV) THEN ZW(:,:,:) = PRVS(:,:,:)*PRHODJ(:,:,:) - CALL BUDGET (ZW,6,'HIND_BU_RRV') + CALL BUDGET (ZW,NBUDGET_RV,'HIND_BU_RRV') ENDIF IF (LBUDGET_RC) THEN ZW(:,:,:) = PRCS(:,:,:)*PRHODJ(:,:,:) - CALL BUDGET (ZW,7,'HINC_BU_RRC') + CALL BUDGET (ZW,NBUDGET_RC,'HINC_BU_RRC') ENDIF IF (LBUDGET_RI) THEN ZW(:,:,:) = PRIS(:,:,:)*PRHODJ(:,:,:) - CALL BUDGET (ZW,9,'HIND_BU_RRI') - CALL BUDGET (ZW,9,'HINC_BU_RRI') + CALL BUDGET (ZW,NBUDGET_RI,'HIND_BU_RRI') + CALL BUDGET (ZW,NBUDGET_RI,'HINC_BU_RRI') ENDIF IF (LBUDGET_SV) THEN !print*, 'LBUDGET_SV dans lima_phillips = ', LBUDGET_SV ZW(:,:,:) = PCCS(:,:,:)*PRHODJ(:,:,:) - CALL BUDGET (ZW,12+NSV_LIMA_NC,'HINC_BU_RSV') + CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_NC,'HINC_BU_RSV') ZW(:,:,:) = PCIS(:,:,:)*PRHODJ(:,:,:) - CALL BUDGET (ZW,12+NSV_LIMA_NI,'HIND_BU_RSV') - CALL BUDGET (ZW,12+NSV_LIMA_NI,'HINC_BU_RSV') + CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_NI,'HIND_BU_RSV') + CALL BUDGET (ZW,NBUDGET_SV1-1+NSV_LIMA_NI,'HINC_BU_RSV') IF (NMOD_IFN.GE.1) THEN DO JL=1, NMOD_IFN - CALL BUDGET ( PIFS(:,:,:,JL)*PRHODJ(:,:,:),12+NSV_LIMA_IFN_FREE+JL-1,'HIND_BU_RSV') + CALL BUDGET ( PIFS(:,:,:,JL)*PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_LIMA_IFN_FREE+JL-1,'HIND_BU_RSV') END DO END IF END IF diff --git a/src/MNH/lima_precip_scavenging.f90 b/src/MNH/lima_precip_scavenging.f90 index 351ee92f0..71de50a5e 100644 --- a/src/MNH/lima_precip_scavenging.f90 +++ b/src/MNH/lima_precip_scavenging.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2013-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -559,13 +559,13 @@ IF (LBUDGET_SV) THEN IF (NMOD_CCN.GE.1) THEN DO JL=1, NMOD_CCN CALL BUDGET ( PRSVS(:,:,:,NSV_LIMA_CCN_FREE+JL-1), & - 12+NSV_LIMA_CCN_FREE+JL-1,'SCAV_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_CCN_FREE+JL-1,'SCAV_BU_RSV') END DO END IF IF (NMOD_IFN.GE.1) THEN DO JL=1, NMOD_IFN CALL BUDGET ( PRSVS(:,:,:,NSV_LIMA_IFN_FREE+JL-1), & - 12+NSV_LIMA_IFN_FREE+JL-1,'SCAV_BU_RSV') + NBUDGET_SV1-1+NSV_LIMA_IFN_FREE+JL-1,'SCAV_BU_RSV') END DO END IF END IF diff --git a/src/MNH/lima_warm.f90 b/src/MNH/lima_warm.f90 index 1ac67f3ce..e896e999a 100644 --- a/src/MNH/lima_warm.f90 +++ b/src/MNH/lima_warm.f90 @@ -323,11 +323,11 @@ CALL LIMA_WARM_SEDIMENTATION (OSEDC, KSPLITR, PTSTEP, KMI, & PINPRC, PINPRR, & PINPRR3D ) ! -IF (LBUDGET_RC .AND. OSEDC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7 ,'SEDI_BU_RRC') -IF (LBUDGET_RR .AND. ORAIN) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8 ,'SEDI_BU_RRR') +IF (LBUDGET_RC .AND. OSEDC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC,'SEDI_BU_RRC') +IF (LBUDGET_RR .AND. ORAIN) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR,'SEDI_BU_RRR') IF (LBUDGET_SV) THEN - IF (OSEDC) CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:),12+NSV_LIMA_NC,'SEDI_BU_RSV') - IF (ORAIN) CALL BUDGET (PCRS(:,:,:)*PRHODJ(:,:,:),12+NSV_LIMA_NR,'SEDI_BU_RSV') + IF (OSEDC) CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_LIMA_NC,'SEDI_BU_RSV') + IF (ORAIN) CALL BUDGET (PCRS(:,:,:)*PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_LIMA_NR,'SEDI_BU_RSV') END IF ! ! 2.bis Deposition at 1st level above ground @@ -343,8 +343,8 @@ IF (LDEPOC) THEN PINDEP(:,:) = XVDEPOC * PRCT(:,:,2) * PRHODREF(:,:,2) /XRHOLW END WHERE ! - IF ( LBUDGET_RC ) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7 ,'DEPO_BU_RRC') - IF ( LBUDGET_SV ) CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:),12+NSV_LIMA_NC,'DEPO_BU_RSV') + IF ( LBUDGET_RC ) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC, 'DEPO_BU_RRC') + IF ( LBUDGET_SV ) CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NC, 'DEPO_BU_RSV') END IF ! !------------------------------------------------------------------------------- @@ -360,13 +360,13 @@ IF (LACTI .AND. NMOD_CCN.GE.1) THEN PRCM, PRVT, PRCT, PRRT, & PTHS, PRVS, PRCS, PCCS, PNFS, PNAS ) ! - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'HENU_BU_RTH') - IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:)*PRHODJ(:,:,:),6,'HENU_BU_RRV') - IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7,'HENU_BU_RRC') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'HENU_BU_RTH') + IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RV,'HENU_BU_RRV') + IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RC,'HENU_BU_RRC') IF (LBUDGET_SV) THEN - CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:),12+NSV_LIMA_NC,'HENU_BU_RSV') ! RCN + CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_LIMA_NC,'HENU_BU_RSV') ! RCN DO JL=1, NMOD_CCN - CALL BUDGET ( PNFS(:,:,:,JL)*PRHODJ(:,:,:),12+NSV_LIMA_CCN_FREE+JL-1,'HENU_BU_RSV') + CALL BUDGET ( PNFS(:,:,:,JL)*PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_LIMA_CCN_FREE+JL-1,'HENU_BU_RSV') END DO END IF ! @@ -401,12 +401,12 @@ IF (ORAIN) THEN PRVS, PRCS, PRRS, PCCS, PCRS, PTHS, & PEVAP3D ) ! - IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:)*PRHODJ(:,:,:),6 ,'REVA_BU_RRV') - IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7 ,'REVA_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8 ,'REVA_BU_RRR') - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4 ,'REVA_BU_RTH') - IF (LBUDGET_SV) CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:),12+NSV_LIMA_NC,'REVA_BU_RSV') - IF (LBUDGET_SV) CALL BUDGET (PCRS(:,:,:)*PRHODJ(:,:,:),12+NSV_LIMA_NR,'REVA_BU_RSV') + IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RV,'REVA_BU_RRV') + IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC,'REVA_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR,'REVA_BU_RRR') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH,'REVA_BU_RTH') + IF (LBUDGET_SV) CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_LIMA_NC,'REVA_BU_RSV') + IF (LBUDGET_SV) CALL BUDGET (PCRS(:,:,:)*PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_LIMA_NR,'REVA_BU_RSV') ! ! !------------------------------------------------------------------------------- @@ -426,7 +426,7 @@ IF (ORAIN) THEN ! ! Budget storage IF (LBUDGET_SV) & - CALL BUDGET (PCRS(:,:,:)*PRHODJ(:,:,:),12+NSV_LIMA_NR,& + CALL BUDGET (PCRS(:,:,:)*PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_LIMA_NR,& &'BRKU_BU_RSV') ! diff --git a/src/MNH/lima_warm_coal.f90 b/src/MNH/lima_warm_coal.f90 index aaae2a04b..ff32fb829 100644 --- a/src/MNH/lima_warm_coal.f90 +++ b/src/MNH/lima_warm_coal.f90 @@ -262,7 +262,7 @@ IF (LRAIN) THEN ZW(:,:,:) = PCCS(:,:,:) IF (LBUDGET_SV) CALL BUDGET ( & UNPACK(ZCCS(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:))& - &*PRHODJ(:,:,:),12+NSV_LIMA_NC,'SELF_BU_RSV') + &*PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_LIMA_NC,'SELF_BU_RSV') ! ! !------------------------------------------------------------------------------- @@ -297,20 +297,20 @@ IF (LRAIN) THEN ZW(:,:,:) = PRCS(:,:,:) IF (LBUDGET_RC) CALL BUDGET ( & UNPACK(ZRCS(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:)) & - *PRHODJ(:,:,:),7 ,'AUTO_BU_RRC') + *PRHODJ(:,:,:), NBUDGET_RC,'AUTO_BU_RRC') ZW(:,:,:) = PRRS(:,:,:) IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(ZRRS(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:)) & - *PRHODJ(:,:,:),8 ,'AUTO_BU_RRR') + *PRHODJ(:,:,:), NBUDGET_RR,'AUTO_BU_RRR') ZW(:,:,:) = PCRS(:,:,:) IF (LBUDGET_SV) THEN ZW(:,:,:) = PCRS(:,:,:) CALL BUDGET (UNPACK(ZCRS(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:)) & - *PRHODJ(:,:,:),12+NSV_LIMA_NR,'AUTO_BU_RSV') + *PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_LIMA_NR,'AUTO_BU_RSV') ZW(:,:,:) = PCCS(:,:,:) CALL BUDGET (UNPACK(ZCCS(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:)) & - *PRHODJ(:,:,:),12+NSV_LIMA_NC,'AUTO_BU_RSV') + *PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_LIMA_NC,'AUTO_BU_RSV') END IF ! ! @@ -364,15 +364,15 @@ IF (LRAIN) THEN ZW(:,:,:) = PRCS(:,:,:) IF (LBUDGET_RC) CALL BUDGET ( & UNPACK(ZRCS(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:)) & - *PRHODJ(:,:,:),7 ,'ACCR_BU_RRC') + *PRHODJ(:,:,:), NBUDGET_RC,'ACCR_BU_RRC') ZW(:,:,:) = PRRS(:,:,:) IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(ZRRS(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:)) & - *PRHODJ(:,:,:),8 ,'ACCR_BU_RRR') + *PRHODJ(:,:,:), NBUDGET_RR,'ACCR_BU_RRR') ZW(:,:,:) = PCCS(:,:,:) IF (LBUDGET_SV) CALL BUDGET ( & UNPACK(ZCCS(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:)) & - *PRHODJ(:,:,:),12+NSV_LIMA_NC,'ACCR_BU_RSV') + *PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_LIMA_NC,'ACCR_BU_RSV') ! ! !------------------------------------------------------------------------------- @@ -422,7 +422,7 @@ IF (LRAIN) THEN ZW(:,:,:) = PCRS(:,:,:) IF (LBUDGET_SV) CALL BUDGET ( & UNPACK(ZCRS(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:)) & - *PRHODJ(:,:,:),12+NSV_LIMA_NR,'SCBU_BU_RSV') + *PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_LIMA_NR,'SCBU_BU_RSV') ! END IF ! LRAIN ! @@ -473,18 +473,18 @@ ELSE ! ------------------------ ! ! - IF (LBUDGET_SV .AND. LRAIN) CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:),12+NSV_LIMA_NC,'SELF_BU_RSV') + IF (LBUDGET_SV .AND. LRAIN) CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NC, 'SELF_BU_RSV') ! - IF (LBUDGET_RC .AND. LRAIN) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7 ,'AUTO_BU_RRC') - IF (LBUDGET_RR .AND. LRAIN) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8 ,'AUTO_BU_RRR') - IF (LBUDGET_SV .AND. LRAIN) CALL BUDGET (PCRS(:,:,:)*PRHODJ(:,:,:),12+NSV_LIMA_NR,'AUTO_BU_RSV') - IF (LBUDGET_SV .AND. LRAIN) CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:),12+NSV_LIMA_NC,'AUTO_BU_RSV') + IF (LBUDGET_RC .AND. LRAIN) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC, 'AUTO_BU_RRC') + IF (LBUDGET_RR .AND. LRAIN) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR, 'AUTO_BU_RRR') + IF (LBUDGET_SV .AND. LRAIN) CALL BUDGET (PCRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NR, 'AUTO_BU_RSV') + IF (LBUDGET_SV .AND. LRAIN) CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NC, 'AUTO_BU_RSV') ! - IF (LBUDGET_RC .AND. LRAIN) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7 ,'ACCR_BU_RRC') - IF (LBUDGET_RR .AND. LRAIN) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8 ,'ACCR_BU_RRR') - IF (LBUDGET_SV .AND. LRAIN) CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:),12+NSV_LIMA_NC,'ACCR_BU_RSV') + IF (LBUDGET_RC .AND. LRAIN) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC, 'ACCR_BU_RRC') + IF (LBUDGET_RR .AND. LRAIN) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR, 'ACCR_BU_RRR') + IF (LBUDGET_SV .AND. LRAIN) CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NC, 'ACCR_BU_RSV') ! - IF (LBUDGET_SV .AND. LRAIN) CALL BUDGET (PCRS(:,:,:)*PRHODJ(:,:,:),12+NSV_LIMA_NR,'SCBU_BU_RSV') + IF (LBUDGET_SV .AND. LRAIN) CALL BUDGET (PCRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_LIMA_NR, 'SCBU_BU_RSV') END IF ! IMICRO ! diff --git a/src/MNH/mpdata.f90 b/src/MNH/mpdata.f90 index 961d2d98a..a0e2c921d 100644 --- a/src/MNH/mpdata.f90 +++ b/src/MNH/mpdata.f90 @@ -164,6 +164,7 @@ REAL, DIMENSION(SIZE(PRUCT,1),SIZE(PRUCT,2),SIZE(PRUCT,3)):: ZFADVV ! budget REAL, DIMENSION(SIZE(PRUCT,1),SIZE(PRUCT,2),SIZE(PRUCT,3)):: ZFADVW ! purpose REAL, DIMENSION(SIZE(PRUCT,1),SIZE(PRUCT,2),SIZE(PRUCT,3)):: ZRVARS ! only ! +integer, dimension(7) :: irx CHARACTER (LEN=3) , DIMENSION(7) :: YRX CHARACTER (LEN=20) :: YBURX LOGICAL , DIMENSION(7) :: LBUDGET_R @@ -197,6 +198,13 @@ LBUDGET_R(5) = LBUDGET_RS LBUDGET_R(6) = LBUDGET_RG LBUDGET_R(7) = LBUDGET_RH ! +irx(1) = NBUDGET_RV +irx(2) = NBUDGET_RC +irx(3) = NBUDGET_RR +irx(4) = NBUDGET_RI +irx(5) = NBUDGET_RS +irx(6) = NBUDGET_RG +irx(7) = NBUDGET_RH ! !------------------------------------------------------------------------------- ! @@ -263,11 +271,11 @@ LBUDGET_R(7) = LBUDGET_RH ! IF (LBUDGET_TH) THEN ZRVARS(:,:,:) = ZRVARS(:,:,:) + ZFADVU(:,:,:) - CALL BUDGET (ZRVARS,4,'ADVX_BU_RTH') + CALL BUDGET (ZRVARS,NBUDGET_TH,'ADVX_BU_RTH') ZRVARS(:,:,:) = ZRVARS(:,:,:) + ZFADVV(:,:,:) - CALL BUDGET (ZRVARS,4,'ADVY_BU_RTH') + CALL BUDGET (ZRVARS,NBUDGET_TH,'ADVY_BU_RTH') ZRVARS(:,:,:) = ZRVARS(:,:,:) + ZFADVW(:,:,:) - CALL BUDGET (ZRVARS,4,'ADVZ_BU_RTH') + CALL BUDGET (ZRVARS,NBUDGET_TH,'ADVZ_BU_RTH') END IF ! !------------------------------------------------------------------------------- @@ -327,13 +335,13 @@ LBUDGET_R(7) = LBUDGET_RH IF (LBUDGET_R(JRR)) THEN ZRVARS(:,:,:) = ZRVARS(:,:,:) + ZFADVU(:,:,:) YBURX = 'ADVX_BU_'//YRX(JRR) - CALL BUDGET (ZRVARS(:,:,:),JRR+5 ,YBURX) + CALL BUDGET (ZRVARS(:,:,:), irx(jrr ), YBURX) ZRVARS(:,:,:) = ZRVARS(:,:,:) + ZFADVV(:,:,:) YBURX = 'ADVY_BU_'//YRX(JRR) - CALL BUDGET (ZRVARS(:,:,:),JRR+5 ,YBURX) + CALL BUDGET (ZRVARS(:,:,:), irx(jrr ), YBURX) ZRVARS(:,:,:) = ZRVARS(:,:,:) + ZFADVW(:,:,:) YBURX = 'ADVZ_BU_'//YRX(JRR) - CALL BUDGET (ZRVARS(:,:,:),JRR+5 ,YBURX) + CALL BUDGET (ZRVARS(:,:,:), irx(jrr ), YBURX) END IF END DO ! @@ -393,11 +401,11 @@ LBUDGET_R(7) = LBUDGET_RH ! IF (LBUDGET_TKE) THEN ZRVARS(:,:,:) = ZRVARS(:,:,:) + ZFADVU(:,:,:) - CALL BUDGET (ZRVARS,5,'ADVX_BU_RTKE') + CALL BUDGET (ZRVARS,NBUDGET_TKE,'ADVX_BU_RTKE') ZRVARS(:,:,:) = ZRVARS(:,:,:) + ZFADVV(:,:,:) - CALL BUDGET (ZRVARS,5,'ADVY_BU_RTKE') + CALL BUDGET (ZRVARS,NBUDGET_TKE,'ADVY_BU_RTKE') ZRVARS(:,:,:) = ZRVARS(:,:,:) + ZFADVW(:,:,:) - CALL BUDGET (ZRVARS,5,'ADVZ_BU_RTKE') + CALL BUDGET (ZRVARS,NBUDGET_TKE,'ADVZ_BU_RTKE') END IF END IF ! diff --git a/src/MNH/mpdata_scalar.f90 b/src/MNH/mpdata_scalar.f90 index ae29c69b0..6214a8c3e 100644 --- a/src/MNH/mpdata_scalar.f90 +++ b/src/MNH/mpdata_scalar.f90 @@ -236,11 +236,11 @@ IKU=SIZE(PSVM,3) ! IF (LBUDGET_SV) THEN ZRVARS(:,:,:) = ZRVARS(:,:,:) + ZFADVU(:,:,:) - CALL BUDGET (ZRVARS,JSV+12,'ADVX_BU_RSV') + CALL BUDGET (ZRVARS,NBUDGET_SV1-1+JSV,'ADVX_BU_RSV') ZRVARS(:,:,:) = ZRVARS(:,:,:) + ZFADVV(:,:,:) - CALL BUDGET (ZRVARS,JSV+12,'ADVY_BU_RSV') + CALL BUDGET (ZRVARS,NBUDGET_SV1-1+JSV,'ADVY_BU_RSV') ZRVARS(:,:,:) = ZRVARS(:,:,:) + ZFADVW(:,:,:) - CALL BUDGET (ZRVARS,JSV+12,'ADVZ_BU_RSV') + CALL BUDGET (ZRVARS,NBUDGET_SV1-1+JSV,'ADVZ_BU_RSV') END IF ! END DO diff --git a/src/MNH/nudging.f90 b/src/MNH/nudging.f90 index 78f0d7894..28d18b0e8 100644 --- a/src/MNH/nudging.f90 +++ b/src/MNH/nudging.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2006-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 newsrc 2006/05/24 18:05:52 -!----------------------------------------------------------------- ! ################### MODULE MODI_NUDGING ! ################### @@ -129,10 +124,10 @@ IF (OUSERV) & !* 2. BUDGET CALLS ! ------------ ! -IF (LBUDGET_U) CALL BUDGET (PRUS,1,'NUD_BU_RU') -IF (LBUDGET_V) CALL BUDGET (PRVS,2,'NUD_BU_RV') -IF (LBUDGET_W) CALL BUDGET (PRWS,3,'NUD_BU_RW') -IF (LBUDGET_TH) CALL BUDGET (PRTHS,4,'NUD_BU_RTH') -IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),6,'NUD_BU_RRV') +IF (LBUDGET_U) CALL BUDGET (PRUS,NBUDGET_U,'NUD_BU_RU') +IF (LBUDGET_V) CALL BUDGET (PRVS,NBUDGET_V,'NUD_BU_RV') +IF (LBUDGET_W) CALL BUDGET (PRWS,NBUDGET_W,'NUD_BU_RW') +IF (LBUDGET_TH) CALL BUDGET (PRTHS,NBUDGET_TH,'NUD_BU_RTH') +IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),NBUDGET_RV,'NUD_BU_RRV') ! END SUBROUTINE NUDGING diff --git a/src/MNH/num_diff.f90 b/src/MNH/num_diff.f90 index 23751bff8..800f23a1b 100644 --- a/src/MNH/num_diff.f90 +++ b/src/MNH/num_diff.f90 @@ -440,21 +440,21 @@ END IF !* 3. STORES FIELDS IN BUDGET ARRAYS ! ------------------------------ ! -IF (LBUDGET_U .AND. ONUMDIFU ) CALL BUDGET (PRUS,1,'DIF_BU_RU') -IF (LBUDGET_V .AND. ONUMDIFU ) CALL BUDGET (PRVS,2,'DIF_BU_RV') -IF (LBUDGET_W .AND. ONUMDIFU ) CALL BUDGET (PRWS,3,'DIF_BU_RW') -IF (LBUDGET_TH .AND. ONUMDIFTH ) CALL BUDGET (PRTHS,4,'DIF_BU_RTH') -IF (LBUDGET_TKE .AND. ONUMDIFTH ) CALL BUDGET (PRTKES,5,'DIF_BU_RTKE') -IF (LBUDGET_RV .AND. ONUMDIFTH ) CALL BUDGET (PRRS(:,:,:,1),6,'DIF_BU_RRV') -IF (LBUDGET_RC .AND. ONUMDIFTH ) CALL BUDGET (PRRS(:,:,:,2),7,'DIF_BU_RRC') -IF (LBUDGET_RR .AND. ONUMDIFTH ) CALL BUDGET (PRRS(:,:,:,3),8,'DIF_BU_RRR') -IF (LBUDGET_RI .AND. ONUMDIFTH ) CALL BUDGET (PRRS(:,:,:,4),9,'DIF_BU_RRI') -IF (LBUDGET_RS .AND. ONUMDIFTH ) CALL BUDGET (PRRS(:,:,:,5),10,'DIF_BU_RRS') -IF (LBUDGET_RG .AND. ONUMDIFTH ) CALL BUDGET (PRRS(:,:,:,6),11,'DIF_BU_RRG') -IF (LBUDGET_RH .AND. ONUMDIFTH ) CALL BUDGET (PRRS(:,:,:,7),12,'DIF_BU_RRH') -IF (LBUDGET_SV .AND. ONUMDIFSV ) THEN +IF ( LBUDGET_U .AND. ONUMDIFU ) CALL BUDGET( PRUS, NBUDGET_U, 'DIF_BU_RU' ) +IF ( LBUDGET_V .AND. ONUMDIFU ) CALL BUDGET( PRVS, NBUDGET_V, 'DIF_BU_RV' ) +IF ( LBUDGET_W .AND. ONUMDIFU ) CALL BUDGET( PRWS, NBUDGET_W, 'DIF_BU_RW' ) +IF ( LBUDGET_TH .AND. ONUMDIFTH ) CALL BUDGET( PRTHS, NBUDGET_TH, 'DIF_BU_RTH' ) +IF ( LBUDGET_TKE .AND. ONUMDIFTH ) CALL BUDGET( PRTKES, NBUDGET_TKE, 'DIF_BU_RTKE' ) +IF ( LBUDGET_RV .AND. ONUMDIFTH ) CALL BUDGET( PRRS(:, :, :, 1 ), NBUDGET_RV, 'DIF_BU_RRV' ) +IF ( LBUDGET_RC .AND. ONUMDIFTH ) CALL BUDGET( PRRS(:, :, :, 2 ), NBUDGET_RC, 'DIF_BU_RRC' ) +IF ( LBUDGET_RR .AND. ONUMDIFTH ) CALL BUDGET( PRRS(:, :, :, 3 ), NBUDGET_RR, 'DIF_BU_RRR' ) +IF ( LBUDGET_RI .AND. ONUMDIFTH ) CALL BUDGET( PRRS(:, :, :, 4 ), NBUDGET_RI, 'DIF_BU_RRI' ) +IF ( LBUDGET_RS .AND. ONUMDIFTH ) CALL BUDGET( PRRS(:, :, :, 5 ), NBUDGET_RS, 'DIF_BU_RRS' ) +IF ( LBUDGET_RG .AND. ONUMDIFTH ) CALL BUDGET( PRRS(:, :, :, 6 ), NBUDGET_RG, 'DIF_BU_RRG' ) +IF ( LBUDGET_RH .AND. ONUMDIFTH ) CALL BUDGET( PRRS(:, :, :, 7 ), NBUDGET_RH, 'DIF_BU_RRH' ) +IF ( LBUDGET_SV .AND. ONUMDIFSV ) THEN DO JSV=1,KSV - CALL BUDGET (PRSVS(:,:,:,JSV),JSV+12,'DIF_BU_RSV') + CALL BUDGET( PRSVS(:, :, :, JSV ), NBUDGET_SV1 - 1 + JSV, 'DIF_BU_RSV' ) END DO END IF !------------------------------------------------------------------------------- diff --git a/src/MNH/phys_paramn.f90 b/src/MNH/phys_paramn.f90 index bedad9dde..e9beceaa3 100644 --- a/src/MNH/phys_paramn.f90 +++ b/src/MNH/phys_paramn.f90 @@ -789,7 +789,7 @@ END IF !* 1.6 budget storage ! -------------- ! -IF (CRAD/='NONE' .AND. LBUDGET_TH) CALL BUDGET (XRTHS,4,'RAD_BU_RTH') +IF (CRAD/='NONE' .AND. LBUDGET_TH) CALL BUDGET (XRTHS,NBUDGET_TH,'RAD_BU_RTH') ! CALL SECOND_MNH2(ZTIME2) ! @@ -1050,13 +1050,13 @@ END IF ! budget storage ! IF (CDCONV == 'KAFR' .OR. CSCONV == 'KAFR' ) THEN - IF (LBUDGET_TH) CALL BUDGET (XRTHS,4,'DCONV_BU_RTH') - IF (LBUDGET_RV) CALL BUDGET (XRRS(:,:,:,1),6,'DCONV_BU_RRV') - IF (LBUDGET_RC) CALL BUDGET (XRRS(:,:,:,2),7,'DCONV_BU_RRC') - IF (LBUDGET_RI) CALL BUDGET (XRRS(:,:,:,4),9,'DCONV_BU_RRI') + IF (LBUDGET_TH) CALL BUDGET (XRTHS,NBUDGET_TH,'DCONV_BU_RTH') + IF (LBUDGET_RV) CALL BUDGET (XRRS(:,:,:,1),NBUDGET_RV,'DCONV_BU_RRV') + IF (LBUDGET_RC) CALL BUDGET (XRRS(:,:,:,2),NBUDGET_RC,'DCONV_BU_RRC') + IF (LBUDGET_RI) CALL BUDGET (XRRS(:,:,:,4),NBUDGET_RI,'DCONV_BU_RRI') IF (LCHTRANS .AND. LBUDGET_SV) THEN DO JSV = 1, SIZE(XRSVS,4) - CALL BUDGET (XRSVS(:,:,:,JSV),JSV+12,'DCONV_BU_RSV') + CALL BUDGET (XRSVS(:,:,:,JSV),NBUDGET_SV1-1+JSV,'DCONV_BU_RSV') END DO END IF END IF diff --git a/src/MNH/pressure.f90 b/src/MNH/pressure.f90 index 0ec507eec..c84dfaf95 100644 --- a/src/MNH/pressure.f90 +++ b/src/MNH/pressure.f90 @@ -610,9 +610,9 @@ ENDIF !* 7. STORAGE OF THE FIELDS IN BUDGET ARRAYS ! -------------------------------------- ! -IF (LBUDGET_U) CALL BUDGET (PRUS,1,'PRES_BU_RU') -IF (LBUDGET_V) CALL BUDGET (PRVS,2,'PRES_BU_RV') -IF (LBUDGET_W) CALL BUDGET (PRWS,3,'PRES_BU_RW') +IF (LBUDGET_U) CALL BUDGET (PRUS,NBUDGET_U,'PRES_BU_RU') +IF (LBUDGET_V) CALL BUDGET (PRVS,NBUDGET_V,'PRES_BU_RV') +IF (LBUDGET_W) CALL BUDGET (PRWS,NBUDGET_W,'PRES_BU_RW') ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/pressurez.f90 b/src/MNH/pressurez.f90 index b4c3096c3..976f428bd 100644 --- a/src/MNH/pressurez.f90 +++ b/src/MNH/pressurez.f90 @@ -677,9 +677,9 @@ ENDIF !* 7. STORAGE OF THE FIELDS IN BUDGET ARRAYS ! -------------------------------------- ! -IF (LBUDGET_U) CALL BUDGET (PRUS,1,'PRES_BU_RU') -IF (LBUDGET_V) CALL BUDGET (PRVS,2,'PRES_BU_RV') -IF (LBUDGET_W) CALL BUDGET (PRWS,3,'PRES_BU_RW') +IF (LBUDGET_U) CALL BUDGET (PRUS,NBUDGET_U,'PRES_BU_RU') +IF (LBUDGET_V) CALL BUDGET (PRVS,NBUDGET_V,'PRES_BU_RV') +IF (LBUDGET_W) CALL BUDGET (PRWS,NBUDGET_W,'PRES_BU_RW') ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/rain_c2r2_khko.f90 b/src/MNH/rain_c2r2_khko.f90 index 070607530..cc4ef656d 100644 --- a/src/MNH/rain_c2r2_khko.f90 +++ b/src/MNH/rain_c2r2_khko.f90 @@ -515,7 +515,7 @@ IF (ORAIN) THEN ENDIF ! IF (LBUDGET_SV) & - CALL BUDGET (PCRS(:,:,:)*PRHODJ(:,:,:),15+(NSV_C2R2BEG-1),& + CALL BUDGET (PCRS(:,:,:)*PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_C2R2BEG+2,& &'BRKU_BU_RSV') ! RCR !------------------------------------------------------------------------------- @@ -888,12 +888,12 @@ END IF ! !* 3.4 budget storage ! -IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'HENU_BU_RTH') -IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:)*PRHODJ(:,:,:),6,'HENU_BU_RRV') -IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7,'HENU_BU_RRC') +IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'HENU_BU_RTH') +IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RV,'HENU_BU_RRV') +IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RC,'HENU_BU_RRC') IF (LBUDGET_SV) THEN - CALL BUDGET (PCNS(:,:,:)*PRHODJ(:,:,:),13+(NSV_C2R2BEG-1),'HENU_BU_RSV') ! RCN - CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:),14+(NSV_C2R2BEG-1),'HENU_BU_RSV') ! RCC + CALL BUDGET (PCNS(:,:,:)*PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_C2R2BEG, 'HENU_BU_RSV') ! RCN + CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_C2R2BEG+2,'HENU_BU_RSV') ! RCC END IF ! END SUBROUTINE C2R2_KHKO_NUCLEATION @@ -1088,12 +1088,12 @@ END IF !* budget storage ! ! -IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'HENU_BU_RTH') -IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:)*PRHODJ(:,:,:),6,'HENU_BU_RRV') -IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7,'HENU_BU_RRC') +IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'HENU_BU_RTH') +IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RV,'HENU_BU_RRV') +IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RC,'HENU_BU_RRC') IF (LBUDGET_SV) THEN - CALL BUDGET (PCNS(:,:,:)*PRHODJ(:,:,:),13+(NSV_C2R2BEG-1),'HENU_BU_RSV') ! RCN - CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:),14+(NSV_C2R2BEG-1),'HENU_BU_RSV') ! RCC + CALL BUDGET (PCNS(:,:,:)*PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_C2R2BEG, 'HENU_BU_RSV') ! RCN + CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_C2R2BEG+1,'HENU_BU_RSV') ! RCC END IF END SUBROUTINE AER_NUCLEATION @@ -1175,7 +1175,7 @@ IF( IMICRO >= 1 ) THEN ZW(:,:,:) = PCCS(:,:,:) IF (LBUDGET_SV) CALL BUDGET ( & UNPACK(ZCCS(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:))& - &*PRHODJ(:,:,:),14+(NSV_C2R2BEG-1),'SELF_BU_RSV') ! RCC + &*PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_C2R2BEG+1,'SELF_BU_RSV') ! RCC ! !* 4.2 Autoconversion of cloud droplets ! using a Berry-Reinhardt parameterization @@ -1204,16 +1204,16 @@ IF( IMICRO >= 1 ) THEN ZW(:,:,:) = PRCS(:,:,:) IF (LBUDGET_RC) CALL BUDGET ( & UNPACK(ZRCS(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:)) & - *PRHODJ(:,:,:),7 ,'AUTO_BU_RRC') + *PRHODJ(:,:,:), NBUDGET_RC,'AUTO_BU_RRC') ZW(:,:,:) = PRRS(:,:,:) IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(ZRRS(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:)) & - *PRHODJ(:,:,:),8 ,'AUTO_BU_RRR') + *PRHODJ(:,:,:), NBUDGET_RR,'AUTO_BU_RRR') ZW(:,:,:) = PCRS(:,:,:) IF (LBUDGET_SV) CALL BUDGET ( & UNPACK(ZCRS(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:)) & - &*PRHODJ(:,:,:),15+(NSV_C2R2BEG-1),'AUTO_BU_RSV') ! RCR + &*PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_C2R2BEG+2,'AUTO_BU_RSV') ! RCR ! ! !* 4.3 Accretion sources @@ -1263,15 +1263,15 @@ IF( IMICRO >= 1 ) THEN ZW(:,:,:) = PRCS(:,:,:) IF (LBUDGET_RC) CALL BUDGET ( & UNPACK(ZRCS(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:)) & - *PRHODJ(:,:,:),7 ,'ACCR_BU_RRC') + *PRHODJ(:,:,:), NBUDGET_RC,'ACCR_BU_RRC') ZW(:,:,:) = PRRS(:,:,:) IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(ZRRS(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:)) & - *PRHODJ(:,:,:),8 ,'ACCR_BU_RRR') + *PRHODJ(:,:,:), NBUDGET_RR,'ACCR_BU_RRR') ZW(:,:,:) = PCCS(:,:,:) IF (LBUDGET_SV) CALL BUDGET ( & UNPACK(ZCCS(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:)) & - *PRHODJ(:,:,:),14+(NSV_C2R2BEG-1),'ACCR_BU_RSV') ! RCC + *PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_C2R2BEG+1,'ACCR_BU_RSV') ! RCC ! !* 4.4 Self collection - Coalescence/Break-up @@ -1323,7 +1323,7 @@ IF( IMICRO >= 1 ) THEN PCRS(:,:,:) = UNPACK( ZCRS(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:) ) ! IF (LBUDGET_SV) CALL BUDGET(PCRS(:,:,:)*PRHODJ(:,:,:)& - &,15+(NSV_C2R2BEG-1),'SCBU_BU_RSV') ! RCR + &,NBUDGET_SV1-1+NSV_C2R2BEG+2,'SCBU_BU_RSV') ! RCR ! DEALLOCATE(ZRCT) DEALLOCATE(ZRRT) @@ -1354,20 +1354,20 @@ ELSE ! !* 4.5 Budgets are forwarded ! - IF (LBUDGET_SV) CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:),14+(NSV_C2R2BEG-1),& + IF (LBUDGET_SV) CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_C2R2BEG+1,& &'SELF_BU_RSV') ! RCC ! - IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7 ,'AUTO_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8 ,'AUTO_BU_RRR') - IF (LBUDGET_SV) CALL BUDGET (PCRS(:,:,:)*PRHODJ(:,:,:),15+(NSV_C2R2BEG-1),& + IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC,'AUTO_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR,'AUTO_BU_RRR') + IF (LBUDGET_SV) CALL BUDGET (PCRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_C2R2BEG+2,& &'AUTO_BU_RSV') ! RCR ! - IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7 ,'ACCR_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8 ,'ACCR_BU_RRR') - IF (LBUDGET_SV) CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:),14+(NSV_C2R2BEG-1),& + IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC,'ACCR_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR,'ACCR_BU_RRR') + IF (LBUDGET_SV) CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_C2R2BEG+1,& &'ACCR_BU_RSV') ! RCC ! - IF (LBUDGET_SV) CALL BUDGET (PCRS(:,:,:)*PRHODJ(:,:,:),15+(NSV_C2R2BEG-1),& + IF (LBUDGET_SV) CALL BUDGET (PCRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_C2R2BEG+2,& &'SCBU_BU_RSV') ! RCR END IF ! @@ -1447,11 +1447,11 @@ IF( IMICRO >= 1 ) THEN ! !* 4.1.2 budget storage ! - IF (LBUDGET_SV) CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:),14+(NSV_C2R2BEG-1),& + IF (LBUDGET_SV) CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_C2R2BEG+1,& &'SELF_BU_RSV') ! RCC - IF (LBUDGET_RC) CALL BUDGET (PRCS*PRHODJ(:,:,:),7 ,'AUTO_BU_RRC') - IF (LBUDGET_SV) CALL BUDGET (PCRS*PRHODJ(:,:,:),15+(NSV_C2R2BEG-1),'AUTO_BU_RSV') - IF (LBUDGET_RR) CALL BUDGET (PRRS*PRHODJ(:,:,:),8 ,'AUTO_BU_RRR') + IF (LBUDGET_RC) CALL BUDGET (PRCS*PRHODJ(:,:,:), NBUDGET_RC,'AUTO_BU_RRC') + IF (LBUDGET_SV) CALL BUDGET (PCRS*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_C2R2BEG+2,'AUTO_BU_RSV') + IF (LBUDGET_RR) CALL BUDGET (PRRS*PRHODJ(:,:,:), NBUDGET_RR,'AUTO_BU_RRR') ! !* 4.2.1 Accretion sources ! @@ -1487,24 +1487,24 @@ IF( IMICRO >= 1 ) THEN ! !* 4.2.2 budget storage ! - IF (LBUDGET_SV) CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:),14+(NSV_C2R2BEG-1),& + IF (LBUDGET_SV) CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_C2R2BEG+1,& &'ACCR_BU_RSV') ! RCC - IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7 ,'ACCR_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8 ,'ACCR_BU_RRR') + IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC,'ACCR_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR,'ACCR_BU_RRR') ! ELSE ! !* 4.3 Budgets are forwarded ! - IF (LBUDGET_SV) CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:),14+(NSV_C2R2BEG-1),& + IF (LBUDGET_SV) CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_C2R2BEG+1,& &'SELF_BU_RSV') ! RCC - IF (LBUDGET_RC) CALL BUDGET (PRCS*PRHODJ(:,:,:),7 ,'AUTO_BU_RRC') - IF (LBUDGET_SV) CALL BUDGET (PCRS*PRHODJ(:,:,:),15+(NSV_C2R2BEG-1),'AUTO_BU_RSV') - IF (LBUDGET_RR) CALL BUDGET (PRRS*PRHODJ(:,:,:),8 ,'AUTO_BU_RRR') - IF (LBUDGET_SV) CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:),14+(NSV_C2R2BEG-1),& + IF (LBUDGET_RC) CALL BUDGET (PRCS*PRHODJ(:,:,:), NBUDGET_RC,'AUTO_BU_RRC') + IF (LBUDGET_SV) CALL BUDGET (PCRS*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_C2R2BEG+2,'AUTO_BU_RSV') + IF (LBUDGET_RR) CALL BUDGET (PRRS*PRHODJ(:,:,:), NBUDGET_RR,'AUTO_BU_RRR') + IF (LBUDGET_SV) CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_C2R2BEG+1,& &'ACCR_BU_RSV') ! RCC - IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7 ,'ACCR_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8 ,'ACCR_BU_RRR') + IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC,'ACCR_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR,'ACCR_BU_RRR') END IF ! @@ -1715,10 +1715,10 @@ ELSE ! KHKO END WHERE ENDIF ! -IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:)*PRHODJ(:,:,:),6 ,'REVA_BU_RRV') -IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8 ,'REVA_BU_RRR') -IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4 ,'REVA_BU_RTH') -IF (LBUDGET_SV) CALL BUDGET (PCRS(:,:,:)*PRHODJ(:,:,:),15+(NSV_C2R2BEG-1),'CEVA_BU_RSV') +IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RV,'REVA_BU_RRV') +IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR,'REVA_BU_RRR') +IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH,'REVA_BU_RTH') +IF (LBUDGET_SV) CALL BUDGET (PCRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_C2R2BEG+2,'CEVA_BU_RSV') ! END SUBROUTINE C2R2_KHKO_EVAPORATION ! @@ -1929,12 +1929,12 @@ END DO !* 2.5 budget storage ! IF (LBUDGET_RC.AND.OSEDC) & - CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7 ,'SEDI_BU_RRC') -IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8 ,'SEDI_BU_RRR') + CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC,'SEDI_BU_RRC') +IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR,'SEDI_BU_RRR') IF (LBUDGET_SV) THEN - IF (OSEDC) CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:),14+(NSV_C2R2BEG-1),& + IF (OSEDC) CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_C2R2BEG+1,& &'SEDI_BU_RSV') ! RCC - CALL BUDGET (PCRS(:,:,:)*PRHODJ(:,:,:),15+(NSV_C2R2BEG-1),& + CALL BUDGET (PCRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_C2R2BEG+2,& &'SEDI_BU_RSV') ! RCR END IF ! @@ -1955,9 +1955,9 @@ END IF !* 2.7 budget storage ! IF ( LBUDGET_RC .AND. LDEPOC ) & - CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7 ,'DEPO_BU_RRC') + CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC,'DEPO_BU_RRC') IF ( LBUDGET_SV .AND. LDEPOC ) & - CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:),14+(NSV_C2R2BEG-1),'DEPO_BU_RSV') + CALL BUDGET (PCCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_C2R2BEG+1,'DEPO_BU_RSV') ! END SUBROUTINE C2R2_KHKO_SEDIMENTATION !------------------------------------------------------------------------------- diff --git a/src/MNH/rain_ice.f90 b/src/MNH/rain_ice.f90 index 23d5a06c5..a86f384b1 100644 --- a/src/MNH/rain_ice.f90 +++ b/src/MNH/rain_ice.f90 @@ -248,8 +248,10 @@ END MODULE MODI_RAIN_ICE !* 0. DECLARATIONS ! ------------ ! -use MODD_BUDGET, only: LBU_ENABLE, LBUDGET_RC, LBUDGET_RG, LBUDGET_RH, LBUDGET_RI, & - LBUDGET_RR, LBUDGET_RS, LBUDGET_RV, LBUDGET_TH +use MODD_BUDGET, only: LBU_ENABLE, LBUDGET_TH, LBUDGET_RV, LBUDGET_RC, LBUDGET_RR, & + LBUDGET_RI, LBUDGET_RS, LBUDGET_RG, LBUDGET_RH, & + NBUDGET_TH, NBUDGET_RV, NBUDGET_RC, NBUDGET_RR, & + NBUDGET_RI, NBUDGET_RS, NBUDGET_RG, NBUDGET_RH use MODD_CONF, only: LCHECK use MODD_CST, only: XCI, XCL, XCPD, XCPV, XLSTT, XLVTT, XTT, & XALPI, XBETAI, XGAMI, XMD, XMV, XTT @@ -945,87 +947,87 @@ IF( IMICRO >= 0 ) THEN ! Reordered for compability with flexible structures like in AROME ! rain_ice_slow - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'HON_BU_RTH') - IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7,'HON_BU_RRC') - IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9,'HON_BU_RRI') - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'SFR_BU_RTH') - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8,'SFR_BU_RRR') - IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11,'SFR_BU_RRG') - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'DEPS_BU_RTH') - IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:)*PRHODJ(:,:,:),6,'DEPS_BU_RRV') - IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),10,'DEPS_BU_RRS') - IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9,'AGGS_BU_RRI') - IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),10,'AGGS_BU_RRS') - IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9,'AUTS_BU_RRI') - IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),10,'AUTS_BU_RRS') - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'DEPG_BU_RTH') - IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:)*PRHODJ(:,:,:),6,'DEPG_BU_RRV') - IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11,'DEPG_BU_RRG') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'HON_BU_RTH') + IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RC,'HON_BU_RRC') + IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RI,'HON_BU_RRI') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'SFR_BU_RTH') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RR,'SFR_BU_RRR') + IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RG,'SFR_BU_RRG') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'DEPS_BU_RTH') + IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RV,'DEPS_BU_RRV') + IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RS,'DEPS_BU_RRS') + IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RI,'AGGS_BU_RRI') + IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RS,'AGGS_BU_RRS') + IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RI,'AUTS_BU_RRI') + IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RS,'AUTS_BU_RRS') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'DEPG_BU_RTH') + IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RV,'DEPG_BU_RRV') + IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RG,'DEPG_BU_RRG') IF (OWARM) THEN ! rain_ice_warm - IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7,'AUTO_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8,'AUTO_BU_RRR') - IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7,'ACCR_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8,'ACCR_BU_RRR') - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'REVA_BU_RTH') - IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:)*PRHODJ(:,:,:),6,'REVA_BU_RRV') - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8,'REVA_BU_RRR') + IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RC,'AUTO_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RR,'AUTO_BU_RRR') + IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RC,'ACCR_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RR,'ACCR_BU_RRR') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'REVA_BU_RTH') + IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RV,'REVA_BU_RRV') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RR,'REVA_BU_RRR') ENDIF !rain_ice_fast_rs - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'RIM_BU_RTH') - IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7,'RIM_BU_RRC') - IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),10,'RIM_BU_RRS') - IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11,'RIM_BU_RRG') - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'ACC_BU_RTH') - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8,'ACC_BU_RRR') - IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),10,'ACC_BU_RRS') - IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11,'ACC_BU_RRG') - IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),10,'CMEL_BU_RRS') - IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11,'CMEL_BU_RRG') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'RIM_BU_RTH') + IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RC,'RIM_BU_RRC') + IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RS,'RIM_BU_RRS') + IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RG,'RIM_BU_RRG') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'ACC_BU_RTH') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RR,'ACC_BU_RRR') + IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RS,'ACC_BU_RRS') + IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RG,'ACC_BU_RRG') + IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RS,'CMEL_BU_RRS') + IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RG,'CMEL_BU_RRG') !rain_ice_fast_rg - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'CFRZ_BU_RTH') - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8,'CFRZ_BU_RRR') - IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9,'CFRZ_BU_RRI') - IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11,'CFRZ_BU_RRG') - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'WETG_BU_RTH') - IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7,'WETG_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8,'WETG_BU_RRR') - IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9,'WETG_BU_RRI') - IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),10,'WETG_BU_RRS') - IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11,'WETG_BU_RRG') - IF (LBUDGET_RH) CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:),12,'WETG_BU_RRH') - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'DRYG_BU_RTH') - IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7,'DRYG_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8,'DRYG_BU_RRR') - IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9,'DRYG_BU_RRI') - IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),10,'DRYG_BU_RRS') - IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11,'DRYG_BU_RRG') - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'GMLT_BU_RTH') - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8,'GMLT_BU_RRR') - IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11,'GMLT_BU_RRG') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'CFRZ_BU_RTH') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RR,'CFRZ_BU_RRR') + IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RI,'CFRZ_BU_RRI') + IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RG,'CFRZ_BU_RRG') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'WETG_BU_RTH') + IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RC,'WETG_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RR,'WETG_BU_RRR') + IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RI,'WETG_BU_RRI') + IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RS,'WETG_BU_RRS') + IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RG,'WETG_BU_RRG') + IF (LBUDGET_RH) CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RH,'WETG_BU_RRH') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'DRYG_BU_RTH') + IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RC,'DRYG_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RR,'DRYG_BU_RRR') + IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RI,'DRYG_BU_RRI') + IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RS,'DRYG_BU_RRS') + IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RG,'DRYG_BU_RRG') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'GMLT_BU_RTH') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RR,'GMLT_BU_RRR') + IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RG,'GMLT_BU_RRG') IF(KRR==7) THEN ! rain_ice_fast_rh - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'WETH_BU_RTH') - IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7,'WETH_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8,'WETH_BU_RRR') - IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9,'WETH_BU_RRI') - IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),10,'WETH_BU_RRS') - IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11,'WETH_BU_RRG') - IF (LBUDGET_RH) CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:),12,'WETH_BU_RRH') - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'HMLT_BU_RTH') - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8,'HMLT_BU_RRR') - IF (LBUDGET_RH) CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:),12,'HMLT_BU_RRH') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'WETH_BU_RTH') + IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RC,'WETH_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RR,'WETH_BU_RRR') + IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RI,'WETH_BU_RRI') + IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RS,'WETH_BU_RRS') + IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RG,'WETH_BU_RRG') + IF (LBUDGET_RH) CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RH,'WETH_BU_RRH') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'HMLT_BU_RTH') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RR,'HMLT_BU_RRR') + IF (LBUDGET_RH) CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RH,'HMLT_BU_RRH') ENDIF !rain_ice_fast_ri - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'IMLT_BU_RTH') - IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7,'IMLT_BU_RRC') - IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9,'IMLT_BU_RRI') - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'BERFI_BU_RTH') - IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7,'BERFI_BU_RRC') - IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9,'BERFI_BU_RRI') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'IMLT_BU_RTH') + IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RC,'IMLT_BU_RRC') + IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RI,'IMLT_BU_RRI') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'BERFI_BU_RTH') + IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RC,'BERFI_BU_RRC') + IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RI,'BERFI_BU_RRI') ! END IF ! diff --git a/src/MNH/rain_ice_elec.f90 b/src/MNH/rain_ice_elec.f90 index 37e0c3d04..645869054 100644 --- a/src/MNH/rain_ice_elec.f90 +++ b/src/MNH/rain_ice_elec.f90 @@ -1107,144 +1107,144 @@ ELSE ! Reordered for compability with flexible structures like in AROME ! rain_ice_slow - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'HON_BU_RTH') - IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7,'HON_BU_RRC') - IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9,'HON_BU_RRI') - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'SFR_BU_RTH') - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8,'SFR_BU_RRR') - IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11,'SFR_BU_RRG') - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'DEPS_BU_RTH') - IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:)*PRHODJ(:,:,:),6,'DEPS_BU_RRV') - IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),10,'DEPS_BU_RRS') - IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9,'AGGS_BU_RRI') - IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),10,'AGGS_BU_RRS') - IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9,'AUTS_BU_RRI') - IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),10,'AUTS_BU_RRS') - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'DEPG_BU_RTH') - IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:)*PRHODJ(:,:,:),6,'DEPG_BU_RRV') - IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11,'DEPG_BU_RRG') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'HON_BU_RTH') + IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RC,'HON_BU_RRC') + IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RI,'HON_BU_RRI') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'SFR_BU_RTH') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RR,'SFR_BU_RRR') + IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RG,'SFR_BU_RRG') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'DEPS_BU_RTH') + IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RV,'DEPS_BU_RRV') + IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RS,'DEPS_BU_RRS') + IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RI,'AGGS_BU_RRI') + IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RS,'AGGS_BU_RRS') + IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RI,'AUTS_BU_RRI') + IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RS,'AUTS_BU_RRS') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'DEPG_BU_RTH') + IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RV,'DEPG_BU_RRV') + IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RG,'DEPG_BU_RRG') ! IF (OWARM) THEN ! rain_ice_warm - IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7,'AUTO_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8,'AUTO_BU_RRR') - IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7,'ACCR_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8,'ACCR_BU_RRR') - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'REVA_BU_RTH') - IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:)*PRHODJ(:,:,:),6,'REVA_BU_RRV') - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8,'REVA_BU_RRR') + IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RC,'AUTO_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RR,'AUTO_BU_RRR') + IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RC,'ACCR_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RR,'ACCR_BU_RRR') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'REVA_BU_RTH') + IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RV,'REVA_BU_RRV') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RR,'REVA_BU_RRR') ENDIF ! ! rain_ice_fast_rs - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'RIM_BU_RTH') - IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7,'RIM_BU_RRC') - IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),10,'RIM_BU_RRS') - IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11,'RIM_BU_RRG') - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'ACC_BU_RTH') - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8,'ACC_BU_RRR') - IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),10,'ACC_BU_RRS') - IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11,'ACC_BU_RRG') - IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),10,'CMEL_BU_RRS') - IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11,'CMEL_BU_RRG') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'RIM_BU_RTH') + IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RC,'RIM_BU_RRC') + IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RS,'RIM_BU_RRS') + IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RG,'RIM_BU_RRG') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'ACC_BU_RTH') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RR,'ACC_BU_RRR') + IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RS,'ACC_BU_RRS') + IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RG,'ACC_BU_RRG') + IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RS,'CMEL_BU_RRS') + IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RG,'CMEL_BU_RRG') ! rain_ice_fast_rg - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'CFRZ_BU_RTH') - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8,'CFRZ_BU_RRR') - IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9,'CFRZ_BU_RRI') - IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11,'CFRZ_BU_RRG') - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'WETG_BU_RTH') - IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7,'WETG_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8,'WETG_BU_RRR') - IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9,'WETG_BU_RRI') - IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),10,'WETG_BU_RRS') - IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11,'WETG_BU_RRG') - IF (LBUDGET_RH) CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:),12,'WETG_BU_RRH') - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'DRYG_BU_RTH') - IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7,'DRYG_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8,'DRYG_BU_RRR') - IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9,'DRYG_BU_RRI') - IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),10,'DRYG_BU_RRS') - IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11,'DRYG_BU_RRG') - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'GMLT_BU_RTH') - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8,'GMLT_BU_RRR') - IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11,'GMLT_BU_RRG') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'CFRZ_BU_RTH') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RR,'CFRZ_BU_RRR') + IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RI,'CFRZ_BU_RRI') + IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RG,'CFRZ_BU_RRG') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'WETG_BU_RTH') + IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RC,'WETG_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RR,'WETG_BU_RRR') + IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RI,'WETG_BU_RRI') + IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RS,'WETG_BU_RRS') + IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RG,'WETG_BU_RRG') + IF (LBUDGET_RH) CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RH,'WETG_BU_RRH') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'DRYG_BU_RTH') + IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RC,'DRYG_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RR,'DRYG_BU_RRR') + IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RI,'DRYG_BU_RRI') + IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RS,'DRYG_BU_RRS') + IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RG,'DRYG_BU_RRG') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'GMLT_BU_RTH') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RR,'GMLT_BU_RRR') + IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RG,'GMLT_BU_RRG') IF(KRR==7) THEN ! rain_ice_fast_rh - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'WETH_BU_RTH') - IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7,'WETH_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8,'WETH_BU_RRR') - IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9,'WETH_BU_RRI') - IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),10,'WETH_BU_RRS') - IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11,'WETH_BU_RRG') - IF (LBUDGET_RH) CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:),12,'WETH_BU_RRH') - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'HMLT_BU_RTH') - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8,'HMLT_BU_RRR') - IF (LBUDGET_RH) CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:),12,'HMLT_BU_RRH') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'WETH_BU_RTH') + IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RC,'WETH_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RR,'WETH_BU_RRR') + IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RI,'WETH_BU_RRI') + IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RS,'WETH_BU_RRS') + IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RG,'WETH_BU_RRG') + IF (LBUDGET_RH) CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RH,'WETH_BU_RRH') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'HMLT_BU_RTH') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RR,'HMLT_BU_RRR') + IF (LBUDGET_RH) CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RH,'HMLT_BU_RRH') ENDIF ! rain_ice_fast_ri - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'IMLT_BU_RTH') - IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7,'IMLT_BU_RRC') - IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9,'IMLT_BU_RRI') - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'BERFI_BU_RTH') - IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7,'BERFI_BU_RRC') - IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9,'BERFI_BU_RRI') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'IMLT_BU_RTH') + IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RC,'IMLT_BU_RRC') + IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RI,'IMLT_BU_RRI') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'BERFI_BU_RTH') + IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RC,'BERFI_BU_RRC') + IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RI,'BERFI_BU_RRI') ! IF (LBUDGET_SV) THEN ! rain_ice_slow - CALL BUDGET (PQPIS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG, 'DEPS_BU_RSV') - CALL BUDGET (PQNIS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECEND, 'DEPS_BU_RSV') - CALL BUDGET (PQSS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG+4,'DEPS_BU_RSV') - CALL BUDGET (PQIS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG+3,'AGGS_BU_RSV') - CALL BUDGET (PQSS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG+4,'AGGS_BU_RSV') - CALL BUDGET (PQIS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG+3,'AUTS_BU_RSV') - CALL BUDGET (PQSS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG+4,'AUTS_BU_RSV') - CALL BUDGET (PQPIS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG, 'DEPG_BU_RSV') - CALL BUDGET (PQNIS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECEND, 'DEPG_BU_RSV') - CALL BUDGET (PQGS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG+5,'DEPG_BU_RSV') + CALL BUDGET (PQPIS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG, 'DEPS_BU_RSV') + CALL BUDGET (PQNIS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECEND, 'DEPS_BU_RSV') + CALL BUDGET (PQSS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+4,'DEPS_BU_RSV') + CALL BUDGET (PQIS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+3,'AGGS_BU_RSV') + CALL BUDGET (PQSS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+4,'AGGS_BU_RSV') + CALL BUDGET (PQIS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+3,'AUTS_BU_RSV') + CALL BUDGET (PQSS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+4,'AUTS_BU_RSV') + CALL BUDGET (PQPIS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG, 'DEPG_BU_RSV') + CALL BUDGET (PQNIS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECEND, 'DEPG_BU_RSV') + CALL BUDGET (PQGS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+5,'DEPG_BU_RSV') ! ! rain_ice_warm IF (OWARM) THEN - CALL BUDGET (PQCS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG+1,'AUTO_BU_RSV') - CALL BUDGET (PQRS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG+2,'AUTO_BU_RSV') - CALL BUDGET (PQCS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG+1,'ACCR_BU_RSV') - CALL BUDGET (PQRS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG+2,'ACCR_BU_RSV') - CALL BUDGET (PQPIS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG, 'REVA_BU_RSV') - CALL BUDGET (PQNIS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECEND, 'REVA_BU_RSV') - CALL BUDGET (PQRS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG+2,'REVA_BU_RSV') + CALL BUDGET (PQCS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+1,'AUTO_BU_RSV') + CALL BUDGET (PQRS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+2,'AUTO_BU_RSV') + CALL BUDGET (PQCS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+1,'ACCR_BU_RSV') + CALL BUDGET (PQRS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+2,'ACCR_BU_RSV') + CALL BUDGET (PQPIS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG, 'REVA_BU_RSV') + CALL BUDGET (PQNIS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECEND, 'REVA_BU_RSV') + CALL BUDGET (PQRS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+2,'REVA_BU_RSV') END IF ! ! rain_ice_fast_rs - CALL BUDGET (PQCS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG+1,'RIM_BU_RSV') - CALL BUDGET (PQSS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG+4,'RIM_BU_RSV') - CALL BUDGET (PQGS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECEND, 'RIM_BU_RSV') - CALL BUDGET (PQRS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG+2,'ACC_BU_RSV') - CALL BUDGET (PQSS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG+4,'ACC_BU_RSV') - CALL BUDGET (PQGS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECEND, 'ACC_BU_RSV') - CALL BUDGET (PQSS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG+4,'CMEL_BU_RSV') - CALL BUDGET (PQGS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECEND, 'CMEL_BU_RSV') + CALL BUDGET (PQCS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+1,'RIM_BU_RSV') + CALL BUDGET (PQSS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+4,'RIM_BU_RSV') + CALL BUDGET (PQGS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECEND, 'RIM_BU_RSV') + CALL BUDGET (PQRS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+2,'ACC_BU_RSV') + CALL BUDGET (PQSS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+4,'ACC_BU_RSV') + CALL BUDGET (PQGS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECEND, 'ACC_BU_RSV') + CALL BUDGET (PQSS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+4,'CMEL_BU_RSV') + CALL BUDGET (PQGS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECEND, 'CMEL_BU_RSV') ! ! rain_ice_fast_rg - CALL BUDGET (PQRS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG+2,'CFRZ_BU_RSV') - CALL BUDGET (PQIS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG+3,'CFRZ_BU_RSV') - CALL BUDGET (PQGS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECEND, 'CFRZ_BU_RSV') - CALL BUDGET (PQCS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG+1,'WETG_BU_RSV') - CALL BUDGET (PQRS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG+2,'WETG_BU_RSV') - CALL BUDGET (PQIS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG+3,'WETG_BU_RSV') - CALL BUDGET (PQSS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG+4,'WETG_BU_RSV') - CALL BUDGET (PQGS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECEND, 'WETG_BU_RSV') - CALL BUDGET (PQCS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG+1,'DRYG_BU_RSV') - CALL BUDGET (PQRS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG+2,'DRYG_BU_RSV') - CALL BUDGET (PQIS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG+3,'DRYG_BU_RSV') - CALL BUDGET (PQSS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG+4,'DRYG_BU_RSV') - CALL BUDGET (PQGS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECEND, 'DRYG_BU_RSV') - CALL BUDGET (PQRS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG+2,'GMLT_BU_RSV') - CALL BUDGET (PQGS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECEND, 'GMLT_BU_RSV') + CALL BUDGET (PQRS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+2,'CFRZ_BU_RSV') + CALL BUDGET (PQIS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+3,'CFRZ_BU_RSV') + CALL BUDGET (PQGS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECEND, 'CFRZ_BU_RSV') + CALL BUDGET (PQCS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+1,'WETG_BU_RSV') + CALL BUDGET (PQRS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+2,'WETG_BU_RSV') + CALL BUDGET (PQIS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+3,'WETG_BU_RSV') + CALL BUDGET (PQSS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+4,'WETG_BU_RSV') + CALL BUDGET (PQGS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECEND, 'WETG_BU_RSV') + CALL BUDGET (PQCS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+1,'DRYG_BU_RSV') + CALL BUDGET (PQRS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+2,'DRYG_BU_RSV') + CALL BUDGET (PQIS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+3,'DRYG_BU_RSV') + CALL BUDGET (PQSS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+4,'DRYG_BU_RSV') + CALL BUDGET (PQGS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECEND, 'DRYG_BU_RSV') + CALL BUDGET (PQRS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+2,'GMLT_BU_RSV') + CALL BUDGET (PQGS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECEND, 'GMLT_BU_RSV') ! ! rain_ice_fast_ri - CALL BUDGET (PQCS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG+1,'IMLT_BU_RSV') - CALL BUDGET (PQIS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG+3,'IMLT_BU_RSV') - CALL BUDGET (PQCS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG+1,'BERFI_BU_RSV') - CALL BUDGET (PQIS(:,:,:) * PRHODJ(:,:,:),12+NSV_ELECBEG+3,'BERFI_BU_RSV') + CALL BUDGET (PQCS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+1,'IMLT_BU_RSV') + CALL BUDGET (PQIS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+3,'IMLT_BU_RSV') + CALL BUDGET (PQCS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+1,'BERFI_BU_RSV') + CALL BUDGET (PQIS(:,:,:) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+3,'BERFI_BU_RSV') ! END IF END IF @@ -1974,20 +1974,20 @@ REAL :: ZVR, ZVI, ZVS, ZVG, ZETA0, ZK, ZRE0 !* 2.3 budget storage ! IF (LBUDGET_RC .AND. OSEDIC) & - CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7 ,'SEDI_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8 ,'SEDI_BU_RRR') - IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9 ,'SEDI_BU_RRI') - IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),10,'SEDI_BU_RRS') - IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11,'SEDI_BU_RRG') + CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC,'SEDI_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR,'SEDI_BU_RRR') + IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RI,'SEDI_BU_RRI') + IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RS,'SEDI_BU_RRS') + IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RG,'SEDI_BU_RRG') IF ( KRR == 7 .AND. LBUDGET_RH) & - CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:),12,'SEDI_BU_RRH') + CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RH,'SEDI_BU_RRH') ! IF (LBUDGET_SV) THEN - CALL BUDGET (PQCS(:,:,:)*PRHODJ(:,:,:),12+NSV_ELECBEG+1,'SEDI_BU_RSV') - CALL BUDGET (PQRS(:,:,:)*PRHODJ(:,:,:),12+NSV_ELECBEG+2,'SEDI_BU_RSV') - CALL BUDGET (PQIS(:,:,:)*PRHODJ(:,:,:),12+NSV_ELECBEG+3,'SEDI_BU_RSV') - CALL BUDGET (PQSS(:,:,:)*PRHODJ(:,:,:),12+NSV_ELECBEG+4,'SEDI_BU_RSV') - CALL BUDGET (PQGS(:,:,:)*PRHODJ(:,:,:),12+NSV_ELECBEG+5,'SEDI_BU_RSV') + CALL BUDGET (PQCS(:,:,:)*PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+1,'SEDI_BU_RSV') + CALL BUDGET (PQRS(:,:,:)*PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+2,'SEDI_BU_RSV') + CALL BUDGET (PQIS(:,:,:)*PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+3,'SEDI_BU_RSV') + CALL BUDGET (PQSS(:,:,:)*PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+4,'SEDI_BU_RSV') + CALL BUDGET (PQGS(:,:,:)*PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_ELECBEG+5,'SEDI_BU_RSV') END IF ! END SUBROUTINE RAIN_ICE_ELEC_SEDIMENTATION_SPLIT @@ -2369,13 +2369,13 @@ REAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) :: ZCONC3D ! !* 2.3 budget storage ! IF (LBUDGET_RC .AND. OSEDIC) & - CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7 ,'SEDI_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8 ,'SEDI_BU_RRR') - IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9 ,'SEDI_BU_RRI') - IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),10,'SEDI_BU_RRS') - IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11,'SEDI_BU_RRG') + CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC,'SEDI_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR,'SEDI_BU_RRR') + IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RI,'SEDI_BU_RRI') + IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RS,'SEDI_BU_RRS') + IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RG,'SEDI_BU_RRG') IF (KRR == 7 .AND. LBUDGET_RH) & - CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:),12,'SEDI_BU_RRH') + CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RH,'SEDI_BU_RRH') ! END SUBROUTINE RAIN_ICE_SEDIMENTATION_STAT @@ -2485,9 +2485,9 @@ END IF ! !* 3.1.3 budget storage ! -IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'HENU_BU_RTH') -IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:)*PRHODJ(:,:,:),6,'HENU_BU_RRV') -IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9,'HENU_BU_RRI') +IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'HENU_BU_RTH') +IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RV,'HENU_BU_RRV') +IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RI,'HENU_BU_RRI') ! END SUBROUTINE RAIN_ICE_ELEC_NUCLEATION ! @@ -2532,19 +2532,19 @@ IMPLICIT NONE ! IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:), & - 4,'HON_BU_RTH') + NBUDGET_TH,'HON_BU_RTH') IF (LBUDGET_RC) CALL BUDGET ( & UNPACK(ZRCS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 7,'HON_BU_RRC') + NBUDGET_RC,'HON_BU_RRC') IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(ZRIS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 9,'HON_BU_RRI') + NBUDGET_RI,'HON_BU_RRI') ! IF (LBUDGET_SV) THEN CALL BUDGET (UNPACK(ZQCS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0),& - 12+NSV_ELECBEG+1,'HON_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+1,'HON_BU_RSV') CALL BUDGET (UNPACK(ZQIS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+3,'HON_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+3,'HON_BU_RSV') END IF ! !* 3.5.2 compute the spontaneous freezing source: RRHONG & QRHONG @@ -2568,19 +2568,19 @@ IMPLICIT NONE ! IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:), & - 4,'SFR_BU_RTH') + NBUDGET_TH,'SFR_BU_RTH') IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(ZRRS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 8,'SFR_BU_RRR') + NBUDGET_RR,'SFR_BU_RRR') IF (LBUDGET_RG) CALL BUDGET ( & UNPACK(ZRGS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 11,'SFR_BU_RRG') + NBUDGET_RG,'SFR_BU_RRG') ! IF (LBUDGET_SV) THEN CALL BUDGET (UNPACK(ZQRS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0),& - 12+NSV_ELECBEG+2,'HON_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+2,'HON_BU_RSV') CALL BUDGET (UNPACK(ZQGS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECEND, 'HON_BU_RSV') + NBUDGET_SV1-1+NSV_ELECEND, 'HON_BU_RSV') END IF ! @@ -2623,21 +2623,21 @@ IMPLICIT NONE ! IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:), & - 4,'DEPS_BU_RTH') + NBUDGET_TH,'DEPS_BU_RTH') IF (LBUDGET_RV) CALL BUDGET ( & UNPACK(ZRVS(:),MASK=GMICRO(:,:,:),FIELD=PRVS)*PRHODJ(:,:,:), & - 6,'DEPS_BU_RRV') + NBUDGET_RV,'DEPS_BU_RRV') IF (LBUDGET_RS) CALL BUDGET ( & UNPACK(ZRSS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 10,'DEPS_BU_RRS') + NBUDGET_RS,'DEPS_BU_RRS') ! IF (LBUDGET_SV) THEN CALL BUDGET (UNPACK(ZQPIS(:), MASK=GMICRO(:,:,:), FIELD=PQPIS) & - *PRHODJ(:,:,:), 12+NSV_ELECBEG ,'DEPS_BU_RSV') + *PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_ELECBEG ,'DEPS_BU_RSV') CALL BUDGET (UNPACK(ZQNIS(:), MASK=GMICRO(:,:,:), FIELD=PQNIS) & - *PRHODJ(:,:,:), 12+NSV_ELECEND ,'DEPS_BU_RSV') + *PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_ELECEND ,'DEPS_BU_RSV') CALL BUDGET (UNPACK(ZQSS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+4,'DEPS_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+4,'DEPS_BU_RSV') END IF ! !* 3.5.3.4 compute the aggregation on r_s: RIAGGS & QIAGGS @@ -2669,16 +2669,16 @@ IMPLICIT NONE ! IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(ZRIS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 9,'AGGS_BU_RRI') + NBUDGET_RI,'AGGS_BU_RRI') IF (LBUDGET_RS) CALL BUDGET ( & UNPACK(ZRSS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 10,'AGGS_BU_RRS') + NBUDGET_RS,'AGGS_BU_RRS') ! IF (LBUDGET_SV) THEN CALL BUDGET (UNPACK(ZQIS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+3,'AGGS_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+3,'AGGS_BU_RSV') CALL BUDGET (UNPACK(ZQSS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+4,'AGGS_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+4,'AGGS_BU_RSV') END IF ! CALL ELEC_IAGGS_B() ! QIAGGS_boun @@ -2689,9 +2689,9 @@ IMPLICIT NONE ! IF (LBUDGET_SV) THEN CALL BUDGET (UNPACK(ZQIS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+3,'NIIS_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+3,'NIIS_BU_RSV') CALL BUDGET (UNPACK(ZQSS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+4,'NIIS_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+4,'NIIS_BU_RSV') END IF ! !* 3.5.3.5 compute the autoconversion of r_i for r_s production: @@ -2719,16 +2719,16 @@ IMPLICIT NONE DEALLOCATE(ZCRIAUTI) IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(ZRIS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 9,'AUTS_BU_RRI') + NBUDGET_RI,'AUTS_BU_RRI') IF (LBUDGET_RS) CALL BUDGET ( & UNPACK(ZRSS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 10,'AUTS_BU_RRS') + NBUDGET_RS,'AUTS_BU_RRS') ! IF (LBU_RSV) THEN CALL BUDGET (UNPACK(ZQIS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+3,'AUTS_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+3,'AUTS_BU_RSV') CALL BUDGET (UNPACK(ZQSS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+4,'AUTS_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+4,'AUTS_BU_RSV') END IF ! !* 3.5.3.6 compute the deposition on r_g: RVDEPG & QVDEPG @@ -2757,21 +2757,21 @@ IMPLICIT NONE ! IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:), & - 4,'DEPG_BU_RTH') + NBUDGET_TH,'DEPG_BU_RTH') IF (LBUDGET_RV) CALL BUDGET ( & UNPACK(ZRVS(:),MASK=GMICRO(:,:,:),FIELD=PRVS)*PRHODJ(:,:,:), & - 6,'DEPG_BU_RRV') + NBUDGET_RV,'DEPG_BU_RRV') IF (LBUDGET_RG) CALL BUDGET ( & UNPACK(ZRGS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 11,'DEPG_BU_RRG') + NBUDGET_RG,'DEPG_BU_RRG') ! IF (LBU_RSV) THEN CALL BUDGET (UNPACK(ZQPIS(:), MASK=GMICRO(:,:,:), FIELD=PQPIS) & - *PRHODJ(:,:,:), 12+NSV_ELECBEG ,'DEPG_BU_RSV') + *PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_ELECBEG ,'DEPG_BU_RSV') CALL BUDGET (UNPACK(ZQNIS(:), MASK=GMICRO(:,:,:), FIELD=PQNIS) & - *PRHODJ(:,:,:), 12+NSV_ELECEND ,'DEPG_BU_RSV') + *PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_ELECEND ,'DEPG_BU_RSV') CALL BUDGET (UNPACK(ZQGS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECEND,'DEPG_BU_RSV') + NBUDGET_SV1-1+NSV_ELECEND,'DEPG_BU_RSV') END IF ! END SUBROUTINE RAIN_ICE_ELEC_SLOW @@ -2840,16 +2840,16 @@ REAL :: ZCRIAUTC ! Critical cloud mixing ratio ! IF (LBUDGET_RC) CALL BUDGET ( & UNPACK(ZRCS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 7,'AUTO_BU_RRC') + NBUDGET_RC,'AUTO_BU_RRC') IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(ZRRS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 8,'AUTO_BU_RRR') + NBUDGET_RR,'AUTO_BU_RRR') ! IF (LBUDGET_SV) THEN CALL BUDGET (UNPACK(ZQCS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+1,'AUTO_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+1,'AUTO_BU_RSV') CALL BUDGET (UNPACK(ZQRS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+2,'AUTO_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+2,'AUTO_BU_RSV') END IF ! ! @@ -2874,16 +2874,16 @@ REAL :: ZCRIAUTC ! Critical cloud mixing ratio ! IF (LBUDGET_RC) CALL BUDGET ( & UNPACK(ZRCS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 7,'ACCR_BU_RRC') + NBUDGET_RC,'ACCR_BU_RRC') IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(ZRRS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 8,'ACCR_BU_RRR') + NBUDGET_RR,'ACCR_BU_RRR') ! IF (LBU_RSV) THEN CALL BUDGET (UNPACK(ZQCS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+1,'ACCR_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+1,'ACCR_BU_RSV') CALL BUDGET (UNPACK(ZQRS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+2,'ACCR_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+2,'ACCR_BU_RSV') END IF ! ! @@ -2916,23 +2916,23 @@ REAL :: ZCRIAUTC ! Critical cloud mixing ratio ! IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:), & - 4,'REVA_BU_RTH') + NBUDGET_TH,'REVA_BU_RTH') IF (LBUDGET_RV) CALL BUDGET ( & UNPACK(ZRVS(:),MASK=GMICRO(:,:,:),FIELD=PRVS)*PRHODJ(:,:,:), & - 6,'REVA_BU_RRV') + NBUDGET_RV,'REVA_BU_RRV') IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(ZRRS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 8,'REVA_BU_RRR') + NBUDGET_RR,'REVA_BU_RRR') ZW(:,:,:)=PEVAP3D(:,:,:) PEVAP3D(:,:,:)=UNPACK(ZZW(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:)) ! IF (LBUDGET_SV) THEN CALL BUDGET (UNPACK(ZQPIS(:), MASK=GMICRO(:,:,:), FIELD=PQPIS) & - *PRHODJ(:,:,:), 12+NSV_ELECBEG ,'REVA_BU_RSV') + *PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_ELECBEG ,'REVA_BU_RSV') CALL BUDGET (UNPACK(ZQNIS(:), MASK=GMICRO(:,:,:), FIELD=PQNIS) & - *PRHODJ(:,:,:), 12+NSV_ELECEND ,'REVA_BU_RSV') + *PRHODJ(:,:,:), NBUDGET_SV1-1+NSV_ELECEND ,'REVA_BU_RSV') CALL BUDGET (UNPACK(ZQRS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+2,'REVA_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+2,'REVA_BU_RSV') END IF ! END SUBROUTINE RAIN_ICE_ELEC_WARM @@ -3069,25 +3069,25 @@ IMPLICIT NONE ! IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:), & - 4,'RIM_BU_RTH') + NBUDGET_TH,'RIM_BU_RTH') IF (LBUDGET_RC) CALL BUDGET ( & UNPACK(ZRCS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 7,'RIM_BU_RRC') + NBUDGET_RC,'RIM_BU_RRC') IF (LBUDGET_RS) CALL BUDGET ( & UNPACK(ZRSS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 10,'RIM_BU_RRS') + NBUDGET_RS,'RIM_BU_RRS') IF (LBUDGET_RG) CALL BUDGET ( & UNPACK(ZRGS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 11,'RIM_BU_RRG') + NBUDGET_RG,'RIM_BU_RRG') ! ! IF (LBUDGET_SV) THEN CALL BUDGET (UNPACK(ZQCS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+1,'RIM_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+1,'RIM_BU_RSV') CALL BUDGET (UNPACK(ZQSS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+4,'RIM_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+4,'RIM_BU_RSV') CALL BUDGET (UNPACK(ZQGS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECEND,'RIM_BU_RSV') + NBUDGET_SV1-1+NSV_ELECEND,'RIM_BU_RSV') END IF ! DEALLOCATE(GRIM) @@ -3247,24 +3247,24 @@ IMPLICIT NONE DEALLOCATE(GACC) IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:), & - 4,'ACC_BU_RTH') + NBUDGET_TH,'ACC_BU_RTH') IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(ZRRS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 8,'ACC_BU_RRR') + NBUDGET_RR,'ACC_BU_RRR') IF (LBUDGET_RS) CALL BUDGET ( & UNPACK(ZRSS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 10,'ACC_BU_RRS') + NBUDGET_RS,'ACC_BU_RRS') IF (LBUDGET_RG) CALL BUDGET ( & UNPACK(ZRGS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 11,'ACC_BU_RRG') + NBUDGET_RG,'ACC_BU_RRG') ! IF (LBUDGET_SV) THEN CALL BUDGET (UNPACK(ZQRS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+2,'ACC_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+2,'ACC_BU_RSV') CALL BUDGET (UNPACK(ZQSS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+4,'ACC_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+4,'ACC_BU_RSV') CALL BUDGET (UNPACK(ZQGS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECEND,'ACC_BU_RSV') + NBUDGET_SV1-1+NSV_ELECEND,'ACC_BU_RSV') END IF ! !* 5.3 Conversion-Melting of the aggregates: RSMLT & QSMLT @@ -3303,16 +3303,16 @@ IMPLICIT NONE ! IF (LBUDGET_RS) CALL BUDGET ( & UNPACK(ZRSS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 10,'CMEL_BU_RRS') + NBUDGET_RS,'CMEL_BU_RRS') IF (LBUDGET_RG) CALL BUDGET ( & UNPACK(ZRGS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 11,'CMEL_BU_RRG') + NBUDGET_RG,'CMEL_BU_RRG') ! IF (LBUDGET_SV) THEN CALL BUDGET (UNPACK(ZQSS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+4,'CMEL_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+4,'CMEL_BU_RSV') CALL BUDGET (UNPACK(ZQGS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECEND,'CMEL_BU_RSV') + NBUDGET_SV1-1+NSV_ELECEND,'CMEL_BU_RSV') END IF ! END SUBROUTINE RAIN_ICE_ELEC_FAST_RS @@ -3368,24 +3368,24 @@ IMPLICIT NONE ! IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:), & - 4,'CFRZ_BU_RTH') + NBUDGET_TH,'CFRZ_BU_RTH') IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(ZRRS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 8,'CFRZ_BU_RRR') + NBUDGET_RR,'CFRZ_BU_RRR') IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(ZRIS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 9,'CFRZ_BU_RRI') + NBUDGET_RI,'CFRZ_BU_RRI') IF (LBUDGET_RG) CALL BUDGET ( & UNPACK(ZRGS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 11,'CFRZ_BU_RRG') + NBUDGET_RG,'CFRZ_BU_RRG') ! IF (LBU_RSV) THEN CALL BUDGET (UNPACK(ZQRS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+2,'CFRZ_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+2,'CFRZ_BU_RSV') CALL BUDGET (UNPACK(ZQIS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+3,'CFRZ_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+3,'CFRZ_BU_RSV') CALL BUDGET (UNPACK(ZQGS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECEND,'CFRZ_BU_RSV') + NBUDGET_SV1-1+NSV_ELECEND,'CFRZ_BU_RSV') END IF ! ! @@ -3751,39 +3751,39 @@ IMPLICIT NONE ! IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:), & - 4,'WETG_BU_RTH') + NBUDGET_TH,'WETG_BU_RTH') IF (LBUDGET_RC) CALL BUDGET ( & UNPACK(ZRCS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 7,'WETG_BU_RRC') + NBUDGET_RC,'WETG_BU_RRC') IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(ZRRS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 8,'WETG_BU_RRR') + NBUDGET_RR,'WETG_BU_RRR') IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(ZRIS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 9,'WETG_BU_RRI') + NBUDGET_RI,'WETG_BU_RRI') IF (LBUDGET_RS) CALL BUDGET ( & UNPACK(ZRSS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 10,'WETG_BU_RRS') + NBUDGET_RS,'WETG_BU_RRS') IF (LBUDGET_RG) CALL BUDGET ( & UNPACK(ZRGS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 11,'WETG_BU_RRG') + NBUDGET_RG,'WETG_BU_RRG') IF ( KRR == 7 ) THEN IF (LBUDGET_RH) CALL BUDGET ( & UNPACK(ZRHS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 12,'WETG_BU_RRH') + NBUDGET_RH,'WETG_BU_RRH') END IF ! IF (LBU_RSV) THEN CALL BUDGET (UNPACK(ZQCS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+1,'WETG_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+1,'WETG_BU_RSV') CALL BUDGET (UNPACK(ZQRS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+2,'WETG_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+2,'WETG_BU_RSV') CALL BUDGET (UNPACK(ZQIS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+3,'WETG_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+3,'WETG_BU_RSV') CALL BUDGET (UNPACK(ZQSS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+4,'WETG_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+4,'WETG_BU_RSV') CALL BUDGET (UNPACK(ZQGS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECEND,'WETG_BU_RSV') + NBUDGET_SV1-1+NSV_ELECEND,'WETG_BU_RSV') END IF ! WHERE (ZRGT(:) > XRTMIN(6) .AND. ZZT(:) < XTT .AND. & ! Dry @@ -3806,34 +3806,34 @@ IMPLICIT NONE ! IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:), & - 4,'DRYG_BU_RTH') + NBUDGET_TH,'DRYG_BU_RTH') IF (LBUDGET_RC) CALL BUDGET ( & UNPACK(ZRCS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 7,'DRYG_BU_RRC') + NBUDGET_RC,'DRYG_BU_RRC') IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(ZRRS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 8,'DRYG_BU_RRR') + NBUDGET_RR,'DRYG_BU_RRR') IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(ZRIS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 9,'DRYG_BU_RRI') + NBUDGET_RI,'DRYG_BU_RRI') IF (LBUDGET_RS) CALL BUDGET ( & UNPACK(ZRSS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 10,'DRYG_BU_RRS') + NBUDGET_RS,'DRYG_BU_RRS') IF (LBUDGET_RG) CALL BUDGET ( & UNPACK(ZRGS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 11,'DRYG_BU_RRG') + NBUDGET_RG,'DRYG_BU_RRG') ! IF (LBUDGET_SV) THEN CALL BUDGET (UNPACK(ZQCS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+1,'DRYG_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+1,'DRYG_BU_RSV') CALL BUDGET (UNPACK(ZQRS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+2,'DRYG_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+2,'DRYG_BU_RSV') CALL BUDGET (UNPACK(ZQIS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+3,'DRYG_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+3,'DRYG_BU_RSV') CALL BUDGET (UNPACK(ZQSS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+4,'DRYG_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+4,'DRYG_BU_RSV') CALL BUDGET (UNPACK(ZQGS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECEND,'DRYG_BU_RSV') + NBUDGET_SV1-1+NSV_ELECEND,'DRYG_BU_RSV') END IF ! ! @@ -3853,9 +3853,9 @@ IMPLICIT NONE ! IF (LBUDGET_SV) THEN CALL BUDGET (UNPACK(ZQCS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+1,'INCG_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+1,'INCG_BU_RSV') CALL BUDGET (UNPACK(ZQGS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECEND,'INCG_BU_RSV') + NBUDGET_SV1-1+NSV_ELECEND,'INCG_BU_RSV') END IF ! ! @@ -3892,19 +3892,19 @@ IMPLICIT NONE ! IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:),& - 4,'GMLT_BU_RTH') + NBUDGET_TH,'GMLT_BU_RTH') IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(ZRRS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 8,'GMLT_BU_RRR') + NBUDGET_RR,'GMLT_BU_RRR') IF (LBUDGET_RG) CALL BUDGET ( & UNPACK(ZRGS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 11,'GMLT_BU_RRG') + NBUDGET_RG,'GMLT_BU_RRG') ! IF (LBUDGET_SV) THEN CALL BUDGET (UNPACK(ZQRS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+2,'GMLT_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+2,'GMLT_BU_RSV') CALL BUDGET (UNPACK(ZQGS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECEND,'GMLT_BU_RSV') + NBUDGET_SV1-1+NSV_ELECEND,'GMLT_BU_RSV') END IF ! END SUBROUTINE RAIN_ICE_ELEC_FAST_RG @@ -4133,25 +4133,25 @@ IMPLICIT NONE IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:),& - 4,'WETH_BU_RTH') + NBUDGET_TH,'WETH_BU_RTH') IF (LBUDGET_RC) CALL BUDGET ( & UNPACK(ZRCS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 7,'WETH_BU_RRC') + NBUDGET_RC,'WETH_BU_RRC') IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(ZRRS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 8,'WETH_BU_RRR') + NBUDGET_RR,'WETH_BU_RRR') IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(ZRIS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 9,'WETH_BU_RRI') + NBUDGET_RI,'WETH_BU_RRI') IF (LBUDGET_RS) CALL BUDGET ( & UNPACK(ZRSS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 10,'WETH_BU_RRS') + NBUDGET_RS,'WETH_BU_RRS') IF (LBUDGET_RG) CALL BUDGET ( & UNPACK(ZRGS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 11,'WETH_BU_RRG') + NBUDGET_RG,'WETH_BU_RRG') IF (LBUDGET_RH) CALL BUDGET ( & UNPACK(ZRHS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 12,'WETH_BU_RRH') + NBUDGET_RH,'WETH_BU_RRH') ! IF (IHAIL > 0) THEN ! @@ -4192,13 +4192,13 @@ IMPLICIT NONE ! IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:),& - 4,'HMLT_BU_RTH') + NBUDGET_TH,'HMLT_BU_RTH') IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(ZRRS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 8,'HMLT_BU_RRR') + NBUDGET_RR,'HMLT_BU_RRR') IF (LBUDGET_RH) CALL BUDGET ( & UNPACK(ZRHS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 12,'HMLT_BU_RRH') + NBUDGET_RH,'HMLT_BU_RRH') ! END SUBROUTINE RAIN_ICE_ELEC_FAST_RH ! @@ -4230,19 +4230,19 @@ IMPLICIT NONE ! IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:), & - 4,'IMLT_BU_RTH') + NBUDGET_TH,'IMLT_BU_RTH') IF (LBUDGET_RC) CALL BUDGET ( & UNPACK(ZRCS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 7,'IMLT_BU_RRC') + NBUDGET_RC,'IMLT_BU_RRC') IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(ZRIS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 9,'IMLT_BU_RRI') + NBUDGET_RI,'IMLT_BU_RRI') ! IF (LBUDGET_SV) THEN CALL BUDGET (UNPACK(ZQCS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+1,'IMLT_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+1,'IMLT_BU_RSV') CALL BUDGET (UNPACK(ZQIS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+3,'IMLT_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+3,'IMLT_BU_RSV') END IF ! !* 7.2 Bergeron-Findeisen effect: RCBERI @@ -4272,19 +4272,19 @@ IMPLICIT NONE ! IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(ZTHS(:),MASK=GMICRO(:,:,:),FIELD=PTHS)*PRHODJ(:,:,:), & - 4,'BERFI_BU_RTH') + NBUDGET_TH,'BERFI_BU_RTH') IF (LBUDGET_RC) CALL BUDGET ( & UNPACK(ZRCS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 7,'BERFI_BU_RRC') + NBUDGET_RC,'BERFI_BU_RRC') IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(ZRIS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), & - 9,'BERFI_BU_RRI') + NBUDGET_RI,'BERFI_BU_RRI') ! IF (LBUDGET_SV) THEN CALL BUDGET (UNPACK(ZQCS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+1,'BERFI_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+1,'BERFI_BU_RSV') CALL BUDGET (UNPACK(ZQIS(:)*ZRHODJ(:), MASK=GMICRO(:,:,:), FIELD=0.0), & - 12+NSV_ELECBEG+3,'BERFI_BU_RSV') + NBUDGET_SV1-1+NSV_ELECBEG+3,'BERFI_BU_RSV') END IF ! END SUBROUTINE RAIN_ICE_ELEC_FAST_RI diff --git a/src/MNH/rain_ice_fast_rg.f90 b/src/MNH/rain_ice_fast_rg.f90 index 7c2b0aeb7..33a65180b 100644 --- a/src/MNH/rain_ice_fast_rg.f90 +++ b/src/MNH/rain_ice_fast_rg.f90 @@ -28,7 +28,8 @@ SUBROUTINE RAIN_ICE_FAST_RG(KRR, OMICRO, PRHODREF, PRVT, PRCT, PRRT, PRIT, PRST, !* 0. DECLARATIONS ! ------------ ! -use MODD_BUDGET, only: LBUDGET_RC, LBUDGET_RG, LBUDGET_RH, LBUDGET_RI, LBUDGET_RR, LBUDGET_RS, LBUDGET_TH +use MODD_BUDGET, only: LBUDGET_TH, LBUDGET_RC, LBUDGET_RR, LBUDGET_RI, LBUDGET_RS, LBUDGET_RG, LBUDGET_RH, & + NBUDGET_TH, NBUDGET_RC, NBUDGET_RR, NBUDGET_RI, NBUDGET_RS, NBUDGET_RG, NBUDGET_RH use MODD_CST, only: XCI, XCL, XCPV, XESTT, XLMTT, XLVTT, XMD, XMV, XRV, XTT use MODD_RAIN_ICE_DESCR, only: XBS, XCEXVT, XCXG, XCXS, XDG, XRTMIN use MODD_RAIN_ICE_PARAM, only: NDRYLBDAG, NDRYLBDAR, NDRYLBDAS, X0DEPG, X1DEPG, XCOLEXIG, XCOLEXSG, XCOLIG, XCOLSG, XDRYINTP1G, & @@ -106,16 +107,16 @@ REAL, DIMENSION(size(PRHODREF),7) :: ZZW1 ! Work arrays END WHERE IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(PTHS(:),MASK=OMICRO(:,:,:),FIELD=PTHS3D)*PRHODJ3D(:,:,:), & - 4,'CFRZ_BU_RTH') + NBUDGET_TH,'CFRZ_BU_RTH') IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(PRRS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 8,'CFRZ_BU_RRR') + NBUDGET_RR,'CFRZ_BU_RRR') IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(PRIS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 9,'CFRZ_BU_RRI') + NBUDGET_RI,'CFRZ_BU_RRI') IF (LBUDGET_RG) CALL BUDGET ( & UNPACK(PRGS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 11,'CFRZ_BU_RRG') + NBUDGET_RG,'CFRZ_BU_RRG') ! !* 6.2 compute the Dry growth case ! @@ -346,26 +347,26 @@ REAL, DIMENSION(size(PRHODREF),7) :: ZZW1 ! Work arrays END IF IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(PTHS(:),MASK=OMICRO(:,:,:),FIELD=PTHS3D)*PRHODJ3D(:,:,:), & - 4,'WETG_BU_RTH') + NBUDGET_TH,'WETG_BU_RTH') IF (LBUDGET_RC) CALL BUDGET ( & UNPACK(PRCS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 7,'WETG_BU_RRC') + NBUDGET_RC,'WETG_BU_RRC') IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(PRRS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 8,'WETG_BU_RRR') + NBUDGET_RR,'WETG_BU_RRR') IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(PRIS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 9,'WETG_BU_RRI') + NBUDGET_RI,'WETG_BU_RRI') IF (LBUDGET_RS) CALL BUDGET ( & UNPACK(PRSS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 10,'WETG_BU_RRS') + NBUDGET_RS,'WETG_BU_RRS') IF (LBUDGET_RG) CALL BUDGET ( & UNPACK(PRGS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 11,'WETG_BU_RRG') + NBUDGET_RG,'WETG_BU_RRG') IF ( KRR == 7 ) THEN - IF (LBUDGET_RH) CALL BUDGET ( & + IF (LBUDGET_RH) CALL BUDGET ( & UNPACK(PRHS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 12,'WETG_BU_RRH') + NBUDGET_RH,'WETG_BU_RRH') END IF ! @@ -382,22 +383,22 @@ REAL, DIMENSION(size(PRHODREF),7) :: ZZW1 ! Work arrays END WHERE IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(PTHS(:),MASK=OMICRO(:,:,:),FIELD=PTHS3D)*PRHODJ3D(:,:,:), & - 4,'DRYG_BU_RTH') + NBUDGET_TH,'DRYG_BU_RTH') IF (LBUDGET_RC) CALL BUDGET ( & UNPACK(PRCS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 7,'DRYG_BU_RRC') + NBUDGET_RC,'DRYG_BU_RRC') IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(PRRS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 8,'DRYG_BU_RRR') + NBUDGET_RR,'DRYG_BU_RRR') IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(PRIS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 9,'DRYG_BU_RRI') + NBUDGET_RI,'DRYG_BU_RRI') IF (LBUDGET_RS) CALL BUDGET ( & UNPACK(PRSS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 10,'DRYG_BU_RRS') + NBUDGET_RS,'DRYG_BU_RRS') IF (LBUDGET_RG) CALL BUDGET ( & UNPACK(PRGS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 11,'DRYG_BU_RRG') + NBUDGET_RG,'DRYG_BU_RRG') ! ! WHERE ( PZT(:) > XTT ) ! RSWETG case only ! PRSS(:) = PRSS(:) - ZZW1(:,6) @@ -426,13 +427,13 @@ REAL, DIMENSION(size(PRHODREF),7) :: ZZW1 ! Work arrays END WHERE IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(PTHS(:),MASK=OMICRO(:,:,:),FIELD=PTHS3D)*PRHODJ3D(:,:,:), & - 4,'GMLT_BU_RTH') + NBUDGET_TH,'GMLT_BU_RTH') IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(PRRS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 8,'GMLT_BU_RRR') + NBUDGET_RR,'GMLT_BU_RRR') IF (LBUDGET_RG) CALL BUDGET ( & UNPACK(PRGS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 11,'GMLT_BU_RRG') + NBUDGET_RG,'GMLT_BU_RRG') ! END SUBROUTINE RAIN_ICE_FAST_RG diff --git a/src/MNH/rain_ice_fast_rh.f90 b/src/MNH/rain_ice_fast_rh.f90 index cedf7ceb4..5b83463e8 100644 --- a/src/MNH/rain_ice_fast_rh.f90 +++ b/src/MNH/rain_ice_fast_rh.f90 @@ -26,7 +26,8 @@ SUBROUTINE RAIN_ICE_FAST_RH(OMICRO, PRHODREF, PRVT, PRCT, PRIT, PRST, PRGT, PRHT !* 0. DECLARATIONS ! ------------ ! -use MODD_BUDGET, only: LBUDGET_RC, LBUDGET_RG, LBUDGET_RH, LBUDGET_RI, LBUDGET_RR, LBUDGET_RS, LBUDGET_TH +use MODD_BUDGET, only: LBUDGET_TH, LBUDGET_RC, LBUDGET_RR, LBUDGET_RI, LBUDGET_RS, LBUDGET_RG, LBUDGET_RH, & + NBUDGET_TH, NBUDGET_RC, NBUDGET_RR, NBUDGET_RI, NBUDGET_RS, NBUDGET_RG, NBUDGET_RH use MODD_CST, only: XCI, XCL, XCPV, XESTT, XLMTT, XLVTT, XMD, XMV, XRV, XTT use MODD_RAIN_ICE_DESCR, only: XBG, XBS, XCEXVT, XCXG, XCXH, XCXS, XDH, XLBEXH, XLBH, XRTMIN use MODD_RAIN_ICE_PARAM, only: NWETLBDAG, NWETLBDAH, NWETLBDAS, X0DEPH, X1DEPH, & @@ -302,25 +303,25 @@ REAL, DIMENSION(size(PRHODREF),6) :: ZZW1 ! Work arrays END IF IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(PTHS(:),MASK=OMICRO(:,:,:),FIELD=PTHS3D)*PRHODJ3D(:,:,:),& - 4,'WETH_BU_RTH') + NBUDGET_TH,'WETH_BU_RTH') IF (LBUDGET_RC) CALL BUDGET ( & UNPACK(PRCS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 7,'WETH_BU_RRC') + NBUDGET_RC,'WETH_BU_RRC') IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(PRRS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 8,'WETH_BU_RRR') + NBUDGET_RR,'WETH_BU_RRR') IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(PRIS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 9,'WETH_BU_RRI') + NBUDGET_RI,'WETH_BU_RRI') IF (LBUDGET_RS) CALL BUDGET ( & UNPACK(PRSS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 10,'WETH_BU_RRS') + NBUDGET_RS,'WETH_BU_RRS') IF (LBUDGET_RG) CALL BUDGET ( & UNPACK(PRGS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 11,'WETH_BU_RRG') + NBUDGET_RG,'WETH_BU_RRG') IF (LBUDGET_RH) CALL BUDGET ( & UNPACK(PRHS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 12,'WETH_BU_RRH') + NBUDGET_RH,'WETH_BU_RRH') ! ! ! ici LRECONVH et un flag pour autoriser une reconversion partielle de @@ -377,13 +378,13 @@ REAL, DIMENSION(size(PRHODREF),6) :: ZZW1 ! Work arrays IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(PTHS(:),MASK=OMICRO(:,:,:),FIELD=PTHS3D)*PRHODJ3D(:,:,:),& - 4,'HMLT_BU_RTH') + NBUDGET_TH,'HMLT_BU_RTH') IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(PRRS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 8,'HMLT_BU_RRR') + NBUDGET_RR,'HMLT_BU_RRR') IF (LBUDGET_RH) CALL BUDGET ( & UNPACK(PRHS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 12,'HMLT_BU_RRH') + NBUDGET_RH,'HMLT_BU_RRH') ! END SUBROUTINE RAIN_ICE_FAST_RH diff --git a/src/MNH/rain_ice_fast_ri.f90 b/src/MNH/rain_ice_fast_ri.f90 index 782f79c9e..67b9c2331 100644 --- a/src/MNH/rain_ice_fast_ri.f90 +++ b/src/MNH/rain_ice_fast_ri.f90 @@ -23,7 +23,8 @@ SUBROUTINE RAIN_ICE_FAST_RI(OMICRO, PRHODREF, PRIT, PRHODJ, PZT, PSSI, PLSFACT, !* 0. DECLARATIONS ! ------------ ! -use MODD_BUDGET, only: LBUDGET_RC, LBUDGET_RI, LBUDGET_TH +use MODD_BUDGET, only: LBUDGET_TH, LBUDGET_RC, LBUDGET_RI, & + NBUDGET_TH, NBUDGET_RC, NBUDGET_RI use MODD_CST, only: XTT use MODD_RAIN_ICE_DESCR, only: XDI, XLBEXI, XLBI, XRTMIN use MODD_RAIN_ICE_PARAM, only: X0DEPI, X2DEPI @@ -66,13 +67,13 @@ REAL, DIMENSION(size(PRHODREF)) :: ZZW ! Work array END WHERE IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(PTHS(:),MASK=OMICRO(:,:,:),FIELD=PTHS3D)*PRHODJ3D(:,:,:), & - 4,'IMLT_BU_RTH') + NBUDGET_TH,'IMLT_BU_RTH') IF (LBUDGET_RC) CALL BUDGET ( & UNPACK(PRCS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 7,'IMLT_BU_RRC') + NBUDGET_RC,'IMLT_BU_RRC') IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(PRIS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 9,'IMLT_BU_RRI') + NBUDGET_RI,'IMLT_BU_RRI') ! !* 7.2 Bergeron-Findeisen effect: RCBERI ! @@ -86,13 +87,13 @@ REAL, DIMENSION(size(PRHODREF)) :: ZZW ! Work array END WHERE IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(PTHS(:),MASK=OMICRO(:,:,:),FIELD=PTHS3D)*PRHODJ3D(:,:,:), & - 4,'BERFI_BU_RTH') + NBUDGET_TH,'BERFI_BU_RTH') IF (LBUDGET_RC) CALL BUDGET ( & UNPACK(PRCS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 7,'BERFI_BU_RRC') + NBUDGET_RC,'BERFI_BU_RRC') IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(PRIS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 9,'BERFI_BU_RRI') + NBUDGET_RI,'BERFI_BU_RRI') ! END SUBROUTINE RAIN_ICE_FAST_RI diff --git a/src/MNH/rain_ice_fast_rs.f90 b/src/MNH/rain_ice_fast_rs.f90 index 5f5f9713e..49d7cec95 100644 --- a/src/MNH/rain_ice_fast_rs.f90 +++ b/src/MNH/rain_ice_fast_rs.f90 @@ -26,7 +26,8 @@ SUBROUTINE RAIN_ICE_FAST_RS(PTSTEP, OMICRO, PRHODREF, PRVT, PRCT, PRRT, PRST, PR !* 0. DECLARATIONS ! ------------ ! -use MODD_BUDGET, only: LBUDGET_RC, LBUDGET_RG, LBUDGET_RR, LBUDGET_RS, LBUDGET_TH +use MODD_BUDGET, only: LBUDGET_TH, LBUDGET_RC, LBUDGET_RR, LBUDGET_RS, LBUDGET_RG, & + NBUDGET_TH, NBUDGET_RC, NBUDGET_RR, NBUDGET_RS, NBUDGET_RG use MODD_CST, only: XCL, XCPV, XESTT, XLMTT, XLVTT, XMD, XMV, XRV, XTT use MODD_RAIN_ICE_DESCR, only: XBS, XCEXVT, XCXS, XRTMIN use MODD_RAIN_ICE_PARAM, only: NACCLBDAR, NACCLBDAS, NGAMINC, X0DEPS, X1DEPS, XACCINTP1R, XACCINTP1S, XACCINTP2R, XACCINTP2S, & @@ -169,16 +170,16 @@ REAL, DIMENSION(:), ALLOCATABLE :: ZZW1, ZZW2, ZZW3, ZZW4 ! Work arrays END IF IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(PTHS(:),MASK=OMICRO(:,:,:),FIELD=PTHS3D)*PRHODJ3D(:,:,:), & - 4,'RIM_BU_RTH') + NBUDGET_TH,'RIM_BU_RTH') IF (LBUDGET_RC) CALL BUDGET ( & UNPACK(PRCS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 7,'RIM_BU_RRC') + NBUDGET_RC,'RIM_BU_RRC') IF (LBUDGET_RS) CALL BUDGET ( & UNPACK(PRSS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 10,'RIM_BU_RRS') + NBUDGET_RS,'RIM_BU_RRS') IF (LBUDGET_RG) CALL BUDGET ( & UNPACK(PRGS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 11,'RIM_BU_RRG') + NBUDGET_RG,'RIM_BU_RRG') ! !* 5.2 rain accretion onto the aggregates ! @@ -312,16 +313,16 @@ REAL, DIMENSION(:), ALLOCATABLE :: ZZW1, ZZW2, ZZW3, ZZW4 ! Work arrays END IF IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(PTHS(:),MASK=OMICRO(:,:,:),FIELD=PTHS3D)*PRHODJ3D(:,:,:), & - 4,'ACC_BU_RTH') + NBUDGET_TH,'ACC_BU_RTH') IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(PRRS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 8,'ACC_BU_RRR') + NBUDGET_RR,'ACC_BU_RRR') IF (LBUDGET_RS) CALL BUDGET ( & UNPACK(PRSS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 10,'ACC_BU_RRS') + NBUDGET_RS,'ACC_BU_RRS') IF (LBUDGET_RG) CALL BUDGET ( & UNPACK(PRGS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 11,'ACC_BU_RRG') + NBUDGET_RG,'ACC_BU_RRG') ! !* 5.3 Conversion-Melting of the aggregates ! @@ -346,10 +347,10 @@ REAL, DIMENSION(:), ALLOCATABLE :: ZZW1, ZZW2, ZZW3, ZZW4 ! Work arrays END WHERE IF (LBUDGET_RS) CALL BUDGET ( & UNPACK(PRSS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 10,'CMEL_BU_RRS') + NBUDGET_RS,'CMEL_BU_RRS') IF (LBUDGET_RG) CALL BUDGET ( & UNPACK(PRGS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 11,'CMEL_BU_RRG') + NBUDGET_RG,'CMEL_BU_RRG') ! END SUBROUTINE RAIN_ICE_FAST_RS diff --git a/src/MNH/rain_ice_nucleation.f90 b/src/MNH/rain_ice_nucleation.f90 index 959c7bb0d..bcc4e79fd 100644 --- a/src/MNH/rain_ice_nucleation.f90 +++ b/src/MNH/rain_ice_nucleation.f90 @@ -25,7 +25,8 @@ SUBROUTINE RAIN_ICE_NUCLEATION(KIB, KIE, KJB, KJE, KKTB, KKTE,KRR,PTSTEP,& !* 0. DECLARATIONS ! ------------ ! -use MODD_BUDGET, only: LBUDGET_RI, LBUDGET_RV, LBUDGET_TH +use MODD_BUDGET, only: LBUDGET_RI, LBUDGET_RV, LBUDGET_TH, & + NBUDGET_TH, NBUDGET_RV, NBUDGET_RI use MODD_CST, only: XALPI, XALPW, XBETAI, XBETAW, XCI, XCL, XCPD, XCPV, XGAMI, XGAMW, & XLSTT, XMD, XMV, XP00, XRD, XTT use MODD_RAIN_ICE_PARAM, only: XALPHA1, XALPHA2, XBETA1, XBETA2, XMNU0, XNU10, XNU20 @@ -166,9 +167,9 @@ END IF ! !* 3.1.3 budget storage ! -IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'HENU_BU_RTH') -IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:)*PRHODJ(:,:,:),6,'HENU_BU_RRV') -IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9,'HENU_BU_RRI') +IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'HENU_BU_RTH') +IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RV,'HENU_BU_RRV') +IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RI,'HENU_BU_RRI') ! END SUBROUTINE RAIN_ICE_NUCLEATION diff --git a/src/MNH/rain_ice_red.f90 b/src/MNH/rain_ice_red.f90 index 321d59013..22b85cbcc 100644 --- a/src/MNH/rain_ice_red.f90 +++ b/src/MNH/rain_ice_red.f90 @@ -246,7 +246,9 @@ END MODULE MODI_RAIN_ICE_RED !* 0. DECLARATIONS ! ------------ ! -USE MODD_BUDGET, ONLY: LBU_ENABLE,LBUDGET_RC,LBUDGET_RR,LBUDGET_RI,LBUDGET_RS,LBUDGET_RG,LBUDGET_RH,LBUDGET_RV,LBUDGET_TH +USE MODD_BUDGET, ONLY: LBU_ENABLE, & + LBUDGET_TH, LBUDGET_RV, LBUDGET_RC, LBUDGET_RR, LBUDGET_RI, LBUDGET_RS, LBUDGET_RG, LBUDGET_RH, & + NBUDGET_TH, NBUDGET_RV, NBUDGET_RC, NBUDGET_RR, NBUDGET_RI, NBUDGET_RS, NBUDGET_RG, NBUDGET_RH USE MODD_CST, ONLY: XCI,XCL,XCPD,XCPV,XLSTT,XLVTT,XTT USE MODD_PARAMETERS, ONLY: JPVEXT,XUNDEF USE MODD_PARAM_ICE, ONLY: CSUBG_PR_PDF,CSUBG_RC_RR_ACCR,CSUBG_RR_EVAP,LDEPOSC,LFEEDBACKT,LSEDIM_AFTER, & @@ -588,15 +590,15 @@ IF(.NOT. LSEDIM_AFTER) THEN !* 2.2 budget storage ! IF (LBUDGET_RC .AND. OSEDIC) & - CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:), 7 , 'SEDI_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:), 8 , 'SEDI_BU_RRR') - IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:), 9 , 'SEDI_BU_RRI') - IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:), 10, 'SEDI_BU_RRS') - IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:), 11, 'SEDI_BU_RRG') + CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC, 'SEDI_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR, 'SEDI_BU_RRR') + IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RI, 'SEDI_BU_RRI') + IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RS, 'SEDI_BU_RRS') + IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RG, 'SEDI_BU_RRG') IF ( KRR == 7 .AND. LBUDGET_RH) & - CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:), 12, 'SEDI_BU_RRH') + CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RH, 'SEDI_BU_RRH') IF ( LBUDGET_RC .AND. LDEPOSC ) & - CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7 ,'DEPO_BU_RRC') + CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC,'DEPO_BU_RRC') ENDIF ! !------------------------------------------------------------------------------- @@ -1124,9 +1126,9 @@ IF(LBU_ENABLE) THEN PRIS(:,:,:) = PRIS(:,:,:) + ZW(:,:,:) PRVS(:,:,:) = PRVS(:,:,:) - ZW(:,:,:) PTHS(:,:,:) = PTHS(:,:,:) + ZW(:,:,:)*ZZ_LSFACT(:,:,:) - IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), 4, 'HENU_BU_RTH') - IF (LBUDGET_RV) CALL BUDGET(PRVS(:,:,:)*PRHODJ(:,:,:), 6, 'HENU_BU_RRV') - IF (LBUDGET_RI) CALL BUDGET(PRIS(:,:,:)*PRHODJ(:,:,:), 9, 'HENU_BU_RRI') + IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH, 'HENU_BU_RTH') + IF (LBUDGET_RV) CALL BUDGET(PRVS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RV, 'HENU_BU_RRV') + IF (LBUDGET_RI) CALL BUDGET(PRIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RI, 'HENU_BU_RRI') ZW(:,:,:) = 0. DO JL=1,IMICRO @@ -1135,9 +1137,9 @@ IF(LBU_ENABLE) THEN PRIS(:,:,:) = PRIS(:,:,:) + ZW(:,:,:) PRCS(:,:,:) = PRCS(:,:,:) - ZW(:,:,:) PTHS(:,:,:) = PTHS(:,:,:) + ZW(:,:,:)*(ZZ_LSFACT(:,:,:)-ZZ_LVFACT(:,:,:)) - IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), 4, 'HON_BU_RTH') - IF (LBUDGET_RC) CALL BUDGET(PRCS(:,:,:)*PRHODJ(:,:,:), 7, 'HON_BU_RRC') - IF (LBUDGET_RI) CALL BUDGET(PRIS(:,:,:)*PRHODJ(:,:,:), 9, 'HON_BU_RRI') + IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH, 'HON_BU_RTH') + IF (LBUDGET_RC) CALL BUDGET(PRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC, 'HON_BU_RRC') + IF (LBUDGET_RI) CALL BUDGET(PRIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RI, 'HON_BU_RRI') ZW(:,:,:) = 0. DO JL=1,IMICRO @@ -1146,9 +1148,9 @@ IF(LBU_ENABLE) THEN PRGS(:,:,:) = PRGS(:,:,:) + ZW(:,:,:) PRRS(:,:,:) = PRRS(:,:,:) - ZW(:,:,:) PTHS(:,:,:) = PTHS(:,:,:) + ZW(:,:,:)*(ZZ_LSFACT(:,:,:)-ZZ_LVFACT(:,:,:)) - IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), 4, 'SFR_BU_RTH') - IF (LBUDGET_RR) CALL BUDGET(PRRS(:,:,:)*PRHODJ(:,:,:), 8, 'SFR_BU_RRR') - IF (LBUDGET_RG) CALL BUDGET(PRGS(:,:,:)*PRHODJ(:,:,:), 11,'SFR_BU_RRG') + IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH, 'SFR_BU_RTH') + IF (LBUDGET_RR) CALL BUDGET(PRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR, 'SFR_BU_RRR') + IF (LBUDGET_RG) CALL BUDGET(PRGS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RG,'SFR_BU_RRG') ZW(:,:,:) = 0. DO JL=1,IMICRO @@ -1157,9 +1159,9 @@ IF(LBU_ENABLE) THEN PRSS(:,:,:) = PRSS(:,:,:) + ZW(:,:,:) PRVS(:,:,:) = PRVS(:,:,:) - ZW(:,:,:) PTHS(:,:,:) = PTHS(:,:,:) + ZW(:,:,:)*ZZ_LSFACT(:,:,:) - IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), 4, 'DEPS_BU_RTH') - IF (LBUDGET_RV) CALL BUDGET(PRVS(:,:,:)*PRHODJ(:,:,:), 6, 'DEPS_BU_RRV') - IF (LBUDGET_RS) CALL BUDGET(PRSS(:,:,:)*PRHODJ(:,:,:), 10,'DEPS_BU_RRS') + IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH, 'DEPS_BU_RTH') + IF (LBUDGET_RV) CALL BUDGET(PRVS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RV, 'DEPS_BU_RRV') + IF (LBUDGET_RS) CALL BUDGET(PRSS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RS,'DEPS_BU_RRS') ZW(:,:,:) = 0. DO JL=1,IMICRO @@ -1167,8 +1169,8 @@ IF(LBU_ENABLE) THEN END DO PRSS(:,:,:) = PRSS(:,:,:) + ZW(:,:,:) PRIS(:,:,:) = PRIS(:,:,:) - ZW(:,:,:) - IF (LBUDGET_RI) CALL BUDGET(PRIS(:,:,:)*PRHODJ(:,:,:), 9, 'AGGS_BU_RRI') - IF (LBUDGET_RS) CALL BUDGET(PRSS(:,:,:)*PRHODJ(:,:,:), 10,'AGGS_BU_RRS') + IF (LBUDGET_RI) CALL BUDGET(PRIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RI, 'AGGS_BU_RRI') + IF (LBUDGET_RS) CALL BUDGET(PRSS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RS,'AGGS_BU_RRS') ZW(:,:,:) = 0. DO JL=1,IMICRO @@ -1176,8 +1178,8 @@ IF(LBU_ENABLE) THEN END DO PRSS(:,:,:) = PRSS(:,:,:) + ZW(:,:,:) PRIS(:,:,:) = PRIS(:,:,:) - ZW(:,:,:) - IF (LBUDGET_RI) CALL BUDGET(PRIS(:,:,:)*PRHODJ(:,:,:), 9, 'AUTS_BU_RRI') - IF (LBUDGET_RS) CALL BUDGET(PRSS(:,:,:)*PRHODJ(:,:,:), 10,'AUTS_BU_RRS') + IF (LBUDGET_RI) CALL BUDGET(PRIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RI, 'AUTS_BU_RRI') + IF (LBUDGET_RS) CALL BUDGET(PRSS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RS,'AUTS_BU_RRS') ZW(:,:,:) = 0. DO JL=1,IMICRO @@ -1186,9 +1188,9 @@ IF(LBU_ENABLE) THEN PRGS(:,:,:) = PRGS(:,:,:) + ZW(:,:,:) PRVS(:,:,:) = PRVS(:,:,:) - ZW(:,:,:) PTHS(:,:,:) = PTHS(:,:,:) + ZW(:,:,:)*ZZ_LSFACT(:,:,:) - IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), 4, 'DEPG_BU_RTH') - IF (LBUDGET_RV) CALL BUDGET(PRVS(:,:,:)*PRHODJ(:,:,:), 6, 'DEPG_BU_RRV') - IF (LBUDGET_RG) CALL BUDGET(PRGS(:,:,:)*PRHODJ(:,:,:), 11,'DEPG_BU_RRG') + IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH, 'DEPG_BU_RTH') + IF (LBUDGET_RV) CALL BUDGET(PRVS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RV, 'DEPG_BU_RRV') + IF (LBUDGET_RG) CALL BUDGET(PRGS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RG,'DEPG_BU_RRG') IF(OWARM) THEN ZW(:,:,:) = 0. @@ -1197,8 +1199,8 @@ IF(LBU_ENABLE) THEN END DO PRCS(:,:,:) = PRCS(:,:,:) - ZW(:,:,:) PRRS(:,:,:) = PRRS(:,:,:) + ZW(:,:,:) - IF (LBUDGET_RC) CALL BUDGET(PRCS(:,:,:)*PRHODJ(:,:,:), 7, 'AUTO_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET(PRRS(:,:,:)*PRHODJ(:,:,:), 8, 'AUTO_BU_RRR') + IF (LBUDGET_RC) CALL BUDGET(PRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC, 'AUTO_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET(PRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR, 'AUTO_BU_RRR') ZW(:,:,:) = 0. DO JL=1,IMICRO @@ -1206,8 +1208,8 @@ IF(LBU_ENABLE) THEN END DO PRCS(:,:,:) = PRCS(:,:,:) - ZW(:,:,:) PRRS(:,:,:) = PRRS(:,:,:) + ZW(:,:,:) - IF (LBUDGET_RC) CALL BUDGET(PRCS(:,:,:)*PRHODJ(:,:,:), 7, 'ACCR_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET(PRRS(:,:,:)*PRHODJ(:,:,:), 8, 'ACCR_BU_RRR') + IF (LBUDGET_RC) CALL BUDGET(PRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC, 'ACCR_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET(PRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR, 'ACCR_BU_RRR') ZW(:,:,:) = 0. DO JL=1,IMICRO @@ -1216,9 +1218,9 @@ IF(LBU_ENABLE) THEN PRRS(:,:,:) = PRRS(:,:,:) - ZW(:,:,:) PRVS(:,:,:) = PRVS(:,:,:) + ZW(:,:,:) PTHS(:,:,:) = PTHS(:,:,:) - ZW(:,:,:)*ZZ_LVFACT(:,:,:) - IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), 4, 'REVA_BU_RTH') - IF (LBUDGET_RV) CALL BUDGET(PRVS(:,:,:)*PRHODJ(:,:,:), 6, 'REVA_BU_RRV') - IF (LBUDGET_RR) CALL BUDGET(PRRS(:,:,:)*PRHODJ(:,:,:), 8, 'REVA_BU_RRR') + IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH, 'REVA_BU_RTH') + IF (LBUDGET_RV) CALL BUDGET(PRVS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RV, 'REVA_BU_RRV') + IF (LBUDGET_RR) CALL BUDGET(PRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR, 'REVA_BU_RRR') ENDIF ZW(:,:,:) = 0. @@ -1241,10 +1243,10 @@ IF(LBU_ENABLE) THEN END DO PRGS(:,:,:) = PRGS(:,:,:) + ZW(:,:,:) PRSS(:,:,:) = PRSS(:,:,:) - ZW(:,:,:) - IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), 4, 'RIM_BU_RTH') - IF (LBUDGET_RC) CALL BUDGET(PRCS(:,:,:)*PRHODJ(:,:,:), 7, 'RIM_BU_RRC') - IF (LBUDGET_RS) CALL BUDGET(PRSS(:,:,:)*PRHODJ(:,:,:), 10,'RIM_BU_RRS') - IF (LBUDGET_RG) CALL BUDGET(PRGS(:,:,:)*PRHODJ(:,:,:), 11,'RIM_BU_RRG') + IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH, 'RIM_BU_RTH') + IF (LBUDGET_RC) CALL BUDGET(PRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC, 'RIM_BU_RRC') + IF (LBUDGET_RS) CALL BUDGET(PRSS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RS,'RIM_BU_RRS') + IF (LBUDGET_RG) CALL BUDGET(PRGS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RG,'RIM_BU_RRG') ZW(:,:,:) = 0. DO JL=1,IMICRO @@ -1266,10 +1268,10 @@ IF(LBU_ENABLE) THEN END DO PRSS(:,:,:) = PRSS(:,:,:) - ZW(:,:,:) PRGS(:,:,:) = PRGS(:,:,:) + ZW(:,:,:) - IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), 4, 'ACC_BU_RTH') - IF (LBUDGET_RR) CALL BUDGET(PRRS(:,:,:)*PRHODJ(:,:,:), 8, 'ACC_BU_RRR') - IF (LBUDGET_RS) CALL BUDGET(PRSS(:,:,:)*PRHODJ(:,:,:), 10,'ACC_BU_RRS') - IF (LBUDGET_RG) CALL BUDGET(PRGS(:,:,:)*PRHODJ(:,:,:), 11,'ACC_BU_RRG') + IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH, 'ACC_BU_RTH') + IF (LBUDGET_RR) CALL BUDGET(PRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR, 'ACC_BU_RRR') + IF (LBUDGET_RS) CALL BUDGET(PRSS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RS,'ACC_BU_RRS') + IF (LBUDGET_RG) CALL BUDGET(PRGS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RG,'ACC_BU_RRG') ZW(:,:,:) = 0. DO JL=1,IMICRO @@ -1283,10 +1285,10 @@ IF(LBU_ENABLE) THEN END DO PRCS(:,:,:) = PRCS(:,:,:) - ZW(:,:,:) PRRS(:,:,:) = PRRS(:,:,:) + ZW(:,:,:) - IF (LBUDGET_RS) CALL BUDGET(PRSS(:,:,:)*PRHODJ(:,:,:), 10,'CMEL_BU_RRS') - IF (LBUDGET_RG) CALL BUDGET(PRGS(:,:,:)*PRHODJ(:,:,:), 11,'CMEL_BU_RRG') - IF (LBUDGET_RC) CALL BUDGET(PRCS(:,:,:)*PRHODJ(:,:,:), 7, 'CMEL_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET(PRRS(:,:,:)*PRHODJ(:,:,:), 8, 'CMEL_BU_RRR') + IF (LBUDGET_RS) CALL BUDGET(PRSS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RS,'CMEL_BU_RRS') + IF (LBUDGET_RG) CALL BUDGET(PRGS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RG,'CMEL_BU_RRG') + IF (LBUDGET_RC) CALL BUDGET(PRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC, 'CMEL_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET(PRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR, 'CMEL_BU_RRR') ZW(:,:,:) = 0. DO JL=1,IMICRO @@ -1307,10 +1309,10 @@ IF(LBU_ENABLE) THEN END DO PRIS(:,:,:) = PRIS(:,:,:) - ZW(:,:,:) PRRS(:,:,:) = PRRS(:,:,:) + ZW(:,:,:) - IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), 4, 'CFRZ_BU_RTH') - IF (LBUDGET_RR) CALL BUDGET(PRRS(:,:,:)*PRHODJ(:,:,:), 8, 'CFRZ_BU_RRR') - IF (LBUDGET_RI) CALL BUDGET(PRIS(:,:,:)*PRHODJ(:,:,:), 9, 'CFRZ_BU_RRI') - IF (LBUDGET_RG) CALL BUDGET(PRGS(:,:,:)*PRHODJ(:,:,:), 11,'CFRZ_BU_RRG') + IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH, 'CFRZ_BU_RTH') + IF (LBUDGET_RR) CALL BUDGET(PRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR, 'CFRZ_BU_RRR') + IF (LBUDGET_RI) CALL BUDGET(PRIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RI, 'CFRZ_BU_RRI') + IF (LBUDGET_RG) CALL BUDGET(PRGS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RG,'CFRZ_BU_RRG') ZW(:,:,:) = 0. DO JL=1,IMICRO @@ -1338,12 +1340,12 @@ IF(LBU_ENABLE) THEN END DO PRSS(:,:,:) = PRSS(:,:,:) - ZW(:,:,:) PRGS(:,:,:) = PRGS(:,:,:) + ZW(:,:,:) - IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), 4, 'WETG_BU_RTH') - IF (LBUDGET_RC) CALL BUDGET(PRCS(:,:,:)*PRHODJ(:,:,:), 7, 'WETG_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET(PRRS(:,:,:)*PRHODJ(:,:,:), 8, 'WETG_BU_RRR') - IF (LBUDGET_RI) CALL BUDGET(PRIS(:,:,:)*PRHODJ(:,:,:), 9, 'WETG_BU_RRI') - IF (LBUDGET_RS) CALL BUDGET(PRSS(:,:,:)*PRHODJ(:,:,:), 10,'WETG_BU_RRS') - IF (LBUDGET_RG) CALL BUDGET(PRGS(:,:,:)*PRHODJ(:,:,:), 11,'WETG_BU_RRG') + IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH, 'WETG_BU_RTH') + IF (LBUDGET_RC) CALL BUDGET(PRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC, 'WETG_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET(PRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR, 'WETG_BU_RRR') + IF (LBUDGET_RI) CALL BUDGET(PRIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RI, 'WETG_BU_RRI') + IF (LBUDGET_RS) CALL BUDGET(PRSS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RS,'WETG_BU_RRS') + IF (LBUDGET_RG) CALL BUDGET(PRGS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RG,'WETG_BU_RRG') IF(KRR==7) THEN ZW(:,:,:) = 0. @@ -1352,8 +1354,8 @@ IF(LBU_ENABLE) THEN END DO PRGS(:,:,:) = PRGS(:,:,:) - ZW(:,:,:) PRHS(:,:,:) = PRHS(:,:,:) + ZW(:,:,:) - IF (LBUDGET_RG) CALL BUDGET(PRGS(:,:,:)*PRHODJ(:,:,:), 11,'GHCV_BU_RRG') - IF (LBUDGET_RH) CALL BUDGET(PRHS(:,:,:)*PRHODJ(:,:,:), 12,'GHCV_BU_RRH') + IF (LBUDGET_RG) CALL BUDGET(PRGS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RG,'GHCV_BU_RRG') + IF (LBUDGET_RH) CALL BUDGET(PRHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RH,'GHCV_BU_RRH') END IF ZW(:,:,:) = 0. @@ -1382,12 +1384,12 @@ IF(LBU_ENABLE) THEN END DO PRSS(:,:,:) = PRSS(:,:,:) - ZW(:,:,:) PRGS(:,:,:) = PRGS(:,:,:) + ZW(:,:,:) - IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), 4, 'DRYG_BU_RTH') - IF (LBUDGET_RC) CALL BUDGET(PRCS(:,:,:)*PRHODJ(:,:,:), 7, 'DRYG_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET(PRRS(:,:,:)*PRHODJ(:,:,:), 8, 'DRYG_BU_RRR') - IF (LBUDGET_RI) CALL BUDGET(PRIS(:,:,:)*PRHODJ(:,:,:), 9, 'DRYG_BU_RRI') - IF (LBUDGET_RS) CALL BUDGET(PRSS(:,:,:)*PRHODJ(:,:,:), 10,'DRYG_BU_RRS') - IF (LBUDGET_RG) CALL BUDGET(PRGS(:,:,:)*PRHODJ(:,:,:), 11,'DRYG_BU_RRG') + IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH, 'DRYG_BU_RTH') + IF (LBUDGET_RC) CALL BUDGET(PRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC, 'DRYG_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET(PRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR, 'DRYG_BU_RRR') + IF (LBUDGET_RI) CALL BUDGET(PRIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RI, 'DRYG_BU_RRI') + IF (LBUDGET_RS) CALL BUDGET(PRSS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RS,'DRYG_BU_RRS') + IF (LBUDGET_RG) CALL BUDGET(PRGS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RG,'DRYG_BU_RRG') ZW(:,:,:) = 0. DO JL=1,IMICRO @@ -1396,9 +1398,9 @@ IF(LBU_ENABLE) THEN PRRS(:,:,:) = PRRS(:,:,:) + ZW(:,:,:) PRGS(:,:,:) = PRGS(:,:,:) - ZW(:,:,:) PTHS(:,:,:) = PTHS(:,:,:) - ZW(:,:,:)*(ZZ_LSFACT(:,:,:)-ZZ_LVFACT(:,:,:)) - IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), 4, 'GMLT_BU_RTH') - IF (LBUDGET_RR) CALL BUDGET(PRRS(:,:,:)*PRHODJ(:,:,:), 8, 'GMLT_BU_RRR') - IF (LBUDGET_RG) CALL BUDGET(PRGS(:,:,:)*PRHODJ(:,:,:), 11,'GMLT_BU_RRG') + IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH, 'GMLT_BU_RTH') + IF (LBUDGET_RR) CALL BUDGET(PRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR, 'GMLT_BU_RRR') + IF (LBUDGET_RG) CALL BUDGET(PRGS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RG,'GMLT_BU_RRG') IF(KRR==7) THEN ZW(:,:,:) = 0. @@ -1433,12 +1435,12 @@ IF(LBU_ENABLE) THEN END DO PRGS(:,:,:) = PRGS(:,:,:) - ZW(:,:,:) PRHS(:,:,:) = PRHS(:,:,:) + ZW(:,:,:) - IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), 4, 'WETH_BU_RTH') - IF (LBUDGET_RC) CALL BUDGET(PRCS(:,:,:)*PRHODJ(:,:,:), 7, 'WETH_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET(PRRS(:,:,:)*PRHODJ(:,:,:), 8, 'WETH_BU_RRR') - IF (LBUDGET_RI) CALL BUDGET(PRIS(:,:,:)*PRHODJ(:,:,:), 9, 'WETH_BU_RRI') - IF (LBUDGET_RS) CALL BUDGET(PRSS(:,:,:)*PRHODJ(:,:,:), 10,'WETH_BU_RRS') - IF (LBUDGET_RH) CALL BUDGET(PRHS(:,:,:)*PRHODJ(:,:,:), 12,'WETH_BU_RRH') + IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH, 'WETH_BU_RTH') + IF (LBUDGET_RC) CALL BUDGET(PRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC, 'WETH_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET(PRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR, 'WETH_BU_RRR') + IF (LBUDGET_RI) CALL BUDGET(PRIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RI, 'WETH_BU_RRI') + IF (LBUDGET_RS) CALL BUDGET(PRSS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RS,'WETH_BU_RRS') + IF (LBUDGET_RH) CALL BUDGET(PRHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RH,'WETH_BU_RRH') ZW(:,:,:) = 0. DO JL=1,IMICRO @@ -1446,8 +1448,8 @@ IF(LBU_ENABLE) THEN END DO PRGS(:,:,:) = PRGS(:,:,:) - ZW(:,:,:) PRHS(:,:,:) = PRHS(:,:,:) + ZW(:,:,:) - IF (LBUDGET_RG) CALL BUDGET(PRGS(:,:,:)*PRHODJ(:,:,:), 11,'HGCV_BU_RRG') - IF (LBUDGET_RH) CALL BUDGET(PRHS(:,:,:)*PRHODJ(:,:,:), 12,'HGCV_BU_RRH') + IF (LBUDGET_RG) CALL BUDGET(PRGS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RG,'HGCV_BU_RRG') + IF (LBUDGET_RH) CALL BUDGET(PRHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RH,'HGCV_BU_RRH') ZW(:,:,:) = 0. DO JL=1,IMICRO @@ -1487,13 +1489,13 @@ IF(LBU_ENABLE) THEN END DO PRHS(:,:,:) = PRHS(:,:,:) - ZW(:,:,:) PRGS(:,:,:) = PRGS(:,:,:) + ZW(:,:,:) - IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), 4, 'DRYH_BU_RTH') - IF (LBUDGET_RC) CALL BUDGET(PRCS(:,:,:)*PRHODJ(:,:,:), 7, 'DRYH_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET(PRRS(:,:,:)*PRHODJ(:,:,:), 8, 'DRYH_BU_RRR') - IF (LBUDGET_RI) CALL BUDGET(PRIS(:,:,:)*PRHODJ(:,:,:), 9, 'DRYH_BU_RRI') - IF (LBUDGET_RS) CALL BUDGET(PRSS(:,:,:)*PRHODJ(:,:,:), 10,'DRYH_BU_RRS') - IF (LBUDGET_RG) CALL BUDGET(PRGS(:,:,:)*PRHODJ(:,:,:), 11,'DRYH_BU_RRG') - IF (LBUDGET_RH) CALL BUDGET(PRHS(:,:,:)*PRHODJ(:,:,:), 12,'DRYH_BU_RRH') + IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH, 'DRYH_BU_RTH') + IF (LBUDGET_RC) CALL BUDGET(PRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC, 'DRYH_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET(PRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR, 'DRYH_BU_RRR') + IF (LBUDGET_RI) CALL BUDGET(PRIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RI, 'DRYH_BU_RRI') + IF (LBUDGET_RS) CALL BUDGET(PRSS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RS,'DRYH_BU_RRS') + IF (LBUDGET_RG) CALL BUDGET(PRGS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RG,'DRYH_BU_RRG') + IF (LBUDGET_RH) CALL BUDGET(PRHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RH,'DRYH_BU_RRH') ZW(:,:,:) = 0. DO JL=1,IMICRO @@ -1502,9 +1504,9 @@ IF(LBU_ENABLE) THEN PRRS(:,:,:) = PRRS(:,:,:) + ZW(:,:,:) PRHS(:,:,:) = PRHS(:,:,:) - ZW(:,:,:) PTHS(:,:,:) = PTHS(:,:,:) - ZW(:,:,:)*(ZZ_LSFACT(:,:,:)-ZZ_LVFACT(:,:,:)) - IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), 4, 'HMLT_BU_RTH') - IF (LBUDGET_RR) CALL BUDGET(PRRS(:,:,:)*PRHODJ(:,:,:), 8, 'HMLT_BU_RRR') - IF (LBUDGET_RH) CALL BUDGET(PRHS(:,:,:)*PRHODJ(:,:,:), 12,'HMLT_BU_RRH') + IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH, 'HMLT_BU_RTH') + IF (LBUDGET_RR) CALL BUDGET(PRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR, 'HMLT_BU_RRR') + IF (LBUDGET_RH) CALL BUDGET(PRHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RH,'HMLT_BU_RRH') ENDIF ZW(:,:,:) = 0. @@ -1514,9 +1516,9 @@ IF(LBU_ENABLE) THEN PRIS(:,:,:) = PRIS(:,:,:) - ZW(:,:,:) PRCS(:,:,:) = PRCS(:,:,:) + ZW(:,:,:) PTHS(:,:,:) = PTHS(:,:,:) - ZW(:,:,:)*(ZZ_LSFACT(:,:,:)-ZZ_LVFACT(:,:,:)) - IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), 4, 'IMLT_BU_RTH') - IF (LBUDGET_RC) CALL BUDGET(PRCS(:,:,:)*PRHODJ(:,:,:), 7, 'IMLT_BU_RRC') - IF (LBUDGET_RI) CALL BUDGET(PRIS(:,:,:)*PRHODJ(:,:,:), 9, 'IMLT_BU_RRI') + IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH, 'IMLT_BU_RTH') + IF (LBUDGET_RC) CALL BUDGET(PRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC, 'IMLT_BU_RRC') + IF (LBUDGET_RI) CALL BUDGET(PRIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RI, 'IMLT_BU_RRI') ZW(:,:,:) = 0. DO JL=1,IMICRO @@ -1525,9 +1527,9 @@ IF(LBU_ENABLE) THEN PRCS(:,:,:) = PRCS(:,:,:) - ZW(:,:,:) PRIS(:,:,:) = PRIS(:,:,:) + ZW(:,:,:) PTHS(:,:,:) = PTHS(:,:,:) + ZW(:,:,:)*(ZZ_LSFACT(:,:,:)-ZZ_LVFACT(:,:,:)) - IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), 4, 'BERFI_BU_RTH') - IF (LBUDGET_RC) CALL BUDGET(PRCS(:,:,:)*PRHODJ(:,:,:), 7, 'BERFI_BU_RRC') - IF (LBUDGET_RI) CALL BUDGET(PRIS(:,:,:)*PRHODJ(:,:,:), 9, 'BERFI_BU_RRI') + IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH, 'BERFI_BU_RTH') + IF (LBUDGET_RC) CALL BUDGET(PRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC, 'BERFI_BU_RRC') + IF (LBUDGET_RI) CALL BUDGET(PRIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RI, 'BERFI_BU_RRI') ENDIF ! !*** 7.3 Final tendencies @@ -1543,15 +1545,15 @@ IF (KRR==7) THEN ENDIF PTHS(:,:,:) = ZW_THS(:,:,:) IF(LBU_ENABLE) THEN - IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), 4, 'CORR_BU_RTH') - IF (LBUDGET_RV) CALL BUDGET(PRVS(:,:,:)*PRHODJ(:,:,:), 6, 'CORR_BU_RRV') - IF (LBUDGET_RC) CALL BUDGET(PRCS(:,:,:)*PRHODJ(:,:,:), 7, 'CORR_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET(PRRS(:,:,:)*PRHODJ(:,:,:), 8, 'CORR_BU_RRR') - IF (LBUDGET_RI) CALL BUDGET(PRIS(:,:,:)*PRHODJ(:,:,:), 9, 'CORR_BU_RRI') - IF (LBUDGET_RS) CALL BUDGET(PRSS(:,:,:)*PRHODJ(:,:,:), 10,'CORR_BU_RRS') - IF (LBUDGET_RG) CALL BUDGET(PRGS(:,:,:)*PRHODJ(:,:,:), 11,'CORR_BU_RRG') + IF (LBUDGET_TH) CALL BUDGET(PTHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_TH, 'CORR_BU_RTH') + IF (LBUDGET_RV) CALL BUDGET(PRVS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RV, 'CORR_BU_RRV') + IF (LBUDGET_RC) CALL BUDGET(PRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC, 'CORR_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET(PRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR, 'CORR_BU_RRR') + IF (LBUDGET_RI) CALL BUDGET(PRIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RI, 'CORR_BU_RRI') + IF (LBUDGET_RS) CALL BUDGET(PRSS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RS,'CORR_BU_RRS') + IF (LBUDGET_RG) CALL BUDGET(PRGS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RG,'CORR_BU_RRG') IF (KRR==7) THEN - IF (LBUDGET_RH) CALL BUDGET(PRHS(:,:,:)*PRHODJ(:,:,:), 12,'CORR_BU_RRH') + IF (LBUDGET_RH) CALL BUDGET(PRHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RH,'CORR_BU_RRH') ENDIF ENDIF ! @@ -1627,13 +1629,13 @@ IF(LSEDIM_AFTER) THEN !* 8.2 budget storage ! IF (LBUDGET_RC .AND. OSEDIC) & - CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:), 7 , 'SEDI_BU_RRC') - IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:), 8 , 'SEDI_BU_RRR') - IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:), 9 , 'SEDI_BU_RRI') - IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:), 10, 'SEDI_BU_RRS') - IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:), 11, 'SEDI_BU_RRG') + CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC, 'SEDI_BU_RRC') + IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR, 'SEDI_BU_RRR') + IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RI, 'SEDI_BU_RRI') + IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RS, 'SEDI_BU_RRS') + IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RG, 'SEDI_BU_RRG') IF ( KRR == 7 .AND. LBUDGET_RH) & - CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:), 12, 'SEDI_BU_RRH') + CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RH, 'SEDI_BU_RRH') ! !sedimentation of rain fraction CALL ICE4_RAINFR_VERT(IIB, IIE, IIT, IJB, IJE, IJT, IKB, IKE, IKT, KKL, PRAINFR, PRRS(:,:,:)*PTSTEP) diff --git a/src/MNH/rain_ice_sedimentation_split.f90 b/src/MNH/rain_ice_sedimentation_split.f90 index 3007adf38..349004ee8 100644 --- a/src/MNH/rain_ice_sedimentation_split.f90 +++ b/src/MNH/rain_ice_sedimentation_split.f90 @@ -26,7 +26,8 @@ SUBROUTINE RAIN_ICE_SEDIMENTATION_SPLIT(KIB, KIE, KJB, KJE, KKB, KKE, KKTB, KKTE !* 0. DECLARATIONS ! ------------ ! -use MODD_BUDGET, only: LBUDGET_RC, LBUDGET_RG, LBUDGET_RH, LBUDGET_RI, LBUDGET_RR, LBUDGET_RS +use MODD_BUDGET, only: LBUDGET_RC, LBUDGET_RR, LBUDGET_RI, LBUDGET_RS, LBUDGET_RG, LBUDGET_RH, & + NBUDGET_RC, NBUDGET_RR, NBUDGET_RI, NBUDGET_RS, NBUDGET_RG, NBUDGET_RH use MODD_CST, only: XCPD, XP00, XRD, XRHOLW use MODD_PARAM_ICE, only: XVDEPOSC use MODD_RAIN_ICE_DESCR, only: XCC, XCONC_LAND, xconc_sea, xconc_urban, XDC, XCEXVT, & @@ -582,13 +583,13 @@ IF (KRR == 7 .AND. (ILENALLOCH .GT. 0 )) DEALLOCATE(ZRHODREFH,ZRHS,ILISTH) !* 2.3 budget storage ! IF (LBUDGET_RC .AND. OSEDIC) & - CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7 ,'SEDI_BU_RRC') -IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8 ,'SEDI_BU_RRR') -IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9 ,'SEDI_BU_RRI') -IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),10,'SEDI_BU_RRS') -IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11,'SEDI_BU_RRG') + CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC, 'SEDI_BU_RRC') +IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RR, 'SEDI_BU_RRR') +IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RI, 'SEDI_BU_RRI') +IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RS, 'SEDI_BU_RRS') +IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RG, 'SEDI_BU_RRG') IF ( KRR == 7 .AND. LBUDGET_RH) & - CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:),12,'SEDI_BU_RRH') + CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RH, 'SEDI_BU_RRH') ! ! ! @@ -607,7 +608,7 @@ END IF !* 2.5 budget storage ! IF ( LBUDGET_RC .AND. ODEPOSC ) & - CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7 ,'DEPO_BU_RRC') + CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:), NBUDGET_RC,'DEPO_BU_RRC') ! END SUBROUTINE RAIN_ICE_SEDIMENTATION_SPLIT diff --git a/src/MNH/rain_ice_sedimentation_stat.f90 b/src/MNH/rain_ice_sedimentation_stat.f90 index 3156ab84c..895e23656 100644 --- a/src/MNH/rain_ice_sedimentation_stat.f90 +++ b/src/MNH/rain_ice_sedimentation_stat.f90 @@ -26,7 +26,8 @@ SUBROUTINE RAIN_ICE_SEDIMENTATION_STAT( KIB, KIE, KJB, KJE, KKB, KKE, KKTB, KKTE !* 0. DECLARATIONS ! ------------ ! -use MODD_BUDGET, only: LBUDGET_RC, LBUDGET_RG, LBUDGET_RH, LBUDGET_RI, LBUDGET_RR, LBUDGET_RS +use MODD_BUDGET, only: LBUDGET_RC, LBUDGET_RR, LBUDGET_RI, LBUDGET_RS, LBUDGET_RG, LBUDGET_RH, & + NBUDGET_RC, NBUDGET_RR, NBUDGET_RI, NBUDGET_RS, NBUDGET_RG, NBUDGET_RH use MODD_CST, only: XRHOLW use MODD_PARAM_ICE, only: LDEPOSC, XVDEPOSC use MODD_RAIN_ICE_PARAM, only: XEXSEDG, XEXSEDH, XEXCSEDI, XEXSEDR, XEXSEDS, & @@ -548,13 +549,13 @@ PINPRR3D (:,:,:) = 0. !* 2.3 budget storage ! IF (LBUDGET_RC .AND. OSEDIC) & - CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7 ,'SEDI_BU_RRC') -IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8 ,'SEDI_BU_RRR') -IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9 ,'SEDI_BU_RRI') -IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),10,'SEDI_BU_RRS') -IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11,'SEDI_BU_RRG') + CALL BUDGET( PRCS(:, :, : ) * PRHODJ(:, :, : ), NBUDGET_RC, 'SEDI_BU_RRC' ) +IF (LBUDGET_RR) CALL BUDGET( PRRS(:, :, : ) * PRHODJ(:, :, : ), NBUDGET_RR, 'SEDI_BU_RRR' ) +IF (LBUDGET_RI) CALL BUDGET( PRIS(:, :, : ) * PRHODJ(:, :, : ), NBUDGET_RI, 'SEDI_BU_RRI' ) +IF (LBUDGET_RS) CALL BUDGET( PRSS(:, :, : ) * PRHODJ(:, :, : ), NBUDGET_RS, 'SEDI_BU_RRS' ) +IF (LBUDGET_RG) CALL BUDGET( PRGS(:, :, : ) * PRHODJ(:, :, : ), NBUDGET_RG, 'SEDI_BU_RRG' ) IF ( KRR == 7 .AND. LBUDGET_RH) & - CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:),12,'SEDI_BU_RRH') + CALL BUDGET( PRHS(:, :, : ) * PRHODJ(:, :, : ), NBUDGET_RH, 'SEDI_BU_RRH' ) ! ! !* 2.4 DROPLET DEPOSITION AT THE 1ST LEVEL ABOVE GROUND @@ -572,7 +573,7 @@ END IF !* 2.5 budget storage ! IF ( LBUDGET_RC .AND. LDEPOSC ) & - CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7 ,'DEPO_BU_RRC') + CALL BUDGET( PRCS(:, :, : ) * PRHODJ(:, :, : ), NBUDGET_RC, 'DEPO_BU_RRC' ) ! END SUBROUTINE RAIN_ICE_SEDIMENTATION_STAT diff --git a/src/MNH/rain_ice_slow.f90 b/src/MNH/rain_ice_slow.f90 index eb46ad531..844d83016 100644 --- a/src/MNH/rain_ice_slow.f90 +++ b/src/MNH/rain_ice_slow.f90 @@ -26,7 +26,8 @@ SUBROUTINE RAIN_ICE_SLOW(OMICRO, PINVTSTEP, PRHODREF, & !* 0. DECLARATIONS ! ------------ ! -use MODD_BUDGET, only: LBUDGET_RC, LBUDGET_RG, LBUDGET_RI, LBUDGET_RR, LBUDGET_RS, LBUDGET_RV, LBUDGET_TH +use MODD_BUDGET, only: LBUDGET_TH, LBUDGET_RV, LBUDGET_RC, LBUDGET_RR, LBUDGET_RI, LBUDGET_RS, LBUDGET_RG, & + NBUDGET_TH, NBUDGET_RV, NBUDGET_RC, NBUDGET_RR, NBUDGET_RI, NBUDGET_RS, NBUDGET_RG use MODD_CST, only: XALPI, XBETAI, XCI, XCPV, XGAMI, XLSTT, XMNH_HUGE_12_LOG, XP00, XRV, XTT use MODD_RAIN_ICE_DESCR, only: XCEXVT, XLBDAS_MAX, XLBEXG, XLBEXS, XLBG, XLBS, XRTMIN use MODD_RAIN_ICE_PARAM, only: X0DEPG, X0DEPS, X1DEPG, X1DEPS, XACRIAUTI, XALPHA3, XBCRIAUTI, XBETA3, XCOLEXIS, XCRIAUTI, & @@ -91,13 +92,13 @@ REAL, DIMENSION(size(PRHODREF)) :: ZCRIAUTI ! Snow-to-ice autoconversion thres. ! IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(PTHS(:),MASK=OMICRO(:,:,:),FIELD=PTHS3D)*PRHODJ3D(:,:,:), & - 4,'HON_BU_RTH') + NBUDGET_TH,'HON_BU_RTH') IF (LBUDGET_RC) CALL BUDGET ( & UNPACK(PRCS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 7,'HON_BU_RRC') + NBUDGET_RC,'HON_BU_RRC') IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(PRIS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 9,'HON_BU_RRI') + NBUDGET_RI,'HON_BU_RRI') ! !* 3.3 compute the spontaneous freezing source: RRHONG ! @@ -111,13 +112,13 @@ REAL, DIMENSION(size(PRHODREF)) :: ZCRIAUTI ! Snow-to-ice autoconversion thres. ! IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(PTHS(:),MASK=OMICRO(:,:,:),FIELD=PTHS3D)*PRHODJ3D(:,:,:), & - 4,'SFR_BU_RTH') + NBUDGET_TH,'SFR_BU_RTH') IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(PRRS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 8,'SFR_BU_RRR') + NBUDGET_RR,'SFR_BU_RRR') IF (LBUDGET_RG) CALL BUDGET ( & UNPACK(PRGS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 11,'SFR_BU_RRG') + NBUDGET_RG,'SFR_BU_RRG') ! !* 3.4 compute the deposition, aggregation and autoconversion sources ! @@ -162,13 +163,13 @@ REAL, DIMENSION(size(PRHODREF)) :: ZCRIAUTI ! Snow-to-ice autoconversion thres. END WHERE IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(PTHS(:),MASK=OMICRO(:,:,:),FIELD=PTHS3D)*PRHODJ3D(:,:,:), & - 4,'DEPS_BU_RTH') + NBUDGET_TH,'DEPS_BU_RTH') IF (LBUDGET_RV) CALL BUDGET ( & UNPACK(PRVS(:),MASK=OMICRO(:,:,:),FIELD=PRVS3D)*PRHODJ3D(:,:,:), & - 6,'DEPS_BU_RRV') + NBUDGET_RV,'DEPS_BU_RRV') IF (LBUDGET_RS) CALL BUDGET ( & UNPACK(PRSS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 10,'DEPS_BU_RRS') + NBUDGET_RS,'DEPS_BU_RRS') ! !* 3.4.4 compute the aggregation on r_s: RIAGGS ! @@ -183,10 +184,10 @@ REAL, DIMENSION(size(PRHODREF)) :: ZCRIAUTI ! Snow-to-ice autoconversion thres. END WHERE IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(PRIS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 9,'AGGS_BU_RRI') + NBUDGET_RI,'AGGS_BU_RRI') IF (LBUDGET_RS) CALL BUDGET ( & UNPACK(PRSS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 10,'AGGS_BU_RRS') + NBUDGET_RS,'AGGS_BU_RRS') ! !* 3.4.5 compute the autoconversion of r_i for r_s production: RIAUTS ! @@ -201,10 +202,10 @@ REAL, DIMENSION(size(PRHODREF)) :: ZCRIAUTI ! Snow-to-ice autoconversion thres. END WHERE IF (LBUDGET_RI) CALL BUDGET ( & UNPACK(PRIS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 9,'AUTS_BU_RRI') + NBUDGET_RI,'AUTS_BU_RRI') IF (LBUDGET_RS) CALL BUDGET ( & UNPACK(PRSS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 10,'AUTS_BU_RRS') + NBUDGET_RS,'AUTS_BU_RRS') ! !* 3.4.6 compute the deposition on r_g: RVDEPG ! @@ -224,13 +225,13 @@ REAL, DIMENSION(size(PRHODREF)) :: ZCRIAUTI ! Snow-to-ice autoconversion thres. END WHERE IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(PTHS(:),MASK=OMICRO(:,:,:),FIELD=PTHS3D)*PRHODJ3D(:,:,:), & - 4,'DEPG_BU_RTH') + NBUDGET_TH,'DEPG_BU_RTH') IF (LBUDGET_RV) CALL BUDGET ( & UNPACK(PRVS(:),MASK=OMICRO(:,:,:),FIELD=PRVS3D)*PRHODJ3D(:,:,:), & - 6,'DEPG_BU_RRV') + NBUDGET_RV,'DEPG_BU_RRV') IF (LBUDGET_RG) CALL BUDGET ( & UNPACK(PRGS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 11,'DEPG_BU_RRG') + NBUDGET_RG,'DEPG_BU_RRG') ! END SUBROUTINE RAIN_ICE_SLOW diff --git a/src/MNH/rain_ice_warm.f90 b/src/MNH/rain_ice_warm.f90 index 54a8c315c..15f61b570 100644 --- a/src/MNH/rain_ice_warm.f90 +++ b/src/MNH/rain_ice_warm.f90 @@ -25,7 +25,8 @@ SUBROUTINE RAIN_ICE_WARM(OMICRO, KMICRO, K1, K2, K3, !* 0. DECLARATIONS ! ------------ ! -use MODD_BUDGET, only: LBUDGET_RC, LBUDGET_RR, LBUDGET_RV, LBUDGET_TH +use MODD_BUDGET, only: LBUDGET_TH, LBUDGET_RV, LBUDGET_RC, LBUDGET_RR, & + NBUDGET_TH, NBUDGET_RV, NBUDGET_RC, NBUDGET_RR use MODD_CST, only: XALPW, XBETAW, XCL, XCPV, XGAMW, XLVTT, XMD, XMV, XRV, XTT use MODD_PARAM_ICE, only: CSUBG_RC_RR_ACCR, CSUBG_RR_EVAP use MODD_RAIN_ICE_DESCR, only: XCEXVT, XRTMIN @@ -99,10 +100,10 @@ REAL, DIMENSION(size(PRHODREF)) :: ZZW4 ! Work array ! IF (LBUDGET_RC) CALL BUDGET ( & UNPACK(PRCS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 7,'AUTO_BU_RRC') + NBUDGET_RC,'AUTO_BU_RRC') IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(PRRS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 8,'AUTO_BU_RRR') + NBUDGET_RR,'AUTO_BU_RRR') ! !* 4.3 compute the accretion of r_c for r_r production: RCACCR ! @@ -153,10 +154,10 @@ REAL, DIMENSION(size(PRHODREF)) :: ZZW4 ! Work array IF (LBUDGET_RC) CALL BUDGET ( & UNPACK(PRCS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 7,'ACCR_BU_RRC') + NBUDGET_RC,'ACCR_BU_RRC') IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(PRRS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 8,'ACCR_BU_RRR') + NBUDGET_RR,'ACCR_BU_RRR') ! !* 4.4 compute the evaporation of r_r: RREVAV ! @@ -230,13 +231,13 @@ REAL, DIMENSION(size(PRHODREF)) :: ZZW4 ! Work array IF (LBUDGET_TH) CALL BUDGET ( & UNPACK(PTHS(:),MASK=OMICRO(:,:,:),FIELD=PTHS3D)*PRHODJ3D(:,:,:), & - 4,'REVA_BU_RTH') + NBUDGET_TH,'REVA_BU_RTH') IF (LBUDGET_RV) CALL BUDGET ( & UNPACK(PRVS(:),MASK=OMICRO(:,:,:),FIELD=PRVS3D)*PRHODJ3D(:,:,:), & - 6,'REVA_BU_RRV') + NBUDGET_RV,'REVA_BU_RRV') IF (LBUDGET_RR) CALL BUDGET ( & UNPACK(PRRS(:)*PRHODJ(:),MASK=OMICRO(:,:,:),FIELD=0.0), & - 8,'REVA_BU_RRR') + NBUDGET_RR,'REVA_BU_RRR') DO JL = 1, KMICRO PEVAP3D(K1(JL), K2(JL), K3(JL)) = ZZW( JL ) diff --git a/src/MNH/rel_forcingn.f90 b/src/MNH/rel_forcingn.f90 index e057e1223..e9c05ea10 100644 --- a/src/MNH/rel_forcingn.f90 +++ b/src/MNH/rel_forcingn.f90 @@ -249,8 +249,8 @@ END IF ! !* 3. BUDGET CALLS ! ------------ -IF (LBUDGET_TH) CALL BUDGET (PRTHS,4,'2DREL_BU_RTH') -IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),6,'2DREL_BU_RRV') +IF (LBUDGET_TH) CALL BUDGET (PRTHS,NBUDGET_TH,'2DREL_BU_RTH') +IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),NBUDGET_RV,'2DREL_BU_RRV') !---------------------------------------------------------------------------- ! END SUBROUTINE REL_FORCING_n diff --git a/src/MNH/relax2fw_ion.f90 b/src/MNH/relax2fw_ion.f90 index 001f00385..cae86dedf 100644 --- a/src/MNH/relax2fw_ion.f90 +++ b/src/MNH/relax2fw_ion.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2010-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ######################## MODULE MODI_RELAX2FW_ION ! ######################## @@ -102,16 +103,16 @@ END MODULE MODI_RELAX2FW_ION !* 0. DECLARATIONS ! ------------ ! +use modd_budget, only: lbudget_sv, NBUDGET_SV1 +USE MODD_CONF +USE MODD_ELEC_n, ONLY: XCION_POS_FW, XCION_NEG_FW +USE MODD_NSV, ONLY: NSV_ELECBEG, NSV_ELECEND USE MODD_PARAMETERS -USE MODD_CONF -USE MODD_BUDGET -USE MODD_NSV, ONLY: NSV_ELECBEG, NSV_ELECEND -USE MODD_ELEC_n, ONLY: XCION_POS_FW, XCION_NEG_FW ! USE MODE_ll ! -USE MODI_SHUMAN -USE MODI_BUDGET +USE MODI_BUDGET +USE MODI_SHUMAN ! IMPLICIT NONE ! @@ -212,10 +213,8 @@ END IF ! ------------------------------ ! IF (LBUDGET_SV) THEN - JSV = NSV_ELECBEG - CALL BUDGET (PRSVS(:,:,:,JSV),JSV+12,'REL_BU_RSV') - JSV = NSV_ELECEND - CALL BUDGET (PRSVS(:,:,:,JSV),JSV+12,'REL_BU_RSV') + CALL BUDGET( PRSVS(:, :, :, NSV_ELECBEG ), NBUDGET_SV1 - 1 + NSV_ELECBEG, 'REL_BU_RSV' ) + CALL BUDGET( PRSVS(:, :, :, NSV_ELECEND ), NBUDGET_SV1 - 1 + NSV_ELECEND, 'REL_BU_RSV' ) END IF ! ! diff --git a/src/MNH/relaxation.f90 b/src/MNH/relaxation.f90 index 13e62a4ab..df1c4133a 100644 --- a/src/MNH/relaxation.f90 +++ b/src/MNH/relaxation.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ###################### MODULE MODI_RELAXATION ! ###################### @@ -706,21 +707,21 @@ END DO ! ------------------------------ ! CALL EXTRAPOL('W ', PRUS) -IF (LBUDGET_U) CALL BUDGET (PRUS,1,'REL_BU_RU') -IF (LBUDGET_V) CALL BUDGET (PRVS,2,'REL_BU_RV') -IF (LBUDGET_W) CALL BUDGET (PRWS,3,'REL_BU_RW') -IF (LBUDGET_TH) CALL BUDGET (PRTHS,4,'REL_BU_RTH') -IF (LBUDGET_TKE) CALL BUDGET (PRTKES,5,'REL_BU_RTKE') -IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),6,'REL_BU_RRV') -IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),7,'REL_BU_RRC') -IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:,3),8,'REL_BU_RRR') -IF (LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,4),9,'REL_BU_RRI') -IF (LBUDGET_RS) CALL BUDGET (PRRS(:,:,:,5),10,'REL_BU_RRS') -IF (LBUDGET_RG) CALL BUDGET (PRRS(:,:,:,6),11,'REL_BU_RRG') -IF (LBUDGET_RH) CALL BUDGET (PRRS(:,:,:,7),12,'REL_BU_RRH') -IF (LBUDGET_SV) THEN +IF ( LBUDGET_U ) CALL BUDGET( PRUS, NBUDGET_U, 'REL_BU_RU') +IF ( LBUDGET_V ) CALL BUDGET( PRVS, NBUDGET_V, 'REL_BU_RV') +IF ( LBUDGET_W ) CALL BUDGET( PRWS, NBUDGET_W, 'REL_BU_RW') +IF ( LBUDGET_TH ) CALL BUDGET( PRTHS, NBUDGET_TH, 'REL_BU_RTH') +IF ( LBUDGET_TKE ) CALL BUDGET( PRTKES, NBUDGET_TKE, 'REL_BU_RTKE') +IF ( LBUDGET_RV ) CALL BUDGET( PRRS(:, :, :, 1 ), NBUDGET_RV, 'REL_BU_RRV') +IF ( LBUDGET_RC ) CALL BUDGET( PRRS(:, :, :, 2 ), NBUDGET_RC, 'REL_BU_RRC') +IF ( LBUDGET_RR ) CALL BUDGET( PRRS(:, :, :, 3 ), NBUDGET_RR, 'REL_BU_RRR') +IF ( LBUDGET_RI ) CALL BUDGET( PRRS(:, :, :, 4 ), NBUDGET_RI, 'REL_BU_RRI') +IF ( LBUDGET_RS ) CALL BUDGET( PRRS(:, :, :, 5 ), NBUDGET_RS, 'REL_BU_RRS') +IF ( LBUDGET_RG ) CALL BUDGET( PRRS(:, :, :, 6 ), NBUDGET_RG, 'REL_BU_RRG') +IF ( LBUDGET_RH ) CALL BUDGET( PRRS(:, :, :, 7 ), NBUDGET_RH, 'REL_BU_RRH') +IF ( LBUDGET_SV ) THEN DO JSV=1,KSV - CALL BUDGET (PRSVS(:,:,:,JSV),JSV+12,'REL_BU_RSV') + CALL BUDGET( PRSVS(:, :, :, JSV ), NBUDGET_SV1 - 1 + JSV, 'REL_BU_RSV' ) END DO END IF ! diff --git a/src/MNH/resolved_cloud.f90 b/src/MNH/resolved_cloud.f90 index 6116fa3f9..f0257f5f0 100644 --- a/src/MNH/resolved_cloud.f90 +++ b/src/MNH/resolved_cloud.f90 @@ -271,8 +271,10 @@ END MODULE MODI_RESOLVED_CLOUD ! !* 0. DECLARATIONS ! ------------ -USE MODD_BUDGET, ONLY: LBUDGET_TH, LBUDGET_RC, LBUDGET_RG, LBUDGET_RH, LBUDGET_RI, LBUDGET_RR, LBUDGET_RS, LBUDGET_RV, & - LBUDGET_SV +USE MODD_BUDGET, ONLY: LBUDGET_TH, LBUDGET_RV, LBUDGET_RC, LBUDGET_RR, LBUDGET_RI, LBUDGET_RS, LBUDGET_RG, LBUDGET_RH, & + LBUDGET_SV, & + NBUDGET_TH, NBUDGET_RV, NBUDGET_RC, NBUDGET_RR, NBUDGET_RI, NBUDGET_RS, NBUDGET_RG, NBUDGET_RH, & + NBUDGET_SV1 USE MODD_CH_AEROSOL, ONLY: LORILAM USE MODD_DUST, ONLY: LDUST USE MODD_CST, ONLY: XCI, XCL, XCPD, XCPV, XLSTT, XLVTT, XMNH_TINY, XP00, XRD, XRHOLW, XTT @@ -764,29 +766,29 @@ END SELECT ! ---------------------- ! IF ((HCLOUD /= 'KHKO') .AND. (HCLOUD /= 'C2R2') ) THEN - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:) * PRHODJ(:,:,:), 4,'NEGA_BU_RTH') - IF (LBUDGET_RV) CALL BUDGET (PRS(:,:,:,1) * PRHODJ(:,:,:), 6,'NEGA_BU_RRV') - IF (LBUDGET_RC) CALL BUDGET (PRS(:,:,:,2) * PRHODJ(:,:,:), 7,'NEGA_BU_RRC') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:) * PRHODJ(:,:,:), NBUDGET_TH,'NEGA_BU_RTH') + IF (LBUDGET_RV) CALL BUDGET (PRS(:,:,:,1) * PRHODJ(:,:,:), NBUDGET_RV,'NEGA_BU_RRV') + IF (LBUDGET_RC) CALL BUDGET (PRS(:,:,:,2) * PRHODJ(:,:,:), NBUDGET_RC,'NEGA_BU_RRC') END IF -IF (LBUDGET_RR) CALL BUDGET (PRS(:,:,:,3) * PRHODJ(:,:,:), 8,'NEGA_BU_RRR') -IF (LBUDGET_RI) CALL BUDGET (PRS(:,:,:,4) * PRHODJ(:,:,:) ,9,'NEGA_BU_RRI') -IF (LBUDGET_RS) CALL BUDGET (PRS(:,:,:,5) * PRHODJ(:,:,:),10,'NEGA_BU_RRS') -IF (LBUDGET_RG) CALL BUDGET (PRS(:,:,:,6) * PRHODJ(:,:,:),11,'NEGA_BU_RRG') -IF (LBUDGET_RH) CALL BUDGET (PRS(:,:,:,7) * PRHODJ(:,:,:),12,'NEGA_BU_RRH') +IF (LBUDGET_RR) CALL BUDGET (PRS(:,:,:,3) * PRHODJ(:,:,:), NBUDGET_RR,'NEGA_BU_RRR') +IF (LBUDGET_RI) CALL BUDGET (PRS(:,:,:,4) * PRHODJ(:,:,:), NBUDGET_RI,'NEGA_BU_RRI') +IF (LBUDGET_RS) CALL BUDGET (PRS(:,:,:,5) * PRHODJ(:,:,:), NBUDGET_RS,'NEGA_BU_RRS') +IF (LBUDGET_RG) CALL BUDGET (PRS(:,:,:,6) * PRHODJ(:,:,:), NBUDGET_RG,'NEGA_BU_RRG') +IF (LBUDGET_RH) CALL BUDGET (PRS(:,:,:,7) * PRHODJ(:,:,:), NBUDGET_RH,'NEGA_BU_RRH') IF (LBUDGET_SV .AND. (HCLOUD == 'LIMA')) THEN - IF (OWARM) CALL BUDGET (ZSVS(:,:,:,NSV_LIMA_NC) * PRHODJ(:,:,:),12+NSV_LIMA_NC,'NEGA_BU_RSV') - IF (OWARM.AND.ORAIN) CALL BUDGET (ZSVS(:,:,:,NSV_LIMA_NR) * PRHODJ(:,:,:),12+NSV_LIMA_NR,'NEGA_BU_RSV') - IF (LCOLD) CALL BUDGET (ZSVS(:,:,:,NSV_LIMA_NI) * PRHODJ(:,:,:),12+NSV_LIMA_NI,'NEGA_BU_RSV') + IF (OWARM) CALL BUDGET (ZSVS(:,:,:,NSV_LIMA_NC) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_LIMA_NC,'NEGA_BU_RSV') + IF (OWARM.AND.ORAIN) CALL BUDGET (ZSVS(:,:,:,NSV_LIMA_NR) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_LIMA_NR,'NEGA_BU_RSV') + IF (LCOLD) CALL BUDGET (ZSVS(:,:,:,NSV_LIMA_NI) * PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_LIMA_NI,'NEGA_BU_RSV') IF (NMOD_CCN.GE.1) THEN DO JL=1, NMOD_CCN CALL BUDGET ( ZSVS(:,:,:,NSV_LIMA_CCN_FREE+JL-1)* & - PRHODJ(:,:,:),12+NSV_LIMA_CCN_FREE+JL-1,'NEGA_BU_RSV') + PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_LIMA_CCN_FREE+JL-1,'NEGA_BU_RSV') END DO END IF IF (NMOD_IFN.GE.1) THEN DO JL=1, NMOD_IFN CALL BUDGET ( ZSVS(:,:,:,NSV_LIMA_IFN_FREE+JL-1)* & - PRHODJ(:,:,:),12+NSV_LIMA_IFN_FREE+JL-1,'NEGA_BU_RSV') + PRHODJ(:,:,:),NBUDGET_SV1-1+NSV_LIMA_IFN_FREE+JL-1,'NEGA_BU_RSV') END DO END IF END IF @@ -1153,9 +1155,9 @@ IF ( (HCLOUD == 'KHKO') .OR. (HCLOUD == 'C2R2') ) THEN ZSVS(:,:,:,JSV) = 0.0 END WHERE ENDDO - IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:) * PRHODJ(:,:,:), 4,'NECON_BU_RTH') - IF (LBUDGET_RV) CALL BUDGET (PRS(:,:,:,1) * PRHODJ(:,:,:), 6,'NECON_BU_RRV') - IF (LBUDGET_RC) CALL BUDGET (PRS(:,:,:,2) * PRHODJ(:,:,:), 7,'NECON_BU_RRC') + IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:) * PRHODJ(:,:,:), NBUDGET_TH,'NECON_BU_RTH') + IF (LBUDGET_RV) CALL BUDGET (PRS(:,:,:,1) * PRHODJ(:,:,:), NBUDGET_RV,'NECON_BU_RRV') + IF (LBUDGET_RC) CALL BUDGET (PRS(:,:,:,2) * PRHODJ(:,:,:), NBUDGET_RC,'NECON_BU_RRC') END IF !------------------------------------------------------------------------------- ! diff --git a/src/MNH/resolved_elecn.f90 b/src/MNH/resolved_elecn.f90 index 71ceb8c62..535a78327 100644 --- a/src/MNH/resolved_elecn.f90 +++ b/src/MNH/resolved_elecn.f90 @@ -612,18 +612,18 @@ END DO ! !* 3.4 store the budget terms ! -IF (LBUDGET_RV) CALL BUDGET (PRS(:,:,:,1) * PRHODJ(:,:,:), 6,'NEGA_BU_RRV') -IF (LBUDGET_RC) CALL BUDGET (PRS(:,:,:,2) * PRHODJ(:,:,:), 7,'NEGA_BU_RRC') -IF (LBUDGET_RR) CALL BUDGET (PRS(:,:,:,3) * PRHODJ(:,:,:), 8,'NEGA_BU_RRR') -IF (LBUDGET_RI) CALL BUDGET (PRS(:,:,:,4) * PRHODJ(:,:,:) ,9,'NEGA_BU_RRI') -IF (LBUDGET_RS) CALL BUDGET (PRS(:,:,:,5) * PRHODJ(:,:,:),10,'NEGA_BU_RRS') -IF (LBUDGET_RG) CALL BUDGET (PRS(:,:,:,6) * PRHODJ(:,:,:),11,'NEGA_BU_RRG') -IF (LBUDGET_RH) CALL BUDGET (PRS(:,:,:,7) * PRHODJ(:,:,:),12,'NEGA_BU_RRH') -IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:) * PRHODJ(:,:,:), 4,'NEGA_BU_RTH') +IF (LBUDGET_RV) CALL BUDGET (PRS(:,:,:,1) * PRHODJ(:,:,:), NBUDGET_RV, 'NEGA_BU_RRV') +IF (LBUDGET_RC) CALL BUDGET (PRS(:,:,:,2) * PRHODJ(:,:,:), NBUDGET_RC, 'NEGA_BU_RRC') +IF (LBUDGET_RR) CALL BUDGET (PRS(:,:,:,3) * PRHODJ(:,:,:), NBUDGET_RR, 'NEGA_BU_RRR') +IF (LBUDGET_RI) CALL BUDGET (PRS(:,:,:,4) * PRHODJ(:,:,:) ,NBUDGET_RI, 'NEGA_BU_RRI') +IF (LBUDGET_RS) CALL BUDGET (PRS(:,:,:,5) * PRHODJ(:,:,:), NBUDGET_RS, 'NEGA_BU_RRS') +IF (LBUDGET_RG) CALL BUDGET (PRS(:,:,:,6) * PRHODJ(:,:,:), NBUDGET_RG, 'NEGA_BU_RRG') +IF (LBUDGET_RH) CALL BUDGET (PRS(:,:,:,7) * PRHODJ(:,:,:), NBUDGET_RH, 'NEGA_BU_RRH') +IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:) * PRHODJ(:,:,:), NBUDGET_TH, 'NEGA_BU_RTH') ! IF (LBUDGET_SV) THEN DO JSV = NSV_ELECBEG, NSV_ELECEND - CALL BUDGET (PSVS(:,:,:,JSV) * PRHODJ(:,:,:), 12+JSV, 'NEGA_BU_RSV') + CALL BUDGET (PSVS(:,:,:,JSV) * PRHODJ(:,:,:), NBUDGET_SV1-1+JSV, 'NEGA_BU_RSV') END DO END IF ! diff --git a/src/MNH/shallow_mf_pack.f90 b/src/MNH/shallow_mf_pack.f90 index 5e76f58c5..b8f8aca93 100644 --- a/src/MNH/shallow_mf_pack.f90 +++ b/src/MNH/shallow_mf_pack.f90 @@ -372,12 +372,12 @@ END DO !!! 7. call to MesoNH budgets -IF (LBUDGET_TH) CALL BUDGET (PRTHS,4,'MAFL_BU_RTH') -IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),6,'MAFL_BU_RRV') -IF (LBUDGET_U) CALL BUDGET (PRUS,1,'MAFL_BU_RU') -IF (LBUDGET_V) CALL BUDGET (PRVS,2,'MAFL_BU_RV') +IF (LBUDGET_TH) CALL BUDGET (PRTHS,NBUDGET_TH,'MAFL_BU_RTH') +IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),NBUDGET_RV,'MAFL_BU_RRV') +IF (LBUDGET_U) CALL BUDGET (PRUS,NBUDGET_U,'MAFL_BU_RU') +IF (LBUDGET_V) CALL BUDGET (PRVS,NBUDGET_V,'MAFL_BU_RV') DO JSV=1,ISV - IF (LBUDGET_SV) CALL BUDGET (PRSVS(:,:,:,JSV),12+JSV,'MAFL_BU_RSV') + IF (LBUDGET_SV) CALL BUDGET (PRSVS(:,:,:,JSV),NBUDGET_SV1-1+JSV,'MAFL_BU_RSV') END DO !!! 8. Prints the fluxes in output file diff --git a/src/MNH/slow_terms.f90 b/src/MNH/slow_terms.f90 index 3699b5af8..62ffffc26 100644 --- a/src/MNH/slow_terms.f90 +++ b/src/MNH/slow_terms.f90 @@ -324,7 +324,7 @@ PRRS(:,:,:) = ZW1(:,:,:) / PTSTEP ! !* 2.5 budget storage ! -IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8,'SEDI_BU_RRR') +IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RR,'SEDI_BU_RRR') ! !------------------------------------------------------------------------------- ! @@ -348,8 +348,8 @@ END WHERE ! !* 3.2 budget storage ! -IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7,'ACCR_BU_RRC') -IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8,'ACCR_BU_RRR') +IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RC,'ACCR_BU_RRC') +IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RR,'ACCR_BU_RRR') ! !------------------------------------------------------------------------------- ! @@ -379,8 +379,8 @@ END IF ! !* 4.2 budget storage ! -IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7,'AUTO_BU_RRC') -IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8,'AUTO_BU_RRR') +IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RC,'AUTO_BU_RRC') +IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RR,'AUTO_BU_RRR') ! !------------------------------------------------------------------------------- ! @@ -436,9 +436,9 @@ END WHERE ! !* 5.8 budget storage ! -IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:)*PRHODJ(:,:,:),6,'REVA_BU_RRV') -IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8,'REVA_BU_RRR') -IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'REVA_BU_RTH') +IF (LBUDGET_RV) CALL BUDGET (PRVS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RV,'REVA_BU_RRV') +IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),NBUDGET_RR,'REVA_BU_RRR') +IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),NBUDGET_TH,'REVA_BU_RTH') ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/tke_eps_sources.f90 b/src/MNH/tke_eps_sources.f90 index ebb68aa19..bb417e018 100644 --- a/src/MNH/tke_eps_sources.f90 +++ b/src/MNH/tke_eps_sources.f90 @@ -375,18 +375,18 @@ IF (LBUDGET_TKE) THEN ! add the dynamical production ! PRTKES(:,:,:) = PRTKES(:,:,:) + PDP(:,:,:) * PRHODJ(:,:,:) - CALL BUDGET (PRTKES(:,:,:),5,'DP_BU_RTKE') + CALL BUDGET (PRTKES(:,:,:),NBUDGET_TKE,'DP_BU_RTKE') ! ! add the thermal production ! PRTKES(:,:,:) = PRTKES(:,:,:) + PTP(:,:,:) * PRHODJ(:,:,:) - CALL BUDGET (PRTKES(:,:,:),5,'TP_BU_RTKE') + CALL BUDGET (PRTKES(:,:,:),NBUDGET_TKE,'TP_BU_RTKE') ! ! add the dissipation ! PRTKES(:,:,:) = PRTKES(:,:,:) - XCED * SQRT(PTKEM(:,:,:)) / PLEPS(:,:,:) * & (PEXPL*PTKEM(:,:,:) + PIMPL*ZRES(:,:,:)) * PRHODJ(:,:,:) -CALL BUDGET (PRTKES(:,:,:),5,'DISS_BU_RTKE') +CALL BUDGET (PRTKES(:,:,:),NBUDGET_TKE,'DISS_BU_RTKE') END IF ! !* 2.5 computes the final RTKE and stores the whole turbulent transport @@ -395,7 +395,7 @@ PRTKES(:,:,:) = ZRES(:,:,:) * PRHODJ(:,:,:) / PTSTEP - PRTKESM(:,:,:) ! ! stores the whole turbulent transport ! -IF (LBUDGET_TKE) CALL BUDGET (PRTKES(:,:,:),5,'TR_BU_RTKE') +IF (LBUDGET_TKE) CALL BUDGET (PRTKES(:,:,:),NBUDGET_TKE,'TR_BU_RTKE') ! ! !---------------------------------------------------------------------------- diff --git a/src/MNH/turb.f90 b/src/MNH/turb.f90 index f875c2e36..96dbe560b 100644 --- a/src/MNH/turb.f90 +++ b/src/MNH/turb.f90 @@ -1,4 +1,4 @@ - !MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -923,34 +923,34 @@ CALL TURB_VER(KKA,KKU,KKL,KRR, KRRL, KRRI, & PDYP,PTHP,PSIGS,PWTH,PWRC,PWSV ) ! -IF (LBUDGET_U) CALL BUDGET (PRUS,1,'VTURB_BU_RU') -IF (LBUDGET_V) CALL BUDGET (PRVS,2,'VTURB_BU_RV') -IF (LBUDGET_W) CALL BUDGET (PRWS,3,'VTURB_BU_RW') +IF (LBUDGET_U) CALL BUDGET (PRUS,NBUDGET_U,'VTURB_BU_RU') +IF (LBUDGET_V) CALL BUDGET (PRVS,NBUDGET_V,'VTURB_BU_RV') +IF (LBUDGET_W) CALL BUDGET (PRWS,NBUDGET_W,'VTURB_BU_RW') IF (LBUDGET_TH) THEN IF ( KRRI >= 1 .AND. KRRL >= 1 ) THEN - CALL BUDGET (PRTHLS+ ZLVOCPEXNM * PRRS(:,:,:,2) + ZLSOCPEXNM * PRRS(:,:,:,4),4,'VTURB_BU_RTH') + CALL BUDGET (PRTHLS+ ZLVOCPEXNM * PRRS(:,:,:,2) + ZLSOCPEXNM * PRRS(:,:,:,4),NBUDGET_TH,'VTURB_BU_RTH') ELSE IF ( KRRL >= 1 ) THEN - CALL BUDGET (PRTHLS+ ZLOCPEXNM * PRRS(:,:,:,2),4,'VTURB_BU_RTH') + CALL BUDGET (PRTHLS+ ZLOCPEXNM * PRRS(:,:,:,2),NBUDGET_TH,'VTURB_BU_RTH') ELSE - CALL BUDGET (PRTHLS,4,'VTURB_BU_RTH') + CALL BUDGET (PRTHLS,NBUDGET_TH,'VTURB_BU_RTH') END IF END IF IF (LBUDGET_SV) THEN DO JSV = 1,NSV - CALL BUDGET (PRSVS(:,:,:,JSV),JSV+12,'VTURB_BU_RSV') + CALL BUDGET (PRSVS(:,:,:,JSV),NBUDGET_SV1-1+JSV,'VTURB_BU_RSV') END DO END IF IF (LBUDGET_RV) THEN IF ( KRRI >= 1 .AND. KRRL >= 1) THEN - CALL BUDGET (PRRS(:,:,:,1)-PRRS(:,:,:,2)-PRRS(:,:,:,4),6,'VTURB_BU_RRV') + CALL BUDGET (PRRS(:,:,:,1)-PRRS(:,:,:,2)-PRRS(:,:,:,4),NBUDGET_RV,'VTURB_BU_RRV') ELSE IF ( KRRL >= 1 ) THEN - CALL BUDGET (PRRS(:,:,:,1)-PRRS(:,:,:,2),6,'VTURB_BU_RRV') + CALL BUDGET (PRRS(:,:,:,1)-PRRS(:,:,:,2),NBUDGET_RV,'VTURB_BU_RRV') ELSE - CALL BUDGET (PRRS(:,:,:,1),6,'VTURB_BU_RRV') + CALL BUDGET (PRRS(:,:,:,1),NBUDGET_RV,'VTURB_BU_RRV') END IF END IF -IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),7,'VTURB_BU_RRC') -IF (LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,4),9,'VTURB_BU_RRI') +IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),NBUDGET_RC,'VTURB_BU_RRC') +IF (LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,4),NBUDGET_RI,'VTURB_BU_RRI') ! ! IF (HTURBDIM=='3DIM') THEN @@ -972,35 +972,35 @@ IF (HTURBDIM=='3DIM') THEN END IF ! ! -IF (LBUDGET_U) CALL BUDGET (PRUS,1,'HTURB_BU_RU') -IF (LBUDGET_V) CALL BUDGET (PRVS,2,'HTURB_BU_RV') -IF (LBUDGET_W) CALL BUDGET (PRWS,3,'HTURB_BU_RW') +IF (LBUDGET_U) CALL BUDGET (PRUS,NBUDGET_U,'HTURB_BU_RU') +IF (LBUDGET_V) CALL BUDGET (PRVS,NBUDGET_V,'HTURB_BU_RV') +IF (LBUDGET_W) CALL BUDGET (PRWS,NBUDGET_W,'HTURB_BU_RW') IF (LBUDGET_TH) THEN IF ( KRRI >= 1 .AND. KRRL >= 1 ) THEN CALL BUDGET (PRTHLS+ZLVOCPEXNM*PRRS(:,:,:,2)+ZLSOCPEXNM*PRRS(:,:,:,4) & - ,4,'HTURB_BU_RTH') + ,NBUDGET_TH,'HTURB_BU_RTH') ELSE IF ( KRRL >= 1 ) THEN - CALL BUDGET (PRTHLS+ ZLOCPEXNM * PRRS(:,:,:,2),4,'HTURB_BU_RTH') + CALL BUDGET (PRTHLS+ ZLOCPEXNM * PRRS(:,:,:,2),NBUDGET_TH,'HTURB_BU_RTH') ELSE - CALL BUDGET (PRTHLS,4,'HTURB_BU_RTH') + CALL BUDGET (PRTHLS,NBUDGET_TH,'HTURB_BU_RTH') END IF END IF IF (LBUDGET_SV) THEN DO JSV = 1,NSV - CALL BUDGET (PRSVS(:,:,:,JSV),JSV+12,'HTURB_BU_RSV') + CALL BUDGET (PRSVS(:,:,:,JSV),NBUDGET_SV1-1+JSV,'HTURB_BU_RSV') END DO END IF IF (LBUDGET_RV) THEN IF ( KRRI >= 1 .AND. KRRL >= 1) THEN - CALL BUDGET (PRRS(:,:,:,1)-PRRS(:,:,:,2)-PRRS(:,:,:,4),6,'HTURB_BU_RRV') + CALL BUDGET (PRRS(:,:,:,1)-PRRS(:,:,:,2)-PRRS(:,:,:,4),NBUDGET_RV,'HTURB_BU_RRV') ELSE IF ( KRRL >= 1 ) THEN - CALL BUDGET (PRRS(:,:,:,1)-PRRS(:,:,:,2),6,'HTURB_BU_RRV') + CALL BUDGET (PRRS(:,:,:,1)-PRRS(:,:,:,2),NBUDGET_RV,'HTURB_BU_RRV') ELSE - CALL BUDGET (PRRS(:,:,:,1),6,'HTURB_BU_RRV') + CALL BUDGET (PRRS(:,:,:,1),NBUDGET_RV,'HTURB_BU_RRV') END IF END IF -IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),7,'HTURB_BU_RRC') -IF (LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,4),9,'HTURB_BU_RRI') +IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),NBUDGET_RC,'HTURB_BU_RRC') +IF (LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,4),NBUDGET_RI,'HTURB_BU_RRI') ! !---------------------------------------------------------------------------- ! @@ -1024,11 +1024,11 @@ CALL TKE_EPS_SOURCES(KKA,KKU,KKL,KMI,PTKET,PLEM,ZLEPS,PDYP,ZTRH, & IF (LBUDGET_TH) THEN IF ( KRRI >= 1 .AND. KRRL >= 1 ) THEN CALL BUDGET (PRTHLS+ZLVOCPEXNM*PRRS(:,:,:,2)+ZLSOCPEXNM*PRRS(:,:,:,4) & - ,4,'DISSH_BU_RTH') + ,NBUDGET_TH,'DISSH_BU_RTH') ELSE IF ( KRRL >= 1 ) THEN - CALL BUDGET (PRTHLS+ZLOCPEXNM* PRRS(:,:,:,2),4,'DISSH_BU_RTH') + CALL BUDGET (PRTHLS+ZLOCPEXNM* PRRS(:,:,:,2),NBUDGET_TH,'DISSH_BU_RTH') ELSE - CALL BUDGET (PRTHLS,4,'DISSH_BU_RTH') + CALL BUDGET (PRTHLS,NBUDGET_TH,'DISSH_BU_RTH') END IF END IF ! @@ -1131,9 +1131,9 @@ IF ((HCLOUD == 'KHKO') .OR. (HCLOUD == 'C2R2')) THEN END WHERE END DO ! - IF (LBUDGET_TH) CALL BUDGET (PRTHLS(:,:,:), 4,'NETUR_BU_RTH') - IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1), 6,'NETUR_BU_RRV') - IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2), 7,'NETUR_BU_RRC') + IF (LBUDGET_TH) CALL BUDGET (PRTHLS(:,:,:), NBUDGET_TH,'NETUR_BU_RTH') + IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1), NBUDGET_RV,'NETUR_BU_RRV') + IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2), NBUDGET_RC,'NETUR_BU_RRC') END IF ! !---------------------------------------------------------------------------- diff --git a/src/MNH/two_way.f90 b/src/MNH/two_way.f90 index 64f72579c..ba399f93a 100644 --- a/src/MNH/two_way.f90 +++ b/src/MNH/two_way.f90 @@ -165,21 +165,21 @@ CALL GOTO_MODEL(KMI) !* 2. BUDGET COMPUTATION ! ------------------ ! -IF (LBUDGET_U) CALL BUDGET (PRUS,1,'NEST_BU_RU') -IF (LBUDGET_V) CALL BUDGET (PRVS,2,'NEST_BU_RV') -IF (LBUDGET_W) CALL BUDGET (PRWS,3,'NEST_BU_RW') -IF (LBUDGET_TH) CALL BUDGET (PRTHS,4,'NEST_BU_RTH') +IF (LBUDGET_U) CALL BUDGET (PRUS,NBUDGET_U,'NEST_BU_RU') +IF (LBUDGET_V) CALL BUDGET (PRVS,NBUDGET_V,'NEST_BU_RV') +IF (LBUDGET_W) CALL BUDGET (PRWS,NBUDGET_W,'NEST_BU_RW') +IF (LBUDGET_TH) CALL BUDGET (PRTHS,NBUDGET_TH,'NEST_BU_RTH') DO JRR=1,KRR - IF (JRR==1 .AND. LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,JRR),6,'NEST_BU_RRV') - IF (JRR==2 .AND. LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,JRR),7,'NEST_BU_RRC') - IF (JRR==3 .AND. LBUDGET_RR) CALL BUDGET (PRRS(:,:,:,JRR),8,'NEST_BU_RRR') - IF (JRR==4 .AND. LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,JRR),9,'NEST_BU_RRI') - IF (JRR==5 .AND. LBUDGET_RS) CALL BUDGET (PRRS(:,:,:,JRR),10,'NEST_BU_RRS') - IF (JRR==6 .AND. LBUDGET_RG) CALL BUDGET (PRRS(:,:,:,JRR),11,'NEST_BU_RRG') - IF (JRR==7 .AND. LBUDGET_RH) CALL BUDGET (PRRS(:,:,:,JRR),12,'NEST_BU_RRH') + IF (JRR==1 .AND. LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,JRR),NBUDGET_RV,'NEST_BU_RRV') + IF (JRR==2 .AND. LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,JRR),NBUDGET_RC,'NEST_BU_RRC') + IF (JRR==3 .AND. LBUDGET_RR) CALL BUDGET (PRRS(:,:,:,JRR),NBUDGET_RR,'NEST_BU_RRR') + IF (JRR==4 .AND. LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,JRR),NBUDGET_RI,'NEST_BU_RRI') + IF (JRR==5 .AND. LBUDGET_RS) CALL BUDGET (PRRS(:,:,:,JRR),NBUDGET_RS,'NEST_BU_RRS') + IF (JRR==6 .AND. LBUDGET_RG) CALL BUDGET (PRRS(:,:,:,JRR),NBUDGET_RG,'NEST_BU_RRG') + IF (JRR==7 .AND. LBUDGET_RH) CALL BUDGET (PRRS(:,:,:,JRR),NBUDGET_RH,'NEST_BU_RRH') ENDDO DO JSV=1,KSV - IF (LBUDGET_SV) CALL BUDGET (PRSVS(:,:,:,JSV),12+JSV,'NEST_BU_RSV') + IF (LBUDGET_SV) CALL BUDGET (PRSVS(:,:,:,JSV),NBUDGET_SV1-1+JSV,'NEST_BU_RSV') END DO !------------------------------------------------------------------------------ ! diff --git a/src/MNH/viscosity.f90 b/src/MNH/viscosity.f90 index 3b348d47d..54d2170c1 100644 --- a/src/MNH/viscosity.f90 +++ b/src/MNH/viscosity.f90 @@ -193,7 +193,7 @@ IF (OVISC_TH) THEN ! END IF ! -IF (LBUDGET_TH) CALL BUDGET (PRTHS,4,'VISC_BU_RU') +IF (LBUDGET_TH) CALL BUDGET (PRTHS,NBUDGET_TH,'VISC_BU_RTH') ! !------------------------------------------------------------------------------- ! @@ -211,13 +211,13 @@ IF (OVISC_R .AND. (SIZE(PRT,1) > 0)) THEN ! END IF ! -IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),6,'VISC_BU_RRV') -IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),7,'VISC_BU_RRC') -IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:,3),8,'VISC_BU_RRR') -IF (LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,4),9,'VISC_BU_RRI') -IF (LBUDGET_RS) CALL BUDGET (PRRS(:,:,:,5),10,'VISC_BU_RRS') -IF (LBUDGET_RG) CALL BUDGET (PRRS(:,:,:,6),11,'VISC_BU_RRG') -IF (LBUDGET_RH) CALL BUDGET (PRRS(:,:,:,7),12,'VISC_BU_RRH') +IF (LBUDGET_RV) CALL BUDGET (PRRS(:,:,:,1),NBUDGET_RV,'VISC_BU_RRV') +IF (LBUDGET_RC) CALL BUDGET (PRRS(:,:,:,2),NBUDGET_RC,'VISC_BU_RRC') +IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:,3),NBUDGET_RR,'VISC_BU_RRR') +IF (LBUDGET_RI) CALL BUDGET (PRRS(:,:,:,4),NBUDGET_RI,'VISC_BU_RRI') +IF (LBUDGET_RS) CALL BUDGET (PRRS(:,:,:,5),NBUDGET_RS,'VISC_BU_RRS') +IF (LBUDGET_RG) CALL BUDGET (PRRS(:,:,:,6),NBUDGET_RG,'VISC_BU_RRG') +IF (LBUDGET_RH) CALL BUDGET (PRRS(:,:,:,7),NBUDGET_RH,'VISC_BU_RRH') ! !------------------------------------------------------------------------------- ! @@ -236,7 +236,7 @@ END IF ! IF (LBUDGET_SV) THEN DO IK = 1, KSV - CALL BUDGET (PRSVS(:,:,:,IK), 12+IK, 'VISC_BU_RSV') + CALL BUDGET (PRSVS(:,:,:,IK), NBUDGET_SV1-1+IK, 'VISC_BU_RSV') END DO END IF ! @@ -334,8 +334,8 @@ ENDIF ENDIF END IF ! -IF (LBUDGET_U) CALL BUDGET (PRUS,1,'VISC_BU_RU') -IF (LBUDGET_V) CALL BUDGET (PRVS,2,'VISC_BU_RV') -IF (LBUDGET_W) CALL BUDGET (PRWS,2,'VISC_BU_RW') +IF (LBUDGET_U) CALL BUDGET (PRUS,NBUDGET_U,'VISC_BU_RU') +IF (LBUDGET_V) CALL BUDGET (PRVS,NBUDGET_V,'VISC_BU_RV') +IF (LBUDGET_W) CALL BUDGET (PRWS,NBUDGET_V,'VISC_BU_RW') ! END SUBROUTINE VISCOSITY -- GitLab