diff --git a/src/MNH/ini_budget.f90 b/src/MNH/ini_budget.f90 index e608329df4aca433aa5c4b0c41bc3ec66ced86d6..e446214f03f997d58562302d01d036a6bfa14e4e 100644 --- a/src/MNH/ini_budget.f90 +++ b/src/MNH/ini_budget.f90 @@ -1220,7 +1220,8 @@ if ( lbu_rth ) then tzsource%clongname = 'wet growth of hail' tzsource%lavailable = ( hcloud == 'LIMA' .and. .not.lptsplit .and. lhail_lima .and. lcold_lima & .and. lwarm_lima .and. lsnow_lima ) & - .or. hcloud == 'ICE4' + .or. ( hcloud == 'LIMA' .and. lptsplit ) & + .or. hcloud == 'ICE4' call Budget_source_add( tbudgets(NBUDGET_TH), tzsource ) tzsource%cmnhname = 'DRYH' @@ -1232,6 +1233,7 @@ if ( lbu_rth ) then tzsource%clongname = 'melting of hail' tzsource%lavailable = ( hcloud == 'LIMA' .and. .not.lptsplit .and. lhail_lima .and. lcold_lima & .and. lwarm_lima .and. lsnow_lima ) & + .or. ( hcloud == 'LIMA' .and. lptsplit ) & .or. hcloud == 'ICE4' call Budget_source_add( tbudgets(NBUDGET_TH), tzsource ) @@ -1833,6 +1835,7 @@ if ( tbudgets(NBUDGET_RC)%lenabled ) then tzsource%clongname = 'wet growth of hail' tzsource%lavailable = ( hcloud == 'LIMA' .and. .not.lptsplit .and. lhail_lima .and. lcold_lima & .and. lwarm_lima .and. lsnow_lima ) & + .or. ( hcloud == 'LIMA' .and. lptsplit ) & .or. hcloud == 'ICE4' call Budget_source_add( tbudgets(NBUDGET_RC), tzsource ) @@ -2062,6 +2065,7 @@ if ( tbudgets(NBUDGET_RR)%lenabled ) then tzsource%clongname = 'wet growth of hail' tzsource%lavailable = ( hcloud == 'LIMA' .and. .not.lptsplit .and. lhail_lima .and. lcold_lima & .and. lwarm_lima .and. lsnow_lima ) & + .or. ( hcloud == 'LIMA' .and. lptsplit ) & .or. hcloud == 'ICE4' call Budget_source_add( tbudgets(NBUDGET_RR), tzsource ) @@ -2074,6 +2078,7 @@ if ( tbudgets(NBUDGET_RR)%lenabled ) then tzsource%clongname = 'melting of hail' tzsource%lavailable = ( hcloud == 'LIMA' .and. .not.lptsplit .and. lhail_lima .and. lcold_lima & .and. lwarm_lima .and. lsnow_lima ) & + .or. ( hcloud == 'LIMA' .and. lptsplit ) & .or. hcloud == 'ICE4' call Budget_source_add( tbudgets(NBUDGET_RR), tzsource ) @@ -2323,6 +2328,7 @@ if ( tbudgets(NBUDGET_RI)%lenabled ) then tzsource%clongname = 'wet growth of hail' tzsource%lavailable = ( hcloud == 'LIMA' .and. .not.lptsplit .and. lhail_lima .and. lcold_lima & .and. lwarm_lima .and. lsnow_lima ) & + .or. ( hcloud == 'LIMA' .and. lptsplit ) & .or. hcloud == 'ICE4' call Budget_source_add( tbudgets(NBUDGET_RI), tzsource ) @@ -2529,6 +2535,7 @@ if ( tbudgets(NBUDGET_RS)%lenabled ) then tzsource%clongname = 'wet growth of hail' tzsource%lavailable = ( hcloud == 'LIMA' .and. .not.lptsplit .and. lhail_lima .and. lcold_lima & .and. lwarm_lima .and. lsnow_lima ) & + .or. ( hcloud == 'LIMA' .and. lptsplit ) & .or. hcloud == 'ICE4' call Budget_source_add( tbudgets(NBUDGET_RS), tzsource ) @@ -2725,12 +2732,13 @@ if ( tbudgets(NBUDGET_RG)%lenabled ) then tzsource%clongname = 'wet growth of hail' tzsource%lavailable = ( hcloud == 'LIMA' .and. .not.lptsplit .and. lhail_lima .and. lcold_lima & .and. lwarm_lima .and. lsnow_lima ) & + .or. ( hcloud == 'LIMA' .and. lptsplit ) & .or. hcloud == 'ICE4' call Budget_source_add( tbudgets(NBUDGET_RG), tzsource ) tzsource%cmnhname = 'COHG' tzsource%clongname = 'conversion of hail to graupel' - tzsource%lavailable = hcloud == 'LIMA' .and. .not.lptsplit .and. lhail_lima .and. lcold_lima .and. lwarm_lima .and. lsnow_lima + tzsource%lavailable = hcloud == 'LIMA' .and. (lptsplit .or. (lhail_lima .and. lcold_lima .and. lwarm_lima .and. lsnow_lima) ) call Budget_source_add( tbudgets(NBUDGET_RG), tzsource ) tzsource%cmnhname = 'HGCV' @@ -2872,13 +2880,14 @@ if ( tbudgets(NBUDGET_RH)%lenabled ) then tzsource%clongname = 'wet growth of hail' tzsource%lavailable = ( hcloud == 'LIMA' .and. .not.lptsplit .and. lhail_lima .and. lcold_lima & .and. lwarm_lima .and. lsnow_lima ) & + .or. ( hcloud == 'LIMA' .and. lptsplit ) & .or. hcloud == 'ICE4' call Budget_source_add( tbudgets(NBUDGET_RH), tzsource ) tzsource%cmnhname = 'COHG' tzsource%clongname = 'conversion from hail to graupel' - tzsource%lavailable = hcloud == 'LIMA' .and. .not.lptsplit .and. lhail_lima .and. lcold_lima & - .and. lwarm_lima .and. lsnow_lima + tzsource%lavailable = hcloud == 'LIMA' .and. ( lptsplit .or. (lhail_lima .and. lcold_lima & + .and. lwarm_lima .and. lsnow_lima) ) call Budget_source_add( tbudgets(NBUDGET_RH), tzsource ) tzsource%cmnhname = 'HGCV' @@ -2895,6 +2904,7 @@ if ( tbudgets(NBUDGET_RH)%lenabled ) then tzsource%clongname = 'melting of hail' tzsource%lavailable = ( hcloud == 'LIMA' .and. .not. lptsplit .and. lhail_lima .and. lcold_lima & .and. lwarm_lima .and. lsnow_lima ) & + .or. ( hcloud == 'LIMA' .and. lptsplit ) & .or. hcloud == 'ICE4' call Budget_source_add( tbudgets(NBUDGET_RH), tzsource ) diff --git a/src/MNH/lima_snow_self_collection.f90 b/src/MNH/lima_snow_self_collection.f90 index 9c499d66648bb390997c5918487a4d2d46ed69fc..ea38870b87d715c9d5d556b1ea1d9353c44bf41e 100644 --- a/src/MNH/lima_snow_self_collection.f90 +++ b/src/MNH/lima_snow_self_collection.f90 @@ -8,16 +8,17 @@ ! ################################# ! INTERFACE - SUBROUTINE LIMA_SNOW_SELF_COLLECTION (LDCOMPUTE, & - PRHODREF, PT, & - PCST, PLBDS, & - P_CS_SSC ) + SUBROUTINE LIMA_SNOW_SELF_COLLECTION (LDCOMPUTE, & + PRHODREF, PT, & + PRST, PCST, PLBDS, & + P_CS_SSC ) ! LOGICAL, DIMENSION(:),INTENT(IN) :: LDCOMPUTE ! REAL, DIMENSION(:), INTENT(IN) :: PRHODREF ! Reference Exner function REAL, DIMENSION(:), INTENT(IN) :: PT ! Temperature ! +REAL, DIMENSION(:), INTENT(IN) :: PRST ! Snow mr at t REAL, DIMENSION(:), INTENT(IN) :: PCST ! Snow C. at t REAL, DIMENSION(:), INTENT(IN) :: PLBDS ! ! @@ -28,10 +29,10 @@ END INTERFACE END MODULE MODI_LIMA_SNOW_SELF_COLLECTION ! ! ############################################################# - SUBROUTINE LIMA_SNOW_SELF_COLLECTION (LDCOMPUTE, & - PRHODREF, PT, & - PCST, PLBDS, & - P_CS_SSC ) + SUBROUTINE LIMA_SNOW_SELF_COLLECTION (LDCOMPUTE, & + PRHODREF, PT, & + PRST, PCST, PLBDS, & + P_CS_SSC ) ! ############################################################# ! !! PURPOSE @@ -56,7 +57,7 @@ END MODULE MODI_LIMA_SNOW_SELF_COLLECTION ! ------------ ! USE MODD_CST, ONLY : XTT -USE MODD_PARAM_LIMA, ONLY : XCTMIN, XCEXVT +USE MODD_PARAM_LIMA, ONLY : XRTMIN, XCTMIN, XCEXVT USE MODD_PARAM_LIMA_COLD, ONLY : NSCLBDAS, XSCINTP1S, XSCINTP2S, XKER_N_SSCS, XFNSSCS, XCOLEXSS, & XLBNSSCS1, XLBNSSCS2 ! @@ -69,6 +70,7 @@ LOGICAL, DIMENSION(:),INTENT(IN) :: LDCOMPUTE REAL, DIMENSION(:), INTENT(IN) :: PRHODREF ! Reference Exner function REAL, DIMENSION(:), INTENT(IN) :: PT ! Temperature ! +REAL, DIMENSION(:), INTENT(IN) :: PRST ! Snow mr at t REAL, DIMENSION(:), INTENT(IN) :: PCST ! Snow C. at t REAL, DIMENSION(:), INTENT(IN) :: PLBDS ! ! @@ -96,7 +98,7 @@ P_CS_SSC(:)=0. ZW1(:) =0. ZW2(:) =0. ! -GSSC(:) = PCST(:)>XCTMIN(5) +GSSC(:) = PCST(:)>XCTMIN(5) .AND. PRST(:)>XRTMIN(5) IGSSC = COUNT(GSSC(:)) ! IF( IGSSC>0 ) THEN diff --git a/src/MNH/lima_tendencies.f90 b/src/MNH/lima_tendencies.f90 index ea5acd4c97fde650b8ccea1dbbf21713784f0c9e..d8c8d18d9c1ee8371d6c0ef6274f5af50d85ac3d 100644 --- a/src/MNH/lima_tendencies.f90 +++ b/src/MNH/lima_tendencies.f90 @@ -853,7 +853,7 @@ END IF IF (LSNOW .AND. NMOM_S.GE.2) THEN CALL LIMA_SNOW_SELF_COLLECTION (LDCOMPUTE, & ! depends on PF PRHODREF, & - PCST/ZPF1D(:), ZLBDS, ZLBDS3, & + ZRST(:)/ZPF1D(:), PCST/ZPF1D(:), ZLBDS, ZLBDS3, & P_CS_SSC ) ! P_CS_SSC(:) = P_CS_SSC(:) * ZPF1D(:) diff --git a/src/MNH/modd_budget.f90 b/src/MNH/modd_budget.f90 index 7442dfd3e0184598cd4ee7687456a5e31b900e5b..cf07928ba558bf5422b5296976c16968e4e2c189 100644 --- a/src/MNH/modd_budget.f90 +++ b/src/MNH/modd_budget.f90 @@ -60,7 +60,7 @@ implicit none public -integer, parameter :: NBULISTMAXLEN = 256 +integer, parameter :: NBULISTMAXLEN = 128 integer, parameter :: NBULISTMAXLINES = 50 integer, parameter :: NBUDGET_RHO = 0 ! Reference number for budget of RhoJ