diff --git a/src/MNH/ini_budget.f90 b/src/MNH/ini_budget.f90 index 9283fc94736ba81ef3d5759d7fab55e371898950..3cfc87ba19f77d1a9c2ded54b86a58480915d651 100644 --- a/src/MNH/ini_budget.f90 +++ b/src/MNH/ini_budget.f90 @@ -8,6 +8,7 @@ ! P. Wautelet 11/01/2021: ignore xbuwri for cartesian boxes (write at every xbulen interval) ! P. Wautelet 01/02/2021: bugfix: add missing CEDS source terms for SV budgets ! P. Wautelet 02/02/2021: budgets: add missing source terms for SV budgets in LIMA +! P. Wautelet 03/02/2021: budgets: add new source if LIMA splitting: CORR2 !----------------------------------------------------------------- module mode_ini_budget @@ -1271,7 +1272,7 @@ if ( tbudgets(NBUDGET_RV)%lenabled ) then !Allocate all basic source terms (used or not) !The size should be large enough (bigger than necessary is OK) - isourcesmax = 32 + isourcesmax = 33 tbudgets(NBUDGET_RV)%nsourcesmax = isourcesmax allocate( tbudgets(NBUDGET_RV)%tsources(isourcesmax) ) @@ -1452,6 +1453,11 @@ if ( tbudgets(NBUDGET_RV)%lenabled ) then tzsource%clongname = 'deposition on ice' call Budget_source_add( tbudgets(NBUDGET_RV), tzsource, gcond, ncdepirv ) + gcond = hcloud == 'LIMA' .and. lptsplit + tzsource%cmnhname = 'CORR2' + tzsource%clongname = 'supplementary correction inside LIMA splitting' + call Budget_source_add( tbudgets(NBUDGET_RV), tzsource, gcond, ncorr2rv ) + gcond = ( hcloud == 'KESS' .or. hcloud == 'ICE3' .or. hcloud == 'ICE4' & .or. hcloud == 'KHKO' .or. hcloud == 'C2R2' .or. hcloud == 'LIMA' ) & .and. celec == 'NONE' @@ -1472,7 +1478,7 @@ if ( tbudgets(NBUDGET_RC)%lenabled ) then !Allocate all basic source terms (used or not) !The size should be large enough (bigger than necessary is OK) - isourcesmax = 42 + isourcesmax = 43 tbudgets(NBUDGET_RC)%nsourcesmax = isourcesmax allocate( tbudgets(NBUDGET_RC)%tsources(isourcesmax) ) @@ -1714,6 +1720,11 @@ if ( tbudgets(NBUDGET_RC)%lenabled ) then tzsource%clongname = 'vapor condensation or cloud water evaporation' call Budget_source_add( tbudgets(NBUDGET_RC), tzsource, gcond, ncondrc ) + gcond = hcloud == 'LIMA' .and. lptsplit + tzsource%cmnhname = 'CORR2' + tzsource%clongname = 'supplementary correction inside LIMA splitting' + call Budget_source_add( tbudgets(NBUDGET_RC), tzsource, gcond, 1 ) + gcond = ( hcloud == 'KESS' .or. hcloud == 'ICE3' .or. hcloud == 'ICE4' & .or. hcloud == 'KHKO' .or. hcloud == 'C2R2' .or. hcloud == 'LIMA' ) & .and. celec == 'NONE' @@ -1730,7 +1741,7 @@ if ( tbudgets(NBUDGET_RR)%lenabled ) then !Allocate all basic source terms (used or not) !The size should be large enough (bigger than necessary is OK) - isourcesmax = 32 + isourcesmax = 33 tbudgets(NBUDGET_RR)%nsourcesmax = isourcesmax allocate( tbudgets(NBUDGET_RR)%tsources(isourcesmax) ) @@ -1923,6 +1934,11 @@ if ( tbudgets(NBUDGET_RR)%lenabled ) then tzsource%clongname = 'spontaneous freezing' call Budget_source_add( tbudgets(NBUDGET_RR), tzsource, gcond, nsfrrr ) + gcond = hcloud == 'LIMA' .and. lptsplit + tzsource%cmnhname = 'CORR2' + tzsource%clongname = 'supplementary correction inside LIMA splitting' + call Budget_source_add( tbudgets(NBUDGET_RR), tzsource, gcond, ncorr2rr ) + gcond = ( hcloud == 'KESS' .or. hcloud == 'ICE3' .or. hcloud == 'ICE4' & .or. hcloud == 'KHKO' .or. hcloud == 'C2R2' .or. hcloud == 'LIMA' ) & .and. celec == 'NONE' @@ -1939,7 +1955,7 @@ if ( tbudgets(NBUDGET_RI)%lenabled ) then !Allocate all basic source terms (used or not) !The size should be large enough (bigger than necessary is OK) - isourcesmax = 41 + isourcesmax = 42 tbudgets(NBUDGET_RI)%nsourcesmax = isourcesmax allocate( tbudgets(NBUDGET_RI)%tsources(isourcesmax) ) @@ -2159,6 +2175,11 @@ if ( tbudgets(NBUDGET_RI)%lenabled ) then tzsource%clongname = 'condensation/deposition on ice' call Budget_source_add( tbudgets(NBUDGET_RI), tzsource, gcond, ncdepiri ) + gcond = hcloud == 'LIMA' .and. lptsplit + tzsource%cmnhname = 'CORR2' + tzsource%clongname = 'supplementary correction inside LIMA splitting' + call Budget_source_add( tbudgets(NBUDGET_RI), tzsource, gcond, ncorr2ri ) + gcond = ( hcloud == 'KESS' .or. hcloud == 'ICE3' .or. hcloud == 'ICE4' & .or. hcloud == 'KHKO' .or. hcloud == 'C2R2' .or. hcloud == 'LIMA' ) & .and. celec == 'NONE' @@ -2700,7 +2721,7 @@ SV_BUDGETS: do jsv = 1, ksv !Allocate all basic source terms (used or not) !The size should be large enough (bigger than necessary is OK) - isourcesmax = 37 + isourcesmax = 38 tbudgets(ibudget)%nsourcesmax = isourcesmax allocate( tbudgets(ibudget)%tsources(isourcesmax) ) @@ -3021,6 +3042,11 @@ SV_BUDGETS: do jsv = 1, ksv tzsource%clongname = 'wet growth of hail' call Budget_source_add( tbudgets(ibudget), tzsource, gcond, igroup ) + gcond = hcloud == 'LIMA' .and. lptsplit + tzsource%cmnhname = 'CORR2' + tzsource%clongname = 'supplementary correction inside LIMA splitting' + call Budget_source_add( tbudgets(ibudget), tzsource, gcond, igroup ) + gcond = .true. tzsource%cmnhname = 'CEDS' tzsource%clongname = 'adjustment to saturation' @@ -3109,6 +3135,11 @@ SV_BUDGETS: do jsv = 1, ksv tzsource%clongname = 'hail melting' call Budget_source_add( tbudgets(ibudget), tzsource, gcond, igroup ) + gcond = hcloud == 'LIMA' .and. lptsplit + tzsource%cmnhname = 'CORR2' + tzsource%clongname = 'supplementary correction inside LIMA splitting' + call Budget_source_add( tbudgets(ibudget), tzsource, gcond, igroup ) + else if ( jsv >= nsv_lima_ccn_free .and. jsv <= nsv_lima_ccn_free + nmod_ccn - 1 ) then SV_LIMA ! Free CCN concentration @@ -3250,6 +3281,11 @@ SV_BUDGETS: do jsv = 1, ksv tzsource%clongname = 'adjustment to saturation' call Budget_source_add( tbudgets(ibudget), tzsource, gcond, igroup ) + gcond = hcloud == 'LIMA' .and. lptsplit + tzsource%cmnhname = 'CORR2' + tzsource%clongname = 'supplementary correction inside LIMA splitting' + call Budget_source_add( tbudgets(ibudget), tzsource, gcond, igroup ) + else if ( jsv >= nsv_lima_ifn_free .and. jsv <= nsv_lima_ifn_free + nmod_ifn - 1 ) then SV_LIMA ! Free IFN concentration diff --git a/src/MNH/lima.f90 b/src/MNH/lima.f90 index 3c95e00ab3a21e76dbe3aa82514164654b31b1a5..872382a88b6c16f65107fc9e8f090c605fa23bb7 100644 --- a/src/MNH/lima.f90 +++ b/src/MNH/lima.f90 @@ -101,6 +101,7 @@ END MODULE MODI_LIMA ! P. Wautelet 26/02/2020: bugfix: corrected condition to write budget CORR_BU_RRS ! B. Vie 03/03/2020: use DTHRAD instead of dT/dt in Smax diagnostic computation ! P. Wautelet 28/05/2020: bugfix: correct array start for PSVT and PSVS +! P. Wautelet 03/02/2021: budgets: add new source if LIMA splitting: CORR2 !----------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -238,11 +239,13 @@ REAL, DIMENSION(:), ALLOCATABLE :: & Z_TH_DRYG, Z_RC_DRYG, Z_CC_DRYG, Z_RR_DRYG, Z_CR_DRYG, & ! dry growth of graupel (DRYG) : rc, Nc, rr, Nr, ri, Ni, rs, rg, th Z_RI_DRYG, Z_CI_DRYG, Z_RS_DRYG, Z_RG_DRYG, & ! dry growth of graupel (DRYG) : rc, Nc, rr, Nr, ri, Ni, rs, rg, th Z_RI_HMG, Z_CI_HMG, Z_RG_HMG, & ! hallett mossop graupel (HMG) : ri, Ni, rg - Z_TH_GMLT, Z_RR_GMLT, Z_CR_GMLT ! graupel melting (GMLT) : rr, Nr, rg=-rr, th + Z_TH_GMLT, Z_RR_GMLT, Z_CR_GMLT, & ! graupel melting (GMLT) : rr, Nr, rg=-rr, th ! Z_RC_WETH, Z_CC_WETH, Z_RR_WETH, Z_CR_WETH, & ! wet growth of hail (WETH) : rc, Nc, rr, Nr, ri, Ni, rs, rg, rh, th ! Z_RI_WETH, Z_CI_WETH, Z_RS_WETH, Z_RG_WETH, Z_RH_WETH, & ! wet growth of hail (WETH) : rc, Nc, rr, Nr, ri, Ni, rs, rg, rh, th ! Z_RG_COHG, & ! conversion of hail into graupel (COHG) : rg, rh ! Z_RR_HMLT, Z_CR_HMLT ! hail melting (HMLT) : rr, Nr, rh=-rr, th + Z_RV_CORR2, Z_RC_CORR2, Z_RR_CORR2, Z_RI_CORR2, & + Z_CC_CORR2, Z_CR_CORR2, Z_CI_CORR2 ! ! for the conversion from rain to cloud, we need a 3D variable instead of a 1D packed variable REAL, DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3)) :: & @@ -291,7 +294,9 @@ REAL, DIMENSION(:,:,:), ALLOCATABLE :: & ! ZTOT_RI_WETH, ZTOT_CI_WETH, ZTOT_RS_WETH, ZTOT_RG_WETH, ZTOT_RH_WETH, & ! wet growth of hail (WETH) ! ZTOT_RG_COHG, & ! conversion of hail into graupel (COHG) ! ZTOT_RR_HMLT, ZTOT_CR_HMLT, & ! hail melting (HMLT) - ZTOT_RR_CVRC, ZTOT_CR_CVRC ! conversion of rain into cloud droplets if diameter too small + ZTOT_RR_CVRC, ZTOT_CR_CVRC, & ! conversion of rain into cloud droplets if diameter too small + ZTOT_RV_CORR2, ZTOT_RC_CORR2, ZTOT_RR_CORR2, ZTOT_RI_CORR2, & + ZTOT_CC_CORR2, ZTOT_CR_CORR2, ZTOT_CI_CORR2 ! !For mixing-ratio splitting @@ -477,6 +482,14 @@ if ( lbu_enable ) then ! allocate( ZTOT_CR_HMLT (size( ptht, 1), size( ptht, 2), size( ptht, 3) ) ); ZTOT_CR_HMLT(:,:,:) = 0. allocate( ZTOT_RR_CVRC (size( ptht, 1), size( ptht, 2), size( ptht, 3) ) ); ZTOT_RR_CVRC(:,:,:) = 0. allocate( ZTOT_CR_CVRC (size( ptht, 1), size( ptht, 2), size( ptht, 3) ) ); ZTOT_CR_CVRC(:,:,:) = 0. + + allocate( ZTOT_RV_CORR2 (size( ptht, 1), size( ptht, 2), size( ptht, 3) ) ); ZTOT_RV_CORR2(:,:,:) = 0. + allocate( ZTOT_RC_CORR2 (size( ptht, 1), size( ptht, 2), size( ptht, 3) ) ); ZTOT_RC_CORR2(:,:,:) = 0. + allocate( ZTOT_RR_CORR2 (size( ptht, 1), size( ptht, 2), size( ptht, 3) ) ); ZTOT_RR_CORR2(:,:,:) = 0. + allocate( ZTOT_RI_CORR2 (size( ptht, 1), size( ptht, 2), size( ptht, 3) ) ); ZTOT_RI_CORR2(:,:,:) = 0. + allocate( ZTOT_CC_CORR2 (size( ptht, 1), size( ptht, 2), size( ptht, 3) ) ); ZTOT_CC_CORR2(:,:,:) = 0. + allocate( ZTOT_CR_CORR2 (size( ptht, 1), size( ptht, 2), size( ptht, 3) ) ); ZTOT_CR_CORR2(:,:,:) = 0. + allocate( ZTOT_CI_CORR2 (size( ptht, 1), size( ptht, 2), size( ptht, 3) ) ); ZTOT_CI_CORR2(:,:,:) = 0. END IF ! ! Initial values computed as source * PTSTEP @@ -989,6 +1002,13 @@ DO WHILE(ANY(ZTIME(IIB:IIE,IJB:IJE,IKB:IKE)<PTSTEP)) ALLOCATE(Z_RR_GMLT(IPACK)) ; Z_RR_GMLT = 0. ALLOCATE(Z_CR_GMLT(IPACK)) ; Z_CR_GMLT = 0. + ALLOCATE(Z_RV_CORR2(IPACK)) ; Z_RV_CORR2 = 0. + ALLOCATE(Z_RC_CORR2(IPACK)) ; Z_RC_CORR2 = 0. + ALLOCATE(Z_RR_CORR2(IPACK)) ; Z_RR_CORR2 = 0. + ALLOCATE(Z_RI_CORR2(IPACK)) ; Z_RI_CORR2 = 0. + ALLOCATE(Z_CC_CORR2(IPACK)) ; Z_CC_CORR2 = 0. + ALLOCATE(Z_CR_CORR2(IPACK)) ; Z_CR_CORR2 = 0. + ALLOCATE(Z_CI_CORR2(IPACK)) ; Z_CI_CORR2 = 0. ! !*** 4.1 Tendecies computation ! @@ -1195,7 +1215,6 @@ DO WHILE(ANY(ZTIME(IIB:IIE,IJB:IJE,IKB:IKE)<PTSTEP)) ZRGT1D = ZRGT1D + ZA_RG(:) * ZMAXTIME(:) + ZB_RG(:) ZRHT1D = ZRHT1D + ZA_RH(:) * ZMAXTIME(:) + ZB_RH(:) ! - DO II=1,NMOD_IFN ZIFNN1D(:,II) = ZIFNN1D(:,II) + ZB_IFNN(:,II) END DO @@ -1203,16 +1222,28 @@ DO WHILE(ANY(ZTIME(IIB:IIE,IJB:IJE,IKB:IKE)<PTSTEP)) !*** 4.5 ! WHERE (ZRCT1D .LE. XRTMIN(2)) + Z_RV_CORR2(:) = ZRCT1D(:) + Z_RC_CORR2(:) = -ZRCT1D(:) + Z_CC_CORR2(:) = -ZCCT1D(:) + ZRVT1D = ZRVT1D + ZRCT1D ZRCT1D = 0. ZCCT1D = 0. END WHERE WHERE (ZRRT1D .LE. XRTMIN(3)) + Z_RV_CORR2(:) = Z_RV_CORR2(:) + ZRRT1D(:) + Z_RR_CORR2(:) = -ZRRT1D(:) + Z_CR_CORR2(:) = -ZCRT1D(:) + ZRVT1D = ZRVT1D + ZRRT1D ZRRT1D = 0. ZCRT1D = 0. END WHERE WHERE (ZRIT1D .LE. XRTMIN(4)) + Z_RV_CORR2(:) = Z_RV_CORR2(:) + ZRIT1D(:) + Z_RI_CORR2(:) = -ZRIT1D(:) + Z_CI_CORR2(:) = -ZCIT1D(:) + ZRVT1D = ZRVT1D + ZRIT1D ZRIT1D = 0. ZCIT1D = 0. @@ -1350,6 +1381,15 @@ DO WHILE(ANY(ZTIME(IIB:IIE,IJB:IJE,IKB:IKE)<PTSTEP)) !!$ ZTOT_RG_COHG(I1(II),I2(II),I3(II)) = ZTOT_RG_COHG(I1(II),I2(II),I3(II)) + Z_RG_COHG(II) * ZMAXTIME(II) !!$ ZTOT_RR_HMLT(I1(II),I2(II),I3(II)) = ZTOT_RR_HMLT(I1(II),I2(II),I3(II)) + Z_RR_HMLT(II) * ZMAXTIME(II) !!$ ZTOT_CR_HMLT(I1(II),I2(II),I3(II)) = ZTOT_CR_HMLT(I1(II),I2(II),I3(II)) + Z_CR_HMLT(II) * ZMAXTIME(II) + + !Correction term + ZTOT_RV_CORR2(I1(II),I2(II),I3(II)) = ZTOT_RV_CORR2(I1(II),I2(II),I3(II)) + Z_RV_CORR2(II) + ZTOT_RC_CORR2(I1(II),I2(II),I3(II)) = ZTOT_RC_CORR2(I1(II),I2(II),I3(II)) + Z_RC_CORR2(II) + ZTOT_RR_CORR2(I1(II),I2(II),I3(II)) = ZTOT_RR_CORR2(I1(II),I2(II),I3(II)) + Z_RR_CORR2(II) + ZTOT_RI_CORR2(I1(II),I2(II),I3(II)) = ZTOT_RI_CORR2(I1(II),I2(II),I3(II)) + Z_RI_CORR2(II) + ZTOT_CC_CORR2(I1(II),I2(II),I3(II)) = ZTOT_CC_CORR2(I1(II),I2(II),I3(II)) + Z_CC_CORR2(II) + ZTOT_CR_CORR2(I1(II),I2(II),I3(II)) = ZTOT_CR_CORR2(I1(II),I2(II),I3(II)) + Z_CR_CORR2(II) + ZTOT_CI_CORR2(I1(II),I2(II),I3(II)) = ZTOT_CI_CORR2(I1(II),I2(II),I3(II)) + Z_CI_CORR2(II) END DO ENDIF ! @@ -1490,7 +1530,15 @@ DO WHILE(ANY(ZTIME(IIB:IIE,IJB:IJE,IKB:IKE)<PTSTEP)) DEALLOCATE(Z_TH_GMLT) DEALLOCATE(Z_RR_GMLT) DEALLOCATE(Z_CR_GMLT) - ! + + DEALLOCATE(Z_RV_CORR2) + DEALLOCATE(Z_RC_CORR2) + DEALLOCATE(Z_RR_CORR2) + DEALLOCATE(Z_RI_CORR2) + DEALLOCATE(Z_CC_CORR2) + DEALLOCATE(Z_CR_CORR2) + DEALLOCATE(Z_CI_CORR2) + ! ENDDO ENDDO ! @@ -1550,6 +1598,7 @@ if ( lbu_enable ) then call Budget_store_add( tbudgets(NBUDGET_RV), 'REVA', -ztot_rr_evap (:, :, :) * zrhodjontstep(:, :, :) ) call Budget_store_add( tbudgets(NBUDGET_RV), 'DEPS', -ztot_rs_deps (:, :, :) * zrhodjontstep(:, :, :) ) call Budget_store_add( tbudgets(NBUDGET_RV), 'DEPG', -ztot_rg_depg (:, :, :) * zrhodjontstep(:, :, :) ) + call Budget_store_add( tbudgets(NBUDGET_RV), 'CORR2', ztot_rv_corr2(:, :, :) * zrhodjontstep(:, :, :) ) end if if ( lbudget_rc ) then @@ -1563,6 +1612,7 @@ if ( lbu_enable ) then call Budget_store_add( tbudgets(NBUDGET_RC), 'WETG', ztot_rc_wetg (:, :, :) * zrhodjontstep(:, :, :) ) call Budget_store_add( tbudgets(NBUDGET_RC), 'DRYG', ztot_rc_dryg (:, :, :) * zrhodjontstep(:, :, :) ) call Budget_store_add( tbudgets(NBUDGET_RC), 'CVRC', -ztot_rr_cvrc (:, :, :) * zrhodjontstep(:, :, :) ) + call Budget_store_add( tbudgets(NBUDGET_RC), 'CORR2', ztot_rc_corr2(:, :, :) * zrhodjontstep(:, :, :) ) end if if ( lbudget_rr ) then @@ -1576,6 +1626,7 @@ if ( lbu_enable ) then call Budget_store_add( tbudgets(NBUDGET_RR), 'DRYG', ztot_rr_dryg(:, :, :) * zrhodjontstep(:, :, :) ) call Budget_store_add( tbudgets(NBUDGET_RR), 'GMLT', ztot_rr_gmlt(:, :, :) * zrhodjontstep(:, :, :) ) call Budget_store_add( tbudgets(NBUDGET_RR), 'CVRC', ztot_rr_cvrc(:, :, :) * zrhodjontstep(:, :, :) ) + call Budget_store_add( tbudgets(NBUDGET_RR), 'CORR2', ztot_rr_corr2(:, :, :) * zrhodjontstep(:, :, :) ) end if if ( lbudget_ri ) then @@ -1590,6 +1641,7 @@ if ( lbu_enable ) then call Budget_store_add( tbudgets(NBUDGET_RI), 'WETG', ztot_ri_wetg (:, :, :) * zrhodjontstep(:, :, :) ) call Budget_store_add( tbudgets(NBUDGET_RI), 'DRYG', ztot_ri_dryg (:, :, :) * zrhodjontstep(:, :, :) ) call Budget_store_add( tbudgets(NBUDGET_RI), 'HMG', ztot_ri_hmg (:, :, :) * zrhodjontstep(:, :, :) ) + call Budget_store_add( tbudgets(NBUDGET_RI), 'CORR2', ztot_ri_corr2(:, :, :) * zrhodjontstep(:, :, :) ) end if if ( lbudget_rs ) then @@ -1638,6 +1690,7 @@ if ( lbu_enable ) then call Budget_store_add( tbudgets(idx), 'WETG', ztot_cc_wetg (:, :, :) * zrhodjontstep(:, :, :) ) call Budget_store_add( tbudgets(idx), 'DRYG', ztot_cc_dryg (:, :, :) * zrhodjontstep(:, :, :) ) call Budget_store_add( tbudgets(idx), 'CVRC', -ztot_cr_cvrc (:, :, :) * zrhodjontstep(:, :, :) ) + call Budget_store_add( tbudgets(idx), 'CORR2', ztot_cc_corr2(:, :, :) * zrhodjontstep(:, :, :) ) ! ! Rain drops ! @@ -1653,6 +1706,7 @@ if ( lbu_enable ) then call Budget_store_add( tbudgets(idx), 'DRYG', ztot_cr_dryg(:, :, :) * zrhodjontstep(:, :, :) ) call Budget_store_add( tbudgets(idx), 'GMLT', ztot_cr_gmlt(:, :, :) * zrhodjontstep(:, :, :) ) call Budget_store_add( tbudgets(idx), 'CVRC', ztot_cr_cvrc(:, :, :) * zrhodjontstep(:, :, :) ) + call Budget_store_add( tbudgets(idx), 'CORR2', ztot_cr_corr2(:, :, :) * zrhodjontstep(:, :, :) ) ! ! Ice crystals ! @@ -1667,6 +1721,7 @@ if ( lbu_enable ) then call Budget_store_add( tbudgets(idx), 'WETG', ztot_ci_wetg (:, :, :) * zrhodjontstep(:, :, :) ) call Budget_store_add( tbudgets(idx), 'DRYG', ztot_ci_dryg (:, :, :) * zrhodjontstep(:, :, :) ) call Budget_store_add( tbudgets(idx), 'HMG', ztot_ci_hmg (:, :, :) * zrhodjontstep(:, :, :) ) + call Budget_store_add( tbudgets(idx), 'CORR2', ztot_ci_corr2(:, :, :) * zrhodjontstep(:, :, :) ) end if deallocate( zrhodjontstep ) diff --git a/src/MNH/modd_budget.f90 b/src/MNH/modd_budget.f90 index a0674b1718474c0cd02cf5906459481355d8b627..50675484cd40c2a46d70f59b5289bc9b9b44b4de 100644 --- a/src/MNH/modd_budget.f90 +++ b/src/MNH/modd_budget.f90 @@ -59,6 +59,7 @@ ! P. Wautelet 08/12/2020: add nbusubwrite and nbutotwrite ! P. Wautelet 11/01/2021: remove nbuwrnb (replaced by nbusubwrite) ! P. Wautelet 14/01/2021: change xbusurf type to integer (+ rename it to nbusurf) +! P. Wautelet 03/02/2021: budgets: add new source if LIMA splitting: CORR2 !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -385,6 +386,7 @@ INTEGER, SAVE :: NHINDRV = 0 ! Heterogeneous Nucleation by Deposition LIMA INTEGER, SAVE :: NHONHRV = 0 ! Haze Homogeneous Nucleation LIMA INTEGER, SAVE :: NCEDSRV = 0 ! adjustement INTEGER, SAVE :: NVISCRV = 0 ! viscosity +INTEGER, SAVE :: NCORR2RV = 0 ! Correction in LIMA splitting ! ! Allowed processes for the budget of moist variable RRC (cloud water) ! @@ -431,6 +433,7 @@ INTEGER, SAVE :: NCORRRC = 0 ! rain <-> cloud transfer at the beginning of LIM INTEGER, SAVE :: NR2C1RC = 0 ! rain -> cloud change after sedimentation in LIMA INTEGER, SAVE :: NCVRCRC = 0 ! rain -> cloud change after other microphysical processes in LIMA INTEGER, SAVE :: NVISCRC = 0 ! viscosity +INTEGER, SAVE :: NCORR2RC = 0 ! Correction in LIMA splitting ! ! Allowed processes for the budget of moist variable RRR (rain water) ! @@ -467,6 +470,7 @@ INTEGER, SAVE :: NHONRRR = 0 ! drop homogeneous nucleation LIMA INTEGER, SAVE :: NR2C1RR = 0 ! rain -> cloud change after sedimentation in LIMA INTEGER, SAVE :: NCVRCRR = 0 ! rain -> cloud change after other microphysical processes in LIMA INTEGER, SAVE :: NVISCRR = 0 ! viscosity +INTEGER, SAVE :: NCORR2RR = 0 ! Correction in LIMA splitting ! ! Allowed processes for the budget of moist variable RRI (ice) ! @@ -512,6 +516,7 @@ INTEGER, SAVE :: NHMGRI = 0 ! Hallett-Mossop ice multiplication process due to INTEGER, SAVE :: NCEDSRI = 0 ! adjustement LIMA INTEGER, SAVE :: NCORRRI = 0 ! ice <-> snow transfer at the beginning of LIMA INTEGER, SAVE :: NVISCRI = 0 ! viscosity +INTEGER, SAVE :: NCORR2RI = 0 ! Correction in LIMA splitting ! ! Allowed processes for the budget of moist variable RRS (snow) !