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)