diff --git a/ccpp/config/ccpp_prebuild_config.py b/ccpp/config/ccpp_prebuild_config.py
index d115f34c..c6365038 100755
--- a/ccpp/config/ccpp_prebuild_config.py
+++ b/ccpp/config/ccpp_prebuild_config.py
@@ -19,8 +19,8 @@
'ccpp/physics/physics/hooks/machine.F',
'ccpp/physics/physics/Radiation/RRTMG/radsw_param.f',
'ccpp/physics/physics/Radiation/RRTMG/radlw_param.f',
- 'ccpp/physics/physics/photochem/h2o_def.f',
'ccpp/physics/physics/photochem/module_ozphys.F90',
+ 'ccpp/physics/physics/photochem/module_h2ophys.F90',
'ccpp/physics/physics/Interstitials/UFS_SCM_NEPTUNE/module_ccpp_suite_simulator.F90',
'scm/src/CCPP_typedefs.F90',
'scm/src/GFS_typedefs.F90',
@@ -49,6 +49,10 @@
'module_ozphys' : '',
'ty_ozphys' : '',
},
+ 'module_h2ophys' : {
+ 'module_h2ophys' : '',
+ 'ty_h2ophys' : '',
+ },
'CCPP_typedefs' : {
'GFS_interstitial_type' : 'physics%Interstitial(cdata%thrd_no)',
'CCPP_typedefs' : '',
@@ -96,6 +100,7 @@
'ccpp/physics/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_SCNV_generic_post.F90' ,
'ccpp/physics/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_debug.F90' ,
'ccpp/physics/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_phys_time_vary.scm.F90' ,
+ 'ccpp/physics/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_photochemistry.F90' ,
'ccpp/physics/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rad_time_vary.scm.F90' ,
'ccpp/physics/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_surface.F90' ,
'ccpp/physics/physics/Interstitials/UFS_SCM_NEPTUNE/GFS_rrtmg_post.F90' ,
@@ -164,7 +169,7 @@
'ccpp/physics/physics/GWD/gwdc_post.f',
'ccpp/physics/physics/GWD/gwdps.f',
'ccpp/physics/physics/GWD/rayleigh_damp.f',
- 'ccpp/physics/physics/photochem/h2ophys.f',
+ 'ccpp/physics/physics/photochem/module_h2ophys.F90',
'ccpp/physics/physics/photochem/module_ozphys.F90',
'ccpp/physics/physics/MP/Ferrier_Aligo/mp_fer_hires.F90',
'ccpp/physics/physics/MP/GFDL/gfdl_cloud_microphys.F90',
diff --git a/ccpp/physics b/ccpp/physics
index 128533e5..f458bf44 160000
--- a/ccpp/physics
+++ b/ccpp/physics
@@ -1 +1 @@
-Subproject commit 128533e5e1c3efe309d8782ab89ece40deab79b3
+Subproject commit f458bf44e1b5697a0c18b1cd54d48fb875629ed6
diff --git a/ccpp/suites/suite_HAFS_v0_hwrf.xml b/ccpp/suites/suite_HAFS_v0_hwrf.xml
index c96348cf..1b71266e 100644
--- a/ccpp/suites/suite_HAFS_v0_hwrf.xml
+++ b/ccpp/suites/suite_HAFS_v0_hwrf.xml
@@ -60,7 +60,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
GFS_DCNV_generic_pre
get_phi_fv3
GFS_suite_interstitial_3
diff --git a/ccpp/suites/suite_HAFS_v0_hwrf_ps.xml b/ccpp/suites/suite_HAFS_v0_hwrf_ps.xml
index cfae0831..705b5942 100644
--- a/ccpp/suites/suite_HAFS_v0_hwrf_ps.xml
+++ b/ccpp/suites/suite_HAFS_v0_hwrf_ps.xml
@@ -41,7 +41,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
GFS_DCNV_generic_pre
get_phi_fv3
GFS_suite_interstitial_3
diff --git a/ccpp/suites/suite_HAFS_v0_hwrf_thompson.xml b/ccpp/suites/suite_HAFS_v0_hwrf_thompson.xml
index e59f0ebf..90691291 100644
--- a/ccpp/suites/suite_HAFS_v0_hwrf_thompson.xml
+++ b/ccpp/suites/suite_HAFS_v0_hwrf_thompson.xml
@@ -62,7 +62,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
GFS_DCNV_generic_pre
get_phi_fv3
GFS_suite_interstitial_3
diff --git a/ccpp/suites/suite_HAFS_v0_hwrf_thompson_ps.xml b/ccpp/suites/suite_HAFS_v0_hwrf_thompson_ps.xml
index 1831f882..b4d01df6 100644
--- a/ccpp/suites/suite_HAFS_v0_hwrf_thompson_ps.xml
+++ b/ccpp/suites/suite_HAFS_v0_hwrf_thompson_ps.xml
@@ -43,7 +43,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
GFS_DCNV_generic_pre
get_phi_fv3
GFS_suite_interstitial_3
diff --git a/ccpp/suites/suite_SCM_GFS_v15p2.xml b/ccpp/suites/suite_SCM_GFS_v15p2.xml
index 087e25d4..f5b6afea 100644
--- a/ccpp/suites/suite_SCM_GFS_v15p2.xml
+++ b/ccpp/suites/suite_SCM_GFS_v15p2.xml
@@ -59,7 +59,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_ACM_ps.xml b/ccpp/suites/suite_SCM_GFS_v15p2_ACM_ps.xml
index 8f6cc0d5..97d02692 100644
--- a/ccpp/suites/suite_SCM_GFS_v15p2_ACM_ps.xml
+++ b/ccpp/suites/suite_SCM_GFS_v15p2_ACM_ps.xml
@@ -40,7 +40,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_FA.xml b/ccpp/suites/suite_SCM_GFS_v15p2_FA.xml
index 19d469bc..2c4a6ba0 100644
--- a/ccpp/suites/suite_SCM_GFS_v15p2_FA.xml
+++ b/ccpp/suites/suite_SCM_GFS_v15p2_FA.xml
@@ -59,7 +59,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_MYJ.xml b/ccpp/suites/suite_SCM_GFS_v15p2_MYJ.xml
index ff52d53d..7a1221e8 100644
--- a/ccpp/suites/suite_SCM_GFS_v15p2_MYJ.xml
+++ b/ccpp/suites/suite_SCM_GFS_v15p2_MYJ.xml
@@ -59,7 +59,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP.xml b/ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP.xml
index 501705f9..700d6a3f 100644
--- a/ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP.xml
+++ b/ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP.xml
@@ -60,7 +60,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP_ps.xml b/ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP_ps.xml
index ef731e0b..03f602f8 100644
--- a/ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP_ps.xml
+++ b/ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP_ps.xml
@@ -41,7 +41,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_YSU_ps.xml b/ccpp/suites/suite_SCM_GFS_v15p2_YSU_ps.xml
index f63ab553..aeb6bcea 100644
--- a/ccpp/suites/suite_SCM_GFS_v15p2_YSU_ps.xml
+++ b/ccpp/suites/suite_SCM_GFS_v15p2_YSU_ps.xml
@@ -40,7 +40,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_no_nsst.xml b/ccpp/suites/suite_SCM_GFS_v15p2_no_nsst.xml
index 8fb96031..4ab952c2 100644
--- a/ccpp/suites/suite_SCM_GFS_v15p2_no_nsst.xml
+++ b/ccpp/suites/suite_SCM_GFS_v15p2_no_nsst.xml
@@ -57,7 +57,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
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 a409f3ed..226651ec 100644
--- a/ccpp/suites/suite_SCM_GFS_v15p2_no_nsst_ps.xml
+++ b/ccpp/suites/suite_SCM_GFS_v15p2_no_nsst_ps.xml
@@ -40,7 +40,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_noahmp.xml b/ccpp/suites/suite_SCM_GFS_v15p2_noahmp.xml
index c845c887..18425531 100644
--- a/ccpp/suites/suite_SCM_GFS_v15p2_noahmp.xml
+++ b/ccpp/suites/suite_SCM_GFS_v15p2_noahmp.xml
@@ -59,7 +59,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_ps.xml b/ccpp/suites/suite_SCM_GFS_v15p2_ps.xml
index 9fb1ac66..e474cdf3 100644
--- a/ccpp/suites/suite_SCM_GFS_v15p2_ps.xml
+++ b/ccpp/suites/suite_SCM_GFS_v15p2_ps.xml
@@ -40,7 +40,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_saYSU_ps.xml b/ccpp/suites/suite_SCM_GFS_v15p2_saYSU_ps.xml
index 9b394894..2e613b13 100644
--- a/ccpp/suites/suite_SCM_GFS_v15p2_saYSU_ps.xml
+++ b/ccpp/suites/suite_SCM_GFS_v15p2_saYSU_ps.xml
@@ -40,7 +40,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v16.xml b/ccpp/suites/suite_SCM_GFS_v16.xml
index 723dbd91..723659ab 100644
--- a/ccpp/suites/suite_SCM_GFS_v16.xml
+++ b/ccpp/suites/suite_SCM_GFS_v16.xml
@@ -59,7 +59,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v16_RRTMGP.xml b/ccpp/suites/suite_SCM_GFS_v16_RRTMGP.xml
index b427bcf2..174d0773 100644
--- a/ccpp/suites/suite_SCM_GFS_v16_RRTMGP.xml
+++ b/ccpp/suites/suite_SCM_GFS_v16_RRTMGP.xml
@@ -60,7 +60,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v16_RRTMGP_ps.xml b/ccpp/suites/suite_SCM_GFS_v16_RRTMGP_ps.xml
index 31ea5c71..4d8b8e8a 100644
--- a/ccpp/suites/suite_SCM_GFS_v16_RRTMGP_ps.xml
+++ b/ccpp/suites/suite_SCM_GFS_v16_RRTMGP_ps.xml
@@ -41,7 +41,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v16_debug.xml b/ccpp/suites/suite_SCM_GFS_v16_debug.xml
index eb07d5a5..a7643d83 100644
--- a/ccpp/suites/suite_SCM_GFS_v16_debug.xml
+++ b/ccpp/suites/suite_SCM_GFS_v16_debug.xml
@@ -59,7 +59,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v16_debug_ps.xml b/ccpp/suites/suite_SCM_GFS_v16_debug_ps.xml
index ba443a81..4789c6ca 100644
--- a/ccpp/suites/suite_SCM_GFS_v16_debug_ps.xml
+++ b/ccpp/suites/suite_SCM_GFS_v16_debug_ps.xml
@@ -40,7 +40,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v16_no_nsst.xml b/ccpp/suites/suite_SCM_GFS_v16_no_nsst.xml
index 19733a6e..77d4d613 100644
--- a/ccpp/suites/suite_SCM_GFS_v16_no_nsst.xml
+++ b/ccpp/suites/suite_SCM_GFS_v16_no_nsst.xml
@@ -57,7 +57,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
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 5437699c..e8a24768 100644
--- a/ccpp/suites/suite_SCM_GFS_v16_no_nsst_ps.xml
+++ b/ccpp/suites/suite_SCM_GFS_v16_no_nsst_ps.xml
@@ -40,7 +40,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v16_ps.xml b/ccpp/suites/suite_SCM_GFS_v16_ps.xml
index 6320bf6a..98d24e59 100644
--- a/ccpp/suites/suite_SCM_GFS_v16_ps.xml
+++ b/ccpp/suites/suite_SCM_GFS_v16_ps.xml
@@ -40,7 +40,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v16_ugwpv1.xml b/ccpp/suites/suite_SCM_GFS_v16_ugwpv1.xml
index 0d4ebc86..0e7a0682 100644
--- a/ccpp/suites/suite_SCM_GFS_v16_ugwpv1.xml
+++ b/ccpp/suites/suite_SCM_GFS_v16_ugwpv1.xml
@@ -59,7 +59,7 @@
ugwpv1_gsldrag_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v17_p8.xml b/ccpp/suites/suite_SCM_GFS_v17_p8.xml
index 17eb9993..49662418 100644
--- a/ccpp/suites/suite_SCM_GFS_v17_p8.xml
+++ b/ccpp/suites/suite_SCM_GFS_v17_p8.xml
@@ -60,7 +60,7 @@
unified_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v17_p8_c3.xml b/ccpp/suites/suite_SCM_GFS_v17_p8_c3.xml
index 5105ec52..a984aab6 100644
--- a/ccpp/suites/suite_SCM_GFS_v17_p8_c3.xml
+++ b/ccpp/suites/suite_SCM_GFS_v17_p8_c3.xml
@@ -60,7 +60,7 @@
unified_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
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 4a759285..eee4317c 100644
--- a/ccpp/suites/suite_SCM_GFS_v17_p8_c3_ps.xml
+++ b/ccpp/suites/suite_SCM_GFS_v17_p8_c3_ps.xml
@@ -41,7 +41,7 @@
unified_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v17_p8_ps.xml b/ccpp/suites/suite_SCM_GFS_v17_p8_ps.xml
index 35c3941a..68d4970e 100644
--- a/ccpp/suites/suite_SCM_GFS_v17_p8_ps.xml
+++ b/ccpp/suites/suite_SCM_GFS_v17_p8_ps.xml
@@ -41,7 +41,7 @@
unified_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v17_p8_ugwpv1.xml b/ccpp/suites/suite_SCM_GFS_v17_p8_ugwpv1.xml
index 865fe47f..e39f865a 100644
--- a/ccpp/suites/suite_SCM_GFS_v17_p8_ugwpv1.xml
+++ b/ccpp/suites/suite_SCM_GFS_v17_p8_ugwpv1.xml
@@ -60,7 +60,7 @@
ugwpv1_gsldrag_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v17_p8_ugwpv1_ps.xml b/ccpp/suites/suite_SCM_GFS_v17_p8_ugwpv1_ps.xml
index cd62b628..b0dd0735 100644
--- a/ccpp/suites/suite_SCM_GFS_v17_p8_ugwpv1_ps.xml
+++ b/ccpp/suites/suite_SCM_GFS_v17_p8_ugwpv1_ps.xml
@@ -41,7 +41,7 @@
ugwpv1_gsldrag_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_GSD_v1.xml b/ccpp/suites/suite_SCM_GSD_v1.xml
index d7d45d10..ae48d3ef 100644
--- a/ccpp/suites/suite_SCM_GSD_v1.xml
+++ b/ccpp/suites/suite_SCM_GSD_v1.xml
@@ -59,7 +59,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_GSD_v1_ps.xml b/ccpp/suites/suite_SCM_GSD_v1_ps.xml
index 83fa060a..94d72810 100644
--- a/ccpp/suites/suite_SCM_GSD_v1_ps.xml
+++ b/ccpp/suites/suite_SCM_GSD_v1_ps.xml
@@ -41,7 +41,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_GSD_v1nssl.xml b/ccpp/suites/suite_SCM_GSD_v1nssl.xml
index fefdc11a..f77b5eba 100644
--- a/ccpp/suites/suite_SCM_GSD_v1nssl.xml
+++ b/ccpp/suites/suite_SCM_GSD_v1nssl.xml
@@ -59,7 +59,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_GSD_v1nssl_ps.xml b/ccpp/suites/suite_SCM_GSD_v1nssl_ps.xml
index fbf82ce9..88fc1e8f 100644
--- a/ccpp/suites/suite_SCM_GSD_v1nssl_ps.xml
+++ b/ccpp/suites/suite_SCM_GSD_v1nssl_ps.xml
@@ -41,7 +41,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_HRRR.xml b/ccpp/suites/suite_SCM_HRRR.xml
index 7904da3f..57912f78 100644
--- a/ccpp/suites/suite_SCM_HRRR.xml
+++ b/ccpp/suites/suite_SCM_HRRR.xml
@@ -59,7 +59,7 @@
drag_suite
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_suite_interstitial_4
diff --git a/ccpp/suites/suite_SCM_HRRR_gf.xml b/ccpp/suites/suite_SCM_HRRR_gf.xml
index f80ab4c7..e4637008 100644
--- a/ccpp/suites/suite_SCM_HRRR_gf.xml
+++ b/ccpp/suites/suite_SCM_HRRR_gf.xml
@@ -57,7 +57,7 @@
drag_suite
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_HRRR_gf_ps.xml b/ccpp/suites/suite_SCM_HRRR_gf_ps.xml
index 3fc25cc5..1329f4b9 100644
--- a/ccpp/suites/suite_SCM_HRRR_gf_ps.xml
+++ b/ccpp/suites/suite_SCM_HRRR_gf_ps.xml
@@ -41,7 +41,7 @@
drag_suite
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_HRRR_ps.xml b/ccpp/suites/suite_SCM_HRRR_ps.xml
index e1f930db..0ac6c29f 100644
--- a/ccpp/suites/suite_SCM_HRRR_ps.xml
+++ b/ccpp/suites/suite_SCM_HRRR_ps.xml
@@ -40,7 +40,7 @@
drag_suite
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_suite_interstitial_4
diff --git a/ccpp/suites/suite_SCM_RAP.xml b/ccpp/suites/suite_SCM_RAP.xml
index 68040872..62e945e1 100644
--- a/ccpp/suites/suite_SCM_RAP.xml
+++ b/ccpp/suites/suite_SCM_RAP.xml
@@ -58,7 +58,7 @@
drag_suite
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_RAP_ps.xml b/ccpp/suites/suite_SCM_RAP_ps.xml
index 6855b116..4149acba 100644
--- a/ccpp/suites/suite_SCM_RAP_ps.xml
+++ b/ccpp/suites/suite_SCM_RAP_ps.xml
@@ -40,7 +40,7 @@
drag_suite
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_RRFS_v1alpha.xml b/ccpp/suites/suite_SCM_RRFS_v1alpha.xml
index 7b0ec9db..8a6e99e0 100644
--- a/ccpp/suites/suite_SCM_RRFS_v1alpha.xml
+++ b/ccpp/suites/suite_SCM_RRFS_v1alpha.xml
@@ -60,7 +60,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_suite_interstitial_4
diff --git a/ccpp/suites/suite_SCM_RRFS_v1alpha_ps.xml b/ccpp/suites/suite_SCM_RRFS_v1alpha_ps.xml
index f21105db..5e6f6e34 100644
--- a/ccpp/suites/suite_SCM_RRFS_v1alpha_ps.xml
+++ b/ccpp/suites/suite_SCM_RRFS_v1alpha_ps.xml
@@ -41,7 +41,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_suite_interstitial_4
diff --git a/ccpp/suites/suite_SCM_RRFS_v1beta.xml b/ccpp/suites/suite_SCM_RRFS_v1beta.xml
index 1921f3f5..4e87c32c 100644
--- a/ccpp/suites/suite_SCM_RRFS_v1beta.xml
+++ b/ccpp/suites/suite_SCM_RRFS_v1beta.xml
@@ -60,7 +60,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_suite_interstitial_4
diff --git a/ccpp/suites/suite_SCM_RRFS_v1beta_ps.xml b/ccpp/suites/suite_SCM_RRFS_v1beta_ps.xml
index 4c554c43..d663d450 100644
--- a/ccpp/suites/suite_SCM_RRFS_v1beta_ps.xml
+++ b/ccpp/suites/suite_SCM_RRFS_v1beta_ps.xml
@@ -41,7 +41,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_suite_interstitial_4
diff --git a/ccpp/suites/suite_SCM_RRFS_v1nssl.xml b/ccpp/suites/suite_SCM_RRFS_v1nssl.xml
index 439f3473..926a5e12 100644
--- a/ccpp/suites/suite_SCM_RRFS_v1nssl.xml
+++ b/ccpp/suites/suite_SCM_RRFS_v1nssl.xml
@@ -60,7 +60,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
diff --git a/ccpp/suites/suite_SCM_WoFS_v0.xml b/ccpp/suites/suite_SCM_WoFS_v0.xml
index a16c8b11..87a72856 100644
--- a/ccpp/suites/suite_SCM_WoFS_v0.xml
+++ b/ccpp/suites/suite_SCM_WoFS_v0.xml
@@ -60,7 +60,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_MP_generic_pre
mp_nssl
diff --git a/ccpp/suites/suite_SCM_WoFS_v0_ps.xml b/ccpp/suites/suite_SCM_WoFS_v0_ps.xml
index 3592ac2b..24948795 100644
--- a/ccpp/suites/suite_SCM_WoFS_v0_ps.xml
+++ b/ccpp/suites/suite_SCM_WoFS_v0_ps.xml
@@ -41,7 +41,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_MP_generic_pre
mp_nssl
diff --git a/ccpp/suites/suite_SCM_csawmg.xml b/ccpp/suites/suite_SCM_csawmg.xml
index 61e85677..a0b541b3 100644
--- a/ccpp/suites/suite_SCM_csawmg.xml
+++ b/ccpp/suites/suite_SCM_csawmg.xml
@@ -60,7 +60,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/ccpp/suites/suite_SCM_csawmg_ps.xml b/ccpp/suites/suite_SCM_csawmg_ps.xml
index c7ccf996..44e09e6f 100644
--- a/ccpp/suites/suite_SCM_csawmg_ps.xml
+++ b/ccpp/suites/suite_SCM_csawmg_ps.xml
@@ -41,7 +41,7 @@
cires_ugwp_post
GFS_GWD_generic_post
GFS_suite_stateout_update
- h2ophys
+ GFS_photochemistry
get_phi_fv3
GFS_suite_interstitial_3
GFS_DCNV_generic_pre
diff --git a/scm/src/GFS_typedefs.F90 b/scm/src/GFS_typedefs.F90
index 7966fc2c..e8e10fed 100644
--- a/scm/src/GFS_typedefs.F90
+++ b/scm/src/GFS_typedefs.F90
@@ -5,8 +5,8 @@ module GFS_typedefs
use module_radsw_parameters, only: topfsw_type, sfcfsw_type
use module_radlw_parameters, only: topflw_type, sfcflw_type
- use h2o_def, only: levh2o, h2o_coeff
use module_ozphys, only: ty_ozphys
+ use module_h2ophys, only: ty_h2ophys
use module_ccpp_suite_simulator, only: base_physics_process
implicit none
@@ -1012,6 +1012,7 @@ module GFS_typedefs
real(kind=kind_phys) :: dt_inner !< time step for the inner loop in s
logical :: sedi_semi !< flag for semi Lagrangian sedi of rain
integer :: decfl !< deformed CFL factor
+ logical :: thpsnmp_is_init !< Local scheme initialization flag
!--- GFDL microphysical paramters
logical :: lgfdlmprad !< flag for GFDL mp scheme and radiation consistency
@@ -1601,6 +1602,9 @@ module GFS_typedefs
real(kind=kind_phys), pointer :: si(:) !< vertical sigma coordinate for model initialization
real(kind=kind_phys) :: sec !< seconds since model initialization
+!--- Increment grid
+ logical :: increment_file_on_native_grid ! increment on native grid else Gaussian grid
+
!--- IAU
integer :: iau_offset
real(kind=kind_phys) :: iau_delthrs ! iau time interval (to scale increments) in hours
@@ -1624,6 +1628,10 @@ module GFS_typedefs
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
+!--- NRL h2o photchemistry physics
+ type(ty_h2ophys) :: h2ophys !< DDT with data needed by h2o photchemistry physics.
+ integer :: levh2o !< Number of vertical layers in stratospheric h2o data.
+ integer :: h2o_coeff !< Number of coefficients in stratospheric h2o data.
!--- CCPP suite simulator
logical :: do_ccpp_suite_sim !
@@ -3556,6 +3564,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
real(kind=kind_phys) :: dt_inner = -999.0 !< time step for the inner loop
logical :: sedi_semi = .false. !< flag for semi Lagrangian sedi of rain
integer :: decfl = 8 !< deformed CFL factor
+ logical :: thpsnmp_is_init = .false. !< Local scheme initialization flag
!--- GFDL microphysical parameters
logical :: lgfdlmprad = .false. !< flag for GFDLMP radiation interaction
@@ -3900,6 +3909,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
logical :: ca_entr = .false.
logical :: ca_trigger = .false.
+!--- Increment grid
+ logical :: increment_file_on_native_grid = .false. ! increment on native grid else Gaussian grid
+
!--- IAU options
real(kind=kind_phys) :: iau_delthrs = 0 !< iau time interval (to scale increments)
character(len=240) :: iau_inc_files(7) = '' !< list of increment files
@@ -3985,6 +3997,9 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
integer :: kozpl = 28 !< File identifier for ozone forcing data
integer :: kozc = 48 !< File identifier for ozone climotology data
+!--- NRL h2o photochemistry physics
+ integer :: kh2oc = 29 !< File identifier for h2o photochemistry data.
+
!--- CCPP suite simulator
logical :: do_ccpp_suite_sim = .false.
integer :: nphys_proc = 0
@@ -4134,6 +4149,8 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
nseed, nseed_g, nthresh, do_ca, ca_advect, &
ca_sgs, ca_global,iseed_ca,ca_smooth, &
nspinup,ca_amplitude,nsmooth,ca_closure,ca_entr,ca_trigger, &
+ !--- Increment grid
+ increment_file_on_native_grid, &
!--- IAU
iau_delthrs,iaufhrs,iau_inc_files,iau_filter_increments, &
iau_drymassfixer, &
@@ -4966,18 +4983,6 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
Model%oz_phys_2015 = oz_phys_2015
Model%h2o_phys = h2o_phys
- ! 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 h2ointerp
- if (h2o_phys) then
- levh2o = 72
- h2o_coeff = 3
- else
- levh2o = 1
- h2o_coeff = 1
- end if
-
Model%pdfcld = pdfcld
Model%shcnvcw = shcnvcw
Model%redrag = redrag
@@ -5693,6 +5698,17 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
err_message = Model%ozphys%load_o3clim('global_o3prdlos.f77',kozc)
end if
+ !--- NRL h2o photochemistry physics.
+ if (Model%h2o_phys) then
+ ! Load data for h2o photochemistry physics.
+ err_message = Model%h2ophys%load('global_h2oprdlos.f77',kh2oc)
+ Model%levh2o = Model%h2ophys%nlev
+ Model%h2o_coeff = Model%h2ophys%ncf
+ else
+ Model%levh2o = 1
+ Model%h2o_coeff = 1
+ end if
+
!--- quantities to be used to derive phy_f*d totals
Model%nshoc_2d = nshoc_2d
Model%nshoc_3d = nshoc_3d
@@ -7235,7 +7251,7 @@ subroutine tbd_create (Tbd, Model)
!--- ozone and stratosphere h2o needs
allocate (Tbd%ozpl (IM,Model%levozp,Model%oz_coeff))
- allocate (Tbd%h2opl (IM,levh2o,h2o_coeff))
+ allocate (Tbd%h2opl (IM,Model%levh2o,Model%h2o_coeff))
Tbd%h2opl = clear_val
Tbd%ozpl = clear_val
diff --git a/scm/src/GFS_typedefs.meta b/scm/src/GFS_typedefs.meta
index 0b990e64..3bf3e7de 100644
--- a/scm/src/GFS_typedefs.meta
+++ b/scm/src/GFS_typedefs.meta
@@ -4866,6 +4866,12 @@
units = count
dimensions = ()
type = integer
+[thpsnmp_is_init]
+ standard_name = flag_for_thompson_mp_scheme_initialization
+ long_name = flag carrying scheme initialization status
+ units = flag
+ dimensions = ()
+ type = logical
[lgfdlmprad]
standard_name = flag_for_GFDL_microphysics_radiation_interaction
long_name = flag for GFDL microphysics-radiation interaction
@@ -5379,6 +5385,12 @@
units = mixed
dimensions = ()
type = ty_ozphys
+[h2ophys]
+ standard_name = dataset_for_h2o_photochemistry_physics
+ long_name = dataset for NRL h2o photochemistry physics
+ units = mixed
+ dimensions = ()
+ type = ty_h2ophys
[h2o_phys]
standard_name = flag_for_stratospheric_water_vapor_physics
long_name = flag for stratospheric water vapor physics
@@ -7063,6 +7075,18 @@
units = count
dimensions = ()
type = integer
+[levh2o]
+ standard_name = vertical_dimension_of_h2o_forcing_data
+ long_name = number of vertical layers in h2o forcing data
+ units = count
+ dimensions = ()
+ type = integer
+[h2o_coeff]
+ standard_name = number_of_coefficients_in_h2o_forcing_data
+ long_name = number of coefficients in h2o forcing data
+ units = index
+ dimensions = ()
+ type = integer
[do_ccpp_suite_sim]
standard_name = flag_for_CCPP_suite_simulator
long_name = flag for ccpp suite simulator
@@ -10105,7 +10129,7 @@
relative_path = ../../ccpp/physics/physics
dependencies = hooks/machine.F,hooks/physcons.F90
dependencies = Radiation/RRTMG/radlw_param.f,Radiation/RRTMG/radsw_param.f
- dependencies = photochem/h2o_def.f,photochem/module_ozphys.F90
+ dependencies = photochem/module_ozphys.F90,photochem/module_h2ophys.F90
dependencies = MP/GFDL/GFDL_parse_tracers.F90
dependencies = Interstitials/UFS_SCM_NEPTUNE/GFS_ccpp_suite_sim_pre.F90