From 58402e8fa2d0370c46f4a58b45ca450171c36863 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 17 Feb 2023 05:35:04 -0700 Subject: [PATCH 1/5] Add missing dependency on libsp to CMakeLists.txt --- CMakeLists.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d14778b06..00269140b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -195,7 +195,9 @@ set_target_properties(ccpp_physics PROPERTIES VERSION ${PROJECT_VERSION} target_include_directories(ccpp_physics PUBLIC $) -target_link_libraries(ccpp_physics PUBLIC w3emc::w3emc_d NetCDF::NetCDF_Fortran) +target_link_libraries(ccpp_physics PUBLIC w3emc::w3emc_d + sp::sp_d + NetCDF::NetCDF_Fortran) # Define where to install the library install(TARGETS ccpp_physics From 710b9e174571659b77ac3ebaf9f3b60773474b98 Mon Sep 17 00:00:00 2001 From: Jili Dong Date: Thu, 2 Mar 2023 18:02:17 +0000 Subject: [PATCH 2/5] add nssl_alphar, nssl_ehw0_in, nssl_ehlw0_in to namelist entries for ensemble perturbations --- physics/module_mp_nssl_2mom.F90 | 1 + physics/mp_nssl.F90 | 5 ++++- physics/mp_nssl.meta | 24 ++++++++++++++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/physics/module_mp_nssl_2mom.F90 b/physics/module_mp_nssl_2mom.F90 index 6b184c35f..bd879f14a 100644 --- a/physics/module_mp_nssl_2mom.F90 +++ b/physics/module_mp_nssl_2mom.F90 @@ -1228,6 +1228,7 @@ SUBROUTINE nssl_2mom_init( & rho_qh = nssl_params(8) rho_qhl = nssl_params(9) rho_qs = nssl_params(10) + alphar = nssl_params(14) ! ipelec = Nint(nssl_params(11)) ! isaund = Nint(nssl_params(12)) diff --git a/physics/mp_nssl.F90 b/physics/mp_nssl.F90 index d6de5a0a0..4e0e323ce 100644 --- a/physics/mp_nssl.F90 +++ b/physics/mp_nssl.F90 @@ -31,6 +31,7 @@ subroutine mp_nssl_init(ncol, nlev, errflg, errmsg, threads, restart, & con_t0c, con_cliq, con_csol, con_eps, & imp_physics, imp_physics_nssl, & nssl_cccn, nssl_alphah, nssl_alphahl, & + nssl_alphar, nssl_ehw0_in, nssl_ehlw0_in, & nssl_ccn_on, nssl_hail_on, nssl_invertccn ) @@ -52,6 +53,7 @@ subroutine mp_nssl_init(ncol, nlev, errflg, errmsg, threads, restart, & integer, intent(in) :: imp_physics integer, intent(in) :: imp_physics_nssl real(kind_phys), intent(in) :: nssl_cccn, nssl_alphah, nssl_alphahl + real(kind_phys), intent(in) :: nssl_alphar, nssl_ehw0_in, nssl_ehlw0_in logical, intent(in) :: nssl_ccn_on, nssl_hail_on, nssl_invertccn ! Local variables: dimensions used in nssl_init @@ -115,6 +117,7 @@ subroutine mp_nssl_init(ncol, nlev, errflg, errmsg, threads, restart, & nssl_params(11) = 0 ! nssl_ipelec_tmp nssl_params(12) = 11 ! nssl_isaund nssl_params(13) = 0 ! 1= turn on cccna; 0 = turn off + nssl_params(14) = nssl_alphar nssl_qccn = nssl_cccn/1.225 ! if (mpirank==mpiroot) then @@ -129,7 +132,7 @@ subroutine mp_nssl_init(ncol, nlev, errflg, errmsg, threads, restart, & ! write(0,*) 'call nssl_2mom_init' CALL nssl_2mom_init(ims,ime, jms,jme, kms,kme,nssl_params,ipctmp=5,mixphase=0, & - ihvol=ihailv,errmsg=errmsg,errflg=errflg,myrank=mpirank,mpiroot=mpiroot) + ihvol=ihailv,nssl_ehw0=nssl_ehw0_in,nssl_ehlw0=nssl_ehlw0_in,errmsg=errmsg,errflg=errflg,myrank=mpirank,mpiroot=mpiroot) ! For restart runs, the init is done here if (restart) then diff --git a/physics/mp_nssl.meta b/physics/mp_nssl.meta index 9b913da2b..d4420c47b 100644 --- a/physics/mp_nssl.meta +++ b/physics/mp_nssl.meta @@ -165,6 +165,30 @@ type = real kind = kind_phys intent = in +[nssl_alphar] + standard_name = nssl_alpha_rain + long_name = rain PSD shape parameter in NSSL micro + units = none + dimensions = () + type = real + kind = kind_phys + intent = in +[nssl_ehw0_in] + standard_name = nssl_hw_collec_eff + long_name = graupel droplet collection efficiency in NSSL micro + units = none + dimensions = () + type = real + kind = kind_phys + intent = in +[nssl_ehlw0_in] + standard_name = nssl_hlw_collec_eff + long_name = graupel droplet collection efficiency in NSSL micro + units = none + dimensions = () + type = real + kind = kind_phys + intent = in [nssl_ccn_on] standard_name = nssl_ccn_on long_name = CCN activation flag in NSSL micro From 466ed779b1da0d00ed489c077d5ef0ae0c89264e Mon Sep 17 00:00:00 2001 From: Jili Dong Date: Tue, 7 Mar 2023 14:21:14 +0000 Subject: [PATCH 3/5] update the standard name for hail/graupel collection efficiency --- physics/mp_nssl.meta | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/physics/mp_nssl.meta b/physics/mp_nssl.meta index d4420c47b..626c5b4cf 100644 --- a/physics/mp_nssl.meta +++ b/physics/mp_nssl.meta @@ -174,7 +174,7 @@ kind = kind_phys intent = in [nssl_ehw0_in] - standard_name = nssl_hw_collec_eff + standard_name = nssl_graupel_collection_efficiency long_name = graupel droplet collection efficiency in NSSL micro units = none dimensions = () @@ -182,8 +182,8 @@ kind = kind_phys intent = in [nssl_ehlw0_in] - standard_name = nssl_hlw_collec_eff - long_name = graupel droplet collection efficiency in NSSL micro + standard_name = nssl_hail_collection_efficiency + long_name = hail droplet collection efficiency in NSSL micro units = none dimensions = () type = real From 229c9231ee4c5467e2aca8f5ef1557995fda5c0a Mon Sep 17 00:00:00 2001 From: Jili Dong Date: Tue, 7 Mar 2023 14:55:38 +0000 Subject: [PATCH 4/5] update the long names for parameters related to NSSL microphysics --- physics/mp_nssl.meta | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/physics/mp_nssl.meta b/physics/mp_nssl.meta index 626c5b4cf..c7e398f0a 100644 --- a/physics/mp_nssl.meta +++ b/physics/mp_nssl.meta @@ -151,7 +151,7 @@ intent = in [nssl_alphah] standard_name = nssl_alpha_graupel - long_name = graupel PSD shape parameter in NSSL micro + long_name = graupel particle size distribution(PSD) shape parameter in NSSL microphysics scheme units = none dimensions = () type = real @@ -159,7 +159,7 @@ intent = in [nssl_alphahl] standard_name = nssl_alpha_hail - long_name = hail PSD shape parameter in NSSL micro + long_name = hail particle size distribution(PSD) shape parameter in NSSL microphysics scheme units = none dimensions = () type = real @@ -167,7 +167,7 @@ intent = in [nssl_alphar] standard_name = nssl_alpha_rain - long_name = rain PSD shape parameter in NSSL micro + long_name = rain particle size distribution(PSD) shape parameter in NSSL microphysics scheme units = none dimensions = () type = real @@ -175,7 +175,7 @@ intent = in [nssl_ehw0_in] standard_name = nssl_graupel_collection_efficiency - long_name = graupel droplet collection efficiency in NSSL micro + long_name = graupel droplet collection efficiency in NSSL microphysics scheme units = none dimensions = () type = real @@ -183,7 +183,7 @@ intent = in [nssl_ehlw0_in] standard_name = nssl_hail_collection_efficiency - long_name = hail droplet collection efficiency in NSSL micro + long_name = hail droplet collection efficiency in NSSL microphysics scheme units = none dimensions = () type = real @@ -191,21 +191,21 @@ intent = in [nssl_ccn_on] standard_name = nssl_ccn_on - long_name = CCN activation flag in NSSL micro + long_name = CCN activation flag in NSSL microphysics scheme units = flag dimensions = () type = logical intent = in [nssl_hail_on] standard_name = nssl_hail_on - long_name = hail activation flag in NSSL micro + long_name = hail activation flag in NSSL microphysics scheme units = flag dimensions = () type = logical intent = in [nssl_invertccn] standard_name = nssl_invertccn - long_name = flag to invert CCN in NSSL micro + long_name = flag to invert CCN in NSSL microphysics scheme units = flag dimensions = () type = logical @@ -595,21 +595,21 @@ intent = in [nssl_ccn_on] standard_name = nssl_ccn_on - long_name = CCN activation flag in NSSL micro + long_name = CCN activation flag in NSSL microphysics scheme units = flag dimensions = () type = logical intent = in [nssl_hail_on] standard_name = nssl_hail_on - long_name = hail activation flag in NSSL micro + long_name = hail activation flag in NSSL microphysics scheme units = flag dimensions = () type = logical intent = in [nssl_invertccn] standard_name = nssl_invertccn - long_name = flag to invert CCN in NSSL micro + long_name = flag to invert CCN in NSSL microphysics scheme units = flag dimensions = () type = logical From ffccfc8f8aca54c035268e025e29f50e4b2bdeb9 Mon Sep 17 00:00:00 2001 From: Grant Firl Date: Tue, 21 Mar 2023 14:30:18 -0400 Subject: [PATCH 5/5] remove test for MYNN SFC when using MYNN EDMF in noahmpdrv.F90; remove Dom and add Dustin in CMakeLists.txt authors --- CMakeLists.txt | 2 +- physics/noahmpdrv.F90 | 7 ------- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 90f6556e3..950bd048e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,7 @@ project(ccpp_physics #------------------------------------------------------------------------------ set(PACKAGE "ccpp-physics") -set(AUTHORS "Grant Firl" "Dom Heinzeller" "Man Zhang" "Mike Kavulich" "Chunxi Zhang") +set(AUTHORS "Grant Firl" "Dustin Swales" "Man Zhang" "Mike Kavulich" ) #------------------------------------------------------------------------------ # Set OpenMP flags for C/C++/Fortran diff --git a/physics/noahmpdrv.F90 b/physics/noahmpdrv.F90 index ac3867c1c..771cfa0f6 100644 --- a/physics/noahmpdrv.F90 +++ b/physics/noahmpdrv.F90 @@ -77,13 +77,6 @@ subroutine noahmpdrv_init(lsm, lsm_noahmp, me, isot, ivegsrc, & return end if - if (.not. do_mynnsfclay .and. do_mynnedmf) then - errmsg = 'Problem : do_mynnsfclay = .false.' // & - 'but mynnpbl is .true.. Exiting ...' - errflg = 1 - return - end if - if ( do_mynnsfclay .and. .not. do_mynnedmf) then errmsg = 'Problem : do_mynnsfclay = .true.' // & 'but mynnpbl is .false.. Exiting ...'