diff --git a/ccpp/config/ccpp_prebuild_config.py b/ccpp/config/ccpp_prebuild_config.py index 613c66fa4..1e5bca1c1 100755 --- a/ccpp/config/ccpp_prebuild_config.py +++ b/ccpp/config/ccpp_prebuild_config.py @@ -20,8 +20,8 @@ 'ccpp/physics/physics/radsw_param.f', 'ccpp/physics/physics/radlw_param.f', 'ccpp/physics/physics/h2o_def.f', - 'ccpp/physics/physics/ozne_def.f', 'ccpp/physics/physics/radiation_surface.f', + 'ccpp/physics/physics/module_ozphys.F90', 'ccpp/physics/physics/module_ccpp_suite_simulator.F90', 'scm/src/CCPP_typedefs.F90', 'scm/src/GFS_typedefs.F90', @@ -39,12 +39,16 @@ 'machine' : { 'machine' : '', }, - 'module_radlw_parameters' : { + 'module_radsw_parameters' : { 'module_radsw_parameters' : '', }, 'module_radlw_parameters' : { 'module_radlw_parameters' : '', }, + 'module_ozphys' : { + 'module_ozphys' : '', + 'ty_ozphys' : '', + }, 'CCPP_typedefs' : { 'GFS_interstitial_type' : 'physics%Interstitial', 'CCPP_typedefs' : '', @@ -113,6 +117,7 @@ 'ccpp/physics/physics/GFS_surface_loop_control_part1.F90' , 'ccpp/physics/physics/GFS_surface_loop_control_part2.F90' , 'ccpp/physics/physics/GFS_time_vary_pre.scm.F90' , + 'ccpp/physics/physics/GFS_physics_post.F90', # 'ccpp/physics/physics/bl_acm.F90' , 'ccpp/physics/physics/cires_ugwp.F90' , 'ccpp/physics/physics/cires_ugwp_post.F90' , @@ -171,10 +176,7 @@ 'ccpp/physics/physics/mp_thompson.F90' , 'ccpp/physics/physics/mp_thompson_post.F90' , 'ccpp/physics/physics/mp_nssl.F90' , - 'ccpp/physics/physics/ozphys.f' , - 'ccpp/physics/physics/ozphys_2015.f' , 'ccpp/physics/physics/zhaocarr_precpd.f' , - 'ccpp/physics/physics/phys_tend.F90' , 'ccpp/physics/physics/radlw_main.F90' , 'ccpp/physics/physics/radsw_main.F90' , 'ccpp/physics/physics/rascnv.F90' , diff --git a/ccpp/framework b/ccpp/framework index 60295ad35..219f2e9c8 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit 60295ad3578ca01b5ca4214b91dd13bb790fbdfe +Subproject commit 219f2e9c88b7b774becac2bd1453696e105af1c4 diff --git a/ccpp/physics b/ccpp/physics index c7a9e0d1c..867eff449 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit c7a9e0d1cae991aa9f38b72687ff3cac8cb9a3d6 +Subproject commit 867eff449feaf33d1face1c649aea8fe24c88686 diff --git a/ccpp/suites/suite_HAFS_v0_hwrf.xml b/ccpp/suites/suite_HAFS_v0_hwrf.xml index 5a33ba2c5..e62722aee 100644 --- a/ccpp/suites/suite_HAFS_v0_hwrf.xml +++ b/ccpp/suites/suite_HAFS_v0_hwrf.xml @@ -61,7 +61,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys GFS_DCNV_generic_pre get_phi_fv3 @@ -77,7 +76,7 @@ mp_fer_hires GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_HAFS_v0_hwrf_ps.xml b/ccpp/suites/suite_HAFS_v0_hwrf_ps.xml index cee95be2c..28f861548 100644 --- a/ccpp/suites/suite_HAFS_v0_hwrf_ps.xml +++ b/ccpp/suites/suite_HAFS_v0_hwrf_ps.xml @@ -42,7 +42,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys GFS_DCNV_generic_pre get_phi_fv3 @@ -58,7 +57,7 @@ mp_fer_hires GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_HAFS_v0_hwrf_thompson.xml b/ccpp/suites/suite_HAFS_v0_hwrf_thompson.xml index c443da650..6aaa99bd4 100644 --- a/ccpp/suites/suite_HAFS_v0_hwrf_thompson.xml +++ b/ccpp/suites/suite_HAFS_v0_hwrf_thompson.xml @@ -63,7 +63,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys GFS_DCNV_generic_pre get_phi_fv3 @@ -81,7 +80,7 @@ mp_thompson_post GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_HAFS_v0_hwrf_thompson_ps.xml b/ccpp/suites/suite_HAFS_v0_hwrf_thompson_ps.xml index 737c3c7eb..1ac188a4a 100644 --- a/ccpp/suites/suite_HAFS_v0_hwrf_thompson_ps.xml +++ b/ccpp/suites/suite_HAFS_v0_hwrf_thompson_ps.xml @@ -44,7 +44,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys GFS_DCNV_generic_pre get_phi_fv3 @@ -62,7 +61,7 @@ mp_thompson_post GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_GFS_v15p2.xml b/ccpp/suites/suite_SCM_GFS_v15p2.xml index 406493118..277909b6a 100644 --- a/ccpp/suites/suite_SCM_GFS_v15p2.xml +++ b/ccpp/suites/suite_SCM_GFS_v15p2.xml @@ -60,7 +60,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -76,7 +75,7 @@ gfdl_cloud_microphys GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_ACM_ps.xml b/ccpp/suites/suite_SCM_GFS_v15p2_ACM_ps.xml index 856add632..2ad92db2b 100644 --- a/ccpp/suites/suite_SCM_GFS_v15p2_ACM_ps.xml +++ b/ccpp/suites/suite_SCM_GFS_v15p2_ACM_ps.xml @@ -41,7 +41,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -57,7 +56,7 @@ gfdl_cloud_microphys GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_FA.xml b/ccpp/suites/suite_SCM_GFS_v15p2_FA.xml index 2fa77cdd4..679cdd0b2 100644 --- a/ccpp/suites/suite_SCM_GFS_v15p2_FA.xml +++ b/ccpp/suites/suite_SCM_GFS_v15p2_FA.xml @@ -60,7 +60,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -76,7 +75,7 @@ mp_fer_hires GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_MYJ.xml b/ccpp/suites/suite_SCM_GFS_v15p2_MYJ.xml index 63e3f7657..4331a1012 100644 --- a/ccpp/suites/suite_SCM_GFS_v15p2_MYJ.xml +++ b/ccpp/suites/suite_SCM_GFS_v15p2_MYJ.xml @@ -60,7 +60,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -76,7 +75,7 @@ gfdl_cloud_microphys GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP.xml b/ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP.xml index 7d4df8159..501705f91 100644 --- a/ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP.xml +++ b/ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP.xml @@ -60,7 +60,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -76,7 +75,7 @@ gfdl_cloud_microphys GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP_ps.xml b/ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP_ps.xml index 0c5c4cc6d..ef731e0b5 100644 --- a/ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP_ps.xml +++ b/ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP_ps.xml @@ -41,7 +41,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -57,7 +56,7 @@ gfdl_cloud_microphys GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_YSU_ps.xml b/ccpp/suites/suite_SCM_GFS_v15p2_YSU_ps.xml index 3bef8ba41..d648c7c7f 100644 --- a/ccpp/suites/suite_SCM_GFS_v15p2_YSU_ps.xml +++ b/ccpp/suites/suite_SCM_GFS_v15p2_YSU_ps.xml @@ -41,7 +41,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -57,7 +56,7 @@ gfdl_cloud_microphys GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_no_nsst.xml b/ccpp/suites/suite_SCM_GFS_v15p2_no_nsst.xml index 48a55a83c..bc946b04a 100644 --- a/ccpp/suites/suite_SCM_GFS_v15p2_no_nsst.xml +++ b/ccpp/suites/suite_SCM_GFS_v15p2_no_nsst.xml @@ -58,7 +58,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -74,7 +73,7 @@ gfdl_cloud_microphys GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_no_nsst_ps.xml b/ccpp/suites/suite_SCM_GFS_v15p2_no_nsst_ps.xml index c9ba6bd17..f94e6f0c6 100644 --- a/ccpp/suites/suite_SCM_GFS_v15p2_no_nsst_ps.xml +++ b/ccpp/suites/suite_SCM_GFS_v15p2_no_nsst_ps.xml @@ -41,7 +41,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -57,7 +56,7 @@ gfdl_cloud_microphys GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_noahmp.xml b/ccpp/suites/suite_SCM_GFS_v15p2_noahmp.xml index 4ac35d6b5..b4d8ef276 100644 --- a/ccpp/suites/suite_SCM_GFS_v15p2_noahmp.xml +++ b/ccpp/suites/suite_SCM_GFS_v15p2_noahmp.xml @@ -60,7 +60,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -76,7 +75,7 @@ gfdl_cloud_microphys GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_ps.xml b/ccpp/suites/suite_SCM_GFS_v15p2_ps.xml index 6cad2a7db..361c110d0 100644 --- a/ccpp/suites/suite_SCM_GFS_v15p2_ps.xml +++ b/ccpp/suites/suite_SCM_GFS_v15p2_ps.xml @@ -41,7 +41,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -57,7 +56,7 @@ gfdl_cloud_microphys GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_saYSU_ps.xml b/ccpp/suites/suite_SCM_GFS_v15p2_saYSU_ps.xml index d09586c16..12bd53186 100644 --- a/ccpp/suites/suite_SCM_GFS_v15p2_saYSU_ps.xml +++ b/ccpp/suites/suite_SCM_GFS_v15p2_saYSU_ps.xml @@ -41,7 +41,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -57,7 +56,7 @@ gfdl_cloud_microphys GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_GFS_v16.xml b/ccpp/suites/suite_SCM_GFS_v16.xml index fc3c896ea..1d52353db 100644 --- a/ccpp/suites/suite_SCM_GFS_v16.xml +++ b/ccpp/suites/suite_SCM_GFS_v16.xml @@ -60,7 +60,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -76,7 +75,7 @@ gfdl_cloud_microphys GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_GFS_v16_RRTMGP.xml b/ccpp/suites/suite_SCM_GFS_v16_RRTMGP.xml index db0dfb96f..b427bcf25 100644 --- a/ccpp/suites/suite_SCM_GFS_v16_RRTMGP.xml +++ b/ccpp/suites/suite_SCM_GFS_v16_RRTMGP.xml @@ -60,7 +60,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -76,7 +75,7 @@ gfdl_cloud_microphys GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_GFS_v16_RRTMGP_ps.xml b/ccpp/suites/suite_SCM_GFS_v16_RRTMGP_ps.xml index b50fc0f59..31ea5c712 100644 --- a/ccpp/suites/suite_SCM_GFS_v16_RRTMGP_ps.xml +++ b/ccpp/suites/suite_SCM_GFS_v16_RRTMGP_ps.xml @@ -41,7 +41,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -57,7 +56,7 @@ gfdl_cloud_microphys GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_GFS_v16_no_nsst.xml b/ccpp/suites/suite_SCM_GFS_v16_no_nsst.xml index 07546f59e..28120648b 100644 --- a/ccpp/suites/suite_SCM_GFS_v16_no_nsst.xml +++ b/ccpp/suites/suite_SCM_GFS_v16_no_nsst.xml @@ -58,7 +58,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -74,7 +73,7 @@ gfdl_cloud_microphys GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_GFS_v16_no_nsst_ps.xml b/ccpp/suites/suite_SCM_GFS_v16_no_nsst_ps.xml index 144a02f01..1717e6d7d 100644 --- a/ccpp/suites/suite_SCM_GFS_v16_no_nsst_ps.xml +++ b/ccpp/suites/suite_SCM_GFS_v16_no_nsst_ps.xml @@ -41,7 +41,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -57,7 +56,7 @@ gfdl_cloud_microphys GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_GFS_v16_ps.xml b/ccpp/suites/suite_SCM_GFS_v16_ps.xml index 203524d6c..04bbafe05 100644 --- a/ccpp/suites/suite_SCM_GFS_v16_ps.xml +++ b/ccpp/suites/suite_SCM_GFS_v16_ps.xml @@ -41,7 +41,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -57,7 +56,7 @@ gfdl_cloud_microphys GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_GFS_v16_ugwpv1.xml b/ccpp/suites/suite_SCM_GFS_v16_ugwpv1.xml index 532390184..68eeea646 100644 --- a/ccpp/suites/suite_SCM_GFS_v16_ugwpv1.xml +++ b/ccpp/suites/suite_SCM_GFS_v16_ugwpv1.xml @@ -60,7 +60,6 @@ ugwpv1_gsldrag_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 diff --git a/ccpp/suites/suite_SCM_GFS_v17_p8.xml b/ccpp/suites/suite_SCM_GFS_v17_p8.xml index 9a5997667..465f85d08 100644 --- a/ccpp/suites/suite_SCM_GFS_v17_p8.xml +++ b/ccpp/suites/suite_SCM_GFS_v17_p8.xml @@ -61,7 +61,6 @@ unified_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -83,7 +82,7 @@ mp_thompson_post GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_GFS_v17_p8_c3.xml b/ccpp/suites/suite_SCM_GFS_v17_p8_c3.xml index bcc13709b..eb725516d 100644 --- a/ccpp/suites/suite_SCM_GFS_v17_p8_c3.xml +++ b/ccpp/suites/suite_SCM_GFS_v17_p8_c3.xml @@ -61,7 +61,6 @@ unified_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -84,7 +83,7 @@ GFS_MP_generic_post cu_c3_driver_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_GFS_v17_p8_c3_ps.xml b/ccpp/suites/suite_SCM_GFS_v17_p8_c3_ps.xml index ed51d801f..082879ba6 100644 --- a/ccpp/suites/suite_SCM_GFS_v17_p8_c3_ps.xml +++ b/ccpp/suites/suite_SCM_GFS_v17_p8_c3_ps.xml @@ -42,7 +42,6 @@ unified_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -65,7 +64,7 @@ GFS_MP_generic_post cu_c3_driver_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_GFS_v17_p8_ps.xml b/ccpp/suites/suite_SCM_GFS_v17_p8_ps.xml index a6f74d7e0..ad25b8459 100644 --- a/ccpp/suites/suite_SCM_GFS_v17_p8_ps.xml +++ b/ccpp/suites/suite_SCM_GFS_v17_p8_ps.xml @@ -42,7 +42,6 @@ unified_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -64,7 +63,7 @@ mp_thompson_post GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_GSD_v1.xml b/ccpp/suites/suite_SCM_GSD_v1.xml index 3aae45113..4af11e6d1 100644 --- a/ccpp/suites/suite_SCM_GSD_v1.xml +++ b/ccpp/suites/suite_SCM_GSD_v1.xml @@ -60,7 +60,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -79,7 +78,7 @@ GFS_MP_generic_post cu_gf_driver_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_GSD_v1_ps.xml b/ccpp/suites/suite_SCM_GSD_v1_ps.xml index 6403cb3e1..e1eeb4d53 100644 --- a/ccpp/suites/suite_SCM_GSD_v1_ps.xml +++ b/ccpp/suites/suite_SCM_GSD_v1_ps.xml @@ -42,7 +42,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -61,7 +60,7 @@ GFS_MP_generic_post cu_gf_driver_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_GSD_v1nssl.xml b/ccpp/suites/suite_SCM_GSD_v1nssl.xml index 9cf7139fd..29ac89555 100644 --- a/ccpp/suites/suite_SCM_GSD_v1nssl.xml +++ b/ccpp/suites/suite_SCM_GSD_v1nssl.xml @@ -60,7 +60,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -77,7 +76,7 @@ GFS_MP_generic_post cu_gf_driver_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_GSD_v1nssl_ps.xml b/ccpp/suites/suite_SCM_GSD_v1nssl_ps.xml index 8eb7f8f32..9b716f5ed 100644 --- a/ccpp/suites/suite_SCM_GSD_v1nssl_ps.xml +++ b/ccpp/suites/suite_SCM_GSD_v1nssl_ps.xml @@ -42,7 +42,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -59,7 +58,7 @@ GFS_MP_generic_post cu_gf_driver_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_HRRR.xml b/ccpp/suites/suite_SCM_HRRR.xml index bb0d28ceb..60354973d 100644 --- a/ccpp/suites/suite_SCM_HRRR.xml +++ b/ccpp/suites/suite_SCM_HRRR.xml @@ -60,7 +60,6 @@ drag_suite GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -71,7 +70,7 @@ mp_thompson_post GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_HRRR_ps.xml b/ccpp/suites/suite_SCM_HRRR_ps.xml index 248260a20..1f2ac8297 100644 --- a/ccpp/suites/suite_SCM_HRRR_ps.xml +++ b/ccpp/suites/suite_SCM_HRRR_ps.xml @@ -41,7 +41,6 @@ drag_suite GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -52,7 +51,7 @@ mp_thompson_post GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_RAP.xml b/ccpp/suites/suite_SCM_RAP.xml index 246c82e91..fac8381ff 100644 --- a/ccpp/suites/suite_SCM_RAP.xml +++ b/ccpp/suites/suite_SCM_RAP.xml @@ -59,7 +59,6 @@ drag_suite GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -78,7 +77,7 @@ GFS_MP_generic_post cu_gf_driver_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_RAP_ps.xml b/ccpp/suites/suite_SCM_RAP_ps.xml index 91ad73387..b8a6077e8 100644 --- a/ccpp/suites/suite_SCM_RAP_ps.xml +++ b/ccpp/suites/suite_SCM_RAP_ps.xml @@ -41,7 +41,6 @@ drag_suite GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -60,7 +59,7 @@ GFS_MP_generic_post cu_gf_driver_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_RRFS_v1alpha.xml b/ccpp/suites/suite_SCM_RRFS_v1alpha.xml index 2d7c8d3ee..b86946623 100644 --- a/ccpp/suites/suite_SCM_RRFS_v1alpha.xml +++ b/ccpp/suites/suite_SCM_RRFS_v1alpha.xml @@ -61,7 +61,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -72,7 +71,7 @@ mp_thompson_post GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_RRFS_v1alpha_ps.xml b/ccpp/suites/suite_SCM_RRFS_v1alpha_ps.xml index 14d1c775b..9aaa11435 100644 --- a/ccpp/suites/suite_SCM_RRFS_v1alpha_ps.xml +++ b/ccpp/suites/suite_SCM_RRFS_v1alpha_ps.xml @@ -42,7 +42,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -53,7 +52,7 @@ mp_thompson_post GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_RRFS_v1beta.xml b/ccpp/suites/suite_SCM_RRFS_v1beta.xml index 8999ba80f..062751ad9 100644 --- a/ccpp/suites/suite_SCM_RRFS_v1beta.xml +++ b/ccpp/suites/suite_SCM_RRFS_v1beta.xml @@ -61,7 +61,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -72,7 +71,7 @@ mp_thompson_post GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_RRFS_v1beta_ps.xml b/ccpp/suites/suite_SCM_RRFS_v1beta_ps.xml index 73a8522a0..568ae1bcb 100644 --- a/ccpp/suites/suite_SCM_RRFS_v1beta_ps.xml +++ b/ccpp/suites/suite_SCM_RRFS_v1beta_ps.xml @@ -42,7 +42,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -53,7 +52,7 @@ mp_thompson_post GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_RRFS_v1nssl.xml b/ccpp/suites/suite_SCM_RRFS_v1nssl.xml index 9e25409c1..1999949ce 100644 --- a/ccpp/suites/suite_SCM_RRFS_v1nssl.xml +++ b/ccpp/suites/suite_SCM_RRFS_v1nssl.xml @@ -61,7 +61,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 @@ -70,7 +69,7 @@ mp_nssl GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_WoFS_v0.xml b/ccpp/suites/suite_SCM_WoFS_v0.xml index 810b51baf..d289c5fc0 100644 --- a/ccpp/suites/suite_SCM_WoFS_v0.xml +++ b/ccpp/suites/suite_SCM_WoFS_v0.xml @@ -61,14 +61,13 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_MP_generic_pre mp_nssl GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_WoFS_v0_ps.xml b/ccpp/suites/suite_SCM_WoFS_v0_ps.xml index 11b5f53c2..3382326e1 100644 --- a/ccpp/suites/suite_SCM_WoFS_v0_ps.xml +++ b/ccpp/suites/suite_SCM_WoFS_v0_ps.xml @@ -42,14 +42,13 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_MP_generic_pre mp_nssl GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_csawmg.xml b/ccpp/suites/suite_SCM_csawmg.xml index 402be1481..d467f2134 100644 --- a/ccpp/suites/suite_SCM_csawmg.xml +++ b/ccpp/suites/suite_SCM_csawmg.xml @@ -61,7 +61,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -82,7 +81,7 @@ cs_conv_aw_adj GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/ccpp/suites/suite_SCM_csawmg_ps.xml b/ccpp/suites/suite_SCM_csawmg_ps.xml index 6cb140c45..af42102ce 100644 --- a/ccpp/suites/suite_SCM_csawmg_ps.xml +++ b/ccpp/suites/suite_SCM_csawmg_ps.xml @@ -42,7 +42,6 @@ cires_ugwp_post GFS_GWD_generic_post GFS_suite_stateout_update - ozphys_2015 h2ophys get_phi_fv3 GFS_suite_interstitial_3 @@ -63,7 +62,7 @@ cs_conv_aw_adj GFS_MP_generic_post maximum_hourly_diagnostics - phys_tend + GFS_physics_post diff --git a/scm/src/CCPP_typedefs.F90 b/scm/src/CCPP_typedefs.F90 index 80de0fc9a..597d155ca 100644 --- a/scm/src/CCPP_typedefs.F90 +++ b/scm/src/CCPP_typedefs.F90 @@ -8,7 +8,6 @@ module CCPP_typedefs use machine, only: kind_grid, kind_dyn, kind_phys ! Constants/dimensions needed for interstitial DDTs - use ozne_def, only: oz_coeff use GFS_typedefs, only: clear_val, LTP ! Physics type defininitions needed for interstitial DDTs @@ -812,7 +811,7 @@ subroutine gfs_interstitial_create (Interstitial, IM, Model) Interstitial%nf_albd = NF_ALBD Interstitial%nspc1 = NSPC1 if (Model%oz_phys .or. Model%oz_phys_2015) then - Interstitial%oz_coeffp5 = oz_coeff+5 + Interstitial%oz_coeffp5 = Model%oz_coeff+5 else Interstitial%oz_coeffp5 = 5 endif diff --git a/scm/src/CCPP_typedefs.meta b/scm/src/CCPP_typedefs.meta index 235041d17..6cba7b06a 100644 --- a/scm/src/CCPP_typedefs.meta +++ b/scm/src/CCPP_typedefs.meta @@ -2853,7 +2853,7 @@ name = CCPP_typedefs type = module relative_path = ../../ccpp/physics/physics - dependencies = machine.F,ozne_def.f,radlw_param.f,radsw_param.f + dependencies = machine.F,radlw_param.f,radsw_param.f dependencies = rte-rrtmgp/rrtmgp/mo_gas_optics_rrtmgp.F90,rte-rrtmgp/rte/mo_optical_props.F90 dependencies = rte-rrtmgp/extensions/cloud_optics/mo_cloud_optics.F90 dependencies = rte-rrtmgp/rrtmgp/mo_gas_concentrations.F90,rte-rrtmgp/rte/mo_rte_config.F90 diff --git a/scm/src/GFS_typedefs.F90 b/scm/src/GFS_typedefs.F90 index 9eb05ef1a..1b1373d95 100644 --- a/scm/src/GFS_typedefs.F90 +++ b/scm/src/GFS_typedefs.F90 @@ -4,8 +4,8 @@ module GFS_typedefs use module_radsw_parameters, only: topfsw_type, sfcfsw_type use module_radlw_parameters, only: topflw_type, sfcflw_type - use ozne_def, only: levozp, oz_coeff use h2o_def, only: levh2o, h2o_coeff + use module_ozphys, only: ty_ozphys use module_ccpp_suite_simulator, only: base_physics_process implicit none @@ -1106,8 +1106,6 @@ module GFS_typedefs logical :: shocaftcnv !< flag for SHOC logical :: shoc_cld !< flag for clouds logical :: uni_cld !< flag for clouds in grrad - logical :: oz_phys !< flag for old (2006) ozone physics - logical :: oz_phys_2015 !< flag for new (2015) ozone physics logical :: h2o_phys !< flag for stratosphere h2o logical :: pdfcld !< flag for pdfcld logical :: shcnvcw !< flag for shallow convective cloud @@ -1561,6 +1559,13 @@ module GFS_typedefs !--- lightning threat and diagsnostics logical :: lightning_threat !< report lightning threat indices +!--- NRL Ozone physics + logical :: oz_phys !< Flag for old (2006) ozone physics + logical :: oz_phys_2015 !< Flag for new (2015) ozone physics + type(ty_ozphys) :: ozphys !< DDT with data needed by ozone physics + integer :: levozp !< Number of vertical layers in ozone forcing data + integer :: oz_coeff !< Number of coefficients in ozone forcing data + !--- CCPP suite simulator logical :: do_ccpp_suite_sim ! integer :: nphys_proc ! @@ -1798,7 +1803,7 @@ module GFS_typedefs !--- In/Out (???) (physics only) real (kind=kind_phys), pointer :: swhc (:,:) => null() !< clear sky sw heating rates ( k/s ) real (kind=kind_phys), pointer :: lwhc (:,:) => null() !< clear sky lw heating rates ( k/s ) - real (kind=kind_phys), pointer :: lwhd (:,:,:) => null() !< idea sky lw heating rates ( k/s ) + real (kind=kind_phys), pointer :: lwhd (:,:,:) => null() !< idea sky lw heating rates ( k/s ) !DJS2023 THIS IS NOT USED. IT IS REFERENCED, BUT NEVER SET? contains procedure :: create => radtend_create !< allocate array data @@ -2106,6 +2111,12 @@ module GFS_typedefs real (kind=kind_phys), pointer :: ltg2_max(:) => null() ! real (kind=kind_phys), pointer :: ltg3_max(:) => null() ! + !--- NRL Ozone physics diagnostics + real (kind=kind_phys), pointer :: do3_dt_prd(:,:) => null() + real (kind=kind_phys), pointer :: do3_dt_ozmx(:,:) => null() + real (kind=kind_phys), pointer :: do3_dt_temp(:,:) => null() + real (kind=kind_phys), pointer :: do3_dt_ohoz(:,:) => null() + contains procedure :: create => diag_create procedure :: rad_zero => diag_rad_zero @@ -3540,8 +3551,6 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & logical :: do_shoc = .false. !< flag for SHOC logical :: shocaftcnv = .false. !< flag for SHOC logical :: shoc_cld = .false. !< flag for SHOC in grrad - logical :: oz_phys = .true. !< flag for old (2006) ozone physics - logical :: oz_phys_2015 = .false. !< flag for new (2015) ozone physics logical :: h2o_phys = .false. !< flag for stratosphere h2o logical :: pdfcld = .false. !< flag for pdfcld logical :: shcnvcw = .false. !< flag for shallow convective cloud @@ -3825,6 +3834,12 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & !-- Lightning threat index logical :: lightning_threat = .false. +!--- NRL Ozone physics + logical :: oz_phys = .false. !< Flag for old (2006) ozone physics + logical :: oz_phys_2015 = .true. !< Flag for new (2015) ozone physics + integer :: kozpl = 28 !< File identifier for ozone forcing data + integer :: kozc = 48 !< File identifier for ozone climotology data + !--- CCPP suite simulator logical :: do_ccpp_suite_sim = .false. integer :: nphys_proc = 0 @@ -4014,6 +4029,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & character(len=20) :: namestr character(len=44) :: descstr +!--- NRL ozone physics + character(len=128) :: err_message + !--- CCPP suite simulator integer :: ncid, dimID, varID, status, ntime_sim_data, nlev_sim_data, errflg character(len=256) :: errmsg @@ -5446,29 +5464,23 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & ENDIF !} - ! To ensure that these values match what's in the physics, - ! array sizes are compared during model init in GFS_phys_time_vary_init() - ! - ! from module ozinterp - if (Model%ntoz>0) then - if (Model%oz_phys) then - levozp = 80 - oz_coeff = 4 - else if (Model%oz_phys_2015) then - levozp = 53 - oz_coeff = 6 - else - write(*,*) 'Logic error, ntoz>0 but no ozone physics selected' - stop - end if + !--- NRL ozone physics + if (Model%ntoz > 0) then + ! Load data for ozone physics into DDT ozphys + err_message = Model%ozphys%load_o3prog('global_o3prdlos.f77',kozpl) + Model%levozp = Model%ozphys%nlev + Model%oz_coeff = Model%ozphys%ncf + + if (Model%me == Model%master) then + write(*,*) 'Reading in o3data from global_o3prdlos.f77 ' + write(*,*) ' oz_coeff = ', Model%ozphys%ncf + write(*,*) ' latsozp = ', Model%ozphys%nlat + write(*,*) ' levozp = ', Model%ozphys%nlev + write(*,*) ' timeoz = ', Model%ozphys%ntime + endif else - if (Model%oz_phys .or. Model%oz_phys_2015) then - write(*,*) 'Logic error, ozone physics are selected, but ntoz<=0' - stop - else - levozp = 1 - oz_coeff = 1 - end if + !--- Climatological ozone + err_message = Model%ozphys%load_o3clim('global_o3prdlos.f77',kozc) end if !--- quantities to be used to derive phy_f*d totals @@ -6997,10 +7009,11 @@ subroutine tbd_create (Tbd, IM, Model) endif !--- ozone and stratosphere h2o needs - allocate (Tbd%ozpl (IM,levozp,oz_coeff)) + allocate (Tbd%ozpl (IM,Model%levozp,Model%oz_coeff)) allocate (Tbd%h2opl (IM,levh2o,h2o_coeff)) - Tbd%ozpl = clear_val Tbd%h2opl = clear_val + Tbd%ozpl = clear_val + !--- ccn and in needs ! DH* allocate only for MG? *DH @@ -7614,6 +7627,12 @@ subroutine diag_create (Diag, IM, Model) allocate (Diag%dwn_mf (IM,Model%levs)) allocate (Diag%det_mf (IM,Model%levs)) endif + if (Model%oz_phys_2015) then + allocate(Diag%do3_dt_prd( IM, Model%levs)) + allocate(Diag%do3_dt_ozmx(IM, Model%levs)) + allocate(Diag%do3_dt_temp(IM, Model%levs)) + allocate(Diag%do3_dt_ohoz(IM, Model%levs)) + endif endif ! UGWP @@ -7952,6 +7971,12 @@ subroutine diag_phys_zero (Diag, Model, linit, iauwindow_center) Diag%dwn_mf = zero Diag%det_mf = zero endif + if (Model%oz_phys_2015) then + Diag%do3_dt_prd = zero + Diag%do3_dt_ozmx = zero + Diag%do3_dt_temp = zero + Diag%do3_dt_ohoz = zero + endif endif ! diff --git a/scm/src/GFS_typedefs.meta b/scm/src/GFS_typedefs.meta index 86a2dfe9e..ae3a500ac 100644 --- a/scm/src/GFS_typedefs.meta +++ b/scm/src/GFS_typedefs.meta @@ -5067,6 +5067,12 @@ units = flag dimensions = () type = logical +[ozphys] + standard_name = dataset_for_ozone_physics + long_name = dataset for NRL ozone physics + units = mixed + dimensions = () + type = ty_ozphys [h2o_phys] standard_name = flag_for_stratospheric_water_vapor_physics long_name = flag for stratospheric water vapor physics @@ -6665,6 +6671,18 @@ units = flag dimensions = () type = logical +[levozp] + standard_name = vertical_dimension_of_ozone_forcing_data + long_name = number of vertical layers in ozone forcing data + units = count + dimensions = () + type = integer +[oz_coeff] + standard_name = number_of_coefficients_in_ozone_data + long_name = number of coefficients in ozone forcing data + units = count + dimensions = () + type = integer [do_ccpp_suite_sim] standard_name = flag_for_CCPP_suite_simulator long_name = flag for ccpp suite simulator @@ -7503,7 +7521,7 @@ standard_name = ozone_forcing long_name = ozone forcing data units = mixed - dimensions = (horizontal_loop_extent,vertical_dimension_of_ozone_forcing_data,number_of_coefficients_in_ozone_forcing_data) + dimensions = (horizontal_loop_extent,vertical_dimension_of_ozone_forcing_data,number_of_coefficients_in_ozone_data) type = real kind = kind_phys [h2opl] @@ -8949,6 +8967,38 @@ type = real kind = kind_phys active = (flag_for_tracer_diagnostics_3D) +[do3_dt_prd] + standard_name = ozone_tendency_due_to_production_and_loss_rate + long_name = ozone tendency due to production and loss rate + units = kg kg-1 s-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + active = (flag_for_tracer_diagnostics_3D .and. flag_for_nrl_2015_ozone_scheme) +[do3_dt_ozmx] + standard_name = ozone_tendency_due_to_ozone_mixing_ratio + long_name = ozone tendency due to ozone mixing ratio + units = kg kg-1 s-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + active = (flag_for_tracer_diagnostics_3D .and. flag_for_nrl_2015_ozone_scheme) +[do3_dt_temp] + standard_name = ozone_tendency_due_to_temperature + long_name = ozone tendency due to temperature + units = kg kg-1 s-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + active = (flag_for_tracer_diagnostics_3D .and. flag_for_nrl_2015_ozone_scheme) +[do3_dt_ohoz] + standard_name = ozone_tendency_due_to_overhead_ozone_column + long_name = ozone tendency due to overhead ozone column + units = kg kg-1 s-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + active = (flag_for_tracer_diagnostics_3D .and. flag_for_nrl_2015_ozone_scheme) [refl_10cm] standard_name = radar_reflectivity_10cm long_name = instantaneous refl_10cm @@ -9645,7 +9695,7 @@ type = module relative_path = ../../ccpp/physics/physics dependencies = machine.F,physcons.F90,radlw_param.f,radsw_param.f - dependencies = GFDL_parse_tracers.F90,h2o_def.f,ozne_def.f,GFS_ccpp_suite_sim_pre.F90 + dependencies = GFDL_parse_tracers.F90,h2o_def.f,module_ozphys.F90,GFS_ccpp_suite_sim_pre.F90 [ccpp-arg-table] name = GFS_typedefs diff --git a/scm/src/scm_physical_constants.F90 b/scm/src/scm_physical_constants.F90 index 93ac7cc91..5e4c6eda7 100644 --- a/scm/src/scm_physical_constants.F90 +++ b/scm/src/scm_physical_constants.F90 @@ -32,9 +32,10 @@ module scm_physical_constants real(kind=dp),parameter:: con_rocp =con_rd/con_cp real(kind=dp),parameter:: con_rog =con_rd/con_g - real(kind=dp),parameter:: con_fvirt =con_rv/con_rd - 1 + real(kind=dp),parameter:: con_fvirt =con_rv/con_rd - 1._dp real(kind=dp),parameter:: con_eps =con_rd/con_rv - real(kind=dp),parameter:: con_epsm1 =con_rd/con_rv-1. + real(kind=dp),parameter:: con_epsm1 =con_rd/con_rv - 1._dp + real(kind=dp),parameter:: con_1ovg =1._dp/con_g real(kind=dp),parameter:: karman = 0.4_dp diff --git a/scm/src/scm_physical_constants.meta b/scm/src/scm_physical_constants.meta index a2642e51b..b54eaf0cd 100644 --- a/scm/src/scm_physical_constants.meta +++ b/scm/src/scm_physical_constants.meta @@ -55,6 +55,13 @@ dimensions = () type = real kind = kind_phys +[con_1ovg] + standard_name = one_divided_by_the_gravitational_acceleration + long_name = inverse of gravitational acceleration + units = s2 m-1 + dimensions = () + type = real + kind = kind_phys [con_rocp] standard_name = ratio_of_gas_constant_dry_air_to_specific_heat_of_dry_air_at_constant_pressure long_name = (rd/cp)