From b3f213d1ed7d7b8a8630e0b84c123670ab7670f1 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 18 Nov 2019 14:53:15 -0700 Subject: [PATCH 01/12] Update submodule pointers for ccpp-framework and ccpp-physics --- ccpp/framework | 2 +- ccpp/physics | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ccpp/framework b/ccpp/framework index f3cad9e2b..60db8066c 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit f3cad9e2b6b69ab4c07826a1de50b7f6c6d08cd1 +Subproject commit 60db8066c435601250987fc51a3a57b658f47e5e diff --git a/ccpp/physics b/ccpp/physics index 4b46d2653..2d5a8e852 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 4b46d2653b6277c39176b131acb3d1544e7e2216 +Subproject commit 2d5a8e852743c6823e2613291555f63bcffd14dc From 9ee222bd946179e2e1663389a2974b05843d279e Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 18 Nov 2019 14:54:21 -0700 Subject: [PATCH 02/12] Add new SDFs for sas and satmedmfvdifq, remove samfshalcnv_post scheme from existing suites --- ccpp/suites/suite_FV3_CPT_v0.xml | 1 - ccpp/suites/suite_FV3_GFS_2017.xml | 1 - ccpp/suites/suite_FV3_GFS_2017_csawmg.xml | 1 - ccpp/suites/suite_FV3_GFS_2017_gfdlmp.xml | 1 - .../suite_FV3_GFS_2017_gfdlmp_noahmp.xml | 1 - .../suite_FV3_GFS_2017_gfdlmp_regional.xml | 1 - ccpp/suites/suite_FV3_GFS_2017_h2ophys.xml | 1 - ccpp/suites/suite_FV3_GFS_2017_myj.xml | 1 - .../suites/suite_FV3_GFS_2017_ozphys_2015.xml | 1 - ccpp/suites/suite_FV3_GFS_2017_sas.xml | 93 +++++++++++++++++++ ccpp/suites/suite_FV3_GFS_2017_satmedmf.xml | 1 - ccpp/suites/suite_FV3_GFS_2017_satmedmfq.xml | 89 ++++++++++++++++++ ccpp/suites/suite_FV3_GFS_2017_shinhong.xml | 1 - ccpp/suites/suite_FV3_GFS_2017_stretched.xml | 1 - ccpp/suites/suite_FV3_GFS_2017_ysu.xml | 1 - ccpp/suites/suite_FV3_GFS_v15.xml | 1 - ccpp/suites/suite_FV3_GFS_v15_mynn.xml | 1 - ccpp/suites/suite_FV3_GFS_v15_thompson.xml | 1 - .../suite_FV3_GFS_v15_thompson_mynn.xml | 1 - ccpp/suites/suite_FV3_GFS_v15plus.xml | 1 - 20 files changed, 182 insertions(+), 18 deletions(-) create mode 100644 ccpp/suites/suite_FV3_GFS_2017_sas.xml create mode 100644 ccpp/suites/suite_FV3_GFS_2017_satmedmfq.xml diff --git a/ccpp/suites/suite_FV3_CPT_v0.xml b/ccpp/suites/suite_FV3_CPT_v0.xml index 2e0718970..8eed8e78c 100644 --- a/ccpp/suites/suite_FV3_CPT_v0.xml +++ b/ccpp/suites/suite_FV3_CPT_v0.xml @@ -78,7 +78,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_2017.xml b/ccpp/suites/suite_FV3_GFS_2017.xml index 5f0808dd4..fc1739bd5 100644 --- a/ccpp/suites/suite_FV3_GFS_2017.xml +++ b/ccpp/suites/suite_FV3_GFS_2017.xml @@ -70,7 +70,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_2017_csawmg.xml b/ccpp/suites/suite_FV3_GFS_2017_csawmg.xml index abca6d237..fec7f373e 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_csawmg.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_csawmg.xml @@ -73,7 +73,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp.xml b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp.xml index 8277cdcfe..35fdd9143 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp.xml @@ -75,7 +75,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_noahmp.xml b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_noahmp.xml index 1402e663b..2868c8250 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_noahmp.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_noahmp.xml @@ -76,7 +76,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional.xml b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional.xml index ba247b796..20f91469f 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_gfdlmp_regional.xml @@ -70,7 +70,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_2017_h2ophys.xml b/ccpp/suites/suite_FV3_GFS_2017_h2ophys.xml index f95070670..3e6acbc98 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_h2ophys.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_h2ophys.xml @@ -71,7 +71,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_2017_myj.xml b/ccpp/suites/suite_FV3_GFS_2017_myj.xml index f8390e62f..7a193a10b 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_myj.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_myj.xml @@ -76,7 +76,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_2017_ozphys_2015.xml b/ccpp/suites/suite_FV3_GFS_2017_ozphys_2015.xml index 310df3733..4e382886c 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_ozphys_2015.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_ozphys_2015.xml @@ -70,7 +70,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_2017_sas.xml b/ccpp/suites/suite_FV3_GFS_2017_sas.xml new file mode 100644 index 000000000..1c52ac2cd --- /dev/null +++ b/ccpp/suites/suite_FV3_GFS_2017_sas.xml @@ -0,0 +1,93 @@ + + + + + + + fv_sat_adj + + + + + GFS_time_vary_pre + GFS_rrtmg_setup + GFS_rad_time_vary + GFS_phys_time_vary + + + + + GFS_suite_interstitial_rad_reset + GFS_rrtmg_pre + rrtmg_sw_pre + rrtmg_sw + rrtmg_sw_post + rrtmg_lw_pre + rrtmg_lw + rrtmg_lw_post + GFS_rrtmg_post + + + + + GFS_suite_interstitial_phys_reset + GFS_suite_stateout_reset + get_prs_fv3 + GFS_suite_interstitial_1 + GFS_surface_generic_pre + GFS_surface_composites_pre + dcyc2t3 + GFS_surface_composites_inter + GFS_suite_interstitial_2 + + + + sfc_diff + GFS_surface_loop_control_part1 + sfc_nst_pre + sfc_nst + sfc_nst_post + lsm_noah + sfc_sice + GFS_surface_loop_control_part2 + + + + GFS_surface_composites_post + dcyc2t3_post + sfc_diag + sfc_diag_post + GFS_surface_generic_post + GFS_PBL_generic_pre + hedmf + GFS_PBL_generic_post + GFS_GWD_generic_pre + cires_ugwp + cires_ugwp_post + GFS_GWD_generic_post + rayleigh_damp + GFS_suite_stateout_update + ozphys + GFS_DCNV_generic_pre + get_phi_fv3 + GFS_suite_interstitial_3 + sascnvn + GFS_DCNV_generic_post + GFS_SCNV_generic_pre + shalcnv + GFS_SCNV_generic_post + GFS_suite_interstitial_4 + cnvc90 + GFS_MP_generic_pre + gfdl_cloud_microphys + GFS_MP_generic_post + maximum_hourly_diagnostics + + + + + GFS_stochastics + + + + diff --git a/ccpp/suites/suite_FV3_GFS_2017_satmedmf.xml b/ccpp/suites/suite_FV3_GFS_2017_satmedmf.xml index b7f58db39..af93678ac 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_satmedmf.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_satmedmf.xml @@ -70,7 +70,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_2017_satmedmfq.xml b/ccpp/suites/suite_FV3_GFS_2017_satmedmfq.xml new file mode 100644 index 000000000..a975c9235 --- /dev/null +++ b/ccpp/suites/suite_FV3_GFS_2017_satmedmfq.xml @@ -0,0 +1,89 @@ + + + + + + + GFS_time_vary_pre + GFS_rrtmg_setup + GFS_rad_time_vary + GFS_phys_time_vary + + + + + GFS_suite_interstitial_rad_reset + GFS_rrtmg_pre + rrtmg_sw_pre + rrtmg_sw + rrtmg_sw_post + rrtmg_lw_pre + rrtmg_lw + rrtmg_lw_post + GFS_rrtmg_post + + + + + GFS_suite_interstitial_phys_reset + GFS_suite_stateout_reset + get_prs_fv3 + GFS_suite_interstitial_1 + GFS_surface_generic_pre + GFS_surface_composites_pre + dcyc2t3 + GFS_surface_composites_inter + GFS_suite_interstitial_2 + + + + sfc_diff + GFS_surface_loop_control_part1 + sfc_nst_pre + sfc_nst + sfc_nst_post + lsm_noah + sfc_sice + GFS_surface_loop_control_part2 + + + + GFS_surface_composites_post + dcyc2t3_post + sfc_diag + sfc_diag_post + GFS_surface_generic_post + GFS_PBL_generic_pre + satmedmfvdifq + GFS_PBL_generic_post + GFS_GWD_generic_pre + cires_ugwp + cires_ugwp_post + GFS_GWD_generic_post + rayleigh_damp + GFS_suite_stateout_update + ozphys + GFS_DCNV_generic_pre + get_phi_fv3 + GFS_suite_interstitial_3 + samfdeepcnv + GFS_DCNV_generic_post + GFS_SCNV_generic_pre + samfshalcnv + GFS_SCNV_generic_post + GFS_suite_interstitial_4 + cnvc90 + GFS_MP_generic_pre + zhaocarr_gscond + zhaocarr_precpd + GFS_MP_generic_post + maximum_hourly_diagnostics + + + + + GFS_stochastics + + + + diff --git a/ccpp/suites/suite_FV3_GFS_2017_shinhong.xml b/ccpp/suites/suite_FV3_GFS_2017_shinhong.xml index e12c294e0..756695e65 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_shinhong.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_shinhong.xml @@ -74,7 +74,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_2017_stretched.xml b/ccpp/suites/suite_FV3_GFS_2017_stretched.xml index 59631dd45..6bef91b06 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_stretched.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_stretched.xml @@ -74,7 +74,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_2017_ysu.xml b/ccpp/suites/suite_FV3_GFS_2017_ysu.xml index 8ec485c2b..baeb11c22 100644 --- a/ccpp/suites/suite_FV3_GFS_2017_ysu.xml +++ b/ccpp/suites/suite_FV3_GFS_2017_ysu.xml @@ -74,7 +74,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_v15.xml b/ccpp/suites/suite_FV3_GFS_v15.xml index 124c86707..efd5fc97b 100644 --- a/ccpp/suites/suite_FV3_GFS_v15.xml +++ b/ccpp/suites/suite_FV3_GFS_v15.xml @@ -76,7 +76,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_v15_mynn.xml b/ccpp/suites/suite_FV3_GFS_v15_mynn.xml index 0b14e37f5..8fffa33e8 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_mynn.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_mynn.xml @@ -76,7 +76,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_v15_thompson.xml b/ccpp/suites/suite_FV3_GFS_v15_thompson.xml index 9400bbf98..a436c11c8 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_thompson.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_thompson.xml @@ -71,7 +71,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml b/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml index 6f46141b8..3de52fa45 100644 --- a/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml +++ b/ccpp/suites/suite_FV3_GFS_v15_thompson_mynn.xml @@ -71,7 +71,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 diff --git a/ccpp/suites/suite_FV3_GFS_v15plus.xml b/ccpp/suites/suite_FV3_GFS_v15plus.xml index 40397d4f1..837cba69f 100644 --- a/ccpp/suites/suite_FV3_GFS_v15plus.xml +++ b/ccpp/suites/suite_FV3_GFS_v15plus.xml @@ -76,7 +76,6 @@ GFS_DCNV_generic_post GFS_SCNV_generic_pre samfshalcnv - samfshalcnv_post GFS_SCNV_generic_post GFS_suite_interstitial_4 cnvc90 From c69850f49d1c5ad8335fafaae37555405ffd3bd0 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 18 Nov 2019 14:55:39 -0700 Subject: [PATCH 03/12] ccpp/CMakeLists.txt: cleanup bitforbit compiler options, adjust for b4b identical results on macOS with 32-bit dynamics --- ccpp/CMakeLists.txt | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/ccpp/CMakeLists.txt b/ccpp/CMakeLists.txt index 5b903352c..1ee3fce3d 100644 --- a/ccpp/CMakeLists.txt +++ b/ccpp/CMakeLists.txt @@ -62,17 +62,22 @@ elseif (${CMAKE_BUILD_TYPE} MATCHES "Release") set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS_RELEASE}") elseif (${CMAKE_BUILD_TYPE} MATCHES "Bitforbit") if (${CMAKE_Fortran_COMPILER_ID} MATCHES "PGI") - set (CMAKE_C_FLAGS_RELEASE "-O1 -fPIC" CACHE STRING "" FORCE) - set (CMAKE_CXX_FLAGS_RELEASE "-O1 -fPIC" CACHE STRING "" FORCE) - set (CMAKE_Fortran_FLAGS_RELEASE "-O1 -fPIC" CACHE STRING "" FORCE) + set (CMAKE_C_FLAGS_BITFORBIT "-O1 -g -fPIC" CACHE STRING "" FORCE) + set (CMAKE_CXX_FLAGS_BITFORBIT "-O1 -g -fPIC" CACHE STRING "" FORCE) + set (CMAKE_Fortran_FLAGS_BITFORBIT "-O1 -g -fPIC" CACHE STRING "" FORCE) + elseif (APPLE AND ${CMAKE_Fortran_COMPILER_ID} MATCHES "GNU") + set (CMAKE_C_FLAGS_BITFORBIT "-O0 -g -fPIC" CACHE STRING "" FORCE) + set (CMAKE_CXX_FLAGS_BITFORBIT "-O0 -g -fPIC" CACHE STRING "" FORCE) + set (CMAKE_Fortran_FLAGS_BITFORBIT "-O0 -g -fPIC" CACHE STRING "" FORCE) + # For Intel on all platforms and for GNU on all platforms except macOS else (${CMAKE_Fortran_COMPILER_ID} MATCHES "PGI") - set (CMAKE_C_FLAGS_RELEASE "-O2 -fPIC" CACHE STRING "" FORCE) - set (CMAKE_CXX_FLAGS_RELEASE "-O2 -fPIC" CACHE STRING "" FORCE) - set (CMAKE_Fortran_FLAGS_RELEASE "-O2 -fPIC" CACHE STRING "" FORCE) + set (CMAKE_C_FLAGS_BITFORBIT "-O2 -g -fPIC" CACHE STRING "" FORCE) + set (CMAKE_CXX_FLAGS_BITFORBIT "-O2 -g -fPIC" CACHE STRING "" FORCE) + set (CMAKE_Fortran_FLAGS_BITFORBIT "-O2 -g -fPIC" CACHE STRING "" FORCE) endif (${CMAKE_Fortran_COMPILER_ID} MATCHES "PGI") - set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS_RELEASE}") - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_RELEASE}") - set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS_RELEASE}") + set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS_BITFORBIT}") + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_BITFORBIT}") + set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS_BITFORBIT}") endif (${CMAKE_BUILD_TYPE} MATCHES "Debug") # Set compiler-specific options, depending on build type; some optimization flags may only be used @@ -87,9 +92,7 @@ if (${CMAKE_Fortran_COMPILER_ID} MATCHES "GNU") set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fno-unsafe-math-optimizations -frounding-math -fsignaling-nans") set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -ffpe-trap=invalid,zero,overflow -fcheck=bounds -fbacktrace -fno-range-check") elseif (${CMAKE_BUILD_TYPE} MATCHES "Bitforbit") - set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g") - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g") - set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -g") + set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS}") endif (${CMAKE_BUILD_TYPE} MATCHES "Debug") set (CMAKE_Fortran_FLAGS_DEFAULT_PREC "-fdefault-real-8 -fdefault-double-8") elseif (${CMAKE_Fortran_COMPILER_ID} MATCHES "PGI") @@ -114,9 +117,9 @@ elseif (${CMAKE_Fortran_COMPILER_ID} MATCHES "Intel") set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fstack-protector-all -fpe0 -traceback -debug -ftrapuv") elseif (${CMAKE_BUILD_TYPE} MATCHES "Bitforbit") if(LEGACY_INTEL) - set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -debug minimal -fp-model strict -qoverride-limits -g -traceback") + set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -debug minimal -fp-model strict -qoverride-limits -traceback") else(LEGACY_INTEL) - set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -debug minimal -fp-model consistent -qoverride-limits -g -traceback") + set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -debug minimal -fp-model consistent -qoverride-limits -traceback") endif (LEGACY_INTEL) elseif (${CMAKE_BUILD_TYPE} MATCHES "Release") # Specify aggressive optimization flags (to be overwritten for individual files in ccpp-physics' CMakeLists.txt) From 8cba04dcf406df14441be749aeb71bb6c7695f45 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 18 Nov 2019 14:56:26 -0700 Subject: [PATCH 04/12] ccpp/config/ccpp_prebuild_config.py: add sas shallow/deep convection schemes and satmedmfvdifq scheme --- ccpp/config/ccpp_prebuild_config.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ccpp/config/ccpp_prebuild_config.py b/ccpp/config/ccpp_prebuild_config.py index b1738d633..719958f5a 100755 --- a/ccpp/config/ccpp_prebuild_config.py +++ b/ccpp/config/ccpp_prebuild_config.py @@ -111,7 +111,9 @@ 'FV3/ccpp/physics/physics/cires_vert_wmsdis.F90', 'FV3/ccpp/physics/physics/namelist_soilveg.f', 'FV3/ccpp/physics/physics/mfpblt.f', + 'FV3/ccpp/physics/physics/mfpbltq.f', 'FV3/ccpp/physics/physics/mfscu.f', + 'FV3/ccpp/physics/physics/mfscuq.f', 'FV3/ccpp/physics/physics/noahmp_tables.f90', 'FV3/ccpp/physics/physics/num_parthds.F', 'FV3/ccpp/physics/physics/ozne_def.f', @@ -188,6 +190,8 @@ 'FV3/ccpp/physics/physics/h2ophys.f' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/samfdeepcnv.f' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/samfshalcnv.f' : [ 'slow_physics' ], + 'FV3/ccpp/physics/physics/sascnvn.F' : [ 'slow_physics' ], + 'FV3/ccpp/physics/physics/shalcnv.F' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/maximum_hourly_diagnostics.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/m_micro.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/m_micro_interstitial.F90' : [ 'slow_physics' ], @@ -197,6 +201,7 @@ 'FV3/ccpp/physics/physics/moninedmf.f' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/moninshoc.f' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/satmedmfvdif.F' : [ 'slow_physics' ], + 'FV3/ccpp/physics/physics/satmedmfvdifq.F' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/shinhongvdif.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/ysuvdif.F90' : [ 'slow_physics' ], 'FV3/ccpp/physics/physics/module_MYNNPBL_wrapper.F90' : [ 'slow_physics' ], From 2e27a29b89ed70c3961da4f2f6f8cdc9ac8244a7 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 18 Nov 2019 15:01:07 -0700 Subject: [PATCH 05/12] Update CCPP annotations in gfsphysics/GFS_layer/GFS_physics_driver.F90 --- gfsphysics/GFS_layer/GFS_physics_driver.F90 | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/gfsphysics/GFS_layer/GFS_physics_driver.F90 b/gfsphysics/GFS_layer/GFS_physics_driver.F90 index 8c9283198..731bdbb90 100644 --- a/gfsphysics/GFS_layer/GFS_physics_driver.F90 +++ b/gfsphysics/GFS_layer/GFS_physics_driver.F90 @@ -2379,6 +2379,7 @@ subroutine GFS_physics_driver & else if (Model%satmedmf) then if (Model%isatmedmf == 0) then ! initial version of satmedmfvdif (Nov 2018) +!## CCPP ##* satmedmfvdif.F/satmedmfvdif_run Note: The conditional above is checked in satmedmfvdif_init call satmedmfvdif(ix, im, levs, nvdiff, ntcw, ntiw, ntke, & dvdt, dudt, dtdt, dqdt, & Statein%ugrs, Statein%vgrs, Statein%tgrs, Statein%qgrs, & @@ -2389,7 +2390,9 @@ subroutine GFS_physics_driver & Statein%prslk, Statein%phii, Statein%phil, dtp, & Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Diag%hpbl, & kinver, Model%xkzm_m, Model%xkzm_h, Model%xkzm_s) +!*## CCPP ## elseif (Model%isatmedmf == 1) then ! updated version of satmedmfvdif (May 2019) +!## CCPP ##* satmedmfvdifq.F/satmedmfvdifq_run Note: The conditional above is checked in satmedmfvdifq_init call satmedmfvdifq(ix, im, levs, nvdiff, ntcw, ntiw, ntke, & dvdt, dudt, dtdt, dqdt, & Statein%ugrs, Statein%vgrs, Statein%tgrs, Statein%qgrs, & @@ -2401,6 +2404,7 @@ subroutine GFS_physics_driver & Model%dspheat, dusfc1, dvsfc1, dtsfc1, dqsfc1, Diag%hpbl, & kinver, Model%xkzm_m, Model%xkzm_h, Model%xkzm_s, & Model%dspfac, Model%bl_upfr, Model%bl_dnfr) +!*## CCPP ## endif elseif (Model%hybedmf) then if (Model%moninq_fac > 0) then @@ -2628,8 +2632,7 @@ subroutine GFS_physics_driver & else if (Model%satmedmf) then if (Model%isatmedmf == 0) then ! initial version of satmedmfvdif (Nov 2018) -!## CCPP ## satmedmfvdif.F/satmedmfvdif_run Note: The conditional above is not checked in the CCPP scheme; -! therefore the use of this scheme is controlled via the CCPP SDF +!## CCPP ##* satmedmfvdif.F/satmedmfvdif_run Note: The conditional above is checked in satmedmfvdif_init call satmedmfvdif(ix, im, levs, nvdiff, ntcw, ntiwx, ntkev, & dvdt, dudt, dtdt, dvdftra, & Statein%ugrs, Statein%vgrs, Statein%tgrs, vdftra, & @@ -2642,7 +2645,7 @@ subroutine GFS_physics_driver & kinver, Model%xkzm_m, Model%xkzm_h, Model%xkzm_s) !*## CCPP ## elseif (Model%isatmedmf == 1) then ! updated version of satmedmfvdif (May 2019) -!## CCPP ##* This scheme is not in the CCPP yet. +!## CCPP ##* satmedmfvdifq.F/satmedmfvdifq_run Note: The conditional above is checked in satmedmfvdifq_init call satmedmfvdifq(ix, im, levs, nvdiff, ntcw, ntiwx, ntkev, & dvdt, dudt, dtdt, dvdftra, & Statein%ugrs, Statein%vgrs, Statein%tgrs, vdftra, & @@ -3720,10 +3723,10 @@ subroutine GFS_physics_driver & enddo endif !*## CCPP ## -!## CCPP ##* This scheme is not in the CCPP. if (.not. Model%ras .and. .not. Model%cscnv) then if (Model%imfdeepcnv == 1) then ! no random cloud top +!## CCPP ##* sascnvn.F/sascnvn_run call sascnvn (im, ix, levs, Model%jcap, dtp, del, & Statein%prsl, Statein%pgr, Statein%phil, clw(:,:,1:2), & Stateout%gq0(:,:,1), Stateout%gt0, Stateout%gu0, & @@ -4288,7 +4291,7 @@ subroutine GFS_physics_driver & ! -------------------------------------- if (Model%imfshalcnv == 1) then ! opr option now at 2014 !----------------------- -!## CCPP ##* Not in the CCPP yet. +!## CCPP ##* shalcnv.F/shalcnv_run call shalcnv (im, ix, levs, Model%jcap, dtp, del, Statein%prsl, & Statein%pgr, Statein%phil, clw, Stateout%gq0, & Stateout%gt0, Stateout%gu0, Stateout%gv0, rain1, & @@ -4296,7 +4299,9 @@ subroutine GFS_physics_driver & Diag%hpbl, hflx, evap, ud_mf, dt_mf, cnvw, cnvc, & Model%clam_shal, Model%c0s_shal, Model%c1_shal, & Model%pgcon_shal) +!*## CCPP ## +!## CCPP ##* GFS_SCNV_generic.F90/GFS_SCNV_generic_post_run do i=1,im Diag%rainc(i) = Diag%rainc(i) + frain * rain1(i) enddo @@ -4336,7 +4341,7 @@ subroutine GFS_physics_driver & Model%clam_shal, Model%c0s_shal, Model%c1_shal, & Model%pgcon_shal, Model%asolfac_shal) !*## CCPP ## -!## CCPP ##* samfshalcnv.f/samfshalcnv_post_run +!## CCPP ##* GFS_SCNV_generic.F90/GFS_SCNV_generic_post_run do i=1,im Diag%rainc(i) = Diag%rainc(i) + frain * rain1(i) enddo From daba616cb3bbda2b3844b30d22cecea329462033 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 18 Nov 2019 15:02:27 -0700 Subject: [PATCH 06/12] gfsphysics/GFS_layer/GFS_typedefs.*: add new control variables/flags for CCPP for sas and satmedmfvdifq --- gfsphysics/GFS_layer/GFS_typedefs.F90 | 80 +++++++++++++----- gfsphysics/GFS_layer/GFS_typedefs.meta | 108 ++++++++++++++++++++----- 2 files changed, 150 insertions(+), 38 deletions(-) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 7f8239a5a..4e73d62f6 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -781,16 +781,36 @@ module GFS_typedefs !< 1: July 2010 version of mass-flux shallow conv scheme !< current operational version as of 2016 !< 2: scale- & aerosol-aware mass-flux shallow conv scheme (2017) + !< 3: scale- & aerosol-aware Grell-Freitas scheme (GSD) + !< 4: New Tiedtke scheme (CAPS) !< 0: modified Tiedtke's eddy-diffusion shallow conv scheme !< -1: no shallow convection used +#ifdef CCPP + integer :: imfshalcnv_sas = 1 !< flag for SAS mass-flux shallow convection scheme + integer :: imfshalcnv_samf = 2 !< flag for SAMF scale- & aerosol-aware mass-flux shallow convection scheme + integer :: imfshalcnv_gf = 3 !< flag for scale- & aerosol-aware Grell-Freitas scheme (GSD) + integer :: imfshalcnv_ntiedtke = 4 !< flag for new Tiedtke scheme (CAPS) +#endif integer :: imfdeepcnv !< flag for mass-flux deep convection scheme !< 1: July 2010 version of SAS conv scheme !< current operational version as of 2016 !< 2: scale- & aerosol-aware mass-flux deep conv scheme (2017) + !< 3: scale- & aerosol-aware Grell-Freitas scheme (GSD) + !< 4: New Tiedtke scheme (CAPS) !< 0: old SAS Convection scheme before July 2010 - integer :: isatmedmf !< flag for scale-aware TKE-based moist edmf scheme +#ifdef CCPP + integer :: imfdeepcnv_sas = 1 !< flag for SAS mass-flux deep convection scheme + integer :: imfdeepcnv_samf = 2 !< flag for SAMF scale- & aerosol-aware mass-flux deep convection scheme + integer :: imfdeepcnv_gf = 3 !< flag for scale- & aerosol-aware Grell-Freitas scheme (GSD) + integer :: imfdeepcnv_ntiedtke = 4 !< flag for new Tiedtke scheme (CAPS) +#endif + integer :: isatmedmf !< flag for scale-aware TKE-based moist edmf scheme !< 0: initial version of satmedmf (Nov. 2018) !< 1: updated version of satmedmf (as of May 2019) +#ifdef CCPP + integer :: isatmedmf_vdif = 0 !< flag for initial version of satmedmf (Nov. 2018) + integer :: isatmedmf_vdifq = 1 !< flag for updated version of satmedmf (as of May 2019) +#endif integer :: nmtvr !< number of topographic variables such as variance etc !< used in the GWD parameterization integer :: jcap !< number of spectral wave trancation used only by sascnv shalcnv @@ -2300,7 +2320,7 @@ subroutine sfcprop_create (Sfcprop, IM, Model) Sfcprop%cqs2 = clear_val Sfcprop%lh = clear_val end if - if (Model%imfdeepcnv == 3) then + if (Model%imfdeepcnv == Model%imfdeepcnv_gf) then allocate (Sfcprop%conv_act(IM)) Sfcprop%conv_act = zero end if @@ -3869,8 +3889,8 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & #ifdef CCPP ! Consistency check for NTDK convection: deep and shallow convection are bundled ! and cannot be combined with any other deep or shallow convection scheme - if ( (Model%imfdeepcnv == 4 .or. Model%imfshalcnv == 4) .and. & - .not. (Model%imfdeepcnv == 4 .and. Model%imfshalcnv == 4) ) then + if ( (Model%imfdeepcnv == Model%imfdeepcnv_ntiedtke .or. Model%imfshalcnv == Model%imfshalcnv_ntiedtke) .and. & + .not. (Model%imfdeepcnv == Model%imfdeepcnv_ntiedtke .and. Model%imfshalcnv == Model%imfshalcnv_ntiedtke) ) then write(0,*) "Logic error: if NTDK deep convection is used, must also use NTDK shallow convection (and vice versa)" stop end if @@ -3890,14 +3910,21 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & else if (Model%imfdeepcnv == 0) then print *,' old SAS Convection scheme before July 2010 used' - elseif(Model%imfdeepcnv == 1) then +#ifdef CCPP + elseif(Model%imfdeepcnv == Model%imfdeepcnv_sas) then print *,' July 2010 version of SAS conv scheme used' - elseif(Model%imfdeepcnv == 2) then + elseif(Model%imfdeepcnv == Model%imfdeepcnv_samf) then print *,' scale & aerosol-aware mass-flux deep conv scheme' - elseif(Model%imfdeepcnv == 3) then + elseif(Model%imfdeepcnv == Model%imfdeepcnv_gf) then print *,' Grell-Freitas scale & aerosol-aware mass-flux deep conv scheme' - elseif(Model%imfdeepcnv == 4) then + elseif(Model%imfdeepcnv == Model%imfdeepcnv_ntiedtke) then print *,' New Tiedtke cumulus scheme' +#else + elseif(Model%imfdeepcnv == 1) then + print *,' July 2010 version of SAS conv scheme used' + elseif(Model%imfdeepcnv == 2) then + print *,' scale & aerosol-aware mass-flux deep conv scheme' +#endif endif endif else @@ -3913,16 +3940,19 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & print*, ' Deep convection scheme disabled' endif if (Model%satmedmf) then +#ifdef CCPP + if (Model%isatmedmf == Model%isatmedmf_vdif) then + print *,' initial version (Nov 2018) of sale-aware TKE-based moist EDMF scheme used' + elseif(Model%isatmedmf == Model%isatmedmf_vdifq) then + print *,' update version (May 2019) of sale-aware TKE-based moist EDMF scheme used' + endif +#else if (Model%isatmedmf == 0) then print *,' initial version (Nov 2018) of sale-aware TKE-based moist EDMF scheme used' elseif(Model%isatmedmf == 1) then -#ifdef CCPP - print *,' Error: updated version (May 2019) of sale-aware TKE-based moist EDMF scheme not yet available in CCPP' - stop -#else print *,' update version (May 2019) of sale-aware TKE-based moist EDMF scheme used' -#endif endif +#endif elseif (Model%hybedmf) then print *,' scale-aware hybrid edmf PBL scheme used' elseif (Model%old_monin) then @@ -3940,14 +3970,21 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & else if (Model%imfshalcnv == 0) then print *,' modified Tiedtke eddy-diffusion shallow conv scheme used' - elseif (Model%imfshalcnv == 1) then +#ifdef CCPP + elseif (Model%imfshalcnv == Model%imfshalcnv_sas) then print *,' July 2010 version of mass-flux shallow conv scheme used' - elseif (Model%imfshalcnv == 2) then + elseif (Model%imfshalcnv == Model%imfshalcnv_samf) then print *,' scale- & aerosol-aware mass-flux shallow conv scheme (2017)' - elseif (Model%imfshalcnv == 3) then + elseif (Model%imfshalcnv == Model%imfshalcnv_gf) then print *,' Grell-Freitas scale- & aerosol-aware mass-flux shallow conv scheme (2013)' - elseif (Model%imfshalcnv == 4) then + elseif (Model%imfshalcnv == Model%imfshalcnv_ntiedtke) then print *,' New Tiedtke cumulus scheme' +#else + elseif (Model%imfshalcnv == 1) then + print *,' July 2010 version of mass-flux shallow conv scheme used' + elseif (Model%imfshalcnv == 2) then + print *,' scale- & aerosol-aware mass-flux shallow conv scheme (2017)' +#endif else print *,' unknown mass-flux scheme in use - defaulting to no shallow convection' Model%imfshalcnv = -1 @@ -4179,7 +4216,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%lmfshal = (Model%shal_cnv .and. Model%imfshalcnv > 0) #ifdef CCPP - Model%lmfdeep2 = (Model%imfdeepcnv == 2 .or. Model%imfdeepcnv == 3 .or. Model%imfdeepcnv == 4) + Model%lmfdeep2 = (Model%imfdeepcnv == Model%imfdeepcnv_sas & + .or. Model%imfdeepcnv == Model%imfdeepcnv_gf & + .or. Model%imfdeepcnv == Model%imfdeepcnv_ntiedtke) #else Model%lmfdeep2 = (Model%imfdeepcnv == 2) #endif @@ -4389,6 +4428,7 @@ subroutine control_print(Model) print *, ' redrag : ', Model%redrag print *, ' hybedmf : ', Model%hybedmf print *, ' satmedmf : ', Model%satmedmf + print *, ' isatmedmf : ', Model%isatmedmf print *, ' shinhong : ', Model%shinhong print *, ' do_ysu : ', Model%do_ysu print *, ' dspheat : ', Model%dspheat @@ -4734,7 +4774,7 @@ subroutine tbd_create (Tbd, IM, Model) Tbd%htswc = clear_val Tbd%htsw0 = clear_val - if (Model%imfdeepcnv == 3 .or. Model%imfdeepcnv == 4) then + if (Model%imfdeepcnv == Model%imfdeepcnv_gf .or. Model%imfdeepcnv == Model%imfdeepcnv_ntiedtke) then allocate(Tbd%forcet(IM, Model%levs)) allocate(Tbd%forceq(IM, Model%levs)) allocate(Tbd%prevst(IM, Model%levs)) @@ -4745,7 +4785,7 @@ subroutine tbd_create (Tbd, IM, Model) Tbd%prevsq = clear_val end if - if (Model%imfdeepcnv == 3) then + if (Model%imfdeepcnv == Model%imfdeepcnv_gf) then allocate(Tbd%cactiv(IM)) Tbd%cactiv = zero end if diff --git a/gfsphysics/GFS_layer/GFS_typedefs.meta b/gfsphysics/GFS_layer/GFS_typedefs.meta index 79ab00129..aaed9e9ef 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.meta +++ b/gfsphysics/GFS_layer/GFS_typedefs.meta @@ -2777,18 +2777,90 @@ units = flag dimensions = () type = integer +[imfshalcnv_sas] + standard_name = flag_for_sas_shallow_convection_scheme + long_name = flag for SAS shallow convection scheme + units = flag + dimensions = () + type = integer +[imfshalcnv_samf] + standard_name = flag_for_samf_shallow_convection_scheme + long_name = flag for SAMF shallow convection scheme + units = flag + dimensions = () + type = integer +[imfshalcnv_gf] + standard_name = flag_for_gf_shallow_convection_scheme + long_name = flag for Grell-Freitas shallow convection scheme + units = flag + dimensions = () + type = integer +[imfshalcnv_gf] + standard_name = flag_for_ntiedtke_shallow_convection_scheme + long_name = flag for new Tiedtke shallow convection scheme + units = flag + dimensions = () + type = integer [imfdeepcnv] standard_name = flag_for_mass_flux_deep_convection_scheme long_name = flag for mass-flux deep convection scheme units = flag dimensions = () type = integer +[imfdeepcnv_sas] + standard_name = flag_for_sas_deep_convection_scheme + long_name = flag for SAS deep convection scheme + units = flag + dimensions = () + type = integer +[imfdeepcnv_samf] + standard_name = flag_for_samf_deep_convection_scheme + long_name = flag for SAMF deep convection scheme + units = flag + dimensions = () + type = integer +[imfdeepcnv_gf] + standard_name = flag_for_gf_deep_convection_scheme + long_name = flag for Grell-Freitas deep convection scheme + units = flag + dimensions = () + type = integer +[imfdeepcnv_ntiedtke] + standard_name = flag_for_ntiedtke_deep_convection_scheme + long_name = flag for new Tiedtke deep convection scheme + units = flag + dimensions = () + type = integer +[isatmedmf] + standard_name = choice_of_scale_aware_TKE_moist_EDMF_PBL + long_name = choice of scale-aware TKE moist EDMF PBL scheme + units = none + dimensions = () + type = integer +[isatmedmf_vdif] + standard_name = choice_of_original_scale_aware_TKE_moist_EDMF_PBL + long_name = choice of original scale-aware TKE moist EDMF PBL scheme + units = none + dimensions = () + type = integer +[isatmedmf_vdifq] + standard_name = choice_of_updated_scale_aware_TKE_moist_EDMF_PBL + long_name = choice of updated scale-aware TKE moist EDMF PBL scheme + units = none + dimensions = () + type = integer [nmtvr] standard_name = number_of_statistical_measures_of_subgrid_orography long_name = number of topographic variables in GWD units = count dimensions = () type = integer +[jcap] + standard_name = number_of_spectral_wave_trancation_for_sas + long_name = number of spectral wave trancation used only by sascnv and shalcnv + units = count + dimensions = () + type = integer [cs_parm(1)] standard_name = updraft_velocity_tunable_parameter_1_CS long_name = tunable parameter 1 for Chikira-Sugiyama convection @@ -2896,91 +2968,91 @@ kind = kind_phys [c0s_deep] standard_name = rain_conversion_parameter_deep_convection - long_name = convective rain conversion parameter for deep conv. + long_name = convective rain conversion parameter for deep convection units = m-1 dimensions = () type = real kind = kind_phys [c1_deep] standard_name = detrainment_conversion_parameter_deep_convection - long_name = convective detrainment conversion parameter for deep conv. + long_name = convective detrainment conversion parameter for deep convection units = m-1 dimensions = () type = real kind = kind_phys [betal_deep] standard_name = downdraft_fraction_reaching_surface_over_land_deep_convection - long_name = downdraft fraction reaching surface over land for deep conv. + long_name = downdraft fraction reaching surface over land for deep convection units = frac dimensions = () type = real kind = kind_phys [betas_deep] standard_name = downdraft_fraction_reaching_surface_over_ocean_deep_convection - long_name = downdraft fraction reaching surface over ocean for deep conv. + long_name = downdraft fraction reaching surface over ocean for deep convection units = frac dimensions = () type = real kind = kind_phys [evfact_deep] standard_name = rain_evaporation_coefficient_deep_convection - long_name = convective rain evaporation coefficient for deep conv. + long_name = convective rain evaporation coefficient for deep convection units = frac dimensions = () type = real kind = kind_phys [evfactl_deep] standard_name = rain_evaporation_coefficient_over_land_deep_convection - long_name = convective rain evaporation coefficient over land for deep conv. + long_name = convective rain evaporation coefficient over land for deep convection units = frac dimensions = () type = real kind = kind_phys [pgcon_deep] standard_name = momentum_transport_reduction_factor_pgf_deep_convection - long_name = reduction factor in momentum transport due to deep conv. induced pressure gradient force + long_name = reduction factor in momentum transport due to deep convection induced pressure gradient force units = frac dimensions = () type = real kind = kind_phys [asolfac_deep] standard_name = aerosol_aware_parameter_deep_convection - long_name = aerosol-aware parameter inversely proportional to CCN number concentraion from Lim (2011) for deep conv. + long_name = aerosol-aware parameter inversely proportional to CCN number concentraion from Lim (2011) for deep convection units = none dimensions = () type = real kind = kind_phys [clam_shal] standard_name = entrainment_rate_coefficient_shallow_convection - long_name = entrainment rate coefficient for shal conv. + long_name = entrainment rate coefficient for shallow convection units = none dimensions = () type = real kind = kind_phys [c0s_shal] standard_name = rain_conversion_parameter_shallow_convection - long_name = convective rain conversion parameter for shal conv. + long_name = convective rain conversion parameter for shallow convection units = m-1 dimensions = () type = real kind = kind_phys [c1_shal] standard_name = detrainment_conversion_parameter_shallow_convection - long_name = convective detrainment conversion parameter for shal conv. + long_name = convective detrainment conversion parameter for shallow convection units = m-1 dimensions = () type = real kind = kind_phys [pgcon_shal] standard_name = momentum_transport_reduction_factor_pgf_shallow_convection - long_name = reduction factor in momentum transport due to shal conv. induced pressure gradient force + long_name = reduction factor in momentum transport due to shallow convection induced pressure gradient force units = frac dimensions = () type = real kind = kind_phys [asolfac_shal] standard_name = aerosol_aware_parameter_shallow_convection - long_name = aerosol-aware parameter inversely proportional to CCN number concentraion from Lim (2011) for shal conv. + long_name = aerosol-aware parameter inversely proportional to CCN number concentraion from Lim (2011) for shallow convection units = none dimensions = () type = real @@ -5294,14 +5366,14 @@ kind = kind_phys [dt3dt(:,:,4)] standard_name = cumulative_change_in_temperature_due_to_deep_convection - long_name = cumulative change in temperature due to deep conv. + long_name = cumulative change in temperature due to deep convection units = K dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys [dt3dt(:,:,5)] standard_name = cumulative_change_in_temperature_due_to_shal_convection - long_name = cumulative change in temperature due to shal conv. + long_name = cumulative change in temperature due to shallow convection units = K dimensions = (horizontal_dimension,vertical_dimension) type = real @@ -5329,14 +5401,14 @@ kind = kind_phys [dq3dt(:,:,2)] standard_name = cumulative_change_in_water_vapor_specific_humidity_due_to_deep_convection - long_name = cumulative change in water vapor specific humidity due to deep conv. + long_name = cumulative change in water vapor specific humidity due to deep convection units = kg kg-1 dimensions = (horizontal_dimension,vertical_dimension) type = real kind = kind_phys [dq3dt(:,:,3)] standard_name = cumulative_change_in_water_vapor_specific_humidity_due_to_shal_convection - long_name = cumulative change in water vapor specific humidity due to shal conv. + long_name = cumulative change in water vapor specific humidity due to shallow convection units = kg kg-1 dimensions = (horizontal_dimension,vertical_dimension) type = real @@ -7103,7 +7175,7 @@ kind = kind_phys [ncstrac] standard_name = number_of_tracers_for_CS - long_name = number of convectively transported tracers in Chikira-Sugiyama deep conv. scheme + long_name = number of convectively transported tracers in Chikira-Sugiyama deep convection scheme units = count dimensions = () type = integer From b9a3887e04990500fcb9090b43c8affe20b0a25e Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 19 Nov 2019 14:44:11 -0700 Subject: [PATCH 07/12] ccpp/build_ccpp.sh: correct ESMF_DEP_INCPATH settings to avoid warnings about non-existent include directories with GNU --- ccpp/build_ccpp.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/build_ccpp.sh b/ccpp/build_ccpp.sh index a0e40203b..f6bec6ff9 100755 --- a/ccpp/build_ccpp.sh +++ b/ccpp/build_ccpp.sh @@ -219,7 +219,7 @@ else CCPP_LINK_OBJS="-L${PATH_CCPP_LIB} -lccpp ${CCPP_XML2_LIB}" fi fi -echo "ESMF_DEP_INCPATH=-I${PATH_CCPP_INC}" > ${CCPP_MK} +echo "ESMF_DEP_INCPATH=${PATH_CCPP_INC}" > ${CCPP_MK} echo "ESMF_DEP_LINK_OBJS=${CCPP_LINK_OBJS}" >> ${CCPP_MK} if [ $clean_after = YES ]; then From a4a04183d335769ed1e9fa613c65ea1bf8440bb1 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 19 Nov 2019 14:45:06 -0700 Subject: [PATCH 08/12] gfsphysics/GFS_layer/GFS_typedefs.F90: bugfix, use correct Model%imfdeepcnv_samf instead of Model%imfdeepcnv_sas --- gfsphysics/GFS_layer/GFS_typedefs.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gfsphysics/GFS_layer/GFS_typedefs.F90 b/gfsphysics/GFS_layer/GFS_typedefs.F90 index 4e73d62f6..1eae89dab 100644 --- a/gfsphysics/GFS_layer/GFS_typedefs.F90 +++ b/gfsphysics/GFS_layer/GFS_typedefs.F90 @@ -4216,7 +4216,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%lmfshal = (Model%shal_cnv .and. Model%imfshalcnv > 0) #ifdef CCPP - Model%lmfdeep2 = (Model%imfdeepcnv == Model%imfdeepcnv_sas & + Model%lmfdeep2 = (Model%imfdeepcnv == Model%imfdeepcnv_samf & .or. Model%imfdeepcnv == Model%imfdeepcnv_gf & .or. Model%imfdeepcnv == Model%imfdeepcnv_ntiedtke) #else From ae916b3e5fb8ac50940d7b9e11caacfd8f6e31ca Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 19 Nov 2019 14:46:05 -0700 Subject: [PATCH 09/12] makefile: remove include directory and library entries for old FV3/fms directory to avoid warnings about non-existent include directories with GNU --- makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/makefile b/makefile index ff09a48f8..f0f84c4b4 100644 --- a/makefile +++ b/makefile @@ -47,7 +47,7 @@ libs: $(MAKE) -C atmos_cubed_sphere $(MAKE_OPTS) FMS_DIR=$(FMS_DIR) $(MAKE) -C ../stochastic_physics $(MAKE_OPTS) FMS_DIR=$(FMS_DIR) 32BIT=N # force gfs physics to 64bit -$(FV3_EXE): atmos_model.o coupler_main.o ccpp/driver/libccppdriver.a atmos_cubed_sphere/libfv3core.a io/libfv3io.a ipd/libipd.a $(PHYSP)physics/lib$(PHYSP)phys.a ../stochastic_physics/libstochastic_physics.a cpl/libfv3cpl.a fms/libfms.a +$(FV3_EXE): atmos_model.o coupler_main.o ccpp/driver/libccppdriver.a atmos_cubed_sphere/libfv3core.a io/libfv3io.a ipd/libipd.a $(PHYSP)physics/lib$(PHYSP)phys.a ../stochastic_physics/libstochastic_physics.a cpl/libfv3cpl.a $(LD) -o $@ $^ $(NCEPLIBS) $(LDFLAGS) else @@ -59,7 +59,7 @@ libs: $(MAKE) -C atmos_cubed_sphere $(MAKE_OPTS) FMS_DIR=$(FMS_DIR) $(MAKE) -C ../stochastic_physics $(MAKE_OPTS) FMS_DIR=$(FMS_DIR) 32BIT=N # force gfs physics to 64bit -$(FV3_EXE): atmos_model.o coupler_main.o atmos_cubed_sphere/libfv3core.a io/libfv3io.a ipd/libipd.a $(PHYSP)physics/lib$(PHYSP)phys.a ../stochastic_physics/libstochastic_physics.a cpl/libfv3cpl.a fms/libfms.a +$(FV3_EXE): atmos_model.o coupler_main.o atmos_cubed_sphere/libfv3core.a io/libfv3io.a ipd/libipd.a $(PHYSP)physics/lib$(PHYSP)phys.a ../stochastic_physics/libstochastic_physics.a cpl/libfv3cpl.a $(LD) -o $@ $^ $(NCEPLIBS) $(LDFLAGS) endif @@ -100,7 +100,7 @@ esmf_make_fragment: @echo "ESMF_DEP_FRONT = fv3gfs_cap_mod" >> fv3.mk # additional include files needed for PGI #@echo "ESMF_DEP_INCPATH = $(PWD)/nems_dir" >> fv3.mk - @echo "ESMF_DEP_INCPATH = $(PWD) $(addprefix $(PWD)/, nems_dir ccpp/driver atmos_cubed_sphere io fms gfsphysics cpl ipd ../stochastic_physics)" >> fv3.mk + @echo "ESMF_DEP_INCPATH = $(PWD) $(addprefix $(PWD)/, nems_dir ccpp/driver atmos_cubed_sphere io gfsphysics cpl ipd ../stochastic_physics)" >> fv3.mk @echo "ESMF_DEP_CMPL_OBJS =" >> fv3.mk @echo "ESMF_DEP_LINK_OBJS = $(addprefix $(PWD)/nems_dir/, libfv3cap.a libccppdriver.a libfv3core.a libfv3io.a libipd.a lib$(PHYSP)phys.a libfv3cpl.a libstochastic_physics.a) $(SIONLIB_LINK_FLAGS)" >> fv3.mk @echo "ESMF_DEP_SHRD_PATH =" >> fv3.mk @@ -119,7 +119,7 @@ esmf_make_fragment: @echo "ESMF_DEP_FRONT = fv3gfs_cap_mod" >> fv3.mk # additional include files needed for PGI #@echo "ESMF_DEP_INCPATH = $(PWD)/nems_dir" >> fv3.mk - @echo "ESMF_DEP_INCPATH = $(PWD) $(addprefix $(PWD)/, nems_dir atmos_cubed_sphere io fms gfsphysics cpl ipd ../stochastic_physics)" >> fv3.mk + @echo "ESMF_DEP_INCPATH = $(PWD) $(addprefix $(PWD)/, nems_dir atmos_cubed_sphere io gfsphysics cpl ipd ../stochastic_physics)" >> fv3.mk @echo "ESMF_DEP_CMPL_OBJS =" >> fv3.mk @echo "ESMF_DEP_LINK_OBJS = $(addprefix $(PWD)/nems_dir/, libfv3cap.a libfv3core.a libfv3io.a libipd.a lib$(PHYSP)phys.a libfv3cpl.a libstochastic_physics.a)" >> fv3.mk @echo "ESMF_DEP_SHRD_PATH =" >> fv3.mk From a333ffcd48533cfe97ae2b64b23d7e69d633700e Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 19 Nov 2019 14:47:48 -0700 Subject: [PATCH 10/12] Update submodule pointers for ccpp-framework and ccpp-physics --- ccpp/framework | 2 +- ccpp/physics | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ccpp/framework b/ccpp/framework index 60db8066c..5073d989b 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit 60db8066c435601250987fc51a3a57b658f47e5e +Subproject commit 5073d989b28c8071258a26c3dcfbfb31e3d21d40 diff --git a/ccpp/physics b/ccpp/physics index 2d5a8e852..bd473788f 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 2d5a8e852743c6823e2613291555f63bcffd14dc +Subproject commit bd473788ffe2ac5e3cc9d552d2701d51d480117d From 8c7f2313aafeee8ca9e48a32d05d604d3579d9f4 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 20 Nov 2019 09:41:50 -0700 Subject: [PATCH 11/12] Update submodule pointer for ccpp/physics --- ccpp/physics | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ccpp/physics b/ccpp/physics index bd473788f..cbbac6772 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit bd473788ffe2ac5e3cc9d552d2701d51d480117d +Subproject commit cbbac67726041aca4bca942fa52036d82f06be00 From 1d1b1f86d877b2ae7408e98972d00310ed2c670c Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 20 Nov 2019 11:49:24 -0700 Subject: [PATCH 12/12] Update submodule pointers for ccpp/framework and ccpp/physics --- ccpp/framework | 2 +- ccpp/physics | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ccpp/framework b/ccpp/framework index 5073d989b..6da780825 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit 5073d989b28c8071258a26c3dcfbfb31e3d21d40 +Subproject commit 6da78082547b573d714a359368353dd065f59393 diff --git a/ccpp/physics b/ccpp/physics index cbbac6772..a7c38a694 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit cbbac67726041aca4bca942fa52036d82f06be00 +Subproject commit a7c38a694c788892c11cf638af7fab42599964dd