diff --git a/src/MNH/ini_budget.f90 b/src/MNH/ini_budget.f90 index 569ef6392258a2132feab0797bef1fbe2decde71..91461134c79e9fb4f617f306e3ca9f7c1b23c30b 100644 --- a/src/MNH/ini_budget.f90 +++ b/src/MNH/ini_budget.f90 @@ -249,7 +249,7 @@ use modd_param_lima, only: laero_mass_lima => laero_mass, lacti_lima => lacti, lhail_lima => lhail, lhhoni_lima => lhhoni, lmeyers_lima => lmeyers, lnucl_lima => lnucl, & lptsplit, & lrain_lima => lrain, lscav_lima => lscav, lsedc_lima => lsedc, lsedi_lima => lsedi, & - lsnow_lima => lsnow, lspro_lima => lspro, lwarm_lima => lwarm, lcibu, lrdsf, & + lsnow_lima => lsnow, lspro_lima => lspro, lwarm_lima => lwarm, lcibu, lrdsf, nmom_i, & nmod_ccn, nmod_ifn, nmod_imm use modd_ref, only: lcouples use modd_salt, only: lsalt @@ -1097,7 +1097,6 @@ if ( lbu_rth ) then gtmp = cactccn == 'ABRK' .and. (lorilam .or. ldust .or. lsalt ) tzsource%lavailable = ( hcloud == 'LIMA' .and. lwarm_lima .and. lacti_lima .and. nmod_ccn >= 1 & .and. ( .not.lptsplit .or. .not.lsubg_cond ) ) & - .or. hcloud(1:3) == 'ICE' & .or. ( hcloud == 'C2R2' .and. ( gtmp .or. .not.lsupsat_c2r2 ) ) & .or. ( hcloud == 'KHKO' .and. ( gtmp .or. .not.lsupsat_c2r2 ) ) call Budget_source_add( tbudgets(NBUDGET_TH), tzsource ) @@ -1111,6 +1110,11 @@ if ( lbu_rth ) then .or. hcloud == 'KESS' call Budget_source_add( tbudgets(NBUDGET_TH), tzsource ) + tzsource%cmnhname = 'HIN' + tzsource%clongname = 'heterogeneous ice nucleation' + tzsource%lavailable = hcloud(1:3) == 'ICE' .or. (hcloud == 'LIMA' .and. nmom_i == 1) + call Budget_source_add( tbudgets(NBUDGET_TH), tzsource ) + tzsource%cmnhname = 'HIND' tzsource%clongname = 'heterogeneous nucleation by deposition' tzsource%lavailable = hcloud == 'LIMA' .and. lcold_lima .and. lnucl_lima @@ -1495,7 +1499,6 @@ if ( tbudgets(NBUDGET_RV)%lenabled ) then gtmp = cactccn == 'ABRK' .and. (lorilam .or. ldust .or. lsalt ) tzsource%lavailable = ( hcloud == 'LIMA' .and. lwarm_lima .and. lacti_lima .and. nmod_ccn >= 1 & .and. ( .not.lptsplit .or. .not.lsubg_cond ) ) & - .or. hcloud(1:3) == 'ICE' & .or. ( hcloud == 'C2R2' .and. ( gtmp .or. .not.lsupsat_c2r2 ) ) & .or. ( hcloud == 'KHKO' .and. ( gtmp .or. .not.lsupsat_c2r2 ) ) call Budget_source_add( tbudgets(NBUDGET_RV), tzsource ) @@ -1510,6 +1513,11 @@ if ( tbudgets(NBUDGET_RV)%lenabled ) then .or. hcloud == 'KESS' call Budget_source_add( tbudgets(NBUDGET_RV), tzsource ) + tzsource%cmnhname = 'HIN' + tzsource%clongname = 'heterogeneous ice nucleation' + tzsource%lavailable = hcloud(1:3) == 'ICE' .or. ( hcloud == 'LIMA' .and. nmom_i == 1 ) + call Budget_source_add( tbudgets(NBUDGET_RV), tzsource ) + tzsource%cmnhname = 'HIND' tzsource%clongname = 'heterogeneous nucleation by deposition' tzsource%lavailable = hcloud == 'LIMA' .and. lcold_lima .and. lnucl_lima @@ -2199,9 +2207,9 @@ if ( tbudgets(NBUDGET_RI)%lenabled ) then .or. hcloud(1:3) == 'ICE' call Budget_source_add( tbudgets(NBUDGET_RI), tzsource ) - tzsource%cmnhname = 'HENU' - tzsource%clongname = 'heterogeneous nucleation' - tzsource%lavailable = hcloud(1:3) == 'ICE' + tzsource%cmnhname = 'HIN' + tzsource%clongname = 'heterogeneous ice nucleation' + tzsource%lavailable = hcloud(1:3) == 'ICE' .or. ( hcloud == 'LIMA' .and. nmom_i == 1) call Budget_source_add( tbudgets(NBUDGET_RI), tzsource ) tzsource%cmnhname = 'HIND' @@ -2266,7 +2274,7 @@ if ( tbudgets(NBUDGET_RI)%lenabled ) then tzsource%cmnhname = 'CIBU' tzsource%clongname = 'ice multiplication process due to ice collisional breakup' - tzsource%lavailable = ( hcloud == 'LIMA' .and. .not.lptsplit .and. lcold_lima .and. lwarm_lima .and. lsnow_lima .and. lcibu ) + tzsource%lavailable = hcloud == 'LIMA' .and. ( lptsplit .or. ( lcold_lima .and. lwarm_lima .and. lsnow_lima .and. lcibu ) ) call Budget_source_add( tbudgets(NBUDGET_RI), tzsource ) tzsource%cmnhname = 'CFRZ' @@ -2277,7 +2285,7 @@ if ( tbudgets(NBUDGET_RI)%lenabled ) then tzsource%cmnhname = 'RDSF' tzsource%clongname = 'ice multiplication process following rain contact freezing' - tzsource%lavailable = ( hcloud == 'LIMA' .and. .not.lptsplit .and. lcold_lima .and. lwarm_lima .and. lsnow_lima .and. lrdsf ) + tzsource%lavailable = hcloud == 'LIMA' .and. ( lptsplit .or. ( lcold_lima .and. lwarm_lima .and. lsnow_lima .and. lrdsf ) ) call Budget_source_add( tbudgets(NBUDGET_RI), tzsource ) tzsource%cmnhname = 'WETG' @@ -2475,7 +2483,7 @@ if ( tbudgets(NBUDGET_RS)%lenabled ) then tzsource%cmnhname = 'CIBU' tzsource%clongname = 'ice multiplication process due to ice collisional breakup' - tzsource%lavailable = ( hcloud == 'LIMA' .and. .not.lptsplit .and. lcold_lima .and. lwarm_lima .and. lsnow_lima .and. lcibu ) + tzsource%lavailable = hcloud == 'LIMA' .and. ( lptsplit .or. ( lcold_lima .and. lwarm_lima .and. lsnow_lima .and. lcibu ) ) call Budget_source_add( tbudgets(NBUDGET_RS), tzsource ) tzsource%cmnhname = 'ACC' @@ -2668,7 +2676,7 @@ if ( tbudgets(NBUDGET_RG)%lenabled ) then tzsource%cmnhname = 'RDSF' tzsource%clongname = 'ice multiplication process following rain contact freezing' - tzsource%lavailable = ( hcloud == 'LIMA' .and. .not.lptsplit .and. lcold_lima .and. lwarm_lima .and. lsnow_lima .and. lrdsf ) + tzsource%lavailable = hcloud == 'LIMA' .and. ( lptsplit .or. ( lcold_lima .and. lwarm_lima .and. lsnow_lima .and. lrdsf ) ) call Budget_source_add( tbudgets(NBUDGET_RG), tzsource ) tzsource%cmnhname = 'WETG' @@ -3444,7 +3452,7 @@ SV_BUDGETS: do jsv = 1, ksv tzsource%cmnhname = 'CIBU' tzsource%clongname = 'ice multiplication process due to ice collisional breakup' - tzsource%lavailable = .not.lptsplit .and. lcold_lima .and. lwarm_lima .and. lsnow_lima .and. lcibu + tzsource%lavailable = lptsplit .or. ( lcold_lima .and. lwarm_lima .and. lsnow_lima .and. lcibu ) call Budget_source_add( tbudgets(ibudget), tzsource ) tzsource%cmnhname = 'CFRZ' @@ -3454,7 +3462,7 @@ SV_BUDGETS: do jsv = 1, ksv tzsource%cmnhname = 'RDSF' tzsource%clongname = 'ice multiplication process following rain contact freezing' - tzsource%lavailable = .not.lptsplit .and. lcold_lima .and. lwarm_lima .and. lsnow_lima .and. lrdsf + tzsource%lavailable = lptsplit .or. ( lcold_lima .and. lwarm_lima .and. lsnow_lima .and. lrdsf ) call Budget_source_add( tbudgets(ibudget), tzsource ) tzsource%cmnhname = 'WETG' diff --git a/src/MNH/lima.f90 b/src/MNH/lima.f90 index 330a5a3f5e113d9dea95d45fecec263b018d4b36..74d60c4ff3433b39da42c27bdef43af05e107777 100644 --- a/src/MNH/lima.f90 +++ b/src/MNH/lima.f90 @@ -1816,7 +1816,7 @@ if ( lbu_enable ) then call Budget_store_add( tbudgets(idx), 'CORR2', ztot_ci_corr2(:, :, :) * zrhodjontstep(:, :, :) ) do ii = 1, nmod_ifn - idx = nsv_lima_ifn_nucl + ii - 1 + idx = NBUDGET_SV1 - 1 + nsv_lima_ifn_nucl + ii - 1 call Budget_store_add( tbudgets(idx), 'IMLT', ztot_ifnn_imlt(:, :, :, ii) * zrhodjontstep(:, :, :) ) end do end if diff --git a/src/MNH/lima_nucleation_procs.f90 b/src/MNH/lima_nucleation_procs.f90 index f3f4e17fd057fde863f393e761a8f98265e1aae1..91fb9deafed0224be3f978407f5c579e9c06e1de 100644 --- a/src/MNH/lima_nucleation_procs.f90 +++ b/src/MNH/lima_nucleation_procs.f90 @@ -310,38 +310,38 @@ IF (LCOLD .AND. LNUCL .AND. NMOM_I.EQ.1) THEN PTSTEP, PTHT, PPABST, PRHODJ, PRHODREF, PRVT, PRCT, PRRT, PRIT, PRST, PRGT, & ZCIT, PEXNREF, ZTHS, ZRVS, ZRIS, ZT, ZRHT) ! - Z_TH_HIND=ZTHS*PTSTEP-PTHT - Z_RI_HIND=ZRIS*PTSTEP-PRIT - Z_CI_HIND=ZCIT-PCIT - PCIT=ZCIT - PRIT=ZRIS*PTSTEP - PTHT=ZTHS*PTSTEP - Z_TH_HINC=0. - Z_RC_HINC=0. - Z_CC_HINC=0. - ! - if ( lbu_enable ) then - if ( lbudget_th ) call Budget_store_add( tbudgets(NBUDGET_TH), 'HIND', z_th_hind(:, :, :) * prhodj(:, :, :) / ptstep ) - if ( lbudget_rv ) call Budget_store_add( tbudgets(NBUDGET_RV), 'HIND', -z_ri_hind(:, :, :) * prhodj(:, :, :) / ptstep ) - if ( lbudget_ri ) call Budget_store_add( tbudgets(NBUDGET_RI), 'HIND', z_ri_hind(:, :, :) * prhodj(:, :, :) / ptstep ) - if ( lbudget_sv ) then - call Budget_store_add( tbudgets(NBUDGET_SV1 - 1 + nsv_lima_ni), 'HIND', z_ci_hind(:, :, :) * prhodj(:, :, :) / ptstep ) - if (nmod_ifn > 0 ) & - call Budget_store_add( tbudgets(NBUDGET_SV1 - 1 + nsv_lima_ifn_nucl), 'HIND', & - z_ci_hind(:, :, :) * prhodj(:, :, :) / ptstep ) - end if - - if ( lbudget_th ) call Budget_store_add( tbudgets(NBUDGET_TH), 'HINC', z_th_hinc(:, :, :) * prhodj(:, :, :) / ptstep ) - if ( lbudget_rc ) call Budget_store_add( tbudgets(NBUDGET_RC), 'HINC', z_rc_hinc(:, :, :) * prhodj(:, :, :) / ptstep ) - if ( lbudget_ri ) call Budget_store_add( tbudgets(NBUDGET_RI), 'HINC', -z_rc_hinc(:, :, :) * prhodj(:, :, :) / ptstep ) - if ( lbudget_sv ) then - call Budget_store_add( tbudgets(NBUDGET_SV1 - 1 + nsv_lima_nc), 'HINC', z_cc_hinc(:, :, :) * prhodj(:, :, :) / ptstep ) - call Budget_store_add( tbudgets(NBUDGET_SV1 - 1 + nsv_lima_ni), 'HINC', -z_cc_hinc(:, :, :) * prhodj(:, :, :) / ptstep ) - if (nmod_ifn > 0 ) & - call Budget_store_add( tbudgets(NBUDGET_SV1 - 1 + nsv_lima_ifn_nucl), 'HINC', & - -z_cc_hinc(:, :, :) * prhodj(:, :, :) / ptstep ) - end if - end if +! Z_TH_HIND=ZTHS*PTSTEP-PTHT +! Z_RI_HIND=ZRIS*PTSTEP-PRIT +! Z_CI_HIND=ZCIT-PCIT +! PCIT=ZCIT +! PRIT=ZRIS*PTSTEP +! PTHT=ZTHS*PTSTEP +! Z_TH_HINC=0. +! Z_RC_HINC=0. +! Z_CC_HINC=0. +! ! +! if ( lbu_enable ) then +! if ( lbudget_th ) call Budget_store_add( tbudgets(NBUDGET_TH), 'HIND', z_th_hind(:, :, :) * prhodj(:, :, :) / ptstep ) +! if ( lbudget_rv ) call Budget_store_add( tbudgets(NBUDGET_RV), 'HIND', -z_ri_hind(:, :, :) * prhodj(:, :, :) / ptstep ) +! if ( lbudget_ri ) call Budget_store_add( tbudgets(NBUDGET_RI), 'HIND', z_ri_hind(:, :, :) * prhodj(:, :, :) / ptstep ) +! if ( lbudget_sv ) then +! call Budget_store_add( tbudgets(NBUDGET_SV1 - 1 + nsv_lima_ni), 'HIND', z_ci_hind(:, :, :) * prhodj(:, :, :) / ptstep ) +! if (nmod_ifn > 0 ) & +! call Budget_store_add( tbudgets(NBUDGET_SV1 - 1 + nsv_lima_ifn_nucl), 'HIND', & +! z_ci_hind(:, :, :) * prhodj(:, :, :) / ptstep ) +! end if +! +! if ( lbudget_th ) call Budget_store_add( tbudgets(NBUDGET_TH), 'HINC', z_th_hinc(:, :, :) * prhodj(:, :, :) / ptstep ) +! if ( lbudget_rc ) call Budget_store_add( tbudgets(NBUDGET_RC), 'HINC', z_rc_hinc(:, :, :) * prhodj(:, :, :) / ptstep ) +! if ( lbudget_ri ) call Budget_store_add( tbudgets(NBUDGET_RI), 'HINC', -z_rc_hinc(:, :, :) * prhodj(:, :, :) / ptstep ) +! if ( lbudget_sv ) then +! call Budget_store_add( tbudgets(NBUDGET_SV1 - 1 + nsv_lima_nc), 'HINC', z_cc_hinc(:, :, :) * prhodj(:, :, :) / ptstep ) +! call Budget_store_add( tbudgets(NBUDGET_SV1 - 1 + nsv_lima_ni), 'HINC', -z_cc_hinc(:, :, :) * prhodj(:, :, :) / ptstep ) +! if (nmod_ifn > 0 ) & +! call Budget_store_add( tbudgets(NBUDGET_SV1 - 1 + nsv_lima_ifn_nucl), 'HINC', & +! -z_cc_hinc(:, :, :) * prhodj(:, :, :) / ptstep ) +! end if +! end if END IF ! !------------------------------------------------------------------------------- diff --git a/src/MNH/rain_ice_elec.f90 b/src/MNH/rain_ice_elec.f90 index a73a0250c1a30784fa9c5f579a6be6a9946e0073..d1a432f20b26e1f371778fd54366e65bb2e0c784 100644 --- a/src/MNH/rain_ice_elec.f90 +++ b/src/MNH/rain_ice_elec.f90 @@ -2275,9 +2275,9 @@ GNEGT(IIB:IIE,IJB:IJE,IKB:IKE) = ZT(IIB:IIE,IJB:IJE,IKB:IKE) < XTT INEGT = COUNTJV( GNEGT(:,:,:),I1(:),I2(:),I3(:)) ! IF( INEGT >= 1 ) THEN - if ( lbudget_th ) call Budget_store_init( tbudgets(NBUDGET_TH), 'HENU', pths(:, :, :) * prhodj(:, :, :) ) - if ( lbudget_rv ) call Budget_store_init( tbudgets(NBUDGET_RV), 'HENU', prvs(:, :, :) * prhodj(:, :, :) ) - if ( lbudget_ri ) call Budget_store_init( tbudgets(NBUDGET_RI), 'HENU', pris(:, :, :) * prhodj(:, :, :) ) + if ( lbudget_th ) call Budget_store_init( tbudgets(NBUDGET_TH), 'HIN', pths(:, :, :) * prhodj(:, :, :) ) + if ( lbudget_rv ) call Budget_store_init( tbudgets(NBUDGET_RV), 'HIN', prvs(:, :, :) * prhodj(:, :, :) ) + if ( lbudget_ri ) call Budget_store_init( tbudgets(NBUDGET_RI), 'HIN', pris(:, :, :) * prhodj(:, :, :) ) ALLOCATE(ZRVT(INEGT)) ALLOCATE(ZCIT(INEGT)) @@ -2351,9 +2351,9 @@ IF( INEGT >= 1 ) THEN DEALLOCATE(ZCIT) DEALLOCATE(ZRVT) - if ( lbudget_th ) call Budget_store_end( tbudgets(NBUDGET_TH), 'HENU', pths(:, :, :) * prhodj(:, :, :) ) - if ( lbudget_rv ) call Budget_store_end( tbudgets(NBUDGET_RV), 'HENU', prvs(:, :, :) * prhodj(:, :, :) ) - if ( lbudget_ri ) call Budget_store_end( tbudgets(NBUDGET_RI), 'HENU', pris(:, :, :) * prhodj(:, :, :) ) + if ( lbudget_th ) call Budget_store_end( tbudgets(NBUDGET_TH), 'HIN', pths(:, :, :) * prhodj(:, :, :) ) + if ( lbudget_rv ) call Budget_store_end( tbudgets(NBUDGET_RV), 'HIN', prvs(:, :, :) * prhodj(:, :, :) ) + if ( lbudget_ri ) call Budget_store_end( tbudgets(NBUDGET_RI), 'HIN', pris(:, :, :) * prhodj(:, :, :) ) END IF diff --git a/src/MNH/rain_ice_nucleation.f90 b/src/MNH/rain_ice_nucleation.f90 index 97bfaf1f87e16eed809b73b085d2c3886f514225..701e30282f15c6c3083767192f3d33f07f177d02 100644 --- a/src/MNH/rain_ice_nucleation.f90 +++ b/src/MNH/rain_ice_nucleation.f90 @@ -81,9 +81,9 @@ REAL, DIMENSION(SIZE(PEXNREF,1),SIZE(PEXNREF,2),SIZE(PEXNREF,3)) & ! !------------------------------------------------------------------------------- -if ( lbudget_th ) call Budget_store_init( tbudgets(NBUDGET_TH), 'HENU', pths(:, :, :) * prhodj(:, :, :) ) -if ( lbudget_rv ) call Budget_store_init( tbudgets(NBUDGET_RV), 'HENU', prvs(:, :, :) * prhodj(:, :, :) ) -if ( lbudget_ri ) call Budget_store_init( tbudgets(NBUDGET_RI), 'HENU', pris(:, :, :) * prhodj(:, :, :) ) +if ( lbudget_th ) call Budget_store_init( tbudgets(NBUDGET_TH), 'HIN', pths(:, :, :) * prhodj(:, :, :) ) +if ( lbudget_rv ) call Budget_store_init( tbudgets(NBUDGET_RV), 'HIN', prvs(:, :, :) * prhodj(:, :, :) ) +if ( lbudget_ri ) call Budget_store_init( tbudgets(NBUDGET_RI), 'HIN', pris(:, :, :) * prhodj(:, :, :) ) ! ! compute the temperature and the pressure ! @@ -171,9 +171,9 @@ END IF ! !* 3.1.3 budget storage ! -if ( lbudget_th ) call Budget_store_end( tbudgets(NBUDGET_TH), 'HENU', pths(:, :, :) * prhodj(:, :, :) ) -if ( lbudget_rv ) call Budget_store_end( tbudgets(NBUDGET_RV), 'HENU', prvs(:, :, :) * prhodj(:, :, :) ) -if ( lbudget_ri ) call Budget_store_end( tbudgets(NBUDGET_RI), 'HENU', pris(:, :, :) * prhodj(:, :, :) ) +if ( lbudget_th ) call Budget_store_end( tbudgets(NBUDGET_TH), 'HIN', pths(:, :, :) * prhodj(:, :, :) ) +if ( lbudget_rv ) call Budget_store_end( tbudgets(NBUDGET_RV), 'HIN', prvs(:, :, :) * prhodj(:, :, :) ) +if ( lbudget_ri ) call Budget_store_end( tbudgets(NBUDGET_RI), 'HIN', pris(:, :, :) * prhodj(:, :, :) ) END SUBROUTINE RAIN_ICE_NUCLEATION diff --git a/src/MNH/rain_ice_red.f90 b/src/MNH/rain_ice_red.f90 index 3ad44addbceccd40be33646a13bc83964a27e0b8..6f87ff075f52affb633e8300884452fcfc8eb09c 100644 --- a/src/MNH/rain_ice_red.f90 +++ b/src/MNH/rain_ice_red.f90 @@ -527,8 +527,8 @@ REAL, DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3)) :: & ! !------------------------------------------------------------------------------- if ( lbu_enable ) then - if ( lbudget_th ) call Budget_store_init( tbudgets(NBUDGET_TH), 'HENU', pths(:, :, :) * prhodj(:, :, :) ) - if ( lbudget_rv ) call Budget_store_init( tbudgets(NBUDGET_RV), 'HENU', prvs(:, :, :) * prhodj(:, :, :) ) + if ( lbudget_th ) call Budget_store_init( tbudgets(NBUDGET_TH), 'HIN', pths(:, :, :) * prhodj(:, :, :) ) + if ( lbudget_rv ) call Budget_store_init( tbudgets(NBUDGET_RV), 'HIN', prvs(:, :, :) * prhodj(:, :, :) ) end if !------------------------------------------------------------------------------- ! @@ -1244,10 +1244,10 @@ DO JK = 1, KKT ENDDO ! if ( lbu_enable ) then - !Note: there is an other contribution for HENU later - if ( lbudget_th ) call Budget_store_end( tbudgets(NBUDGET_TH), 'HENU', pths(:, :, :) * prhodj(:, :, :) ) - if ( lbudget_rv ) call Budget_store_end( tbudgets(NBUDGET_RV), 'HENU', prvs(:, :, :) * prhodj(:, :, :) ) - if ( lbudget_ri ) call Budget_store_add( tbudgets(NBUDGET_RI), 'HENU', zz_rvheni(:, :, :) * prhodj(:, :, :) ) + !Note: there is an other contribution for HIN later + if ( lbudget_th ) call Budget_store_end( tbudgets(NBUDGET_TH), 'HIN', pths(:, :, :) * prhodj(:, :, :) ) + if ( lbudget_rv ) call Budget_store_end( tbudgets(NBUDGET_RV), 'HIN', prvs(:, :, :) * prhodj(:, :, :) ) + if ( lbudget_ri ) call Budget_store_add( tbudgets(NBUDGET_RI), 'HIN', zz_rvheni(:, :, :) * prhodj(:, :, :) ) end if !------------------------------------------------------------------------------- ! @@ -1353,9 +1353,9 @@ IF(LBU_ENABLE) THEN DO JL=1,IMICRO ZW(I1(JL), I2(JL), I3(JL)) = ZTOT_RVHENI(JL) * ZINV_TSTEP END DO - if ( lbudget_th ) call Budget_store_add( tbudgets(NBUDGET_TH), 'HENU', zw(:, :, :) * zz_lsfact(:, :, :) * prhodj(:, :, :) ) - if ( lbudget_rv ) call Budget_store_add( tbudgets(NBUDGET_RV), 'HENU', -zw(:, :, :) * prhodj(:, :, :) ) - if ( lbudget_ri ) call Budget_store_add( tbudgets(NBUDGET_RI), 'HENU', zw(:, :, :) * prhodj(:, :, :) ) + if ( lbudget_th ) call Budget_store_add( tbudgets(NBUDGET_TH), 'HIN', zw(:, :, :) * zz_lsfact(:, :, :) * prhodj(:, :, :) ) + if ( lbudget_rv ) call Budget_store_add( tbudgets(NBUDGET_RV), 'HIN', -zw(:, :, :) * prhodj(:, :, :) ) + if ( lbudget_ri ) call Budget_store_add( tbudgets(NBUDGET_RI), 'HIN', zw(:, :, :) * prhodj(:, :, :) ) ZW(:,:,:) = 0. DO JL=1,IMICRO