diff --git a/ccpp/config/ccpp_prebuild_config.py b/ccpp/config/ccpp_prebuild_config.py
index 913e64ab3..25843bc54 100755
--- a/ccpp/config/ccpp_prebuild_config.py
+++ b/ccpp/config/ccpp_prebuild_config.py
@@ -27,6 +27,7 @@
'ccpp/physics/physics/rte-rrtmgp/rte/mo_optical_props.F90',
'ccpp/physics/physics/rte-rrtmgp/extensions/cloud_optics/mo_cloud_optics.F90',
'ccpp/physics/physics/rte-rrtmgp/rte/mo_source_functions.F90',
+ 'scm/src/CCPP_typedefs.F90',
'scm/src/GFS_typedefs.F90',
'scm/src/scm_kinds.F90',
'scm/src/scm_type_defs.F90',
@@ -48,6 +49,10 @@
'module_radlw_parameters' : {
'module_radlw_parameters' : '',
},
+ 'CCPP_typedefs' : {
+ 'GFS_interstitial_type' : 'physics%Interstitial',
+ 'CCPP_typedefs' : '',
+ },
'GFS_typedefs' : {
'GFS_diag_type' : 'physics%Diag',
'GFS_control_type' : 'physics%Model',
@@ -55,7 +60,6 @@
'GFS_tbd_type' : 'physics%Tbd',
'GFS_sfcprop_type' : 'physics%Sfcprop',
'GFS_coupling_type' : 'physics%Coupling',
- 'GFS_interstitial_type' : 'physics%Interstitial',
'GFS_statein_type' : 'physics%Statein',
'GFS_radtend_type' : 'physics%Radtend',
'GFS_grid_type' : 'physics%Grid',
@@ -97,21 +101,38 @@
# Relative path to source (from where ccpp_prebuild.py is called) : [ list of physics sets in which scheme may be called ];
# current restrictions are that each scheme can only belong to one physics set, and all schemes within one group in the
# suite definition file have to belong to the same physics set
- 'ccpp/physics/physics/GFS_DCNV_generic.F90' ,
- 'ccpp/physics/physics/GFS_GWD_generic.F90' ,
- 'ccpp/physics/physics/GFS_MP_generic.F90' ,
- 'ccpp/physics/physics/GFS_PBL_generic.F90' ,
- 'ccpp/physics/physics/GFS_SCNV_generic.F90' ,
+ 'ccpp/physics/physics/GFS_DCNV_generic_pre.F90' ,
+ 'ccpp/physics/physics/GFS_DCNV_generic_post.F90' ,
+ 'ccpp/physics/physics/GFS_GWD_generic_pre.F90' ,
+ 'ccpp/physics/physics/GFS_GWD_generic_post.F90' ,
+ 'ccpp/physics/physics/GFS_MP_generic_pre.F90' ,
+ 'ccpp/physics/physics/GFS_MP_generic_post.F90' ,
+ 'ccpp/physics/physics/GFS_PBL_generic_pre.F90' ,
+ 'ccpp/physics/physics/GFS_PBL_generic_post.F90' ,
+ 'ccpp/physics/physics/GFS_SCNV_generic_pre.F90' ,
+ 'ccpp/physics/physics/GFS_SCNV_generic_post.F90' ,
'ccpp/physics/physics/GFS_phys_time_vary.scm.F90' ,
'ccpp/physics/physics/GFS_rad_time_vary.scm.F90' ,
'ccpp/physics/physics/GFS_radiation_surface.F90' ,
'ccpp/physics/physics/GFS_rrtmg_post.F90' ,
'ccpp/physics/physics/GFS_rrtmg_pre.F90' ,
'ccpp/physics/physics/GFS_rrtmg_setup.F90' ,
- 'ccpp/physics/physics/GFS_suite_interstitial.F90' ,
- 'ccpp/physics/physics/GFS_surface_generic.F90' ,
- 'ccpp/physics/physics/GFS_surface_composites.F90' ,
- 'ccpp/physics/physics/GFS_surface_loop_control.F90' ,
+ 'ccpp/physics/physics/GFS_suite_interstitial_rad_reset.F90',
+ 'ccpp/physics/physics/GFS_suite_interstitial_phys_reset.F90',
+ 'ccpp/physics/physics/GFS_suite_interstitial_1.F90' ,
+ 'ccpp/physics/physics/GFS_suite_interstitial_2.F90' ,
+ 'ccpp/physics/physics/GFS_suite_stateout_reset.F90' ,
+ 'ccpp/physics/physics/GFS_suite_stateout_update.F90' ,
+ 'ccpp/physics/physics/GFS_suite_interstitial_3.F90' ,
+ 'ccpp/physics/physics/GFS_suite_interstitial_4.F90' ,
+ 'ccpp/physics/physics/GFS_suite_interstitial_5.F90' ,
+ 'ccpp/physics/physics/GFS_surface_generic_pre.F90' ,
+ 'ccpp/physics/physics/GFS_surface_generic_post.F90' ,
+ 'ccpp/physics/physics/GFS_surface_composites_pre.F90' ,
+ 'ccpp/physics/physics/GFS_surface_composites_inter.F90' ,
+ 'ccpp/physics/physics/GFS_surface_composites_post.F90' ,
+ '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/bl_acm.F90' ,
'ccpp/physics/physics/cires_ugwp.F90' ,
@@ -121,19 +142,24 @@
'ccpp/physics/physics/ugwpv1_gsldrag.F90' ,
'ccpp/physics/physics/ugwpv1_gsldrag_post.F90' ,
'ccpp/physics/physics/cnvc90.f' ,
+ 'ccpp/physics/physics/cs_conv_pre.F90' ,
'ccpp/physics/physics/cs_conv.F90' ,
+ 'ccpp/physics/physics/cs_conv_post.F90' ,
'ccpp/physics/physics/cs_conv_aw_adj.F90' ,
'ccpp/physics/physics/cu_ntiedtke_pre.F90' ,
'ccpp/physics/physics/cu_ntiedtke.F90' ,
'ccpp/physics/physics/cu_ntiedtke_post.F90' ,
- 'ccpp/physics/physics/dcyc2.f' ,
+ 'ccpp/physics/physics/dcyc2t3.f' ,
'ccpp/physics/physics/drag_suite.F90' ,
- 'ccpp/physics/physics/gcm_shoc.F90' ,
+ 'ccpp/physics/physics/shoc.F90' ,
'ccpp/physics/physics/get_prs_fv3.F90' ,
+ 'ccpp/physics/physics/get_phi_fv3.F90' ,
'ccpp/physics/physics/gfdl_cloud_microphys.F90' ,
'ccpp/physics/physics/gfdl_sfc_layer.F90' ,
- 'ccpp/physics/physics/gscond.f' ,
+ 'ccpp/physics/physics/zhaocarr_gscond.f' ,
+ 'ccpp/physics/physics/gwdc_pre.f' ,
'ccpp/physics/physics/gwdc.f' ,
+ 'ccpp/physics/physics/gwdc_post.f' ,
'ccpp/physics/physics/gwdps.f' ,
'ccpp/physics/physics/h2ophys.f' ,
'ccpp/physics/physics/samfdeepcnv.f' ,
@@ -142,29 +168,30 @@
'ccpp/physics/physics/shalcnv.F' ,
'ccpp/physics/physics/maximum_hourly_diagnostics.F90' ,
'ccpp/physics/physics/m_micro.F90' ,
- 'ccpp/physics/physics/m_micro_interstitial.F90' ,
+ 'ccpp/physics/physics/m_micro_pre.F90' ,
+ 'ccpp/physics/physics/m_micro_post.F90' ,
'ccpp/physics/physics/cu_gf_driver_pre.F90' ,
'ccpp/physics/physics/cu_gf_driver.F90' ,
'ccpp/physics/physics/cu_gf_driver_post.F90' ,
- 'ccpp/physics/physics/moninedmf.f' ,
+ 'ccpp/physics/physics/hedmf.f' ,
'ccpp/physics/physics/moninshoc.f' ,
'ccpp/physics/physics/satmedmfvdif.F' ,
'ccpp/physics/physics/satmedmfvdifq.F' ,
'ccpp/physics/physics/shinhongvdif.F90' ,
'ccpp/physics/physics/ysuvdif.F90' ,
- 'ccpp/physics/physics/module_MYNNPBL_wrapper.F90' ,
- 'ccpp/physics/physics/module_MYNNSFC_wrapper.F90' ,
- 'ccpp/physics/physics/module_SGSCloud_RadPre.F90' ,
- 'ccpp/physics/physics/module_SGSCloud_RadPost.F90' ,
- 'ccpp/physics/physics/module_MYJSFC_wrapper.F90' ,
- 'ccpp/physics/physics/module_MYJPBL_wrapper.F90' ,
+ 'ccpp/physics/physics/mynnpbl_wrapper.F90' ,
+ 'ccpp/physics/physics/mynnsfc_wrapper.F90' ,
+ 'ccpp/physics/physics/sgscloud_radpre.F90' ,
+ 'ccpp/physics/physics/sgscloud_radpost.F90' ,
+ 'ccpp/physics/physics/myjsfc_wrapper.F90' ,
+ 'ccpp/physics/physics/myjpbl_wrapper.F90' ,
'ccpp/physics/physics/mp_thompson_pre.F90' ,
'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/precpd.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' ,
@@ -173,16 +200,18 @@
'ccpp/physics/physics/rrtmg_lw_post.F90' ,
'ccpp/physics/physics/rrtmg_lw_pre.F90' ,
'ccpp/physics/physics/rrtmg_sw_post.F90' ,
- 'ccpp/physics/physics/rrtmg_sw_pre.F90' ,
+ 'ccpp/physics/physics/rad_sw_pre.F90' ,
'ccpp/physics/physics/sfc_diag.f' ,
'ccpp/physics/physics/sfc_diag_post.F90' ,
- 'ccpp/physics/physics/sfc_drv_ruc.F90' ,
+ 'ccpp/physics/physics/lsm_ruc.F90' ,
'ccpp/physics/physics/sfc_cice.f' ,
'ccpp/physics/physics/sfc_diff.f' ,
- 'ccpp/physics/physics/sfc_drv.f' ,
- 'ccpp/physics/physics/sfc_noahmp_drv.F90' ,
+ 'ccpp/physics/physics/lsm_noah.f' ,
+ 'ccpp/physics/physics/noahmpdrv.F90' ,
'ccpp/physics/physics/flake_driver.F90' ,
+ 'ccpp/physics/physics/sfc_nst_pre.f' ,
'ccpp/physics/physics/sfc_nst.f' ,
+ 'ccpp/physics/physics/sfc_nst_post.f' ,
'ccpp/physics/physics/sfc_ocean.F' ,
'ccpp/physics/physics/sfc_sice.f' ,
'ccpp/physics/physics/mp_fer_hires.F90' ,
@@ -192,22 +221,18 @@
'ccpp/physics/physics/rrtmgp_lw_cloud_optics.F90' ,
'ccpp/physics/physics/rrtmgp_sw_gas_optics.F90' ,
'ccpp/physics/physics/rrtmgp_sw_cloud_optics.F90' ,
- 'ccpp/physics/physics/rrtmgp_sw_aerosol_optics.F90' ,
+ 'ccpp/physics/physics/rrtmgp_aerosol_optics.F90' ,
'ccpp/physics/physics/rrtmgp_lw_rte.F90' ,
'ccpp/physics/physics/rrtmgp_sw_rte.F90' ,
- 'ccpp/physics/physics/rrtmgp_lw_aerosol_optics.F90' ,
'ccpp/physics/physics/GFS_rrtmgp_setup.F90' ,
'ccpp/physics/physics/GFS_rrtmgp_pre.F90' ,
'ccpp/physics/physics/rrtmgp_lw_pre.F90' ,
- 'ccpp/physics/physics/GFS_rrtmgp_sw_pre.F90' ,
'ccpp/physics/physics/GFS_rrtmgp_lw_post.F90' ,
'ccpp/physics/physics/rrtmgp_lw_cloud_sampling.F90' ,
'ccpp/physics/physics/rrtmgp_sw_cloud_sampling.F90' ,
'ccpp/physics/physics/GFS_cloud_diagnostics.F90' ,
- 'ccpp/physics/physics/GFS_rrtmgp_thompsonmp_pre.F90' ,
- 'ccpp/physics/physics/GFS_rrtmgp_gfdlmp_pre.F90' ,
- 'ccpp/physics/physics/GFS_rrtmgp_zhaocarr_pre.F90' ,
- 'ccpp/physics/physics/GFS_rrtmgp_cloud_overlap_pre.F90' ,
+ 'ccpp/physics/physics/GFS_rrtmgp_cloud_mp.F90' ,
+ 'ccpp/physics/physics/GFS_rrtmgp_cloud_overlap.F90' ,
'ccpp/physics/physics/GFS_rrtmgp_sw_post.F90'
]
diff --git a/ccpp/framework b/ccpp/framework
index 8577ea3b8..e200083f2 160000
--- a/ccpp/framework
+++ b/ccpp/framework
@@ -1 +1 @@
-Subproject commit 8577ea3b865a6ff7406c6d26c7dd3ce835b7c101
+Subproject commit e200083f2503106541349d1af130f98c72047e11
diff --git a/ccpp/physics b/ccpp/physics
index eede491d9..7e3535134 160000
--- a/ccpp/physics
+++ b/ccpp/physics
@@ -1 +1 @@
-Subproject commit eede491d91b58c68fce15572704e4898d2fa2e38
+Subproject commit 7e3535134272169e5ae4690aa47e4e9325aefc64
diff --git a/ccpp/suites/suite_HAFS_v0_hwrf.xml b/ccpp/suites/suite_HAFS_v0_hwrf.xml
index 992b36be0..5a33ba2c5 100644
--- a/ccpp/suites/suite_HAFS_v0_hwrf.xml
+++ b/ccpp/suites/suite_HAFS_v0_hwrf.xml
@@ -18,7 +18,7 @@
rrtmg_lw_pre
rrtmg_lw
rrtmg_lw_post
- rrtmg_sw_pre
+ rad_sw_pre
rrtmg_sw
rrtmg_sw_post
GFS_rrtmg_post
diff --git a/ccpp/suites/suite_HAFS_v0_hwrf_ps.xml b/ccpp/suites/suite_HAFS_v0_hwrf_ps.xml
index 2194b7723..cee95be2c 100644
--- a/ccpp/suites/suite_HAFS_v0_hwrf_ps.xml
+++ b/ccpp/suites/suite_HAFS_v0_hwrf_ps.xml
@@ -18,7 +18,7 @@
rrtmg_lw_pre
rrtmg_lw
rrtmg_lw_post
- rrtmg_sw_pre
+ rad_sw_pre
rrtmg_sw
rrtmg_sw_post
GFS_rrtmg_post
diff --git a/ccpp/suites/suite_HAFS_v0_hwrf_thompson.xml b/ccpp/suites/suite_HAFS_v0_hwrf_thompson.xml
index d494739b3..c443da650 100644
--- a/ccpp/suites/suite_HAFS_v0_hwrf_thompson.xml
+++ b/ccpp/suites/suite_HAFS_v0_hwrf_thompson.xml
@@ -19,7 +19,7 @@
rrtmg_lw_pre
rrtmg_lw
rrtmg_lw_post
- rrtmg_sw_pre
+ rad_sw_pre
rrtmg_sw
rrtmg_sw_post
GFS_rrtmg_post
diff --git a/ccpp/suites/suite_HAFS_v0_hwrf_thompson_ps.xml b/ccpp/suites/suite_HAFS_v0_hwrf_thompson_ps.xml
index 15421f0bd..737c3c7eb 100644
--- a/ccpp/suites/suite_HAFS_v0_hwrf_thompson_ps.xml
+++ b/ccpp/suites/suite_HAFS_v0_hwrf_thompson_ps.xml
@@ -19,7 +19,7 @@
rrtmg_lw_pre
rrtmg_lw
rrtmg_lw_post
- rrtmg_sw_pre
+ rad_sw_pre
rrtmg_sw
rrtmg_sw_post
GFS_rrtmg_post
diff --git a/ccpp/suites/suite_SCM_GFS_v15p2.xml b/ccpp/suites/suite_SCM_GFS_v15p2.xml
index e8f5eabeb..406493118 100644
--- a/ccpp/suites/suite_SCM_GFS_v15p2.xml
+++ b/ccpp/suites/suite_SCM_GFS_v15p2.xml
@@ -14,7 +14,7 @@
GFS_suite_interstitial_rad_reset
GFS_rrtmg_pre
GFS_radiation_surface
- rrtmg_sw_pre
+ rad_sw_pre
rrtmg_sw
rrtmg_sw_post
rrtmg_lw_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_ACM_ps.xml b/ccpp/suites/suite_SCM_GFS_v15p2_ACM_ps.xml
index 2b1735919..856add632 100644
--- a/ccpp/suites/suite_SCM_GFS_v15p2_ACM_ps.xml
+++ b/ccpp/suites/suite_SCM_GFS_v15p2_ACM_ps.xml
@@ -14,7 +14,7 @@
GFS_suite_interstitial_rad_reset
GFS_rrtmg_pre
GFS_radiation_surface
- rrtmg_sw_pre
+ rad_sw_pre
rrtmg_sw
rrtmg_sw_post
rrtmg_lw_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_FA.xml b/ccpp/suites/suite_SCM_GFS_v15p2_FA.xml
index ace39e3e8..2fa77cdd4 100644
--- a/ccpp/suites/suite_SCM_GFS_v15p2_FA.xml
+++ b/ccpp/suites/suite_SCM_GFS_v15p2_FA.xml
@@ -14,7 +14,7 @@
GFS_suite_interstitial_rad_reset
GFS_rrtmg_pre
GFS_radiation_surface
- rrtmg_sw_pre
+ rad_sw_pre
rrtmg_sw
rrtmg_sw_post
rrtmg_lw_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_MYJ.xml b/ccpp/suites/suite_SCM_GFS_v15p2_MYJ.xml
index e22a0ac7d..63e3f7657 100644
--- a/ccpp/suites/suite_SCM_GFS_v15p2_MYJ.xml
+++ b/ccpp/suites/suite_SCM_GFS_v15p2_MYJ.xml
@@ -14,7 +14,7 @@
GFS_suite_interstitial_rad_reset
GFS_rrtmg_pre
GFS_radiation_surface
- rrtmg_sw_pre
+ rad_sw_pre
rrtmg_sw
rrtmg_sw_post
rrtmg_lw_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP.xml b/ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP.xml
index 25c2d4332..ded6e4d19 100644
--- a/ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP.xml
+++ b/ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP.xml
@@ -14,18 +14,18 @@
GFS_suite_interstitial_rad_reset
GFS_rrtmgp_pre
GFS_radiation_surface
- GFS_rrtmgp_gfdlmp_pre
+ GFS_rrtmgp_cloud_mp
+ GFS_rrtmgp_cloud_overlap
GFS_cloud_diagnostics
- GFS_rrtmgp_sw_pre
+ rad_sw_pre
+ rrtmgp_aerosol_optics
rrtmgp_sw_gas_optics
- rrtmgp_sw_aerosol_optics
rrtmgp_sw_cloud_optics
rrtmgp_sw_cloud_sampling
rrtmgp_sw_rte
GFS_rrtmgp_sw_post
rrtmgp_lw_pre
rrtmgp_lw_gas_optics
- rrtmgp_lw_aerosol_optics
rrtmgp_lw_cloud_optics
rrtmgp_lw_cloud_sampling
rrtmgp_lw_rte
diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP_ps.xml b/ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP_ps.xml
index 2695618f9..04603ae66 100644
--- a/ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP_ps.xml
+++ b/ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP_ps.xml
@@ -14,18 +14,18 @@
GFS_suite_interstitial_rad_reset
GFS_rrtmgp_pre
GFS_radiation_surface
- GFS_rrtmgp_gfdlmp_pre
+ GFS_rrtmgp_cloud_mp
+ GFS_rrtmgp_cloud_overlap
GFS_cloud_diagnostics
- GFS_rrtmgp_sw_pre
+ rad_sw_pre
+ rrtmgp_aerosol_optics
rrtmgp_sw_gas_optics
- rrtmgp_sw_aerosol_optics
rrtmgp_sw_cloud_optics
rrtmgp_sw_cloud_sampling
rrtmgp_sw_rte
GFS_rrtmgp_sw_post
rrtmgp_lw_pre
rrtmgp_lw_gas_optics
- rrtmgp_lw_aerosol_optics
rrtmgp_lw_cloud_optics
rrtmgp_lw_cloud_sampling
rrtmgp_lw_rte
diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_YSU_ps.xml b/ccpp/suites/suite_SCM_GFS_v15p2_YSU_ps.xml
index cee88aae4..3bef8ba41 100644
--- a/ccpp/suites/suite_SCM_GFS_v15p2_YSU_ps.xml
+++ b/ccpp/suites/suite_SCM_GFS_v15p2_YSU_ps.xml
@@ -14,7 +14,7 @@
GFS_suite_interstitial_rad_reset
GFS_rrtmg_pre
GFS_radiation_surface
- rrtmg_sw_pre
+ rad_sw_pre
rrtmg_sw
rrtmg_sw_post
rrtmg_lw_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_no_nsst.xml b/ccpp/suites/suite_SCM_GFS_v15p2_no_nsst.xml
index a6f0739cf..48a55a83c 100644
--- a/ccpp/suites/suite_SCM_GFS_v15p2_no_nsst.xml
+++ b/ccpp/suites/suite_SCM_GFS_v15p2_no_nsst.xml
@@ -14,7 +14,7 @@
GFS_suite_interstitial_rad_reset
GFS_rrtmg_pre
GFS_radiation_surface
- rrtmg_sw_pre
+ rad_sw_pre
rrtmg_sw
rrtmg_sw_post
rrtmg_lw_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 875e0a23e..c9ba6bd17 100644
--- a/ccpp/suites/suite_SCM_GFS_v15p2_no_nsst_ps.xml
+++ b/ccpp/suites/suite_SCM_GFS_v15p2_no_nsst_ps.xml
@@ -14,7 +14,7 @@
GFS_suite_interstitial_rad_reset
GFS_rrtmg_pre
GFS_radiation_surface
- rrtmg_sw_pre
+ rad_sw_pre
rrtmg_sw
rrtmg_sw_post
rrtmg_lw_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_noahmp.xml b/ccpp/suites/suite_SCM_GFS_v15p2_noahmp.xml
index 973164687..4ac35d6b5 100644
--- a/ccpp/suites/suite_SCM_GFS_v15p2_noahmp.xml
+++ b/ccpp/suites/suite_SCM_GFS_v15p2_noahmp.xml
@@ -14,7 +14,7 @@
GFS_suite_interstitial_rad_reset
GFS_rrtmg_pre
GFS_radiation_surface
- rrtmg_sw_pre
+ rad_sw_pre
rrtmg_sw
rrtmg_sw_post
rrtmg_lw_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_ps.xml b/ccpp/suites/suite_SCM_GFS_v15p2_ps.xml
index 62bf31c70..6cad2a7db 100644
--- a/ccpp/suites/suite_SCM_GFS_v15p2_ps.xml
+++ b/ccpp/suites/suite_SCM_GFS_v15p2_ps.xml
@@ -14,7 +14,7 @@
GFS_suite_interstitial_rad_reset
GFS_rrtmg_pre
GFS_radiation_surface
- rrtmg_sw_pre
+ rad_sw_pre
rrtmg_sw
rrtmg_sw_post
rrtmg_lw_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v15p2_saYSU_ps.xml b/ccpp/suites/suite_SCM_GFS_v15p2_saYSU_ps.xml
index d623252e3..d09586c16 100644
--- a/ccpp/suites/suite_SCM_GFS_v15p2_saYSU_ps.xml
+++ b/ccpp/suites/suite_SCM_GFS_v15p2_saYSU_ps.xml
@@ -14,7 +14,7 @@
GFS_suite_interstitial_rad_reset
GFS_rrtmg_pre
GFS_radiation_surface
- rrtmg_sw_pre
+ rad_sw_pre
rrtmg_sw
rrtmg_sw_post
rrtmg_lw_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v16.xml b/ccpp/suites/suite_SCM_GFS_v16.xml
index ffbcd5f2c..fc3c896ea 100644
--- a/ccpp/suites/suite_SCM_GFS_v16.xml
+++ b/ccpp/suites/suite_SCM_GFS_v16.xml
@@ -14,7 +14,7 @@
GFS_suite_interstitial_rad_reset
GFS_rrtmg_pre
GFS_radiation_surface
- rrtmg_sw_pre
+ rad_sw_pre
rrtmg_sw
rrtmg_sw_post
rrtmg_lw_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v16_RRTMGP.xml b/ccpp/suites/suite_SCM_GFS_v16_RRTMGP.xml
index 3e9e35ef8..3fb27d792 100644
--- a/ccpp/suites/suite_SCM_GFS_v16_RRTMGP.xml
+++ b/ccpp/suites/suite_SCM_GFS_v16_RRTMGP.xml
@@ -14,18 +14,18 @@
GFS_suite_interstitial_rad_reset
GFS_rrtmgp_pre
GFS_radiation_surface
- GFS_rrtmgp_gfdlmp_pre
+ GFS_rrtmgp_cloud_mp
+ GFS_rrtmgp_cloud_overlap
GFS_cloud_diagnostics
- GFS_rrtmgp_sw_pre
+ rad_sw_pre
+ rrtmgp_aerosol_optics
rrtmgp_sw_gas_optics
- rrtmgp_sw_aerosol_optics
rrtmgp_sw_cloud_optics
rrtmgp_sw_cloud_sampling
rrtmgp_sw_rte
GFS_rrtmgp_sw_post
rrtmgp_lw_pre
rrtmgp_lw_gas_optics
- rrtmgp_lw_aerosol_optics
rrtmgp_lw_cloud_optics
rrtmgp_lw_cloud_sampling
rrtmgp_lw_rte
diff --git a/ccpp/suites/suite_SCM_GFS_v16_RRTMGP_ps.xml b/ccpp/suites/suite_SCM_GFS_v16_RRTMGP_ps.xml
index 7f20e1cde..20c94dd94 100644
--- a/ccpp/suites/suite_SCM_GFS_v16_RRTMGP_ps.xml
+++ b/ccpp/suites/suite_SCM_GFS_v16_RRTMGP_ps.xml
@@ -14,18 +14,18 @@
GFS_suite_interstitial_rad_reset
GFS_rrtmgp_pre
GFS_radiation_surface
- GFS_rrtmgp_gfdlmp_pre
+ GFS_rrtmgp_cloud_mp
+ GFS_rrtmgp_cloud_overlap
GFS_cloud_diagnostics
- GFS_rrtmgp_sw_pre
+ rad_sw_pre
+ rrtmgp_aerosol_optics
rrtmgp_sw_gas_optics
- rrtmgp_sw_aerosol_optics
rrtmgp_sw_cloud_optics
rrtmgp_sw_cloud_sampling
rrtmgp_sw_rte
GFS_rrtmgp_sw_post
rrtmgp_lw_pre
rrtmgp_lw_gas_optics
- rrtmgp_lw_aerosol_optics
rrtmgp_lw_cloud_optics
rrtmgp_lw_cloud_sampling
rrtmgp_lw_rte
diff --git a/ccpp/suites/suite_SCM_GFS_v16_no_nsst.xml b/ccpp/suites/suite_SCM_GFS_v16_no_nsst.xml
index a4f69489e..07546f59e 100644
--- a/ccpp/suites/suite_SCM_GFS_v16_no_nsst.xml
+++ b/ccpp/suites/suite_SCM_GFS_v16_no_nsst.xml
@@ -14,7 +14,7 @@
GFS_suite_interstitial_rad_reset
GFS_rrtmg_pre
GFS_radiation_surface
- rrtmg_sw_pre
+ rad_sw_pre
rrtmg_sw
rrtmg_sw_post
rrtmg_lw_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 29922b188..144a02f01 100644
--- a/ccpp/suites/suite_SCM_GFS_v16_no_nsst_ps.xml
+++ b/ccpp/suites/suite_SCM_GFS_v16_no_nsst_ps.xml
@@ -14,7 +14,7 @@
GFS_suite_interstitial_rad_reset
GFS_rrtmg_pre
GFS_radiation_surface
- rrtmg_sw_pre
+ rad_sw_pre
rrtmg_sw
rrtmg_sw_post
rrtmg_lw_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v16_ps.xml b/ccpp/suites/suite_SCM_GFS_v16_ps.xml
index e68650407..203524d6c 100644
--- a/ccpp/suites/suite_SCM_GFS_v16_ps.xml
+++ b/ccpp/suites/suite_SCM_GFS_v16_ps.xml
@@ -14,7 +14,7 @@
GFS_suite_interstitial_rad_reset
GFS_rrtmg_pre
GFS_radiation_surface
- rrtmg_sw_pre
+ rad_sw_pre
rrtmg_sw
rrtmg_sw_post
rrtmg_lw_pre
diff --git a/ccpp/suites/suite_SCM_GFS_v16_ugwpv1.xml b/ccpp/suites/suite_SCM_GFS_v16_ugwpv1.xml
index 3f4b8a922..532390184 100644
--- a/ccpp/suites/suite_SCM_GFS_v16_ugwpv1.xml
+++ b/ccpp/suites/suite_SCM_GFS_v16_ugwpv1.xml
@@ -14,7 +14,7 @@
GFS_suite_interstitial_rad_reset
GFS_rrtmg_pre
GFS_radiation_surface
- rrtmg_sw_pre
+ rad_sw_pre
rrtmg_sw
rrtmg_sw_post
rrtmg_lw_pre
diff --git a/ccpp/suites/suite_SCM_GSD_v1.xml b/ccpp/suites/suite_SCM_GSD_v1.xml
index c6b5f0286..3aae45113 100644
--- a/ccpp/suites/suite_SCM_GSD_v1.xml
+++ b/ccpp/suites/suite_SCM_GSD_v1.xml
@@ -16,7 +16,7 @@
sgscloud_radpre
GFS_rrtmg_pre
GFS_radiation_surface
- rrtmg_sw_pre
+ rad_sw_pre
rrtmg_sw
rrtmg_sw_post
rrtmg_lw_pre
diff --git a/ccpp/suites/suite_SCM_GSD_v1_ps.xml b/ccpp/suites/suite_SCM_GSD_v1_ps.xml
index e2116354c..6403cb3e1 100644
--- a/ccpp/suites/suite_SCM_GSD_v1_ps.xml
+++ b/ccpp/suites/suite_SCM_GSD_v1_ps.xml
@@ -16,7 +16,7 @@
sgscloud_radpre
GFS_rrtmg_pre
GFS_radiation_surface
- rrtmg_sw_pre
+ rad_sw_pre
rrtmg_sw
rrtmg_sw_post
rrtmg_lw_pre
diff --git a/ccpp/suites/suite_SCM_GSD_v1nssl.xml b/ccpp/suites/suite_SCM_GSD_v1nssl.xml
index a67d41e81..9cf7139fd 100644
--- a/ccpp/suites/suite_SCM_GSD_v1nssl.xml
+++ b/ccpp/suites/suite_SCM_GSD_v1nssl.xml
@@ -16,7 +16,7 @@
sgscloud_radpre
GFS_rrtmg_pre
GFS_radiation_surface
- rrtmg_sw_pre
+ rad_sw_pre
rrtmg_sw
rrtmg_sw_post
rrtmg_lw_pre
diff --git a/ccpp/suites/suite_SCM_GSD_v1nssl_ps.xml b/ccpp/suites/suite_SCM_GSD_v1nssl_ps.xml
index 75db30a78..8eb7f8f32 100644
--- a/ccpp/suites/suite_SCM_GSD_v1nssl_ps.xml
+++ b/ccpp/suites/suite_SCM_GSD_v1nssl_ps.xml
@@ -16,7 +16,7 @@
sgscloud_radpre
GFS_rrtmg_pre
GFS_radiation_surface
- rrtmg_sw_pre
+ rad_sw_pre
rrtmg_sw
rrtmg_sw_post
rrtmg_lw_pre
diff --git a/ccpp/suites/suite_SCM_RRFS_v1alpha.xml b/ccpp/suites/suite_SCM_RRFS_v1alpha.xml
index 57bec75db..2d7c8d3ee 100644
--- a/ccpp/suites/suite_SCM_RRFS_v1alpha.xml
+++ b/ccpp/suites/suite_SCM_RRFS_v1alpha.xml
@@ -16,7 +16,7 @@
sgscloud_radpre
GFS_rrtmg_pre
GFS_radiation_surface
- rrtmg_sw_pre
+ rad_sw_pre
rrtmg_sw
rrtmg_sw_post
rrtmg_lw_pre
diff --git a/ccpp/suites/suite_SCM_RRFS_v1alpha_ps.xml b/ccpp/suites/suite_SCM_RRFS_v1alpha_ps.xml
index 0d67882ab..14d1c775b 100644
--- a/ccpp/suites/suite_SCM_RRFS_v1alpha_ps.xml
+++ b/ccpp/suites/suite_SCM_RRFS_v1alpha_ps.xml
@@ -16,7 +16,7 @@
sgscloud_radpre
GFS_rrtmg_pre
GFS_radiation_surface
- rrtmg_sw_pre
+ rad_sw_pre
rrtmg_sw
rrtmg_sw_post
rrtmg_lw_pre
diff --git a/ccpp/suites/suite_SCM_RRFS_v1nssl.xml b/ccpp/suites/suite_SCM_RRFS_v1nssl.xml
index 21d79a228..9e25409c1 100644
--- a/ccpp/suites/suite_SCM_RRFS_v1nssl.xml
+++ b/ccpp/suites/suite_SCM_RRFS_v1nssl.xml
@@ -16,7 +16,7 @@
sgscloud_radpre
GFS_rrtmg_pre
GFS_radiation_surface
- rrtmg_sw_pre
+ rad_sw_pre
rrtmg_sw
rrtmg_sw_post
rrtmg_lw_pre
diff --git a/ccpp/suites/suite_SCM_csawmg.xml b/ccpp/suites/suite_SCM_csawmg.xml
index 0c19cf45a..402be1481 100644
--- a/ccpp/suites/suite_SCM_csawmg.xml
+++ b/ccpp/suites/suite_SCM_csawmg.xml
@@ -15,7 +15,7 @@
GFS_suite_interstitial_rad_reset
GFS_rrtmg_pre
GFS_radiation_surface
- rrtmg_sw_pre
+ rad_sw_pre
rrtmg_sw
rrtmg_sw_post
rrtmg_lw_pre
diff --git a/ccpp/suites/suite_SCM_csawmg_ps.xml b/ccpp/suites/suite_SCM_csawmg_ps.xml
index e0e010dfc..6cb140c45 100644
--- a/ccpp/suites/suite_SCM_csawmg_ps.xml
+++ b/ccpp/suites/suite_SCM_csawmg_ps.xml
@@ -15,7 +15,7 @@
GFS_suite_interstitial_rad_reset
GFS_rrtmg_pre
GFS_radiation_surface
- rrtmg_sw_pre
+ rad_sw_pre
rrtmg_sw
rrtmg_sw_post
rrtmg_lw_pre
diff --git a/scm/src/CCPP_typedefs.F90 b/scm/src/CCPP_typedefs.F90
new file mode 100644
index 000000000..860baeefa
--- /dev/null
+++ b/scm/src/CCPP_typedefs.F90
@@ -0,0 +1,1546 @@
+module CCPP_typedefs
+
+!> \section arg_table_CCPP_typedefs Argument Table
+!! \htmlinclude CCPP_typedefs.html
+!!
+
+ ! Physics kind defininitions needed for interstitial DDTs
+ 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
+ use module_radsw_parameters, only: profsw_type, cmpfsw_type, NBDSW
+ use module_radlw_parameters, only: proflw_type, NBDLW
+ use mo_gas_optics_rrtmgp, only: ty_gas_optics_rrtmgp
+ use mo_optical_props, only: ty_optical_props_1scl,ty_optical_props_2str
+ use mo_cloud_optics, only: ty_cloud_optics
+ use mo_gas_concentrations, only: ty_gas_concs
+ use mo_source_functions, only: ty_source_func_lw
+ use GFS_typedefs, only: GFS_control_type
+
+ implicit none
+
+ private
+
+ ! To ensure that these values match what's in the physics, array
+ ! sizes are compared in the auto-generated physics caps in debug mode
+ ! from module_radiation_aerosols
+ integer, parameter :: NF_AESW = 3
+ integer, parameter :: NF_AELW = 3
+ integer, parameter :: NSPC = 5
+ integer, parameter :: NSPC1 = NSPC + 1
+ ! from module_radiation_clouds
+ integer, parameter :: NF_CLDS = 9
+ ! from module_radiation_gases
+ integer, parameter :: NF_VGAS = 10
+ ! from module_radiation_surface
+ integer, parameter :: NF_ALBD = 4
+
+ ! GFS_interstitial_type !< fields required to replace interstitial code in GFS_{physics,radiation}_driver.F90 in CCPP
+ public GFS_interstitial_type
+
+!! \section arg_table_GFS_interstitial_type
+!! \htmlinclude GFS_interstitial_type.html
+!!
+ type GFS_interstitial_type
+
+ real (kind=kind_phys), pointer :: adjsfculw_land(:) => null() !<
+ real (kind=kind_phys), pointer :: adjsfculw_ice(:) => null() !<
+ real (kind=kind_phys), pointer :: adjsfculw_water(:) => null() !<
+ real (kind=kind_phys), pointer :: adjnirbmd(:) => null() !<
+ real (kind=kind_phys), pointer :: adjnirbmu(:) => null() !<
+ real (kind=kind_phys), pointer :: adjnirdfd(:) => null() !<
+ real (kind=kind_phys), pointer :: adjnirdfu(:) => null() !<
+ real (kind=kind_phys), pointer :: adjvisbmd(:) => null() !<
+ real (kind=kind_phys), pointer :: adjvisbmu(:) => null() !<
+ real (kind=kind_phys), pointer :: adjvisdfu(:) => null() !<
+ real (kind=kind_phys), pointer :: adjvisdfd(:) => null() !<
+ real (kind=kind_phys), pointer :: aerodp(:,:) => null() !<
+ real (kind=kind_phys), pointer :: alb1d(:) => null() !<
+ real (kind=kind_phys), pointer :: alpha(:,:) => null() !<
+ real (kind=kind_phys), pointer :: bexp1d(:) => null() !<
+ real (kind=kind_phys), pointer :: cd(:) => null() !<
+ real (kind=kind_phys), pointer :: cd_ice(:) => null() !<
+ real (kind=kind_phys), pointer :: cd_land(:) => null() !<
+ real (kind=kind_phys), pointer :: cd_water(:) => null() !<
+ real (kind=kind_phys), pointer :: cdq(:) => null() !<
+ real (kind=kind_phys), pointer :: cdq_ice(:) => null() !<
+ real (kind=kind_phys), pointer :: cdq_land(:) => null() !<
+ real (kind=kind_phys), pointer :: cdq_water(:) => null() !<
+ real (kind=kind_phys), pointer :: cf_upi(:,:) => null() !<
+ real (kind=kind_phys), pointer :: chh_ice(:) => null() !<
+ real (kind=kind_phys), pointer :: chh_land(:) => null() !<
+ real (kind=kind_phys), pointer :: chh_water(:) => null() !<
+ real (kind=kind_phys), pointer :: clcn(:,:) => null() !<
+ real (kind=kind_phys), pointer :: cldf(:) => null() !<
+ real (kind=kind_phys), pointer :: cldsa(:,:) => null() !<
+ real (kind=kind_phys), pointer :: cldtaulw(:,:) => null() !<
+ real (kind=kind_phys), pointer :: cldtausw(:,:) => null() !<
+ real (kind=kind_phys), pointer :: cld1d(:) => null() !<
+ real (kind=kind_phys), pointer :: clouds(:,:,:) => null() !<
+ real (kind=kind_phys), pointer :: clw(:,:,:) => null() !<
+ real (kind=kind_phys), pointer :: clx(:,:) => null() !<
+ real (kind=kind_phys), pointer :: cmm_ice(:) => null() !<
+ real (kind=kind_phys), pointer :: cmm_land(:) => null() !<
+ real (kind=kind_phys), pointer :: cmm_water(:) => null() !<
+ real (kind=kind_phys), pointer :: cnv_dqldt(:,:) => null() !<
+ real (kind=kind_phys), pointer :: cnv_fice(:,:) => null() !<
+ real (kind=kind_phys), pointer :: cnv_mfd(:,:) => null() !<
+ real (kind=kind_phys), pointer :: cnv_ndrop(:,:) => null() !<
+ real (kind=kind_phys), pointer :: cnv_nice(:,:) => null() !<
+ real (kind=kind_phys), pointer :: cnvc(:,:) => null() !<
+ real (kind=kind_phys), pointer :: cnvw(:,:) => null() !<
+ real (kind=kind_phys), pointer :: ctei_r(:) => null() !<
+ real (kind=kind_phys), pointer :: ctei_rml(:) => null() !<
+ real (kind=kind_phys), pointer :: cumabs(:) => null() !<
+ real (kind=kind_phys), pointer :: dd_mf(:,:) => null() !<
+ real (kind=kind_phys), pointer :: de_lgth(:) => null() !<
+ real (kind=kind_phys), pointer :: del(:,:) => null() !<
+ real (kind=kind_phys), pointer :: del_gz(:,:) => null() !<
+ real (kind=kind_phys), pointer :: delr(:,:) => null() !<
+ real (kind=kind_phys), pointer :: dlength(:) => null() !<
+ real (kind=kind_phys), pointer :: dqdt(:,:,:) => null() !<
+ real (kind=kind_phys), pointer :: dqsfc1(:) => null() !<
+ real (kind=kind_phys), pointer :: drain(:) => null() !<
+ real (kind=kind_phys), pointer :: dtdt(:,:) => null() !<
+ real (kind=kind_phys), pointer :: dtsfc1(:) => null() !<
+ real (kind=kind_phys), pointer :: dtzm(:) => null() !<
+ real (kind=kind_phys), pointer :: dt_mf(:,:) => null() !<
+ real (kind=kind_phys), pointer :: dudt(:,:) => null() !<
+ real (kind=kind_phys), pointer :: dusfcg(:) => null() !<
+ real (kind=kind_phys), pointer :: dusfc1(:) => null() !<
+ real (kind=kind_phys), pointer :: dvdftra(:,:,:) => null() !<
+ real (kind=kind_phys), pointer :: dvdt(:,:) => null() !<
+ real (kind=kind_phys), pointer :: dvsfcg(:) => null() !<
+ real (kind=kind_phys), pointer :: dvsfc1(:) => null() !<
+ real (kind=kind_phys), pointer :: dzlyr(:,:) => null() !<
+ real (kind=kind_phys), pointer :: elvmax(:) => null() !<
+ real (kind=kind_phys), pointer :: ep1d(:) => null() !<
+ real (kind=kind_phys), pointer :: ep1d_ice(:) => null() !<
+ real (kind=kind_phys), pointer :: ep1d_land(:) => null() !<
+ real (kind=kind_phys), pointer :: ep1d_water(:) => null() !<
+ real (kind=kind_phys), pointer :: evap_ice(:) => null() !<
+ real (kind=kind_phys), pointer :: evap_land(:) => null() !<
+ real (kind=kind_phys), pointer :: evap_water(:) => null() !<
+ real (kind=kind_phys), pointer :: evbs(:) => null() !<
+ real (kind=kind_phys), pointer :: evcw(:) => null() !<
+ real (kind=kind_phys), pointer :: pah(:) => null() !<
+ real (kind=kind_phys), pointer :: ecan(:) => null() !<
+ real (kind=kind_phys), pointer :: etran(:) => null() !<
+ real (kind=kind_phys), pointer :: edir(:) => null() !<
+ real (kind=kind_phys), pointer :: faerlw(:,:,:,:) => null() !<
+ real (kind=kind_phys), pointer :: faersw(:,:,:,:) => null() !<
+ real (kind=kind_phys), pointer :: ffhh_ice(:) => null() !<
+ real (kind=kind_phys), pointer :: ffhh_land(:) => null() !<
+ real (kind=kind_phys), pointer :: ffhh_water(:) => null() !<
+ real (kind=kind_phys), pointer :: fh2(:) => null() !<
+ real (kind=kind_phys), pointer :: fh2_ice(:) => null() !<
+ real (kind=kind_phys), pointer :: fh2_land(:) => null() !<
+ real (kind=kind_phys), pointer :: fh2_water(:) => null() !<
+ logical, pointer :: flag_cice(:) => null() !<
+ logical, pointer :: flag_guess(:) => null() !<
+ logical, pointer :: flag_iter(:) => null() !<
+ real (kind=kind_phys), pointer :: ffmm_ice(:) => null() !<
+ real (kind=kind_phys), pointer :: ffmm_land(:) => null() !<
+ real (kind=kind_phys), pointer :: ffmm_water(:) => null() !<
+ real (kind=kind_phys), pointer :: fm10(:) => null() !<
+ real (kind=kind_phys), pointer :: fm10_ice(:) => null() !<
+ real (kind=kind_phys), pointer :: fm10_land(:) => null() !<
+ real (kind=kind_phys), pointer :: fm10_water(:) => null() !<
+ real (kind=kind_phys) :: frain !<
+ real (kind=kind_phys), pointer :: frland(:) => null() !<
+ real (kind=kind_phys), pointer :: fscav(:) => null() !<
+ real (kind=kind_phys), pointer :: fswtr(:) => null() !<
+ real (kind=kind_phys), pointer :: gabsbdlw(:) => null() !<
+ real (kind=kind_phys), pointer :: gabsbdlw_ice(:) => null() !<
+ real (kind=kind_phys), pointer :: gabsbdlw_land(:) => null() !<
+ real (kind=kind_phys), pointer :: gabsbdlw_water(:) => null() !<
+ real (kind=kind_phys), pointer :: gamma(:) => null() !<
+ real (kind=kind_phys), pointer :: gamq(:) => null() !<
+ real (kind=kind_phys), pointer :: gamt(:) => null() !<
+ real (kind=kind_phys), pointer :: gasvmr(:,:,:) => null() !<
+ real (kind=kind_phys), pointer :: gflx(:) => null() !<
+ real (kind=kind_phys), pointer :: gflx_ice(:) => null() !<
+ real (kind=kind_phys), pointer :: gflx_land(:) => null() !<
+ real (kind=kind_phys), pointer :: gflx_water(:) => null() !<
+ real (kind=kind_phys), pointer :: graupelmp(:) => null() !<
+ real (kind=kind_phys), pointer :: gwdcu(:,:) => null() !<
+ real (kind=kind_phys), pointer :: gwdcv(:,:) => null() !<
+ real (kind=kind_phys), pointer :: zvfun(:) => null() !<
+ real (kind=kind_phys), pointer :: hffac(:) => null() !<
+ real (kind=kind_phys), pointer :: hflxq(:) => null() !<
+ real (kind=kind_phys), pointer :: hflx_ice(:) => null() !<
+ real (kind=kind_phys), pointer :: hflx_land(:) => null() !<
+ real (kind=kind_phys), pointer :: hflx_water(:) => null() !<
+ !--- radiation variables that need to be carried over from radiation to physics
+ real (kind=kind_phys), pointer :: htlwc(:,:) => null() !<
+ real (kind=kind_phys), pointer :: htlw0(:,:) => null() !<
+ real (kind=kind_phys), pointer :: htswc(:,:) => null() !<
+ real (kind=kind_phys), pointer :: htsw0(:,:) => null() !<
+ !
+ real (kind=kind_phys), pointer :: icemp(:) => null() !<
+ logical, pointer :: dry(:) => null() !<
+ integer, pointer :: idxday(:) => null() !<
+ logical, pointer :: icy(:) => null() !<
+ logical, pointer :: lake(:) => null() !<
+ logical, pointer :: use_flake(:) => null() !<
+ logical, pointer :: ocean(:) => null() !<
+ integer :: ipr !<
+ integer, pointer :: islmsk(:) => null() !<
+ integer, pointer :: islmsk_cice(:) => null() !<
+ integer :: itc !<
+ logical, pointer :: wet(:) => null() !<
+ integer :: kb !<
+ integer, pointer :: kbot(:) => null() !<
+ integer, pointer :: kcnv(:) => null() !<
+ integer :: kd !<
+ integer, pointer :: kinver(:) => null() !<
+ integer, pointer :: kpbl(:) => null() !<
+ integer :: kt !<
+ integer, pointer :: ktop(:) => null() !<
+ integer :: latidxprnt !<
+ integer :: levi !<
+ integer :: lmk !<
+ integer :: lmp !<
+ integer, pointer :: mbota(:,:) => null() !<
+ logical :: mg3_as_mg2 !<
+ integer, pointer :: mtopa(:,:) => null() !<
+ integer :: nbdlw !<
+ integer :: nbdsw !<
+ real (kind=kind_phys), pointer :: ncgl(:,:) => null() !<
+ real (kind=kind_phys), pointer :: ncpi(:,:) => null() !<
+ real (kind=kind_phys), pointer :: ncpl(:,:) => null() !<
+ real (kind=kind_phys), pointer :: ncpr(:,:) => null() !<
+ real (kind=kind_phys), pointer :: ncps(:,:) => null() !<
+ integer :: ncstrac !<
+ integer :: nday !<
+ integer :: nf_aelw !<
+ integer :: nf_aesw !<
+ integer :: nn !<
+ integer :: nsamftrac !<
+ integer :: nscav !<
+ integer :: nspc1 !<
+ integer :: ntcwx !<
+ integer :: ntiwx !<
+ integer :: ntrwx !<
+ integer :: ntk !<
+ integer :: ntkev !<
+ integer :: nvdiff !<
+ real (kind=kind_phys), pointer :: oa4(:,:) => null() !<
+ real (kind=kind_phys), pointer :: oc(:) => null() !<
+ real (kind=kind_phys), pointer :: olyr(:,:) => null() !<
+ logical , pointer :: otspt(:,:) => null() !<
+ logical , pointer :: otsptflag(:) => null() !<
+ integer :: oz_coeffp5 !<
+ logical :: phys_hydrostatic !<
+ real (kind=kind_phys), pointer :: plvl(:,:) => null() !<
+ real (kind=kind_phys), pointer :: plyr(:,:) => null() !<
+ real (kind=kind_phys), pointer :: prcpmp(:) => null() !<
+ real (kind=kind_phys), pointer :: prnum(:,:) => null() !<
+ real (kind=kind_phys), pointer :: q2mp(:) => null() !<
+ real (kind=kind_phys), pointer :: qgl(:,:) => null() !<
+ real (kind=kind_phys), pointer :: qicn(:,:) => null() !<
+ real (kind=kind_phys), pointer :: qlcn(:,:) => null() !<
+ real (kind=kind_phys), pointer :: qlyr(:,:) => null() !<
+ real (kind=kind_phys), pointer :: qrn(:,:) => null() !<
+ real (kind=kind_phys), pointer :: qsnw(:,:) => null() !<
+ real (kind=kind_phys), pointer :: qss_ice(:) => null() !<
+ real (kind=kind_phys), pointer :: qss_land(:) => null() !<
+ real (kind=kind_phys), pointer :: qss_water(:) => null() !<
+ logical :: radar_reset !<
+ real (kind=kind_phys) :: raddt !<
+ real (kind=kind_phys), pointer :: rainmp(:) => null() !<
+ real (kind=kind_phys), pointer :: raincd(:) => null() !<
+ real (kind=kind_phys), pointer :: raincs(:) => null() !<
+ real (kind=kind_phys), pointer :: rainmcadj(:) => null() !<
+ real (kind=kind_phys), pointer :: rainp(:,:) => null() !<
+ real (kind=kind_phys), pointer :: rb(:) => null() !<
+ real (kind=kind_phys), pointer :: rb_ice(:) => null() !<
+ real (kind=kind_phys), pointer :: rb_land(:) => null() !<
+ real (kind=kind_phys), pointer :: rb_water(:) => null() !<
+ logical :: max_hourly_reset !<
+ logical :: ext_diag_thompson_reset !<
+ real (kind=kind_phys), pointer :: rhc(:,:) => null() !<
+ real (kind=kind_phys), pointer :: runoff(:) => null() !<
+ real (kind=kind_phys), pointer :: save_q(:,:,:) => null() !<
+ real (kind=kind_phys), pointer :: save_t(:,:) => null() !<
+ real (kind=kind_phys), pointer :: save_tcp(:,:) => null() !<
+ real (kind=kind_phys), pointer :: save_u(:,:) => null() !<
+ real (kind=kind_phys), pointer :: save_v(:,:) => null() !<
+ real (kind=kind_phys), pointer :: sbsno(:) => null() !<
+ type (cmpfsw_type), pointer :: scmpsw(:) => null() !<
+ real (kind=kind_phys), pointer :: sfcalb(:,:) => null() !<
+ real (kind=kind_phys), pointer :: sigma(:) => null() !<
+ real (kind=kind_phys), pointer :: sigmaf(:) => null() !<
+ real (kind=kind_phys), pointer :: sigmafrac(:,:) => null() !<
+ real (kind=kind_phys), pointer :: sigmatot(:,:) => null() !<
+ logical :: skip_macro !<
+ real (kind=kind_phys), pointer :: snowc(:) => null() !<
+ real (kind=kind_phys), pointer :: snohf(:) => null() !<
+ real (kind=kind_phys), pointer :: snowmp(:) => null() !<
+ real (kind=kind_phys), pointer :: snowmt(:) => null() !<
+ real (kind=kind_phys), pointer :: stress(:) => null() !<
+ real (kind=kind_phys), pointer :: stress_ice(:) => null() !<
+ real (kind=kind_phys), pointer :: stress_land(:) => null() !<
+ real (kind=kind_phys), pointer :: stress_water(:) => null() !<
+ real (kind=kind_phys), pointer :: t2mmp(:) => null() !<
+ real (kind=kind_phys), pointer :: theta(:) => null() !<
+ real (kind=kind_phys), pointer :: tlvl(:,:) => null() !<
+ real (kind=kind_phys), pointer :: tlyr(:,:) => null() !<
+ real (kind=kind_phys), pointer :: tprcp_ice(:) => null() !<
+ real (kind=kind_phys), pointer :: tprcp_land(:) => null() !<
+ real (kind=kind_phys), pointer :: tprcp_water(:) => null() !<
+ integer :: tracers_start_index !<
+ integer :: tracers_total !<
+ integer :: tracers_water !<
+ logical :: trans_aero !<
+ real (kind=kind_phys), pointer :: trans(:) => null() !<
+ real (kind=kind_phys), pointer :: tseal(:) => null() !<
+ real (kind=kind_phys), pointer :: tsfa(:) => null() !<
+ real (kind=kind_phys), pointer :: tsfc_water(:) => null() !<
+ real (kind=kind_phys), pointer :: tsfg(:) => null() !<
+ real (kind=kind_phys), pointer :: tsurf_ice(:) => null() !<
+ real (kind=kind_phys), pointer :: tsurf_land(:) => null() !<
+ real (kind=kind_phys), pointer :: tsurf_water(:) => null() !<
+ real (kind=kind_phys), pointer :: ud_mf(:,:) => null() !<
+ real (kind=kind_phys), pointer :: uustar_ice(:) => null() !<
+ real (kind=kind_phys), pointer :: uustar_land(:) => null() !<
+ real (kind=kind_phys), pointer :: uustar_water(:) => null() !<
+ real (kind=kind_phys), pointer :: vdftra(:,:,:) => null() !<
+ real (kind=kind_phys), pointer :: vegf1d(:) => null() !<
+ real (kind=kind_phys) :: lndp_vgf !<
+
+ real (kind=kind_phys), pointer :: w_upi(:,:) => null() !<
+ real (kind=kind_phys), pointer :: wcbmax(:) => null() !<
+ real (kind=kind_phys), pointer :: wind(:) => null() !<
+ real (kind=kind_phys), pointer :: work1(:) => null() !<
+ real (kind=kind_phys), pointer :: work2(:) => null() !<
+ real (kind=kind_phys), pointer :: work3(:) => null() !<
+ real (kind=kind_phys), pointer :: xcosz(:) => null() !<
+ real (kind=kind_phys), pointer :: xlai1d(:) => null() !<
+ real (kind=kind_phys), pointer :: xmu(:) => null() !<
+ real (kind=kind_phys), pointer :: z01d(:) => null() !<
+ real (kind=kind_phys), pointer :: zt1d(:) => null() !<
+ real (kind=kind_phys), pointer :: ztmax_ice(:) => null() !<
+ real (kind=kind_phys), pointer :: ztmax_land(:) => null() !<
+ real (kind=kind_phys), pointer :: ztmax_water(:) => null() !<
+!==================================================================================================
+! UGWP - five mechnanisms of momentum deposition due to various types of GWs
+! (oss, ofd, obl, ogw) + ngw = sum( sso + ngw)
+!==================================================================================================
+! nGWs
+ real (kind=kind_phys), pointer :: dudt_ngw(:,:) => null() !<
+ real (kind=kind_phys), pointer :: dvdt_ngw(:,:) => null() !<
+ real (kind=kind_phys), pointer :: dtdt_ngw(:,:) => null() !<
+ real (kind=kind_phys), pointer :: kdis_ngw(:,:) => null() !<
+
+ real (kind=kind_phys), pointer :: tau_oss(: ) => null() !< instantaneous momentum flux due to OSS
+ real (kind=kind_phys), pointer :: tau_tofd(:) => null() !< instantaneous momentum flux due to TOFD
+ real (kind=kind_phys), pointer :: tau_mtb(:) => null() !< instantaneous momentum of mountain blocking drag
+ real (kind=kind_phys), pointer :: tau_ogw(:) => null() !< instantaneous momentum flux of OGWs
+ real (kind=kind_phys), pointer :: tau_ngw(:) => null() !< instantaneous momentum flux of NGWs
+
+ real (kind=kind_phys), pointer :: zngw(:) => null() !< launch levels of NGWs
+ real (kind=kind_phys), pointer :: zmtb(:) => null() !< mountain blocking height
+ real (kind=kind_phys), pointer :: zlwb(:) => null() !< low level wave breaking height
+ real (kind=kind_phys), pointer :: zogw(:) => null() !< height of OGW-launch
+
+ real (kind=kind_phys), pointer :: dudt_mtb(:,:) => null() !< daily aver u-wind tend due to mountain blocking
+ real (kind=kind_phys), pointer :: dudt_tms(:,:) => null() !< daily aver u-wind tend due to TMS
+
+ ! RRTMGP
+ real (kind=kind_phys), pointer :: p_lay(:,:) => null() !<
+ real (kind=kind_phys), pointer :: p_lev(:,:) => null() !<
+ real (kind=kind_phys), pointer :: t_lev(:,:) => null() !<
+ real (kind=kind_phys), pointer :: t_lay(:,:) => null() !<
+ real (kind=kind_phys), pointer :: relhum(:,:) => null() !<
+ real (kind=kind_phys), pointer :: tv_lay(:,:) => null() !<
+ real (kind=kind_phys), pointer :: qs_lay(:,:) => null() !<
+ real (kind=kind_phys), pointer :: q_lay(:,:) => null() !<
+ real (kind=kind_phys), pointer :: deltaZ(:,:) => null() !<
+ real (kind=kind_phys), pointer :: deltaZc(:,:) => null() !<
+ real (kind=kind_phys), pointer :: deltaP(:,:) => null() !<
+ real (kind=kind_phys), pointer :: cloud_overlap_param(:,:) => null() !< Cloud overlap parameter
+ real (kind=kind_phys), pointer :: cnv_cloud_overlap_param(:,:) => null() !< Convective cloud overlap parameter
+ real (kind=kind_phys), pointer :: precip_overlap_param(:,:) => null() !< Precipitation overlap parameter
+ real (kind=kind_phys), pointer :: tracer(:,:,:) => null() !<
+ real (kind=kind_phys), pointer :: aerosolslw(:,:,:,:) => null() !< Aerosol radiative properties in each LW band.
+ real (kind=kind_phys), pointer :: aerosolssw(:,:,:,:) => null() !< Aerosol radiative properties in each SW band.
+ real (kind=kind_phys), pointer :: cld_frac(:,:) => null() !< Total cloud fraction
+ real (kind=kind_phys), pointer :: cld_lwp(:,:) => null() !< Cloud liquid water path
+ real (kind=kind_phys), pointer :: cld_reliq(:,:) => null() !< Cloud liquid effective radius
+ real (kind=kind_phys), pointer :: cld_iwp(:,:) => null() !< Cloud ice water path
+ real (kind=kind_phys), pointer :: cld_reice(:,:) => null() !< Cloud ice effecive radius
+ real (kind=kind_phys), pointer :: cld_swp(:,:) => null() !< Cloud snow water path
+ real (kind=kind_phys), pointer :: cld_resnow(:,:) => null() !< Cloud snow effective radius
+ real (kind=kind_phys), pointer :: cld_rwp(:,:) => null() !< Cloud rain water path
+ real (kind=kind_phys), pointer :: cld_rerain(:,:) => null() !< Cloud rain effective radius
+ real (kind=kind_phys), pointer :: precip_frac(:,:) => null() !< Precipitation fraction
+ real (kind=kind_phys), pointer :: cld_cnv_frac(:,:) => null() !< SGS convective cloud fraction
+ real (kind=kind_phys), pointer :: cld_cnv_lwp(:,:) => null() !< SGS convective cloud liquid water path
+ real (kind=kind_phys), pointer :: cld_cnv_reliq(:,:) => null() !< SGS convective cloud liquid effective radius
+ real (kind=kind_phys), pointer :: cld_cnv_iwp(:,:) => null() !< SGS convective cloud ice water path
+ real (kind=kind_phys), pointer :: cld_cnv_reice(:,:) => null() !< SGS convective cloud ice effecive radius
+ real (kind=kind_phys), pointer :: cld_pbl_lwp(:,:) => null() !< SGS PBL cloud liquid water path
+ real (kind=kind_phys), pointer :: cld_pbl_reliq(:,:) => null() !< SGS PBL cloud liquid effective radius
+ real (kind=kind_phys), pointer :: cld_pbl_iwp(:,:) => null() !< SGS PBL cloud ice water path
+ real (kind=kind_phys), pointer :: cld_pbl_reice(:,:) => null() !< SGS PBL cloud ice effecive radius
+ real (kind=kind_phys), pointer :: fluxlwUP_allsky(:,:) => null() !< RRTMGP upward longwave all-sky flux profile
+ real (kind=kind_phys), pointer :: fluxlwDOWN_allsky(:,:) => null() !< RRTMGP downward longwave all-sky flux profile
+ real (kind=kind_phys), pointer :: fluxlwUP_clrsky(:,:) => null() !< RRTMGP upward longwave clr-sky flux profile
+ real (kind=kind_phys), pointer :: fluxlwDOWN_clrsky(:,:) => null() !< RRTMGP downward longwave clr-sky flux profile
+ real (kind=kind_phys), pointer :: fluxswUP_allsky(:,:) => null() !< RRTMGP upward shortwave all-sky flux profile
+ real (kind=kind_phys), pointer :: fluxswDOWN_allsky(:,:) => null() !< RRTMGP downward shortwave all-sky flux profile
+ real (kind=kind_phys), pointer :: fluxswUP_clrsky(:,:) => null() !< RRTMGP upward shortwave clr-sky flux profile
+ real (kind=kind_phys), pointer :: fluxswDOWN_clrsky(:,:) => null() !< RRTMGP downward shortwave clr-sky flux profile
+ real (kind=kind_phys), pointer :: sfc_emiss_byband(:,:) => null() !<
+ real (kind=kind_phys), pointer :: sec_diff_byband(:,:) => null() !<
+ real (kind=kind_phys), pointer :: sfc_alb_nir_dir(:,:) => null() !<
+ real (kind=kind_phys), pointer :: sfc_alb_nir_dif(:,:) => null() !<
+ real (kind=kind_phys), pointer :: sfc_alb_uvvis_dir(:,:) => null() !<
+ real (kind=kind_phys), pointer :: sfc_alb_uvvis_dif(:,:) => null() !<
+ real (kind=kind_phys), pointer :: toa_src_lw(:,:) => null() !<
+ real (kind=kind_phys), pointer :: toa_src_sw(:,:) => null() !<
+ type(proflw_type), pointer :: flxprf_lw(:,:) => null() !< DDT containing RRTMGP longwave fluxes
+ type(profsw_type), pointer :: flxprf_sw(:,:) => null() !< DDT containing RRTMGP shortwave fluxes
+ type(ty_optical_props_2str) :: lw_optical_props_cloudsByBand !< RRTMGP DDT
+ type(ty_optical_props_2str) :: lw_optical_props_clouds !< RRTMGP DDT
+ type(ty_optical_props_2str) :: lw_optical_props_precipByBand !< RRTMGP DDT
+ type(ty_optical_props_2str) :: lw_optical_props_precip !< RRTMGP DDT
+ type(ty_optical_props_2str) :: lw_optical_props_cnvcloudsByBand !< RRTMGP DDT
+ type(ty_optical_props_2str) :: lw_optical_props_cnvclouds !< RRTMGP DDT
+ type(ty_optical_props_2str) :: lw_optical_props_MYNNcloudsByBand !< RRTMGP DDT
+ type(ty_optical_props_1scl) :: lw_optical_props_clrsky !< RRTMGP DDT
+ type(ty_optical_props_1scl) :: lw_optical_props_aerosol !< RRTMGP DDT
+ type(ty_optical_props_2str) :: sw_optical_props_cloudsByBand !< RRTMGP DDT
+ type(ty_optical_props_2str) :: sw_optical_props_clouds !< RRTMGP DDT
+ type(ty_optical_props_2str) :: sw_optical_props_precipByBand !< RRTMGP DDT
+ type(ty_optical_props_2str) :: sw_optical_props_precip !< RRTMGP DDT
+ type(ty_optical_props_2str) :: sw_optical_props_clrsky !< RRTMGP DDT
+ type(ty_optical_props_2str) :: sw_optical_props_aerosol !< RRTMGP DDT
+ type(ty_optical_props_2str) :: sw_optical_props_cnvcloudsByBand !< RRTMGP DDT
+ type(ty_optical_props_2str) :: sw_optical_props_cnvclouds !< RRTMGP DDT
+ type(ty_optical_props_2str) :: sw_optical_props_MYNNcloudsByBand !< RRTMGP DDT
+ type(ty_gas_concs) :: gas_concentrations !< RRTMGP DDT
+ type(ty_source_func_lw) :: sources !< RRTMGP DDT
+
+ !-- GSL drag suite
+ real (kind=kind_phys), pointer :: varss(:) => null() !<
+ real (kind=kind_phys), pointer :: ocss(:) => null() !<
+ real (kind=kind_phys), pointer :: oa4ss(:,:) => null() !<
+ real (kind=kind_phys), pointer :: clxss(:,:) => null() !<
+
+ !-- 3D diagnostics
+ integer :: rtg_ozone_index, rtg_tke_index
+
+ contains
+
+ procedure :: create => gfs_interstitial_create !< allocate array data
+ procedure :: rad_reset => gfs_interstitial_rad_reset !< reset array data for radiation
+ procedure :: phys_reset => gfs_interstitial_phys_reset !< reset array data for physics
+
+ end type GFS_interstitial_type
+
+contains
+
+!----------------------
+! GFS_interstitial_type
+!----------------------
+
+ subroutine gfs_interstitial_create (Interstitial, IM, Model)
+ !
+ implicit none
+ !
+ class(GFS_interstitial_type) :: Interstitial
+ integer, intent(in) :: IM
+ type(GFS_control_type), intent(in) :: Model
+ integer :: iGas
+ !
+ allocate (Interstitial%otspt (Model%ntracp1,2))
+ allocate (Interstitial%otsptflag (Model%ntrac))
+ ! Set up numbers of tracers for PBL, convection, etc: sets
+ ! Interstitial%{nvdiff,mg3_as_mg2,nn,tracers_total,ntcwx,ntiwx,ntk,ntkev,otspt,nsamftrac,ncstrac,nscav}
+ call gfs_interstitial_setup_tracers(Interstitial, Model)
+ ! Allocate arrays
+ allocate (Interstitial%adjsfculw_land (IM))
+ allocate (Interstitial%adjsfculw_ice (IM))
+ allocate (Interstitial%adjsfculw_water (IM))
+ allocate (Interstitial%adjnirbmd (IM))
+ allocate (Interstitial%adjnirbmu (IM))
+ allocate (Interstitial%adjnirdfd (IM))
+ allocate (Interstitial%adjnirdfu (IM))
+ allocate (Interstitial%adjvisbmd (IM))
+ allocate (Interstitial%adjvisbmu (IM))
+ allocate (Interstitial%adjvisdfu (IM))
+ allocate (Interstitial%adjvisdfd (IM))
+ allocate (Interstitial%aerodp (IM,NSPC1))
+ allocate (Interstitial%alb1d (IM))
+ if (.not. Model%do_RRTMGP) then
+ ! RRTMGP uses its own cloud_overlap_param
+ allocate (Interstitial%alpha (IM,Model%levr+LTP))
+ end if
+ allocate (Interstitial%bexp1d (IM))
+ allocate (Interstitial%cd (IM))
+ allocate (Interstitial%cd_ice (IM))
+ allocate (Interstitial%cd_land (IM))
+ allocate (Interstitial%cd_water (IM))
+ allocate (Interstitial%cdq (IM))
+ allocate (Interstitial%cdq_ice (IM))
+ allocate (Interstitial%cdq_land (IM))
+ allocate (Interstitial%cdq_water (IM))
+ allocate (Interstitial%chh_ice (IM))
+ allocate (Interstitial%chh_land (IM))
+ allocate (Interstitial%chh_water (IM))
+ allocate (Interstitial%cldf (IM))
+ allocate (Interstitial%cldsa (IM,5))
+ allocate (Interstitial%cldtaulw (IM,Model%levr+LTP))
+ allocate (Interstitial%cldtausw (IM,Model%levr+LTP))
+ allocate (Interstitial%cld1d (IM))
+ allocate (Interstitial%clouds (IM,Model%levr+LTP,NF_CLDS))
+ allocate (Interstitial%clw (IM,Model%levs,Interstitial%nn))
+ allocate (Interstitial%clx (IM,4))
+ allocate (Interstitial%cmm_ice (IM))
+ allocate (Interstitial%cmm_land (IM))
+ allocate (Interstitial%cmm_water (IM))
+ allocate (Interstitial%cnvc (IM,Model%levs))
+ allocate (Interstitial%cnvw (IM,Model%levs))
+ allocate (Interstitial%ctei_r (IM))
+ allocate (Interstitial%ctei_rml (IM))
+ allocate (Interstitial%cumabs (IM))
+ allocate (Interstitial%dd_mf (IM,Model%levs))
+ allocate (Interstitial%de_lgth (IM))
+ allocate (Interstitial%del (IM,Model%levs))
+ allocate (Interstitial%del_gz (IM,Model%levs+1))
+ allocate (Interstitial%delr (IM,Model%levr+LTP))
+ allocate (Interstitial%dlength (IM))
+ allocate (Interstitial%dqdt (IM,Model%levs,Model%ntrac))
+ allocate (Interstitial%dqsfc1 (IM))
+ allocate (Interstitial%drain (IM))
+ allocate (Interstitial%dtdt (IM,Model%levs))
+ allocate (Interstitial%dtsfc1 (IM))
+ allocate (Interstitial%dt_mf (IM,Model%levs))
+ allocate (Interstitial%dtzm (IM))
+ allocate (Interstitial%dudt (IM,Model%levs))
+ allocate (Interstitial%dusfcg (IM))
+ allocate (Interstitial%dusfc1 (IM))
+ allocate (Interstitial%dvdt (IM,Model%levs))
+ allocate (Interstitial%dvsfcg (IM))
+ allocate (Interstitial%dvsfc1 (IM))
+ allocate (Interstitial%dvdftra (IM,Model%levs,Interstitial%nvdiff))
+ allocate (Interstitial%dzlyr (IM,Model%levr+LTP))
+ allocate (Interstitial%elvmax (IM))
+ allocate (Interstitial%ep1d (IM))
+ allocate (Interstitial%ep1d_ice (IM))
+ allocate (Interstitial%ep1d_land (IM))
+ allocate (Interstitial%ep1d_water (IM))
+ allocate (Interstitial%evap_ice (IM))
+ allocate (Interstitial%evap_land (IM))
+ allocate (Interstitial%evap_water (IM))
+ allocate (Interstitial%evbs (IM))
+ allocate (Interstitial%evcw (IM))
+ allocate (Interstitial%pah (IM))
+ allocate (Interstitial%ecan (IM))
+ allocate (Interstitial%etran (IM))
+ allocate (Interstitial%edir (IM))
+ allocate (Interstitial%faerlw (IM,Model%levr+LTP,NBDLW,NF_AELW))
+ allocate (Interstitial%faersw (IM,Model%levr+LTP,NBDSW,NF_AESW))
+ allocate (Interstitial%ffhh_ice (IM))
+ allocate (Interstitial%ffhh_land (IM))
+ allocate (Interstitial%ffhh_water (IM))
+ allocate (Interstitial%fh2 (IM))
+ allocate (Interstitial%fh2_ice (IM))
+ allocate (Interstitial%fh2_land (IM))
+ allocate (Interstitial%fh2_water (IM))
+ allocate (Interstitial%flag_cice (IM))
+ allocate (Interstitial%flag_guess (IM))
+ allocate (Interstitial%flag_iter (IM))
+ allocate (Interstitial%ffmm_ice (IM))
+ allocate (Interstitial%ffmm_land (IM))
+ allocate (Interstitial%ffmm_water (IM))
+ allocate (Interstitial%fm10 (IM))
+ allocate (Interstitial%fm10_ice (IM))
+ allocate (Interstitial%fm10_land (IM))
+ allocate (Interstitial%fm10_water (IM))
+ allocate (Interstitial%frland (IM))
+ allocate (Interstitial%fscav (Interstitial%nscav))
+ allocate (Interstitial%fswtr (Interstitial%nscav))
+ allocate (Interstitial%gabsbdlw (IM))
+ allocate (Interstitial%gabsbdlw_ice (IM))
+ allocate (Interstitial%gabsbdlw_land (IM))
+ allocate (Interstitial%gabsbdlw_water (IM))
+ allocate (Interstitial%gamma (IM))
+ allocate (Interstitial%gamq (IM))
+ allocate (Interstitial%gamt (IM))
+ allocate (Interstitial%gasvmr (IM,Model%levr+LTP,NF_VGAS))
+ allocate (Interstitial%gflx (IM))
+ allocate (Interstitial%gflx_ice (IM))
+ allocate (Interstitial%gflx_land (IM))
+ allocate (Interstitial%gflx_water (IM))
+ allocate (Interstitial%gwdcu (IM,Model%levs))
+ allocate (Interstitial%gwdcv (IM,Model%levs))
+ allocate (Interstitial%zvfun (IM))
+ allocate (Interstitial%hffac (IM))
+ allocate (Interstitial%hflxq (IM))
+ allocate (Interstitial%hflx_ice (IM))
+ allocate (Interstitial%hflx_land (IM))
+ allocate (Interstitial%hflx_water (IM))
+ allocate (Interstitial%htlwc (IM,Model%levr+LTP))
+ allocate (Interstitial%htlw0 (IM,Model%levr+LTP))
+ allocate (Interstitial%htswc (IM,Model%levr+LTP))
+ allocate (Interstitial%htsw0 (IM,Model%levr+LTP))
+ allocate (Interstitial%dry (IM))
+ allocate (Interstitial%idxday (IM))
+ allocate (Interstitial%icy (IM))
+ allocate (Interstitial%lake (IM))
+ allocate (Interstitial%use_flake (IM))
+ allocate (Interstitial%ocean (IM))
+ allocate (Interstitial%islmsk (IM))
+ allocate (Interstitial%islmsk_cice (IM))
+ allocate (Interstitial%wet (IM))
+ allocate (Interstitial%kbot (IM))
+ allocate (Interstitial%kcnv (IM))
+ allocate (Interstitial%kinver (IM))
+ allocate (Interstitial%kpbl (IM))
+ allocate (Interstitial%ktop (IM))
+ allocate (Interstitial%mbota (IM,3))
+ allocate (Interstitial%mtopa (IM,3))
+ allocate (Interstitial%oa4 (IM,4))
+ allocate (Interstitial%oc (IM))
+ allocate (Interstitial%olyr (IM,Model%levr+LTP))
+ allocate (Interstitial%plvl (IM,Model%levr+1+LTP))
+ allocate (Interstitial%plyr (IM,Model%levr+LTP))
+ allocate (Interstitial%prnum (IM,Model%levs))
+ allocate (Interstitial%qlyr (IM,Model%levr+LTP))
+ allocate (Interstitial%prcpmp (IM))
+ allocate (Interstitial%qss_ice (IM))
+ allocate (Interstitial%qss_land (IM))
+ allocate (Interstitial%qss_water (IM))
+ allocate (Interstitial%raincd (IM))
+ allocate (Interstitial%raincs (IM))
+ allocate (Interstitial%rainmcadj (IM))
+ allocate (Interstitial%rainp (IM,Model%levs))
+ allocate (Interstitial%rb (IM))
+ allocate (Interstitial%rb_ice (IM))
+ allocate (Interstitial%rb_land (IM))
+ allocate (Interstitial%rb_water (IM))
+ allocate (Interstitial%rhc (IM,Model%levs))
+ allocate (Interstitial%runoff (IM))
+ allocate (Interstitial%save_q (IM,Model%levs,Model%ntrac))
+ allocate (Interstitial%save_t (IM,Model%levs))
+ allocate (Interstitial%save_tcp (IM,Model%levs))
+ allocate (Interstitial%save_u (IM,Model%levs))
+ allocate (Interstitial%save_v (IM,Model%levs))
+ allocate (Interstitial%sbsno (IM))
+ allocate (Interstitial%scmpsw (IM))
+ allocate (Interstitial%sfcalb (IM,NF_ALBD))
+ allocate (Interstitial%sigma (IM))
+ allocate (Interstitial%sigmaf (IM))
+ allocate (Interstitial%sigmafrac (IM,Model%levs))
+ allocate (Interstitial%sigmatot (IM,Model%levs))
+ allocate (Interstitial%snowc (IM))
+ allocate (Interstitial%snohf (IM))
+ allocate (Interstitial%snowmt (IM))
+ allocate (Interstitial%stress (IM))
+ allocate (Interstitial%stress_ice (IM))
+ allocate (Interstitial%stress_land (IM))
+ allocate (Interstitial%stress_water (IM))
+ allocate (Interstitial%theta (IM))
+ allocate (Interstitial%tlvl (IM,Model%levr+1+LTP))
+ allocate (Interstitial%tlyr (IM,Model%levr+LTP))
+ allocate (Interstitial%tprcp_ice (IM))
+ allocate (Interstitial%tprcp_land (IM))
+ allocate (Interstitial%tprcp_water (IM))
+ allocate (Interstitial%trans (IM))
+ allocate (Interstitial%tseal (IM))
+ allocate (Interstitial%tsfa (IM))
+ allocate (Interstitial%tsfc_water (IM))
+ allocate (Interstitial%tsfg (IM))
+ allocate (Interstitial%tsurf_ice (IM))
+ allocate (Interstitial%tsurf_land (IM))
+ allocate (Interstitial%tsurf_water (IM))
+ allocate (Interstitial%ud_mf (IM,Model%levs))
+ allocate (Interstitial%uustar_ice (IM))
+ allocate (Interstitial%uustar_land (IM))
+ allocate (Interstitial%uustar_water (IM))
+ allocate (Interstitial%vdftra (IM,Model%levs,Interstitial%nvdiff)) !GJF first dimension was set as 'IX' in GFS_physics_driver
+ allocate (Interstitial%vegf1d (IM))
+ allocate (Interstitial%wcbmax (IM))
+ allocate (Interstitial%wind (IM))
+ allocate (Interstitial%work1 (IM))
+ allocate (Interstitial%work2 (IM))
+ allocate (Interstitial%work3 (IM))
+ allocate (Interstitial%xcosz (IM))
+ allocate (Interstitial%xlai1d (IM))
+ allocate (Interstitial%xmu (IM))
+ allocate (Interstitial%z01d (IM))
+ allocate (Interstitial%zt1d (IM))
+ allocate (Interstitial%ztmax_ice (IM))
+ allocate (Interstitial%ztmax_land (IM))
+ allocate (Interstitial%ztmax_water (IM))
+
+ ! RRTMGP
+ if (Model%do_RRTMGP) then
+ allocate (Interstitial%tracer (IM, Model%levs,Model%ntrac))
+ allocate (Interstitial%tv_lay (IM, Model%levs))
+ allocate (Interstitial%relhum (IM, Model%levs))
+ allocate (Interstitial%qs_lay (IM, Model%levs))
+ allocate (Interstitial%q_lay (IM, Model%levs))
+ allocate (Interstitial%deltaZ (IM, Model%levs))
+ allocate (Interstitial%deltaZc (IM, Model%levs))
+ allocate (Interstitial%deltaP (IM, Model%levs))
+ allocate (Interstitial%p_lev (IM, Model%levs+1))
+ allocate (Interstitial%p_lay (IM, Model%levs))
+ allocate (Interstitial%t_lev (IM, Model%levs+1))
+ allocate (Interstitial%t_lay (IM, Model%levs))
+ allocate (Interstitial%cloud_overlap_param (IM, Model%levs))
+ allocate (Interstitial%precip_overlap_param (IM, Model%levs))
+ allocate (Interstitial%fluxlwUP_allsky (IM, Model%levs+1))
+ allocate (Interstitial%fluxlwDOWN_allsky (IM, Model%levs+1))
+ allocate (Interstitial%fluxlwUP_clrsky (IM, Model%levs+1))
+ allocate (Interstitial%fluxlwDOWN_clrsky (IM, Model%levs+1))
+ allocate (Interstitial%fluxswUP_allsky (IM, Model%levs+1))
+ allocate (Interstitial%fluxswDOWN_allsky (IM, Model%levs+1))
+ allocate (Interstitial%fluxswUP_clrsky (IM, Model%levs+1))
+ allocate (Interstitial%fluxswDOWN_clrsky (IM, Model%levs+1))
+ allocate (Interstitial%aerosolslw (IM, Model%levs, Model%rrtmgp_nBandsLW, NF_AELW))
+ allocate (Interstitial%aerosolssw (IM, Model%levs, Model%rrtmgp_nBandsSW, NF_AESW))
+ allocate (Interstitial%cld_frac (IM, Model%levs))
+ allocate (Interstitial%cld_lwp (IM, Model%levs))
+ allocate (Interstitial%cld_reliq (IM, Model%levs))
+ allocate (Interstitial%cld_iwp (IM, Model%levs))
+ allocate (Interstitial%cld_reice (IM, Model%levs))
+ allocate (Interstitial%cld_swp (IM, Model%levs))
+ allocate (Interstitial%cld_resnow (IM, Model%levs))
+ allocate (Interstitial%cld_rwp (IM, Model%levs))
+ allocate (Interstitial%cld_rerain (IM, Model%levs))
+ allocate (Interstitial%precip_frac (IM, Model%levs))
+ allocate (Interstitial%cld_cnv_frac (IM, Model%levs))
+ allocate (Interstitial%cnv_cloud_overlap_param(IM, Model%levs))
+ allocate (Interstitial%cld_cnv_lwp (IM, Model%levs))
+ allocate (Interstitial%cld_cnv_reliq (IM, Model%levs))
+ allocate (Interstitial%cld_cnv_iwp (IM, Model%levs))
+ allocate (Interstitial%cld_cnv_reice (IM, Model%levs))
+ allocate (Interstitial%cld_pbl_lwp (IM, Model%levs))
+ allocate (Interstitial%cld_pbl_reliq (IM, Model%levs))
+ allocate (Interstitial%cld_pbl_iwp (IM, Model%levs))
+ allocate (Interstitial%cld_pbl_reice (IM, Model%levs))
+ allocate (Interstitial%flxprf_lw (IM, Model%levs+1))
+ allocate (Interstitial%flxprf_sw (IM, Model%levs+1))
+ allocate (Interstitial%sfc_emiss_byband (Model%rrtmgp_nBandsLW,IM))
+ allocate (Interstitial%sec_diff_byband (Model%rrtmgp_nBandsLW,IM))
+ allocate (Interstitial%sfc_alb_nir_dir (Model%rrtmgp_nBandsSW,IM))
+ allocate (Interstitial%sfc_alb_nir_dif (Model%rrtmgp_nBandsSW,IM))
+ allocate (Interstitial%sfc_alb_uvvis_dir (Model%rrtmgp_nBandsSW,IM))
+ allocate (Interstitial%sfc_alb_uvvis_dif (Model%rrtmgp_nBandsSW,IM))
+ allocate (Interstitial%toa_src_sw (IM,Model%rrtmgp_nGptsSW))
+ allocate (Interstitial%toa_src_lw (IM,Model%rrtmgp_nGptsLW))
+ !
+ ! gas_concentrations (ty_gas_concs)
+ !
+ Interstitial%gas_concentrations%ncol = IM
+ Interstitial%gas_concentrations%nlay = Model%levs
+ allocate(Interstitial%gas_concentrations%gas_name(Model%nGases))
+ allocate(Interstitial%gas_concentrations%concs(Model%nGases))
+ do iGas=1,Model%nGases
+ allocate(Interstitial%gas_concentrations%concs(iGas)%conc(IM, Model%levs))
+ enddo
+ !
+ ! lw_optical_props_clrsky (ty_optical_props_1scl)
+ !
+ allocate(Interstitial%lw_optical_props_clrsky%tau( IM, Model%levs, Model%rrtmgp_nGptsLW ))
+ allocate(Interstitial%lw_optical_props_clrsky%band2gpt (2, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%lw_optical_props_clrsky%band_lims_wvn(2, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%lw_optical_props_clrsky%gpt2band( Model%rrtmgp_nGptsLW ))
+ !
+ ! lw_optical_props_aerosol (ty_optical_props_1scl)
+ !
+ allocate(Interstitial%lw_optical_props_aerosol%tau( IM, Model%levs, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%lw_optical_props_aerosol%band2gpt (2, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%lw_optical_props_aerosol%band_lims_wvn(2, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%lw_optical_props_aerosol%gpt2band( Model%rrtmgp_nBandsLW ))
+ !
+ ! lw_optical_props_cloudsByBand (ty_optical_props_2str)
+ !
+ allocate(Interstitial%lw_optical_props_cloudsByBand%tau(IM, Model%levs, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%lw_optical_props_cloudsByBand%ssa(IM, Model%levs, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%lw_optical_props_cloudsByBand%g( IM, Model%levs, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%lw_optical_props_cloudsByBand%band2gpt (2, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%lw_optical_props_cloudsByBand%band_lims_wvn(2, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%lw_optical_props_cloudsByBand%gpt2band( Model%rrtmgp_nBandsLW ))
+ !
+ ! lw_optical_props_cnvcloudsByBand (ty_optical_props_2str)
+ !
+ allocate(Interstitial%lw_optical_props_cnvcloudsByBand%tau(IM, Model%levs, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%lw_optical_props_cnvcloudsByBand%ssa(IM, Model%levs, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%lw_optical_props_cnvcloudsByBand%g( IM, Model%levs, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%lw_optical_props_cnvcloudsByBand%band2gpt (2, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%lw_optical_props_cnvcloudsByBand%band_lims_wvn(2, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%lw_optical_props_cnvcloudsByBand%gpt2band( Model%rrtmgp_nBandsLW ))
+ !
+ ! lw_optical_props_MYNNcloudsByBand (ty_optical_props_2str)
+ !
+ allocate(Interstitial%lw_optical_props_MYNNcloudsByBand%tau(IM, Model%levs, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%lw_optical_props_MYNNcloudsByBand%ssa(IM, Model%levs, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%lw_optical_props_MYNNcloudsByBand%g( IM, Model%levs, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%lw_optical_props_MYNNcloudsByBand%band2gpt (2, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%lw_optical_props_MYNNcloudsByBand%band_lims_wvn(2, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%lw_optical_props_MYNNcloudsByBand%gpt2band( Model%rrtmgp_nBandsLW ))
+ !
+ ! lw_optical_props_precipByBand (ty_optical_props_2str)
+ !
+ allocate(Interstitial%lw_optical_props_precipByBand%tau(IM, Model%levs, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%lw_optical_props_precipByBand%ssa(IM, Model%levs, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%lw_optical_props_precipByBand%g( IM, Model%levs, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%lw_optical_props_precipByBand%band2gpt (2, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%lw_optical_props_precipByBand%band_lims_wvn(2, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%lw_optical_props_precipByBand%gpt2band( Model%rrtmgp_nBandsLW ))
+ !
+ ! lw_optical_props_clouds (ty_optical_props_2str)
+ !
+ allocate(Interstitial%lw_optical_props_clouds%tau( IM, Model%levs, Model%rrtmgp_nGptsLW ))
+ allocate(Interstitial%lw_optical_props_clouds%ssa( IM, Model%levs, Model%rrtmgp_nGptsLW ))
+ allocate(Interstitial%lw_optical_props_clouds%g( IM, Model%levs, Model%rrtmgp_nGptsLW ))
+ allocate(Interstitial%lw_optical_props_clouds%band2gpt (2, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%lw_optical_props_clouds%band_lims_wvn(2, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%lw_optical_props_clouds%gpt2band( Model%rrtmgp_nGptsLW ))
+ !
+ ! lw_optical_props_cnvclouds (ty_optical_props_2str)
+ !
+ allocate(Interstitial%lw_optical_props_cnvclouds%tau( IM, Model%levs, Model%rrtmgp_nGptsLW ))
+ allocate(Interstitial%lw_optical_props_cnvclouds%ssa( IM, Model%levs, Model%rrtmgp_nGptsLW ))
+ allocate(Interstitial%lw_optical_props_cnvclouds%g( IM, Model%levs, Model%rrtmgp_nGptsLW ))
+ allocate(Interstitial%lw_optical_props_cnvclouds%band2gpt (2, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%lw_optical_props_cnvclouds%band_lims_wvn(2, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%lw_optical_props_cnvclouds%gpt2band( Model%rrtmgp_nGptsLW ))
+ !
+ ! lw_optical_props_precip (ty_optical_props_2str)
+ !
+ allocate(Interstitial%lw_optical_props_precip%tau( IM, Model%levs, Model%rrtmgp_nGptsLW ))
+ allocate(Interstitial%lw_optical_props_precip%ssa( IM, Model%levs, Model%rrtmgp_nGptsLW ))
+ allocate(Interstitial%lw_optical_props_precip%g( IM, Model%levs, Model%rrtmgp_nGptsLW ))
+ allocate(Interstitial%lw_optical_props_precip%band2gpt (2, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%lw_optical_props_precip%band_lims_wvn(2, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%lw_optical_props_precip%gpt2band( Model%rrtmgp_nGptsLW ))
+ !
+ ! sources (ty_source_func_lw)
+ !
+ allocate(Interstitial%sources%sfc_source( IM, Model%rrtmgp_nGptsLW ))
+ allocate(Interstitial%sources%lay_source( IM, Model%levs, Model%rrtmgp_nGptsLW ))
+ allocate(Interstitial%sources%lev_source_inc( IM, Model%levs, Model%rrtmgp_nGptsLW ))
+ allocate(Interstitial%sources%lev_source_dec( IM, Model%levs, Model%rrtmgp_nGptsLW ))
+ allocate(Interstitial%sources%sfc_source_Jac( IM, Model%rrtmgp_nGptsLW ))
+ allocate(Interstitial%sources%band2gpt ( 2, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%sources%band_lims_wvn ( 2, Model%rrtmgp_nBandsLW ))
+ allocate(Interstitial%sources%gpt2band( Model%rrtmgp_nGptsLW ))
+ end if
+
+! UGWP common
+ allocate (Interstitial%tau_mtb (IM))
+ allocate (Interstitial%tau_ogw (IM))
+ allocate (Interstitial%tau_tofd (IM))
+ allocate (Interstitial%tau_ngw (IM))
+ allocate (Interstitial%tau_oss (IM))
+ allocate (Interstitial%dudt_mtb (IM,Model%levs))
+ allocate (Interstitial%dudt_tms (IM,Model%levs))
+ allocate (Interstitial%zmtb (IM) )
+ allocate (Interstitial%zlwb (IM) )
+ allocate (Interstitial%zogw (IM) )
+ allocate (Interstitial%zngw (IM) )
+
+! CIRES UGWP v1
+ if (Model%do_ugwp_v1) then
+ allocate (Interstitial%dudt_ngw (IM,Model%levs))
+ allocate (Interstitial%dvdt_ngw (IM,Model%levs))
+ allocate (Interstitial%dtdt_ngw (IM,Model%levs))
+ allocate (Interstitial%kdis_ngw (IM,Model%levs))
+ end if
+
+!-- GSL drag suite
+ if (Model%gwd_opt==3 .or. Model%gwd_opt==33 .or. &
+ Model%gwd_opt==2 .or. Model%gwd_opt==22 ) then
+ allocate (Interstitial%varss (IM))
+ allocate (Interstitial%ocss (IM))
+ allocate (Interstitial%oa4ss (IM,4))
+ allocate (Interstitial%clxss (IM,4))
+ end if
+!
+ ! Allocate arrays that are conditional on physics choices
+ if (Model%imp_physics == Model%imp_physics_gfdl .or. Model%imp_physics == Model%imp_physics_thompson &
+ .or. Model%imp_physics == Model%imp_physics_nssl &
+ ) then
+ allocate (Interstitial%graupelmp (IM))
+ allocate (Interstitial%icemp (IM))
+ allocate (Interstitial%rainmp (IM))
+ allocate (Interstitial%snowmp (IM))
+ else if (Model%imp_physics == Model%imp_physics_mg) then
+ allocate (Interstitial%ncgl (IM,Model%levs))
+ allocate (Interstitial%ncpr (IM,Model%levs))
+ allocate (Interstitial%ncps (IM,Model%levs))
+ allocate (Interstitial%qgl (IM,Model%levs))
+ allocate (Interstitial%qrn (IM,Model%levs))
+ allocate (Interstitial%qsnw (IM,Model%levs))
+ allocate (Interstitial%qlcn (IM,Model%levs))
+ allocate (Interstitial%qicn (IM,Model%levs))
+ allocate (Interstitial%w_upi (IM,Model%levs))
+ allocate (Interstitial%cf_upi (IM,Model%levs))
+ allocate (Interstitial%cnv_mfd (IM,Model%levs))
+ allocate (Interstitial%cnv_dqldt (IM,Model%levs))
+ allocate (Interstitial%clcn (IM,Model%levs))
+ allocate (Interstitial%cnv_fice (IM,Model%levs))
+ allocate (Interstitial%cnv_ndrop (IM,Model%levs))
+ allocate (Interstitial%cnv_nice (IM,Model%levs))
+ end if
+ if (Model%do_shoc) then
+ if (.not. associated(Interstitial%qrn)) allocate (Interstitial%qrn (IM,Model%levs))
+ if (.not. associated(Interstitial%qsnw)) allocate (Interstitial%qsnw (IM,Model%levs))
+ ! DH* updated version of shoc from May 22 2019 (not yet in CCPP) doesn't use qgl? remove?
+ if (.not. associated(Interstitial%qgl)) allocate (Interstitial%qgl (IM,Model%levs))
+ ! *DH
+ allocate (Interstitial%ncpi (IM,Model%levs))
+ allocate (Interstitial%ncpl (IM,Model%levs))
+ end if
+ if (Model%lsm == Model%lsm_noahmp) then
+ allocate (Interstitial%t2mmp (IM))
+ allocate (Interstitial%q2mp (IM))
+ end if
+ !
+ ! Set components that do not change
+ Interstitial%frain = Model%dtf/Model%dtp
+ Interstitial%ipr = min(IM,10)
+ Interstitial%latidxprnt = 1
+ Interstitial%levi = Model%levs+1
+ Interstitial%lmk = Model%levr+LTP
+ Interstitial%lmp = Model%levr+1+LTP
+ Interstitial%nbdlw = NBDLW
+ Interstitial%nbdsw = NBDSW
+ Interstitial%nf_aelw = NF_AELW
+ Interstitial%nf_aesw = NF_AESW
+ Interstitial%nspc1 = NSPC1
+ if (Model%oz_phys .or. Model%oz_phys_2015) then
+ Interstitial%oz_coeffp5 = oz_coeff+5
+ else
+ Interstitial%oz_coeffp5 = 5
+ endif
+ !
+ Interstitial%skip_macro = .false.
+ ! The value phys_hydrostatic from dynamics does not match the
+ ! hardcoded value for calling GFDL MP in GFS_physics_driver.F90,
+ ! which is set to .true.
+ Interstitial%phys_hydrostatic = .true.
+ !
+ ! Reset all other variables
+ call Interstitial%rad_reset (Model)
+ call Interstitial%phys_reset (Model)
+ !
+ end subroutine gfs_interstitial_create
+
+ subroutine gfs_interstitial_setup_tracers(Interstitial, Model)
+ !
+ implicit none
+ !
+ class(GFS_interstitial_type) :: Interstitial
+ type(GFS_control_type), intent(in) :: Model
+ integer :: n, tracers
+ logical :: ltest
+
+ !first, initialize the values (in case the values don't get initialized within if statements below)
+ Interstitial%nvdiff = Model%ntrac
+ Interstitial%mg3_as_mg2 = .false.
+ Interstitial%nn = Model%ntrac + 1
+ Interstitial%itc = 0
+ Interstitial%ntk = 0
+ Interstitial%ntkev = 0
+ Interstitial%tracers_total = 0
+ Interstitial%otspt(:,:) = .true.
+ Interstitial%otsptflag(:) = .true.
+ Interstitial%nsamftrac = 0
+ Interstitial%ncstrac = 0
+ Interstitial%ntcwx = 0
+ Interstitial%ntiwx = 0
+ Interstitial%ntrwx = 0
+
+ ! perform aerosol convective transport and PBL diffusion
+ Interstitial%trans_aero = Model%cplchm .and. Model%trans_trac
+
+ if (Model%imp_physics == Model%imp_physics_thompson) then
+ if (Model%ltaerosol) then
+ Interstitial%nvdiff = 12
+ else
+ Interstitial%nvdiff = 9
+ endif
+ if (Model%satmedmf) Interstitial%nvdiff = Interstitial%nvdiff + 1
+ elseif ( Model%imp_physics == Model%imp_physics_nssl ) then
+ if (Model%me == Model%master) write(0,*) 'nssl_settings1: nvdiff,ntrac = ', Interstitial%nvdiff, Model%ntrac
+
+ IF ( Model%nssl_hail_on ) THEN
+ Interstitial%nvdiff = 16 ! Model%ntrac ! 17
+ ELSE
+ Interstitial%nvdiff = 13 ! turn off hail q,N, and volume
+ ENDIF
+ ! write(*,*) 'NSSL: nvdiff, ntrac = ',Interstitial%nvdiff, Model%ntrac
+ if (Model%satmedmf) Interstitial%nvdiff = Interstitial%nvdiff + 1
+ IF ( Model%nssl_ccn_on ) THEN
+ Interstitial%nvdiff = Interstitial%nvdiff + 1
+ ENDIF
+ if (Model%me == Model%master) write(0,*) 'nssl_settings2: nvdiff,ntrac = ', Interstitial%nvdiff, Model%ntrac
+
+ elseif (Model%imp_physics == Model%imp_physics_wsm6) then
+ Interstitial%nvdiff = Model%ntrac -3
+ if (Model%satmedmf) Interstitial%nvdiff = Interstitial%nvdiff + 1
+ elseif (Model%ntclamt > 0) then ! for GFDL MP don't diffuse cloud amount
+ Interstitial%nvdiff = Model%ntrac - 1
+ endif
+
+ if (Model%imp_physics == Model%imp_physics_mg) then
+ if (abs(Model%fprcp) == 1) then
+ Interstitial%mg3_as_mg2 = .false.
+ elseif (Model%fprcp >= 2) then
+ if(Model%ntgl > 0 .and. (Model%mg_do_graupel .or. Model%mg_do_hail)) then
+ Interstitial%mg3_as_mg2 = .false.
+ else ! MG3 code run without graupel/hail i.e. as MG2
+ Interstitial%mg3_as_mg2 = .true.
+ endif
+ endif
+ endif
+
+ Interstitial%nscav = Model%ntrac - Model%ncnd + 2
+
+ if (Interstitial%nvdiff == Model%ntrac) then
+ Interstitial%ntcwx = Model%ntcw
+ Interstitial%ntiwx = Model%ntiw
+ Interstitial%ntrwx = Model%ntrw
+ else
+ if (Model%imp_physics == Model%imp_physics_wsm6) then
+ Interstitial%ntcwx = 2
+ Interstitial%ntiwx = 3
+ elseif (Model%imp_physics == Model%imp_physics_thompson) then
+ Interstitial%ntcwx = 2
+ Interstitial%ntiwx = 3
+ Interstitial%ntrwx = 4
+ elseif (Model%imp_physics == Model%imp_physics_nssl) then
+ Interstitial%ntcwx = 2
+ Interstitial%ntiwx = 3
+ Interstitial%ntrwx = 4
+ elseif (Model%imp_physics == Model%imp_physics_gfdl) then
+ Interstitial%ntcwx = 2
+ Interstitial%ntiwx = 3
+ Interstitial%ntrwx = 4
+ ! F-A MP scheme
+ elseif (Model%imp_physics == Model%imp_physics_fer_hires) then
+ Interstitial%ntcwx = 2
+ Interstitial%ntiwx = 3
+ Interstitial%ntrwx = 4
+ elseif (Model%imp_physics == Model%imp_physics_mg) then
+ Interstitial%ntcwx = 2
+ Interstitial%ntiwx = 3
+ Interstitial%ntrwx = 4
+ elseif (Model%imp_physics == Model%imp_physics_zhao_carr) then
+ Interstitial%ntcwx = 2
+ endif
+ endif
+
+ if (Model%cplchm) then
+ ! Only the following microphysics schemes are supported with coupled chemistry
+ if (Model%imp_physics == Model%imp_physics_zhao_carr) then
+ Interstitial%nvdiff = 3
+ elseif (Model%imp_physics == Model%imp_physics_mg) then
+ if (Model%ntgl > 0) then
+ Interstitial%nvdiff = 12
+ else
+ Interstitial%nvdiff = 10
+ endif
+ elseif (Model%imp_physics == Model%imp_physics_gfdl) then
+ Interstitial%nvdiff = 7
+ elseif (Model%imp_physics == Model%imp_physics_thompson) then
+ if (Model%ltaerosol) then
+ Interstitial%nvdiff = 12
+ else
+ Interstitial%nvdiff = 9
+ endif
+ else
+ write(0,*) "Selected microphysics scheme is not supported when coupling with chemistry"
+ stop
+ endif
+ if (Interstitial%trans_aero) Interstitial%nvdiff = Interstitial%nvdiff + Model%ntchm
+ if (Model%ntke > 0) Interstitial%nvdiff = Interstitial%nvdiff + 1 ! adding tke to the list
+ endif
+
+ if (Model%ntke > 0) Interstitial%ntkev = Interstitial%nvdiff
+
+ if (Model%ntiw > 0) then
+ if (Model%ntclamt > 0) then
+ Interstitial%nn = Model%ntrac - 2
+ else
+ Interstitial%nn = Model%ntrac - 1
+ endif
+ elseif (Model%ntcw > 0) then
+ Interstitial%nn = Model%ntrac
+ else
+ Interstitial%nn = Model%ntrac + 1
+ endif
+
+ if (Model%cscnv .or. Model%satmedmf .or. Model%trans_trac ) then
+ Interstitial%otspt(:,:) = .true. ! otspt is used only for cscnv
+ Interstitial%otspt(1:3,:) = .false. ! this is for sp.hum, ice and liquid water
+ Interstitial%otsptflag(:) = .true.
+ tracers = 2
+ do n=2,Model%ntrac
+ ltest = ( n /= Model%ntcw .and. n /= Model%ntiw .and. n /= Model%ntclamt .and. &
+ n /= Model%ntrw .and. n /= Model%ntsw .and. n /= Model%ntrnc .and. &
+ n /= Model%ntsnc .and. n /= Model%ntgl .and. n /= Model%ntgnc .and. &
+ n /= Model%nthl .and. n /= Model%nthnc .and. n /= Model%ntgv .and. &
+ n /= Model%nthv .and. n /= Model%ntccn .and. n /= Model%ntccna )
+ Interstitial%otsptflag(n) = ltest
+ if ( ltest ) then
+ tracers = tracers + 1
+ if (Model%ntke == n ) then
+ Interstitial%otspt(tracers+1,1) = .false.
+ Interstitial%ntk = tracers
+ endif
+ if (Model%ntlnc == n .or. Model%ntinc == n .or. Model%ntrnc == n .or. Model%ntsnc == n .or. Model%ntgnc == n) &
+! if (ntlnc == n .or. ntinc == n .or. ntrnc == n .or. ntsnc == n .or.&
+! ntrw == n .or. ntsw == n .or. ntgl == n) &
+ Interstitial%otspt(tracers+1,1) = .false.
+ if (Interstitial%trans_aero .and. Model%ntchs == n) Interstitial%itc = tracers
+ endif
+ enddo
+ Interstitial%tracers_total = tracers - 2
+ endif ! end if_ras or cfscnv or samf
+ if (.not. Model%satmedmf .and. .not. Model%trans_trac .and. &
+ .not. Model%ras .and. .not. Model%do_shoc) then
+ Interstitial%nsamftrac = 0
+ else
+ Interstitial%nsamftrac = Interstitial%tracers_total
+ endif
+ Interstitial%ncstrac = Interstitial%tracers_total + 3
+
+ end subroutine gfs_interstitial_setup_tracers
+
+ subroutine gfs_interstitial_rad_reset (Interstitial, Model)
+ !
+ implicit none
+ !
+ class(GFS_interstitial_type) :: Interstitial
+ type(GFS_control_type), intent(in) :: Model
+ integer :: iGas
+ !
+ Interstitial%aerodp = clear_val
+ Interstitial%alb1d = clear_val
+ if (.not. Model%do_RRTMGP) then
+ Interstitial%alpha = clear_val
+ end if
+ Interstitial%cldsa = clear_val
+ Interstitial%cldtaulw = clear_val
+ Interstitial%cldtausw = clear_val
+ Interstitial%clouds = clear_val
+ Interstitial%de_lgth = clear_val
+ Interstitial%delr = clear_val
+ Interstitial%dzlyr = clear_val
+ Interstitial%faerlw = clear_val
+ Interstitial%faersw = clear_val
+ Interstitial%gasvmr = clear_val
+ Interstitial%htlwc = clear_val
+ Interstitial%htlw0 = clear_val
+ Interstitial%htswc = clear_val
+ Interstitial%htsw0 = clear_val
+ Interstitial%idxday = 0
+ Interstitial%kb = 0
+ Interstitial%kd = 0
+ Interstitial%kt = 0
+ Interstitial%mbota = 0
+ Interstitial%mtopa = 0
+ Interstitial%nday = 0
+ Interstitial%olyr = clear_val
+ Interstitial%plvl = clear_val
+ Interstitial%plyr = clear_val
+ Interstitial%qlyr = clear_val
+ Interstitial%raddt = clear_val
+ Interstitial%sfcalb = clear_val
+ Interstitial%tlvl = clear_val
+ Interstitial%tlyr = clear_val
+ Interstitial%tsfa = clear_val
+ Interstitial%tsfg = clear_val
+
+ ! Interstitials used by both RRTMG and RRTMGP
+ Interstitial%scmpsw%uvbfc = clear_val
+ Interstitial%scmpsw%uvbf0 = clear_val
+ Interstitial%scmpsw%nirbm = clear_val
+ Interstitial%scmpsw%nirdf = clear_val
+ Interstitial%scmpsw%visbm = clear_val
+ Interstitial%scmpsw%visdf = clear_val
+ if (Model%do_RRTMGP) then
+ Interstitial%tracer = clear_val
+ Interstitial%tv_lay = clear_val
+ Interstitial%relhum = clear_val
+ Interstitial%qs_lay = clear_val
+ Interstitial%q_lay = clear_val
+ Interstitial%deltaZ = clear_val
+ Interstitial%deltaZc = clear_val
+ Interstitial%deltaP = clear_val
+ Interstitial%p_lev = clear_val
+ Interstitial%p_lay = clear_val
+ Interstitial%t_lev = clear_val
+ Interstitial%t_lay = clear_val
+ Interstitial%cloud_overlap_param = clear_val
+ Interstitial%precip_overlap_param = clear_val
+ Interstitial%fluxlwUP_allsky = clear_val
+ Interstitial%fluxlwDOWN_allsky = clear_val
+ Interstitial%fluxlwUP_clrsky = clear_val
+ Interstitial%fluxlwDOWN_clrsky = clear_val
+ Interstitial%fluxswUP_allsky = clear_val
+ Interstitial%fluxswDOWN_allsky = clear_val
+ Interstitial%fluxswUP_clrsky = clear_val
+ Interstitial%fluxswDOWN_clrsky = clear_val
+ Interstitial%aerosolslw = clear_val
+ Interstitial%aerosolssw = clear_val
+ Interstitial%cld_frac = clear_val
+ Interstitial%cld_lwp = clear_val
+ Interstitial%cld_reliq = clear_val
+ Interstitial%cld_iwp = clear_val
+ Interstitial%cld_reice = clear_val
+ Interstitial%cld_swp = clear_val
+ Interstitial%cld_resnow = clear_val
+ Interstitial%cld_rwp = clear_val
+ Interstitial%cld_rerain = clear_val
+ Interstitial%precip_frac = clear_val
+ Interstitial%cld_cnv_frac = clear_val
+ Interstitial%cnv_cloud_overlap_param = clear_val
+ Interstitial%cld_cnv_lwp = clear_val
+ Interstitial%cld_cnv_reliq = clear_val
+ Interstitial%cld_cnv_iwp = clear_val
+ Interstitial%cld_cnv_reice = clear_val
+ Interstitial%cld_pbl_lwp = clear_val
+ Interstitial%cld_pbl_reliq = clear_val
+ Interstitial%cld_pbl_iwp = clear_val
+ Interstitial%cld_pbl_reice = clear_val
+ Interstitial%sfc_emiss_byband = clear_val
+ Interstitial%sec_diff_byband = clear_val
+ Interstitial%sfc_alb_nir_dir = clear_val
+ Interstitial%sfc_alb_nir_dif = clear_val
+ Interstitial%sfc_alb_uvvis_dir = clear_val
+ Interstitial%sfc_alb_uvvis_dif = clear_val
+ Interstitial%toa_src_sw = clear_val
+ Interstitial%toa_src_lw = clear_val
+ do iGas=1,Model%nGases
+ Interstitial%gas_concentrations%concs(iGas)%conc = clear_val
+ end do
+ Interstitial%lw_optical_props_clrsky%tau = clear_val
+ Interstitial%lw_optical_props_aerosol%tau = clear_val
+ Interstitial%lw_optical_props_clouds%tau = clear_val
+ Interstitial%lw_optical_props_clouds%ssa = clear_val
+ Interstitial%lw_optical_props_clouds%g = clear_val
+ Interstitial%lw_optical_props_precip%tau = clear_val
+ Interstitial%lw_optical_props_precip%ssa = clear_val
+ Interstitial%lw_optical_props_precip%g = clear_val
+ Interstitial%lw_optical_props_cloudsByBand%tau = clear_val
+ Interstitial%lw_optical_props_cloudsByBand%ssa = clear_val
+ Interstitial%lw_optical_props_cloudsByBand%g = clear_val
+ Interstitial%lw_optical_props_precipByBand%tau = clear_val
+ Interstitial%lw_optical_props_precipByBand%ssa = clear_val
+ Interstitial%lw_optical_props_precipByBand%g = clear_val
+ Interstitial%lw_optical_props_cnvcloudsByBand%tau = clear_val
+ Interstitial%lw_optical_props_cnvcloudsByBand%ssa = clear_val
+ Interstitial%lw_optical_props_cnvcloudsByBand%g = clear_val
+ Interstitial%lw_optical_props_MYNNcloudsByBand%tau = clear_val
+ Interstitial%lw_optical_props_MYNNcloudsByBand%ssa = clear_val
+ Interstitial%lw_optical_props_MYNNcloudsByBand%g = clear_val
+ Interstitial%lw_optical_props_cnvclouds%tau = clear_val
+ Interstitial%lw_optical_props_cnvclouds%ssa = clear_val
+ Interstitial%lw_optical_props_cnvclouds%g = clear_val
+ Interstitial%sources%sfc_source = clear_val
+ Interstitial%sources%lay_source = clear_val
+ Interstitial%sources%lev_source_inc = clear_val
+ Interstitial%sources%lev_source_dec = clear_val
+ Interstitial%sources%sfc_source_Jac = clear_val
+ Interstitial%flxprf_lw%upfxc = clear_val
+ Interstitial%flxprf_lw%dnfxc = clear_val
+ Interstitial%flxprf_lw%upfx0 = clear_val
+ Interstitial%flxprf_lw%dnfx0 = clear_val
+ Interstitial%flxprf_sw%upfxc = clear_val
+ Interstitial%flxprf_sw%dnfxc = clear_val
+ Interstitial%flxprf_sw%upfx0 = clear_val
+ Interstitial%flxprf_sw%dnfx0 = clear_val
+ end if
+ !
+ end subroutine gfs_interstitial_rad_reset
+
+ subroutine gfs_interstitial_phys_reset (Interstitial, Model)
+ !
+ implicit none
+ !
+ class(GFS_interstitial_type) :: Interstitial
+ type(GFS_control_type), intent(in) :: Model
+ !
+ Interstitial%adjsfculw_land = clear_val
+ Interstitial%adjsfculw_ice = clear_val
+ Interstitial%adjsfculw_water = clear_val
+ Interstitial%adjnirbmd = clear_val
+ Interstitial%adjnirbmu = clear_val
+ Interstitial%adjnirdfd = clear_val
+ Interstitial%adjnirdfu = clear_val
+ Interstitial%adjvisbmd = clear_val
+ Interstitial%adjvisbmu = clear_val
+ Interstitial%adjvisdfu = clear_val
+ Interstitial%adjvisdfd = clear_val
+ Interstitial%bexp1d = clear_val
+ Interstitial%cd = clear_val
+ Interstitial%cd_ice = Model%huge
+ Interstitial%cd_land = Model%huge
+ Interstitial%cd_water = Model%huge
+ Interstitial%cdq = clear_val
+ Interstitial%cdq_ice = Model%huge
+ Interstitial%cdq_land = Model%huge
+ Interstitial%cdq_water = Model%huge
+ Interstitial%chh_ice = Model%huge
+ Interstitial%chh_land = Model%huge
+ Interstitial%chh_water = Model%huge
+ Interstitial%cld1d = clear_val
+ Interstitial%cldf = clear_val
+ Interstitial%clw = clear_val
+ Interstitial%clw(:,:,2) = -999.9
+ Interstitial%clx = clear_val
+ Interstitial%cmm_ice = Model%huge
+ Interstitial%cmm_land = Model%huge
+ Interstitial%cmm_water = Model%huge
+ Interstitial%cnvc = clear_val
+ Interstitial%cnvw = clear_val
+ Interstitial%ctei_r = clear_val
+ Interstitial%ctei_rml = clear_val
+ Interstitial%cumabs = clear_val
+ Interstitial%dd_mf = clear_val
+ Interstitial%del = clear_val
+ Interstitial%del_gz = clear_val
+ Interstitial%dlength = clear_val
+ Interstitial%dqdt = clear_val
+ Interstitial%dqsfc1 = clear_val
+ Interstitial%drain = clear_val
+ Interstitial%dt_mf = clear_val
+ Interstitial%dtdt = clear_val
+ Interstitial%dtsfc1 = clear_val
+ Interstitial%dtzm = clear_val
+ Interstitial%dudt = clear_val
+ Interstitial%dusfcg = clear_val
+ Interstitial%dusfc1 = clear_val
+ Interstitial%dvdftra = clear_val
+ Interstitial%dvdt = clear_val
+ Interstitial%dvsfcg = clear_val
+ Interstitial%dvsfc1 = clear_val
+ Interstitial%elvmax = clear_val
+ Interstitial%ep1d = clear_val
+ Interstitial%ep1d_ice = Model%huge
+ Interstitial%ep1d_land = Model%huge
+ Interstitial%ep1d_water = Model%huge
+ Interstitial%evap_ice = Model%huge
+ Interstitial%evap_land = Model%huge
+ Interstitial%evap_water = Model%huge
+ Interstitial%evbs = clear_val
+ Interstitial%evcw = clear_val
+ Interstitial%pah = clear_val
+ Interstitial%ecan = clear_val
+ Interstitial%etran = clear_val
+ Interstitial%edir = clear_val
+ Interstitial%ffhh_ice = Model%huge
+ Interstitial%ffhh_land = Model%huge
+ Interstitial%ffhh_water = Model%huge
+ Interstitial%fh2 = clear_val
+ Interstitial%fh2_ice = Model%huge
+ Interstitial%fh2_land = Model%huge
+ Interstitial%fh2_water = Model%huge
+ Interstitial%flag_cice = .false.
+ Interstitial%flag_guess = .false.
+ Interstitial%flag_iter = .true.
+ Interstitial%ffmm_ice = Model%huge
+ Interstitial%ffmm_land = Model%huge
+ Interstitial%ffmm_water = Model%huge
+ Interstitial%fm10 = clear_val
+ Interstitial%fm10_ice = Model%huge
+ Interstitial%fm10_land = Model%huge
+ Interstitial%fm10_water = Model%huge
+ Interstitial%frland = clear_val
+ Interstitial%fscav = clear_val
+ Interstitial%fswtr = clear_val
+ Interstitial%gabsbdlw = clear_val
+ Interstitial%gabsbdlw_ice = clear_val
+ Interstitial%gabsbdlw_land = clear_val
+ Interstitial%gabsbdlw_water = clear_val
+ Interstitial%gamma = clear_val
+ Interstitial%gamq = clear_val
+ Interstitial%gamt = clear_val
+ Interstitial%gflx = clear_val
+ Interstitial%gflx_ice = clear_val
+ Interstitial%gflx_land = clear_val
+ Interstitial%gflx_water = clear_val
+ Interstitial%gwdcu = clear_val
+ Interstitial%gwdcv = clear_val
+ Interstitial%zvfun = clear_val
+ Interstitial%hffac = clear_val
+ Interstitial%hflxq = clear_val
+ Interstitial%hflx_ice = Model%huge
+ Interstitial%hflx_land = Model%huge
+ Interstitial%hflx_water = Model%huge
+ Interstitial%dry = .false.
+ Interstitial%icy = .false.
+ Interstitial%lake = .false.
+ Interstitial%use_flake = .false.
+ Interstitial%ocean = .false.
+ Interstitial%islmsk = 0
+ Interstitial%islmsk_cice = 0
+ Interstitial%wet = .false.
+ Interstitial%kbot = Model%levs
+ Interstitial%kcnv = 0
+ Interstitial%kinver = Model%levs
+ Interstitial%kpbl = 0
+ Interstitial%ktop = 1
+ Interstitial%oa4 = clear_val
+ Interstitial%oc = clear_val
+ Interstitial%prcpmp = clear_val
+ Interstitial%prnum = clear_val
+ Interstitial%qss_ice = Model%huge
+ Interstitial%qss_land = Model%huge
+ Interstitial%qss_water = Model%huge
+ Interstitial%raincd = clear_val
+ Interstitial%raincs = clear_val
+ Interstitial%rainmcadj = clear_val
+ Interstitial%rainp = clear_val
+ Interstitial%rb = clear_val
+ Interstitial%rb_ice = Model%huge
+ Interstitial%rb_land = Model%huge
+ Interstitial%rb_water = Model%huge
+ Interstitial%rhc = clear_val
+ Interstitial%runoff = clear_val
+ Interstitial%save_q = clear_val
+ Interstitial%save_t = clear_val
+ Interstitial%save_tcp = clear_val
+ Interstitial%save_u = clear_val
+ Interstitial%save_v = clear_val
+ Interstitial%sbsno = clear_val
+ Interstitial%sigma = clear_val
+ Interstitial%sigmaf = clear_val
+ Interstitial%sigmafrac = clear_val
+ Interstitial%sigmatot = clear_val
+ Interstitial%snowc = clear_val
+ Interstitial%snohf = clear_val
+ Interstitial%snowmt = clear_val
+ Interstitial%stress = clear_val
+ Interstitial%stress_ice = Model%huge
+ Interstitial%stress_land = Model%huge
+ Interstitial%stress_water = Model%huge
+ Interstitial%theta = clear_val
+ Interstitial%tprcp_ice = Model%huge
+ Interstitial%tprcp_land = Model%huge
+ Interstitial%tprcp_water = Model%huge
+ Interstitial%trans = clear_val
+ Interstitial%tseal = clear_val
+ Interstitial%tsfc_water = Model%huge
+ Interstitial%tsurf_ice = Model%huge
+ Interstitial%tsurf_land = Model%huge
+ Interstitial%tsurf_water = Model%huge
+ Interstitial%ud_mf = clear_val
+ Interstitial%uustar_ice = Model%huge
+ Interstitial%uustar_land = Model%huge
+ Interstitial%uustar_water = Model%huge
+ Interstitial%vdftra = clear_val
+ Interstitial%vegf1d = clear_val
+ Interstitial%lndp_vgf = clear_val
+ Interstitial%wcbmax = clear_val
+ Interstitial%wind = Model%huge
+ Interstitial%work1 = clear_val
+ Interstitial%work2 = clear_val
+ Interstitial%work3 = clear_val
+ Interstitial%xcosz = clear_val
+ Interstitial%xlai1d = clear_val
+ Interstitial%xmu = clear_val
+ Interstitial%z01d = clear_val
+ Interstitial%zt1d = clear_val
+ Interstitial%ztmax_ice = clear_val
+ Interstitial%ztmax_land = clear_val
+ Interstitial%ztmax_water = clear_val
+
+! UGWP common
+ Interstitial%tau_mtb = clear_val
+ Interstitial%tau_ogw = clear_val
+ Interstitial%tau_tofd = clear_val
+ Interstitial%tau_ngw = clear_val
+ Interstitial%tau_oss = clear_val
+ Interstitial%dudt_mtb = clear_val
+ Interstitial%dudt_tms = clear_val
+ Interstitial%zmtb = clear_val
+ Interstitial%zlwb = clear_val
+ Interstitial%zogw = clear_val
+ Interstitial%zngw = clear_val
+
+! CIRES UGWP v1
+ if (Model%do_ugwp_v1) then
+ Interstitial%dudt_ngw = clear_val
+ Interstitial%dvdt_ngw = clear_val
+ Interstitial%dtdt_ngw = clear_val
+ Interstitial%kdis_ngw = clear_val
+ end if
+
+!-- GSL drag suite
+ if (Model%gwd_opt==3 .or. Model%gwd_opt==33 .or. &
+ Model%gwd_opt==2 .or. Model%gwd_opt==22) then
+ Interstitial%varss = clear_val
+ Interstitial%ocss = clear_val
+ Interstitial%oa4ss = clear_val
+ Interstitial%clxss = clear_val
+ end if
+!
+ ! Reset fields that are conditional on physics choices
+ if (Model%imp_physics == Model%imp_physics_gfdl .or. Model%imp_physics == Model%imp_physics_thompson &
+ .or. Model%imp_physics == Model%imp_physics_nssl &
+ ) then
+ Interstitial%graupelmp = clear_val
+ Interstitial%icemp = clear_val
+ Interstitial%rainmp = clear_val
+ Interstitial%snowmp = clear_val
+ else if (Model%imp_physics == Model%imp_physics_mg) then
+ Interstitial%ncgl = clear_val
+ Interstitial%ncpr = clear_val
+ Interstitial%ncps = clear_val
+ Interstitial%qgl = clear_val
+ Interstitial%qrn = clear_val
+ Interstitial%qsnw = clear_val
+ Interstitial%qlcn = clear_val
+ Interstitial%qicn = clear_val
+ Interstitial%w_upi = clear_val
+ Interstitial%cf_upi = clear_val
+ Interstitial%cnv_mfd = clear_val
+ Interstitial%cnv_dqldt = clear_val
+ Interstitial%clcn = clear_val
+ Interstitial%cnv_fice = clear_val
+ Interstitial%cnv_ndrop = clear_val
+ Interstitial%cnv_nice = clear_val
+ end if
+ if (Model%do_shoc) then
+ Interstitial%qrn = clear_val
+ Interstitial%qsnw = clear_val
+ ! DH* updated version of shoc from May 22 2019 doesn't use qgl? remove?
+ Interstitial%qgl = clear_val
+ ! *DH
+ Interstitial%ncpi = clear_val
+ Interstitial%ncpl = clear_val
+ end if
+ if (Model%lsm == Model%lsm_noahmp) then
+ Interstitial%t2mmp = clear_val
+ Interstitial%q2mp = clear_val
+ end if
+ !
+ ! Set flag for resetting maximum hourly output fields
+ Interstitial%max_hourly_reset = mod(Model%kdt-1, nint(Model%avg_max_length/Model%dtp)) == 0
+ ! Use same logic in UFS to reset Thompson extended diagnostics
+ Interstitial%ext_diag_thompson_reset = Interstitial%max_hourly_reset
+ !
+ ! Set flag for resetting radar reflectivity calculation
+ if (Model%nsradar_reset<0) then
+ Interstitial%radar_reset = .true.
+ else
+ Interstitial%radar_reset = mod(Model%kdt-1, nint(Model%nsradar_reset/Model%dtp)) == 0
+ end if
+ !
+ end subroutine gfs_interstitial_phys_reset
+
+end module CCPP_typedefs
diff --git a/scm/src/CCPP_typedefs.meta b/scm/src/CCPP_typedefs.meta
new file mode 100644
index 000000000..da6ecb5b5
--- /dev/null
+++ b/scm/src/CCPP_typedefs.meta
@@ -0,0 +1,2982 @@
+[ccpp-table-properties]
+ name = GFS_interstitial_type
+ type = ddt
+ dependencies =
+
+[ccpp-arg-table]
+ name = GFS_interstitial_type
+ type = ddt
+[adjsfculw_water]
+ standard_name = surface_upwelling_longwave_flux_over_water
+ long_name = surface upwelling longwave flux at current time over water
+ units = W m-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[adjsfculw_land]
+ standard_name = surface_upwelling_longwave_flux_over_land
+ long_name = surface upwelling longwave flux at current time over land
+ units = W m-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[adjsfculw_ice]
+ standard_name = surface_upwelling_longwave_flux_over_ice
+ long_name = surface upwelling longwave flux at current time over ice
+ units = W m-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[adjnirbmd]
+ standard_name = surface_downwelling_direct_near_infrared_shortwave_flux
+ long_name = surface downwelling beam near-infrared shortwave flux at current time
+ units = W m-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[adjnirbmu]
+ standard_name = surface_upwelling_direct_near_infrared_shortwave_flux
+ long_name = surface upwelling beam near-infrared shortwave flux at current time
+ units = W m-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[adjnirdfd]
+ standard_name = surface_downwelling_diffuse_near_infrared_shortwave_flux
+ long_name = surface downwelling diffuse near-infrared shortwave flux at current time
+ units = W m-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[adjnirdfu]
+ standard_name = surface_upwelling_diffuse_near_infrared_shortwave_flux
+ long_name = surface upwelling diffuse near-infrared shortwave flux at current time
+ units = W m-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[adjvisbmd]
+ standard_name = surface_downwelling_direct_ultraviolet_and_visible_shortwave_flux
+ long_name = surface downwelling beam ultraviolet plus visible shortwave flux at current time
+ units = W m-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[adjvisbmu]
+ standard_name = surface_upwelling_direct_ultraviolet_and_visible_shortwave_flux
+ long_name = surface upwelling beam ultraviolet plus visible shortwave flux at current time
+ units = W m-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[adjvisdfu]
+ standard_name = surface_upwelling_diffuse_ultraviolet_and_visible_shortwave_flux
+ long_name = surface upwelling diffuse ultraviolet plus visible shortwave flux at current time
+ units = W m-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[adjvisdfd]
+ standard_name = surface_downwelling_diffuse_ultraviolet_and_visible_shortwave_flux
+ long_name = surface downwelling diffuse ultraviolet plus visible shortwave flux at current time
+ units = W m-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[aerodp]
+ standard_name = atmosphere_optical_thickness_due_to_ambient_aerosol_particles
+ long_name = vertical integrated optical depth for various aerosol species
+ units = none
+ dimensions = (horizontal_loop_extent,number_of_species_for_aerosol_optical_depth)
+ type = real
+ kind = kind_phys
+[alb1d]
+ standard_name = surface_albedo_perturbation
+ long_name = surface albedo perturbation
+ units = frac
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[alpha]
+ standard_name = cloud_overlap_decorrelation_parameter
+ long_name = cloud overlap decorrelation parameter for RRTMG (but not for RRTMGP)
+ units = frac
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[bexp1d]
+ standard_name = perturbation_of_soil_type_b_parameter
+ long_name = perturbation of soil type "b" parameter
+ units = frac
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[cd]
+ standard_name = surface_drag_coefficient_for_momentum_in_air
+ long_name = surface exchange coeff for momentum
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[cd_water]
+ standard_name = surface_drag_coefficient_for_momentum_in_air_over_water
+ long_name = surface exchange coeff for momentum over water
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[cd_land]
+ standard_name = surface_drag_coefficient_for_momentum_in_air_over_land
+ long_name = surface exchange coeff for momentum over land
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[cd_ice]
+ standard_name = surface_drag_coefficient_for_momentum_in_air_over_ice
+ long_name = surface exchange coeff for momentum over ice
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[cdq]
+ standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air
+ long_name = surface exchange coeff heat & moisture
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[cdq_water]
+ standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_water
+ long_name = surface exchange coeff heat surface exchange coeff heat & moisture over ocean moisture over water
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[cdq_land]
+ standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_land
+ long_name = surface exchange coeff heat & moisture over land
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[cdq_ice]
+ standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_ice
+ long_name = surface exchange coeff heat & moisture over ice
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[chh_water]
+ standard_name = surface_drag_mass_flux_for_heat_and_moisture_in_air_over_water
+ long_name = thermal exchange coefficient over water
+ units = kg m-2 s-1
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[chh_land]
+ standard_name = surface_drag_mass_flux_for_heat_and_moisture_in_air_over_land
+ long_name = thermal exchange coefficient over land
+ units = kg m-2 s-1
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[chh_ice]
+ standard_name = surface_drag_mass_flux_for_heat_and_moisture_in_air_over_ice
+ long_name = thermal exchange coefficient over ice
+ units = kg m-2 s-1
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[cf_upi]
+ standard_name = convective_cloud_fraction_for_microphysics
+ long_name = convective cloud fraction for microphysics
+ units = frac
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme)
+[clcn]
+ standard_name = convective_cloud_volume_fraction
+ long_name = convective cloud volume fraction
+ units = frac
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme)
+[cldf]
+ standard_name = cloud_area_fraction
+ long_name = fraction of grid box area in which updrafts occur
+ units = frac
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[cldsa]
+ standard_name = cloud_area_fraction_for_radiation
+ long_name = fraction of clouds for low, middle, high, total and BL
+ units = frac
+ dimensions = (horizontal_loop_extent,5)
+ type = real
+ kind = kind_phys
+[cldtaulw]
+ standard_name = cloud_optical_depth_layers_at_10mu_band
+ long_name = approx 10mu band layer cloud optical depth
+ units = none
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[cldtausw]
+ standard_name = cloud_optical_depth_layers_at_0p55mu_band
+ long_name = approx .55mu band layer cloud optical depth
+ units = none
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[cld1d]
+ standard_name = cloud_work_function
+ long_name = cloud work function
+ units = m2 s-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[clouds(:,:,1)]
+ standard_name = total_cloud_fraction
+ long_name = layer total cloud fraction
+ units = frac
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[clouds(:,:,2)]
+ standard_name = cloud_liquid_water_path
+ long_name = layer cloud liquid water path
+ units = g m-2
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[clouds(:,:,3)]
+ standard_name = mean_effective_radius_for_liquid_cloud
+ long_name = mean effective radius for liquid cloud
+ units = um
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[clouds(:,:,4)]
+ standard_name = cloud_ice_water_path
+ long_name = layer cloud ice water path
+ units = g m-2
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[clouds(:,:,5)]
+ standard_name = mean_effective_radius_for_ice_cloud
+ long_name = mean effective radius for ice cloud
+ units = um
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[clouds(:,:,6)]
+ standard_name = cloud_rain_water_path
+ long_name = cloud rain water path
+ units = g m-2
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[clouds(:,:,7)]
+ standard_name = mean_effective_radius_for_rain_drop
+ long_name = mean effective radius for rain drop
+ units = um
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[clouds(:,:,8)]
+ standard_name = cloud_snow_water_path
+ long_name = cloud snow water path
+ units = g m-2
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[clouds(:,:,9)]
+ standard_name = mean_effective_radius_for_snow_flake
+ long_name = mean effective radius for snow flake
+ units = um
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[clw]
+ standard_name = convective_transportable_tracers
+ long_name = array to contain cloud water and other convective trans. tracers
+ units = kg kg-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_tracers_for_convective_transport)
+ type = real
+ kind = kind_phys
+[clw(:,:,1)]
+ standard_name = ice_water_mixing_ratio_convective_transport_tracer
+ long_name = ratio of mass of ice water to mass of dry air plus vapor (without condensates) in the convectively transported tracer array
+ units = kg kg-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[clw(:,:,2)]
+ standard_name = cloud_condensed_water_mixing_ratio_convective_transport_tracer
+ long_name = ratio of mass of cloud water to mass of dry air plus vapor (without condensates) in the convectively transported tracer array
+ units = kg kg-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[clw(:,:,index_for_turbulent_kinetic_energy_convective_transport_tracer)]
+ standard_name = turbulent_kinetic_energy_convective_transport_tracer
+ long_name = turbulent kinetic energy in the convectively transported tracer array
+ units = m2 s-2
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[clx]
+ standard_name = fraction_of_grid_box_with_subgrid_orography_higher_than_critical_height
+ long_name = frac. of grid box with by subgrid height_above_mean_sea_level higher than critical height
+ units = frac
+ dimensions = (horizontal_loop_extent,4)
+ type = real
+ kind = kind_phys
+[clxss]
+ standard_name = fraction_of_grid_box_with_subgrid_orography_higher_than_critical_height_small_scale
+ long_name = frac. of grid box with by subgrid height_above_mean_sea_level higher than critical height small scale
+ units = frac
+ dimensions = (horizontal_loop_extent,4)
+ type = real
+ kind = kind_phys
+ active = (control_for_drag_suite_gravity_wave_drag == 3 .or. control_for_drag_suite_gravity_wave_drag == 33)
+[cmm_water]
+ standard_name = surface_drag_wind_speed_for_momentum_in_air_over_water
+ long_name = momentum exchange coefficient over water
+ units = m s-1
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[cmm_land]
+ standard_name = surface_drag_wind_speed_for_momentum_in_air_over_land
+ long_name = momentum exchange coefficient over land
+ units = m s-1
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[cmm_ice]
+ standard_name = surface_drag_wind_speed_for_momentum_in_air_over_ice
+ long_name = momentum exchange coefficient over ice
+ units = m s-1
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[cnv_dqldt]
+ standard_name = tendency_of_cloud_water_due_to_convective_microphysics
+ long_name = tendency of cloud water due to convective microphysics
+ units = kg m-2 s-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme)
+[cnv_fice]
+ standard_name = ice_fraction_in_convective_tower
+ long_name = ice fraction in convective tower
+ units = frac
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme)
+[cnv_mfd]
+ standard_name = detrained_mass_flux
+ long_name = detrained mass flux
+ units = kg m-2 s-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme)
+[cnv_ndrop]
+ standard_name = number_concentration_of_cloud_liquid_water_particles_for_detrainment
+ long_name = droplet number concentration in convective detrainment
+ units = m-3
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme)
+[cnv_nice]
+ standard_name = number_concentration_of_ice_crystals_for_detrainment
+ long_name = crystal number concentration in convective detrainment
+ units = m-3
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme)
+[cnvc]
+ standard_name = convective_cloud_cover
+ long_name = convective cloud cover
+ units = frac
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[cnvw]
+ standard_name = convective_cloud_water_mixing_ratio
+ long_name = moist convective cloud water mixing ratio
+ units = kg kg-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[ctei_r]
+ standard_name = cloud_top_entrainment_instability_value
+ long_name = cloud top entrainment instability value
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[ctei_rml]
+ standard_name = grid_sensitive_critical_cloud_top_entrainment_instability_criteria
+ long_name = grid sensitive critical cloud top entrainment instability criteria
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[cumabs]
+ standard_name = maximum_column_heating_rate
+ long_name = maximum heating rate in column
+ units = K s-1
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[dd_mf]
+ standard_name = instantaneous_atmosphere_downdraft_convective_mass_flux
+ long_name = (downdraft mass flux) * delt
+ units = kg m-2
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[de_lgth]
+ standard_name = cloud_decorrelation_length
+ long_name = cloud decorrelation length
+ units = km
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[del]
+ standard_name = air_pressure_difference_between_midlayers
+ long_name = air pressure difference between midlayers
+ units = Pa
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[del_gz]
+ standard_name = geopotential_difference_between_midlayers_divided_by_midlayer_virtual_temperature
+ long_name = difference between mid-layer geopotentials divided by mid-layer virtual temperature
+ units = m2 s-2 K-1
+ dimensions = (horizontal_loop_extent,vertical_interface_dimension)
+ type = real
+ kind = kind_phys
+[delr]
+ standard_name = layer_pressure_thickness_for_radiation
+ long_name = layer pressure thickness on radiation levels
+ units = hPa
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[dlength]
+ standard_name = characteristic_grid_length_scale
+ long_name = representative horizontal length scale of grid box
+ units = m
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[dqdt]
+ standard_name = process_split_cumulative_tendency_of_tracers
+ long_name = updated tendency of the tracers due to model physics
+ units = kg kg-1 s-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_tracers)
+ type = real
+ kind = kind_phys
+[dqdt(:,:,index_of_specific_humidity_in_tracer_concentration_array)]
+ standard_name = process_split_cumulative_tendency_of_specific_humidity
+ long_name = water vapor specific humidity tendency due to model physics
+ units = kg kg-1 s-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[dqdt(:,:,index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array)]
+ standard_name = process_split_cumulative_tendency_of_cloud_liquid_water_mixing_ratio
+ long_name = cloud condensed water mixing ratio tendency due to model physics
+ units = kg kg-1 s-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[dqdt(:,:,index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array)]
+ standard_name = process_split_cumulative_tendency_of_cloud_ice_mixing_ratio
+ long_name = cloud condensed water mixing ratio tendency due to model physics
+ units = kg kg-1 s-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[dqdt(:,:,index_of_ozone_mixing_ratio_in_tracer_concentration_array)]
+ standard_name = process_split_cumulative_tendency_of_ozone_mixing_ratio
+ long_name = ozone mixing ratio tendency due to model physics
+ units = kg kg-1 s-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[dqdt(:,:,index_of_mass_number_concentration_of_cloud_droplets_in_tracer_concentration_array)]
+ standard_name = process_split_cumulative_tendency_of_mass_number_concentration_of_cloud_liquid_water_particles_in_air
+ long_name = number concentration of cloud droplets (liquid) tendency due to model physics
+ units = kg-1 s-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (index_of_mass_number_concentration_of_cloud_droplets_in_tracer_concentration_array > 0)
+[dqdt(:,:,index_of_mass_number_concentration_of_cloud_ice_in_tracer_concentration_array)]
+ standard_name = process_split_cumulative_tendency_of_mass_number_concentration_of_cloud_ice_water_crystals_in_air
+ long_name = number concentration of ice tendency due to model physics
+ units = kg-1 s-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[dqdt(:,:,index_of_mass_number_concentration_of_hygroscopic_aerosols_in_tracer_concentration_array)]
+ standard_name = process_split_cumulative_tendency_of_mass_number_concentration_of_hygroscopic_aerosols
+ long_name = number concentration of water-friendly aerosols tendency due to model physics
+ units = kg-1 s-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (index_of_mass_number_concentration_of_hygroscopic_aerosols_in_tracer_concentration_array > 0)
+[dqdt(:,:,index_of_mass_number_concentration_of_nonhygroscopic_ice_nucleating_aerosols_in_tracer_concentration_array)]
+ standard_name = process_split_cumulative_tendency_of_mass_number_concentration_of_nonhygroscopic_ice_nucleating_aerosols
+ long_name = number concentration of ice-friendly aerosols tendency due to model physics
+ units = kg-1 s-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (index_of_mass_number_concentration_of_nonhygroscopic_ice_nucleating_aerosols_in_tracer_concentration_array > 0)
+[dqdt(:,:,index_of_cloud_condensation_nuclei_number_concentration_in_tracer_concentration_array)]
+ standard_name = tendency_of_cloud_condensation_nuclei_number_concentration_due_to_model_physics
+ long_name = number concentration of cloud condensation nuclei tendency due to model physics
+ units = kg-1 s-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = ( index_of_cloud_condensation_nuclei_number_concentration_in_tracer_concentration_array > 0 )
+[dqdt(:,:,index_of_rain_mixing_ratio_in_tracer_concentration_array)]
+ standard_name = process_split_cumulative_tendency_of_rain_mixing_ratio
+ long_name = ratio of mass of rain water tendency to mass of dry air plus vapor (without condensates) due to model physics
+ units = kg kg-1 s-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[dqdt(:,:,index_of_snow_mixing_ratio_in_tracer_concentration_array)]
+ standard_name = process_split_cumulative_tendency_of_snow_mixing_ratio
+ long_name = ratio of mass of snow water tendency to mass of dry air plus vapor (without condensates) due to model physics
+ units = kg kg-1 s-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[dqdt(:,:,index_of_graupel_mixing_ratio_in_tracer_concentration_array)]
+ standard_name = process_split_cumulative_tendency_of_graupel_mixing_ratio
+ long_name = ratio of mass of graupel tendency to mass of dry air plus vapor (without condensates) due to model physics
+ units = kg kg-1 s-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[dqdt(:,:,index_of_turbulent_kinetic_energy_in_tracer_concentration_array)]
+ standard_name = process_split_cumulative_tendency_of_turbulent_kinetic_energy
+ long_name = turbulent kinetic energy tendency due to model physics
+ units = J s-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[dqsfc1]
+ standard_name = instantaneous_surface_upward_latent_heat_flux
+ long_name = surface upward latent heat flux
+ units = W m-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[drain]
+ standard_name = subsurface_runoff_flux
+ long_name = subsurface runoff flux
+ units = kg m-2 s-1
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[dtdt]
+ standard_name = process_split_cumulative_tendency_of_air_temperature
+ long_name = air temperature tendency due to model physics
+ units = K s-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[dtsfc1]
+ standard_name = instantaneous_surface_upward_sensible_heat_flux
+ long_name = surface upward sensible heat flux
+ units = W m-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[dtzm]
+ standard_name = mean_change_over_depth_in_sea_water_temperature
+ long_name = mean of dT(z) (zsea1 to zsea2)
+ units = K
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[dt_mf]
+ standard_name = instantaneous_atmosphere_detrainment_convective_mass_flux
+ long_name = (detrainment mass flux) * delt
+ units = kg m-2
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[dudt]
+ standard_name = process_split_cumulative_tendency_of_x_wind
+ long_name = zonal wind tendency due to model physics
+ units = m s-2
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[dusfcg]
+ standard_name = instantaneous_x_stress_due_to_gravity_wave_drag
+ long_name = zonal surface stress due to orographic gravity wave drag
+ units = Pa
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[dusfc1]
+ standard_name = instantaneous_surface_x_momentum_flux
+ long_name = x momentum flux
+ units = Pa
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[dvdftra]
+ standard_name = tendency_of_vertically_diffused_tracer_concentration
+ long_name = updated tendency of the tracers due to vertical diffusion in PBL scheme
+ units = kg kg-1 s-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_vertical_diffusion_tracers)
+ type = real
+ kind = kind_phys
+[dvdt]
+ standard_name = process_split_cumulative_tendency_of_y_wind
+ long_name = meridional wind tendency due to model physics
+ units = m s-2
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[dvsfcg]
+ standard_name = instantaneous_y_stress_due_to_gravity_wave_drag
+ long_name = meridional surface stress due to orographic gravity wave drag
+ units = Pa
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[dvsfc1]
+ standard_name = instantaneous_surface_y_momentum_flux
+ long_name = y momentum flux
+ units = Pa
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[dzlyr]
+ standard_name = layer_thickness_for_radiation
+ long_name = layer thickness on radiation levels
+ units = km
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[elvmax]
+ standard_name = maximum_subgrid_orography
+ long_name = maximum of subgrid height_above_mean_sea_level
+ units = m
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[ep1d]
+ standard_name = surface_upward_potential_latent_heat_flux
+ long_name = surface upward potential latent heat flux
+ units = W m-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[ep1d_water]
+ standard_name = surface_upward_potential_latent_heat_flux_over_water
+ long_name = surface upward potential latent heat flux over water
+ units = W m-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[ep1d_land]
+ standard_name = surface_upward_potential_latent_heat_flux_over_land
+ long_name = surface upward potential latent heat flux over land
+ units = W m-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[ep1d_ice]
+ standard_name = surface_upward_potential_latent_heat_flux_over_ice
+ long_name = surface upward potential latent heat flux over ice
+ units = W m-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[evap_water]
+ standard_name = kinematic_surface_upward_latent_heat_flux_over_water
+ long_name = kinematic surface upward latent heat flux over water
+ units = kg kg-1 m s-1
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[evap_land]
+ standard_name = kinematic_surface_upward_latent_heat_flux_over_land
+ long_name = kinematic surface upward latent heat flux over land
+ units = kg kg-1 m s-1
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[evap_ice]
+ standard_name = kinematic_surface_upward_latent_heat_flux_over_ice
+ long_name = kinematic surface upward latent heat flux over ice
+ units = kg kg-1 m s-1
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[evbs]
+ standard_name = soil_upward_latent_heat_flux
+ long_name = soil upward latent heat flux
+ units = W m-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[evcw]
+ standard_name = canopy_upward_latent_heat_flux
+ long_name = canopy upward latent heat flux
+ units = W m-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[pah]
+ standard_name = total_precipitation_advected_heat
+ long_name = precipitation advected heat - total
+ units = W m-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[ecan]
+ standard_name = evaporation_of_intercepted_water
+ long_name = evaporation of intercepted water
+ units = kg m-2 s-1
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[etran]
+ standard_name = transpiration_rate
+ long_name = transpiration rate
+ units = kg m-2 s-1
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[edir]
+ standard_name = soil_surface_evaporation_rate
+ long_name = soil surface evaporation rate
+ units = kg m-2 s-1
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[faerlw]
+ standard_name = aerosol_optical_properties_for_longwave_bands_01_16
+ long_name = aerosol optical properties for longwave bands 01-16
+ units = mixed
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_longwave_radiation,number_of_aerosol_output_fields_for_longwave_radiation)
+ type = real
+ kind = kind_phys
+[faerlw(:,:,:,1)]
+ standard_name = aerosol_optical_depth_for_longwave_bands_01_16
+ long_name = aerosol optical depth for longwave bands 01-16
+ units = none
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_longwave_radiation)
+ type = real
+ kind = kind_phys
+[faerlw(:,:,:,2)]
+ standard_name = aerosol_single_scattering_albedo_for_longwave_bands_01_16
+ long_name = aerosol single scattering albedo for longwave bands 01-16
+ units = frac
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_longwave_radiation)
+ type = real
+ kind = kind_phys
+[faerlw(:,:,:,3)]
+ standard_name = aerosol_asymmetry_parameter_for_longwave_bands_01_16
+ long_name = aerosol asymmetry parameter for longwave bands 01-16
+ units = none
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_longwave_radiation)
+ type = real
+ kind = kind_phys
+[faersw]
+ standard_name = aerosol_optical_properties_for_shortwave_bands_01_16
+ long_name = aerosol optical properties for shortwave bands 01-16
+ units = mixed
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_shortwave_radiation,number_of_aerosol_output_fields_for_shortwave_radiation)
+ type = real
+ kind = kind_phys
+[faersw(:,:,:,1)]
+ standard_name = aerosol_optical_depth_for_shortwave_bands_01_16
+ long_name = aerosol optical depth for shortwave bands 01-16
+ units = none
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_shortwave_radiation)
+ type = real
+ kind = kind_phys
+[faersw(:,:,:,2)]
+ standard_name = aerosol_single_scattering_albedo_for_shortwave_bands_01_16
+ long_name = aerosol single scattering albedo for shortwave bands 01-16
+ units = frac
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_shortwave_radiation)
+ type = real
+ kind = kind_phys
+[faersw(:,:,:,3)]
+ standard_name = aerosol_asymmetry_parameter_for_shortwave_bands_01_16
+ long_name = aerosol asymmetry parameter for shortwave bands 01-16
+ units = none
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_shortwave_radiation)
+ type = real
+ kind = kind_phys
+[ffhh_water]
+ standard_name = Monin_Obukhov_similarity_function_for_heat_over_water
+ long_name = Monin-Obukhov similarity function for heat over water
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[ffhh_land]
+ standard_name = Monin_Obukhov_similarity_function_for_heat_over_land
+ long_name = Monin-Obukhov similarity function for heat over land
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[ffhh_ice]
+ standard_name = Monin_Obukhov_similarity_function_for_heat_over_ice
+ long_name = Monin-Obukhov similarity function for heat over ice
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[fh2]
+ standard_name = Monin_Obukhov_similarity_function_for_heat_at_2m
+ long_name = Monin-Obukhov similarity parameter for heat at 2m
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[fh2_water]
+ standard_name = Monin_Obukhov_similarity_function_for_heat_at_2m_over_water
+ long_name = Monin-Obukhov similarity parameter for heat at 2m over water
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[fh2_land]
+ standard_name = Monin_Obukhov_similarity_function_for_heat_at_2m_over_land
+ long_name = Monin-Obukhov similarity parameter for heat at 2m over land
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[fh2_ice]
+ standard_name = Monin_Obukhov_similarity_function_for_heat_at_2m_over_ice
+ long_name = Monin-Obukhov similarity parameter for heat at 2m over ice
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[flag_cice]
+ standard_name = flag_for_cice
+ long_name = flag for cice
+ units = flag
+ dimensions = (horizontal_loop_extent)
+ type = logical
+[flag_guess]
+ standard_name = flag_for_guess_run
+ long_name = flag for guess run
+ units = flag
+ dimensions = (horizontal_loop_extent)
+ type = logical
+[flag_iter]
+ standard_name = flag_for_iteration
+ long_name = flag for iteration
+ units = flag
+ dimensions = (horizontal_loop_extent)
+ type = logical
+[ffmm_water]
+ standard_name = Monin_Obukhov_similarity_function_for_momentum_over_water
+ long_name = Monin-Obukhov similarity function for momentum over water
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[ffmm_land]
+ standard_name = Monin_Obukhov_similarity_function_for_momentum_over_land
+ long_name = Monin-Obukhov similarity function for momentum over land
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[ffmm_ice]
+ standard_name = Monin_Obukhov_similarity_function_for_momentum_over_ice
+ long_name = Monin-Obukhov similarity function for momentum over ice
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[fm10]
+ standard_name = Monin_Obukhov_similarity_function_for_momentum_at_10m
+ long_name = Monin-Obukhov similarity parameter for momentum at 10m
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[fm10_water]
+ standard_name = Monin_Obukhov_similarity_function_for_momentum_at_10m_over_water
+ long_name = Monin-Obukhov similarity parameter for momentum at 10m over water
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[fm10_land]
+ standard_name = Monin_Obukhov_similarity_function_for_momentum_at_10m_over_land
+ long_name = Monin-Obukhov similarity parameter for momentum at 10m over land
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[fm10_ice]
+ standard_name = Monin_Obukhov_similarity_function_for_momentum_at_10m_over_ice
+ long_name = Monin-Obukhov similarity parameter for momentum at 10m over ice
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[frain]
+ standard_name = dynamics_to_physics_timestep_ratio
+ long_name = ratio of dynamics timestep to physics timestep
+ units = none
+ dimensions = ()
+ type = real
+ kind = kind_phys
+[frland]
+ standard_name = land_area_fraction_for_microphysics
+ long_name = land area fraction used in microphysics schemes
+ units = frac
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[fscav]
+ standard_name = fraction_of_tracer_scavenged
+ long_name = fraction of the tracer (aerosols) that is scavenged by convection
+ units = km-1
+ dimensions = (number_of_tracers_scavenged)
+ type = real
+ kind = kind_phys
+[fswtr]
+ standard_name = fraction_of_cloud_top_water_scavenged
+ long_name = fraction of the tracer (cloud top water) that is scavenged by convection
+ units = km-1
+ dimensions = (number_of_tracers_scavenged)
+ type = real
+ kind = kind_phys
+[gabsbdlw]
+ standard_name = surface_downwelling_longwave_flux_absorbed_by_ground
+ long_name = total sky surface downward longwave flux absorbed by the ground
+ units = W m-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[gabsbdlw_water]
+ standard_name = surface_downwelling_longwave_flux_absorbed_by_ground_over_water
+ long_name = total sky surface downward longwave flux absorbed by the ground over water
+ units = W m-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[gabsbdlw_land]
+ standard_name = surface_downwelling_longwave_flux_absorbed_by_ground_over_land
+ long_name = total sky surface downward longwave flux absorbed by the ground over land
+ units = W m-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[gabsbdlw_ice]
+ standard_name = surface_downwelling_longwave_flux_absorbed_by_ground_over_ice
+ long_name = total sky surface downward longwave flux absorbed by the ground over ice
+ units = W m-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[gamma]
+ standard_name = anisotropy_of_subgrid_orography
+ long_name = anisotropy of subgrid height_above_mean_sea_level
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[gamq]
+ standard_name = countergradient_mixing_term_for_water_vapor
+ long_name = countergradient mixing term for water vapor
+ units = kg kg-1
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[gamt]
+ standard_name = countergradient_mixing_term_for_temperature
+ long_name = countergradient mixing term for temperature
+ units = K
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[gasvmr(:,:,1)]
+ standard_name = volume_mixing_ratio_of_co2
+ long_name = volume mixing ratio co2
+ units = m3 m-3
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[gasvmr(:,:,2)]
+ standard_name = volume_mixing_ratio_of_n2o
+ long_name = volume mixing ratio no2
+ units = m3 m-3
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[gasvmr(:,:,3)]
+ standard_name = volume_mixing_ratio_of_ch4
+ long_name = volume mixing ratio ch4
+ units = m3 m-3
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[gasvmr(:,:,4)]
+ standard_name = volume_mixing_ratio_of_o2
+ long_name = volume mixing ratio o2
+ units = m3 m-3
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[gasvmr(:,:,5)]
+ standard_name = volume_mixing_ratio_of_co
+ long_name = volume mixing ratio co
+ units = m3 m-3
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[gasvmr(:,:,6)]
+ standard_name = volume_mixing_ratio_of_cfc11
+ long_name = volume mixing ratio cfc11
+ units = m3 m-3
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[gasvmr(:,:,7)]
+ standard_name = volume_mixing_ratio_of_cfc12
+ long_name = volume mixing ratio cfc12
+ units = m3 m-3
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[gasvmr(:,:,8)]
+ standard_name = volume_mixing_ratio_of_cfc22
+ long_name = volume mixing ratio cfc22
+ units = m3 m-3
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[gasvmr(:,:,9)]
+ standard_name = volume_mixing_ratio_of_ccl4
+ long_name = volume mixing ratio ccl4
+ units = m3 m-3
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[gasvmr(:,:,10)]
+ standard_name = volume_mixing_ratio_of_cfc113
+ long_name = volume mixing ratio cfc113
+ units = m3 m-3
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[gflx]
+ standard_name = upward_heat_flux_in_soil
+ long_name = soil heat flux
+ units = W m-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[gflx_water]
+ standard_name = upward_heat_flux_in_soil_over_water
+ long_name = soil heat flux over water
+ units = W m-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[gflx_land]
+ standard_name = upward_heat_flux_in_soil_over_land
+ long_name = soil heat flux over land
+ units = W m-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[gflx_ice]
+ standard_name = upward_heat_flux_in_soil_over_ice
+ long_name = soil heat flux over ice
+ units = W m-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[graupelmp]
+ standard_name = lwe_thickness_of_graupel_amount
+ long_name = explicit graupel fall on physics timestep
+ units = m
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+ active = (control_for_microphysics_scheme == identifier_for_gfdl_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_thompson_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_nssl_microphysics_scheme)
+[gwdcu]
+ standard_name = tendency_of_x_wind_due_to_convective_gravity_wave_drag
+ long_name = zonal wind tendency due to convective gravity wave drag
+ units = m s-2
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[gwdcv]
+ standard_name = tendency_of_y_wind_due_to_convective_gravity_wave_drag
+ long_name = meridional wind tendency due to convective gravity wave drag
+ units = m s-2
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[zvfun]
+ standard_name = function_of_surface_roughness_length_and_green_vegetation_fraction
+ long_name = function of surface roughness length and green vegetation fraction
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[hffac]
+ standard_name = surface_upward_sensible_heat_flux_reduction_factor
+ long_name = surface upward sensible heat flux reduction factor from canopy heat storage
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[hflxq]
+ standard_name = kinematic_surface_upward_sensible_heat_flux_reduced_by_surface_roughness_and_vegetation
+ long_name = kinematic surface upward sensible heat flux reduced by surface roughness and vegetation
+ units = K m s-1
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[hflx_water]
+ standard_name = kinematic_surface_upward_sensible_heat_flux_over_water
+ long_name = kinematic surface upward sensible heat flux over water
+ units = K m s-1
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[hflx_land]
+ standard_name = kinematic_surface_upward_sensible_heat_flux_over_land
+ long_name = kinematic surface upward sensible heat flux over land
+ units = K m s-1
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[hflx_ice]
+ standard_name = kinematic_surface_upward_sensible_heat_flux_over_ice
+ long_name = kinematic surface upward sensible heat flux over ice
+ units = K m s-1
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[htlwc]
+ standard_name = tendency_of_air_temperature_due_to_longwave_heating_on_radiation_time_step_and_radiation_levels
+ long_name = total sky heating rate due to longwave radiation
+ units = K s-1
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[htlw0]
+ standard_name = tendency_of_air_temperature_due_to_longwave_heating_assuming_clear_sky_on_radiation_time_step_and_radiation_levels
+ long_name = clear sky heating rate due to longwave radiation
+ units = K s-1
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[htswc]
+ standard_name = tendency_of_air_temperature_due_to_shortwave_heating_on_radiation_time_step_and_radiation_levels
+ long_name = total sky heating rate due to shortwave radiation
+ units = K s-1
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[htsw0]
+ standard_name = tendency_of_air_temperature_due_to_shortwave_heating_assuming_clear_sky_on_radiation_time_step_and_radiation_levels
+ long_name = clear sky heating rates due to shortwave radiation
+ units = K s-1
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[icemp]
+ standard_name = lwe_thickness_of_ice_amount
+ long_name = explicit ice fall on physics timestep
+ units = m
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+ active = (control_for_microphysics_scheme == identifier_for_gfdl_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_thompson_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_nssl_microphysics_scheme)
+[dry]
+ standard_name = flag_nonzero_land_surface_fraction
+ long_name = flag indicating presence of some land surface area fraction
+ units = flag
+ dimensions = (horizontal_loop_extent)
+ type = logical
+[idxday]
+ standard_name = daytime_points
+ long_name = daytime points
+ units = index
+ dimensions = (horizontal_loop_extent)
+ type = integer
+[icy]
+ standard_name = flag_nonzero_sea_ice_surface_fraction
+ long_name = flag indicating presence of some sea ice surface area fraction
+ units = flag
+ dimensions = (horizontal_loop_extent)
+ type = logical
+[lake]
+ standard_name = flag_nonzero_lake_surface_fraction
+ long_name = flag indicating presence of some lake surface area fraction
+ units = flag
+ dimensions = (horizontal_loop_extent)
+ type = logical
+[use_flake]
+ standard_name = flag_for_using_flake
+ long_name = flag indicating lake points using flake model
+ units = flag
+ dimensions = (horizontal_loop_extent)
+ type = logical
+[ocean]
+ standard_name = flag_nonzero_ocean_surface_fraction
+ long_name = flag indicating presence of some ocean surface area fraction
+ units = flag
+ dimensions = (horizontal_loop_extent)
+ type = logical
+[ipr]
+ standard_name = horizontal_index_of_printed_column
+ long_name = horizontal index of printed column
+ units = index
+ dimensions = ()
+ type = integer
+[islmsk]
+ standard_name = sea_land_ice_mask
+ long_name = sea/land/ice mask (=0/1/2)
+ units = flag
+ dimensions = (horizontal_loop_extent)
+ type = integer
+[islmsk_cice]
+ standard_name = sea_land_ice_mask_cice
+ long_name = sea/land/ice mask cice (=0/1/2)
+ units = flag
+ dimensions = (horizontal_loop_extent)
+ type = integer
+[itc]
+ standard_name = index_of_first_chemical_tracer_for_convection
+ long_name = index of first chemical tracer transported/scavenged by convection
+ units = index
+ dimensions = ()
+ type = integer
+[wet]
+ standard_name = flag_nonzero_wet_surface_fraction
+ long_name = flag indicating presence of some ocean or lake surface area fraction
+ units = flag
+ dimensions = (horizontal_loop_extent)
+ type = logical
+[kb]
+ standard_name = vertical_index_difference_between_layer_and_lower_bound
+ long_name = vertical index difference between layer and lower bound
+ units = index
+ dimensions = ()
+ type = integer
+[kbot]
+ standard_name = vertical_index_at_cloud_base
+ long_name = vertical index at cloud base
+ units = index
+ dimensions = (horizontal_loop_extent)
+ type = integer
+[kcnv]
+ standard_name = flag_deep_convection
+ long_name = flag indicating whether convection occurs in column (0 or 1)
+ units = flag
+ dimensions = (horizontal_loop_extent)
+ type = integer
+[kd]
+ standard_name = vertical_index_difference_between_inout_and_local
+ long_name = vertical index difference between in/out and local
+ units = index
+ dimensions = ()
+ type = integer
+[kinver]
+ standard_name = index_of_highest_temperature_inversion
+ long_name = index of highest temperature inversion
+ units = index
+ dimensions = (horizontal_loop_extent)
+ type = integer
+[kpbl]
+ standard_name = vertical_index_at_top_of_atmosphere_boundary_layer
+ long_name = vertical index at top atmospheric boundary layer
+ units = index
+ dimensions = (horizontal_loop_extent)
+ type = integer
+[kt]
+ standard_name = vertical_index_difference_between_layer_and_upper_bound
+ long_name = vertical index difference between layer and upper bound
+ units = index
+ dimensions = ()
+ type = integer
+[ktop]
+ standard_name = vertical_index_at_cloud_top
+ long_name = vertical index at cloud top
+ units = index
+ dimensions = (horizontal_loop_extent)
+ type = integer
+[latidxprnt]
+ standard_name = latitude_index_in_debug_printouts
+ long_name = latitude index in debug printouts
+ units = index
+ dimensions = ()
+ type = integer
+[levi]
+ standard_name = vertical_interface_dimension_interstitial
+ long_name = vertical interface dimension
+ units = count
+ dimensions = ()
+ type = integer
+[lmk]
+ standard_name = adjusted_vertical_layer_dimension_for_radiation
+ long_name = adjusted number of vertical layers for radiation
+ units = count
+ dimensions = ()
+ type = integer
+[lmp]
+ standard_name = adjusted_vertical_level_dimension_for_radiation
+ long_name = adjusted number of vertical levels for radiation
+ units = count
+ dimensions = ()
+ type = integer
+[mbota]
+ standard_name = model_layer_number_at_cloud_base
+ long_name = vertical indices for low, middle and high cloud bases
+ units = index
+ dimensions = (horizontal_loop_extent,3)
+ type = integer
+[mg3_as_mg2]
+ standard_name = flag_mg3_as_mg2
+ long_name = flag for controlling prep for Morrison-Gettelman microphysics
+ units = flag
+ dimensions = ()
+ type = logical
+[mtopa]
+ standard_name = model_layer_number_at_cloud_top
+ long_name = vertical indices for low, middle and high cloud tops
+ units = index
+ dimensions = (horizontal_loop_extent,3)
+ type = integer
+[nbdlw]
+ standard_name = number_of_aerosol_bands_for_longwave_radiation
+ long_name = number of aerosol bands for longwave radiation
+ units = count
+ dimensions = ()
+ type = integer
+[nbdsw]
+ standard_name = number_of_aerosol_bands_for_shortwave_radiation
+ long_name = number of aerosol bands for shortwave radiation
+ units = count
+ dimensions = ()
+ type = integer
+[ncgl]
+ standard_name = local_graupel_number_concentration
+ long_name = number concentration of graupel local to physics
+ units = kg-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme)
+[ncpi]
+ standard_name = local_ice_number_concentration
+ long_name = number concentration of ice local to physics
+ units = kg-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_shoc)
+[ncpl]
+ standard_name = local_condesed_water_number_concentration
+ long_name = number concentration of condensed water local to physics
+ units = kg-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_shoc)
+[ncpr]
+ standard_name = local_rain_number_concentration
+ long_name = number concentration of rain local to physics
+ units = kg-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme)
+[ncps]
+ standard_name = local_snow_number_concentration
+ long_name = number concentration of snow local to physics
+ units = kg-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme)
+[ncstrac]
+ standard_name = number_of_tracers_for_CS
+ long_name = number of convectively transported tracers in Chikira-Sugiyama deep convection scheme
+ units = count
+ dimensions = ()
+ type = integer
+[nday]
+ standard_name = daytime_points_dimension
+ long_name = daytime points dimension
+ units = count
+ dimensions = ()
+ type = integer
+[nf_aelw]
+ standard_name = number_of_aerosol_output_fields_for_longwave_radiation
+ long_name = number of aerosol output fields for longwave radiation
+ units = count
+ dimensions = ()
+ type = integer
+[nf_aesw]
+ standard_name = number_of_aerosol_output_fields_for_shortwave_radiation
+ long_name = number of aerosol output fields for shortwave radiation
+ units = count
+ dimensions = ()
+ type = integer
+[nn]
+ standard_name = number_of_tracers_for_convective_transport
+ long_name = number of tracers for convective transport
+ units = count
+ dimensions = ()
+ type = integer
+[nsamftrac]
+ standard_name = number_of_tracers_for_samf
+ long_name = number of tracers for scale-aware mass flux schemes
+ units = count
+ dimensions = ()
+ type = integer
+[nscav]
+ standard_name = number_of_tracers_scavenged
+ long_name = number of tracers scavenged
+ units = count
+ dimensions = ()
+ type = integer
+[nspc1]
+ standard_name = number_of_species_for_aerosol_optical_depth
+ long_name = number of species for output aerosol optical depth plus total
+ units = count
+ dimensions = ()
+ type = integer
+[ntcwx]
+ standard_name = index_for_liquid_cloud_condensate_vertical_diffusion_tracer
+ long_name = index for liquid cloud condensate in the vertically diffused tracer array
+ units = index
+ dimensions = ()
+ type = integer
+[ntiwx]
+ standard_name = index_for_ice_cloud_condensate_vertical_diffusion_tracer
+ long_name = index for ice cloud condensate in the vertically diffused tracer array
+ units = index
+ dimensions = ()
+ type = integer
+[ntrwx]
+ standard_name = index_for_rain_water_vertical_diffusion_tracer
+ long_name = tracer index for rain water in the vertically diffused tracer array
+ units = index
+ dimensions = ()
+ type = integer
+[ntk]
+ standard_name = index_for_turbulent_kinetic_energy_convective_transport_tracer
+ long_name = index for turbulent kinetic energy in the convectively transported tracer array
+ units = index
+ dimensions = ()
+ type = integer
+[ntkev]
+ standard_name = index_for_turbulent_kinetic_energy_vertical_diffusion_tracer
+ long_name = index for turbulent kinetic energy in the vertically diffused tracer array
+ units = index
+ dimensions = ()
+ type = integer
+[nvdiff]
+ standard_name = number_of_vertical_diffusion_tracers
+ long_name = number of tracers to diffuse vertically
+ units = count
+ dimensions = ()
+ type = integer
+[oa4]
+ standard_name = asymmetry_of_subgrid_orography
+ long_name = asymmetry of subgrid height_above_mean_sea_level
+ units = none
+ dimensions = (horizontal_loop_extent,4)
+ type = real
+ kind = kind_phys
+[varss]
+ standard_name = standard_deviation_of_subgrid_orography_small_scale
+ long_name = standard deviation of subgrid height_above_mean_sea_level small scale
+ units = m
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+ active = (control_for_drag_suite_gravity_wave_drag == 3 .or. control_for_drag_suite_gravity_wave_drag == 33)
+[oa4ss]
+ standard_name = asymmetry_of_subgrid_orography_small_scale
+ long_name = asymmetry of subgrid height_above_mean_sea_level small scale
+ units = none
+ dimensions = (horizontal_loop_extent,4)
+ type = real
+ kind = kind_phys
+ active = (control_for_drag_suite_gravity_wave_drag == 3 .or. control_for_drag_suite_gravity_wave_drag == 33)
+[oc]
+ standard_name = convexity_of_subgrid_orography
+ long_name = convexity of subgrid height_above_mean_sea_level
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[ocss]
+ standard_name = convexity_of_subgrid_orography_small_scale
+ long_name = convexity of subgrid height_above_mean_sea_level small scale
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+ active = (control_for_drag_suite_gravity_wave_drag == 3 .or. control_for_drag_suite_gravity_wave_drag == 33)
+[olyr]
+ standard_name = ozone_concentration_at_layer_for_radiation
+ long_name = ozone concentration layer
+ units = kg kg-1
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[otspt]
+ standard_name = flag_convective_tracer_transport
+ long_name = flag to enable tracer transport by updrafts/downdrafts[(:,1)] or subsidence [(:,2)]
+ units = flag
+ dimensions = (number_of_tracers_plus_one,2)
+ type = logical
+[otsptflag]
+ standard_name = flag_convective_tracer_transport_interstitial
+ long_name = flag for interstitial tracer transport
+ units = flag
+ dimensions = (number_of_tracers)
+ type = logical
+[oz_coeffp5]
+ standard_name = number_of_coefficients_in_ozone_forcing_data_plus_five
+ long_name = number of coefficients in ozone forcing data plus five
+ units = index
+ dimensions = ()
+ type = integer
+[phys_hydrostatic]
+ standard_name = flag_for_hydrostatic_heating_from_physics
+ long_name = flag for use of hydrostatic heating in physics
+ units = flag
+ dimensions = ()
+ type = logical
+[plvl]
+ standard_name = air_pressure_at_interface_for_radiation_in_hPa
+ long_name = air pressure at vertical interface for radiation calculation
+ units = hPa
+ dimensions = (horizontal_loop_extent,adjusted_vertical_level_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[plyr]
+ standard_name = air_pressure_at_layer_for_radiation_in_hPa
+ long_name = air pressure at vertical layer for radiation calculation
+ units = hPa
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[prnum]
+ standard_name = prandtl_number
+ long_name = turbulent Prandtl number
+ units = none
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[q2mp]
+ standard_name = specific_humidity_at_2m_from_noahmp
+ long_name = 2 meter specific humidity from noahmp
+ units = kg kg-1
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+ active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme)
+[qgl]
+ standard_name = local_graupel_mixing_ratio
+ long_name = ratio of mass of graupel to mass of dry air plus vapor (without condensates) local to physics
+ units = kg kg-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme .or. flag_for_shoc)
+[qicn]
+ standard_name = mass_fraction_of_convective_cloud_ice
+ long_name = mass fraction of convective cloud ice water
+ units = kg kg-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme)
+[qlcn]
+ standard_name = mass_fraction_of_convective_cloud_liquid_water
+ long_name = mass fraction of convective cloud liquid water
+ units = kg kg-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme)
+[qlyr]
+ standard_name = water_vapor_specific_humidity_at_layer_for_radiation
+ long_name = specific humidity layer
+ units = kg kg-1
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[qrn]
+ standard_name = local_rain_water_mixing_ratio
+ long_name = ratio of mass of rain water to mass of dry air plus vapor (without condensates) local to physics
+ units = kg kg-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme .or. flag_for_shoc)
+[qsnw]
+ standard_name = local_snow_water_mixing_ratio
+ long_name = ratio of mass of snow water to mass of dry air plus vapor (without condensates) local to physics
+ units = kg kg-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme .or. flag_for_shoc)
+[prcpmp]
+ standard_name = lwe_thickness_of_explicit_precipitation_amount
+ long_name = explicit precipitation (rain, ice, snow, graupel, ...) on physics timestep
+ units = m
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[qss_water]
+ standard_name = surface_specific_humidity_over_water
+ long_name = surface air saturation specific humidity over water
+ units = kg kg-1
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[qss_land]
+ standard_name = surface_specific_humidity_over_land
+ long_name = surface air saturation specific humidity over land
+ units = kg kg-1
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[qss_ice]
+ standard_name = surface_specific_humidity_over_ice
+ long_name = surface air saturation specific humidity over ice
+ units = kg kg-1
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[radar_reset]
+ standard_name = flag_for_resetting_radar_reflectivity_calculation
+ long_name = flag for resetting radar reflectivity calculation
+ units = flag
+ dimensions = ()
+ type = logical
+[raddt]
+ standard_name = time_step_for_radiation
+ long_name = radiation time step
+ units = s
+ dimensions = ()
+ type = real
+ kind = kind_phys
+[raincd]
+ standard_name = lwe_thickness_of_deep_convective_precipitation_amount
+ long_name = deep convective rainfall amount on physics timestep
+ units = m
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[raincs]
+ standard_name = lwe_thickness_of_shallow_convective_precipitation_amount
+ long_name = shallow convective rainfall amount on physics timestep
+ units = m
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[rainmcadj]
+ standard_name = lwe_thickness_of_moist_convective_adj_precipitation_amount
+ long_name = adjusted moist convective rainfall amount on physics timestep
+ units = m
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[rainmp]
+ standard_name = lwe_thickness_of_explicit_rain_amount
+ long_name = explicit rain on physics timestep
+ units = m
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+ active = (control_for_microphysics_scheme == identifier_for_gfdl_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_thompson_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_nssl_microphysics_scheme)
+[rainp]
+ standard_name = tendency_of_rain_water_mixing_ratio_due_to_microphysics
+ long_name = tendency of rain water mixing ratio due to microphysics
+ units = kg kg-1 s-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[rb]
+ standard_name = bulk_richardson_number_at_lowest_model_level
+ long_name = bulk Richardson number at the surface
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[rb_water]
+ standard_name = bulk_richardson_number_at_lowest_model_level_over_water
+ long_name = bulk Richardson number at the surface over water
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[rb_land]
+ standard_name = bulk_richardson_number_at_lowest_model_level_over_land
+ long_name = bulk Richardson number at the surface over land
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[rb_ice]
+ standard_name = bulk_richardson_number_at_lowest_model_level_over_ice
+ long_name = bulk Richardson number at the surface over ice
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[max_hourly_reset]
+ standard_name = flag_reset_maximum_hourly_fields
+ long_name = flag for resetting maximum hourly fields
+ units = flag
+ dimensions = ()
+ type = logical
+[ext_diag_thompson_reset]
+ standard_name = flag_reset_extended_diagnostics_output_arrays_from_thompson_microphysics
+ long_name = flag for resetting extended diagnostics output arrays from thompson microphysics
+ units = flag
+ dimensions = ()
+ type = logical
+[rhc]
+ standard_name = critical_relative_humidity
+ long_name = critical relative humidity
+ units = frac
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[rho1]
+ standard_name = air_density_at_lowest_model_layer
+ long_name = air density at lowest model layer
+ units = kg m-3
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[runoff]
+ standard_name = surface_runoff_flux
+ long_name = surface runoff flux
+ units = kg m-2 s-1
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[save_q(:,:,index_of_ozone_mixing_ratio_in_tracer_concentration_array)]
+ standard_name = ozone_mixing_ratio_save
+ long_name = ozone mixing ratio before entering a physics scheme
+ units = kg kg-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[save_q(:,:,index_of_turbulent_kinetic_energy_in_tracer_concentration_array)]
+ standard_name = turbulent_kinetic_energy_save
+ long_name = turbulent kinetic energy before entering a physics scheme
+ units = kg kg-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[save_q(:,:,index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array)]
+ standard_name = cloud_condensed_water_mixing_ratio_save
+ long_name = ratio of mass of cloud water to mass of dry air plus vapor (without condensates) before entering a physics scheme
+ units = kg kg-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[save_q(:,:,index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array)]
+ standard_name = ice_water_mixing_ratio_save
+ long_name = cloud ice water mixing ratio before entering a physics scheme
+ units = kg kg-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[save_q(:,:,index_of_specific_humidity_in_tracer_concentration_array)]
+ standard_name = water_vapor_specific_humidity_save
+ long_name = water vapor specific humidity before entering a physics scheme
+ units = kg kg-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[save_q(:,:,index_of_mass_number_concentration_of_cloud_droplets_in_tracer_concentration_array)]
+ standard_name = liquid_cloud_number_concentration_save
+ long_name = liquid cloud number concentration before entering a physics scheme
+ units = kg kg-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[save_q(:,:,index_of_mass_number_concentration_of_cloud_ice_in_tracer_concentration_array)]
+ standard_name = ice_cloud_number_concentration_save
+ long_name = ice cloud number concentration before entering a physics scheme
+ units = kg kg-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[save_q]
+ standard_name = tracer_concentration_save
+ long_name = tracer concentration before entering a physics scheme
+ units = kg kg-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_tracers)
+ type = real
+ kind = kind_phys
+[save_t]
+ standard_name = air_temperature_save
+ long_name = air temperature before entering a physics scheme
+ units = K
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[save_tcp]
+ standard_name = air_temperature_save_from_convective_parameterization
+ long_name = air temperature after cumulus parameterization
+ units = K
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[save_u]
+ standard_name = x_wind_save
+ long_name = x-wind before entering a physics scheme
+ units = m s-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[save_v]
+ standard_name = y_wind_save
+ long_name = y-wind before entering a physics scheme
+ units = m s-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[sbsno]
+ standard_name = snow_deposition_sublimation_upward_latent_heat_flux
+ long_name = latent heat flux from snow depo/subl
+ units = W m-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[scmpsw]
+ standard_name = components_of_surface_downward_shortwave_fluxes
+ long_name = derived type for special components of surface downward shortwave fluxes
+ units = W m-2
+ dimensions = (horizontal_loop_extent)
+ type = cmpfsw_type
+[sfcalb]
+ standard_name = surface_albedo_components
+ long_name = surface albedo IR/UV/VIS components
+ units = frac
+ dimensions = (horizontal_loop_extent,number_of_components_for_surface_albedo)
+ type = real
+ kind = kind_phys
+[sfcalb(:,1)]
+ standard_name = surface_albedo_due_to_near_IR_direct
+ long_name = surface albedo due to near IR direct beam
+ units = frac
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[sfcalb(:,2)]
+ standard_name = surface_albedo_due_to_near_IR_diffused
+ long_name = surface albedo due to near IR diffused beam
+ units = frac
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[sfcalb(:,3)]
+ standard_name = surface_albedo_due_to_UV_and_VIS_direct
+ long_name = surface albedo due to UV+VIS direct beam
+ units = frac
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[sfcalb(:,4)]
+ standard_name = surface_albedo_due_to_UV_and_VIS_diffused
+ long_name = surface albedo due to UV+VIS diffused beam
+ units = frac
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[sigma]
+ standard_name = slope_of_subgrid_orography
+ long_name = slope of subgrid height_above_mean_sea_level
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[sigmaf]
+ standard_name = bounded_vegetation_area_fraction
+ long_name = areal fractional cover of green vegetation bounded on the bottom
+ units = frac
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[sigmafrac]
+ standard_name = convective_updraft_area_fraction
+ long_name = convective updraft area fraction
+ units = frac
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[sigmatot]
+ standard_name = convective_updraft_area_fraction_at_model_interfaces
+ long_name = convective updraft area fraction at model interfaces
+ units = frac
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[skip_macro]
+ standard_name = flag_skip_macro
+ long_name = flag to skip cloud macrophysics in Morrison scheme
+ units = flag
+ dimensions = ()
+ type = logical
+[snowc]
+ standard_name = surface_snow_area_fraction
+ long_name = surface snow area fraction
+ units = frac
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[snohf]
+ standard_name = snow_freezing_rain_upward_latent_heat_flux
+ long_name = latent heat flux due to snow and frz rain
+ units = W m-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[snowmp]
+ standard_name = lwe_thickness_of_snow_amount
+ long_name = explicit snow fall on physics timestep
+ units = m
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+ active = (control_for_microphysics_scheme == identifier_for_gfdl_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_thompson_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_nssl_microphysics_scheme)
+[snowmt]
+ standard_name = surface_snow_melt
+ long_name = snow melt during timestep
+ units = m
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[stress]
+ standard_name = surface_wind_stress
+ long_name = surface wind stress
+ units = m2 s-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[stress_water]
+ standard_name = surface_wind_stress_over_water
+ long_name = surface wind stress over water
+ units = m2 s-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[stress_land]
+ standard_name = surface_wind_stress_over_land
+ long_name = surface wind stress over land
+ units = m2 s-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[stress_ice]
+ standard_name = surface_wind_stress_over_ice
+ long_name = surface wind stress over ice
+ units = m2 s-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[t2mmp]
+ standard_name = temperature_at_2m_from_noahmp
+ long_name = 2 meter temperature from noahmp
+ units = K
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+ active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme)
+[theta]
+ standard_name = angle_from_east_of_maximum_subgrid_orographic_variations
+ long_name = angle with_respect to east of maximum subgrid orographic variations
+ units = degree
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[tlvl]
+ standard_name = air_temperature_at_interface_for_radiation
+ long_name = air temperature at vertical interface for radiation calculation
+ units = K
+ dimensions = (horizontal_loop_extent,adjusted_vertical_level_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[tlyr]
+ standard_name = air_temperature_at_layer_for_radiation
+ long_name = air temperature at vertical layer for radiation calculation
+ units = K
+ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
+ type = real
+ kind = kind_phys
+[tprcp_water]
+ standard_name = nonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep_over_water
+ long_name = total precipitation amount in each time step over water
+ units = m
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[tprcp_land]
+ standard_name = nonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep_over_land
+ long_name = total precipitation amount in each time step over land
+ units = m
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[tprcp_ice]
+ standard_name = nonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep_over_ice
+ long_name = total precipitation amount in each time step over ice
+ units = m
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[tracers_start_index]
+ standard_name = start_index_of_other_tracers
+ long_name = beginning index of the non-water tracer species
+ units = index
+ dimensions = ()
+ type = integer
+[tracers_total]
+ standard_name = number_of_total_tracers
+ long_name = total number of tracers
+ units = count
+ dimensions = ()
+ type = integer
+[trans_aero]
+ standard_name = flag_for_aerosol_convective_transport_and_PBL_diffusion
+ long_name = flag for aerosol convective transport and PBL diffusion
+ units = flag
+ dimensions = ()
+ type = logical
+[trans]
+ standard_name = transpiration_flux
+ long_name = total plant transpiration rate
+ units = W m-2
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[tseal]
+ standard_name = surface_skin_temperature_for_nsst
+ long_name = ocean surface skin temperature
+ units = K
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[tsfa]
+ standard_name = surface_air_temperature_for_radiation
+ long_name = lowest model layer air temperature for radiation
+ units = K
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[tsfc_water]
+ standard_name = surface_skin_temperature_over_water
+ long_name = surface skin temperature over water
+ units = K
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[tsfg]
+ standard_name = surface_ground_temperature_for_radiation
+ long_name = surface ground temperature for radiation
+ units = K
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[tsurf_water]
+ standard_name = surface_skin_temperature_after_iteration_over_water
+ long_name = surface skin temperature after iteration over water
+ units = K
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[tsurf_land]
+ standard_name = surface_skin_temperature_after_iteration_over_land
+ long_name = surface skin temperature after iteration over land
+ units = K
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[tsurf_ice]
+ standard_name = surface_skin_temperature_after_iteration_over_ice
+ long_name = surface skin temperature after iteration over ice
+ units = K
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[tracers_water]
+ standard_name = number_of_water_tracers
+ long_name = number of water-related tracers
+ units = count
+ dimensions = ()
+ type = integer
+[ud_mf]
+ standard_name = instantaneous_atmosphere_updraft_convective_mass_flux
+ long_name = (updraft mass flux) * delt
+ units = kg m-2
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[uustar_water]
+ standard_name = surface_friction_velocity_over_water
+ long_name = surface friction velocity over water
+ units = m s-1
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[uustar_land]
+ standard_name = surface_friction_velocity_over_land
+ long_name = surface friction velocity over land
+ units = m s-1
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[uustar_ice]
+ standard_name = surface_friction_velocity_over_ice
+ long_name = surface friction velocity over ice
+ units = m s-1
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[vdftra]
+ standard_name = vertically_diffused_tracer_concentration
+ long_name = tracer concentration diffused by PBL scheme
+ units = kg kg-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_vertical_diffusion_tracers)
+ type = real
+ kind = kind_phys
+[lndp_vgf]
+ standard_name = magnitude_of_perturbation_of_vegetation_fraction
+ long_name = magnitude of perturbation of vegetation fraction
+ units = frac
+ dimensions = ()
+ type = real
+ kind = kind_phys
+[vegf1d]
+ standard_name = perturbation_of_vegetation_fraction
+ long_name = perturbation of vegetation fraction
+ units = frac
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[w_upi]
+ standard_name = vertical_velocity_for_updraft
+ long_name = vertical velocity for updraft
+ units = m s-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme)
+[wcbmax]
+ standard_name = maximum_updraft_velocity_at_cloud_base
+ long_name = maximum updraft velocity at cloud base
+ units = m s-1
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[wind]
+ standard_name = wind_speed_at_lowest_model_layer
+ long_name = wind speed at lowest model level
+ units = m s-1
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[work1]
+ standard_name = grid_size_related_coefficient_used_in_scale_sensitive_schemes
+ long_name = grid size related coefficient used in scale-sensitive schemes
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[work2]
+ standard_name = grid_size_related_coefficient_used_in_scale_sensitive_schemes_complement
+ long_name = complement to work1
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[work3]
+ standard_name = ratio_of_exner_function_between_midlayer_and_interface_at_lowest_model_layer
+ long_name = Exner function ratio bt midlayer and interface at 1st layer
+ units = ratio
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[xcosz]
+ standard_name = instantaneous_cosine_of_zenith_angle
+ long_name = cosine of zenith angle at current time
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[xlai1d]
+ standard_name = perturbation_of_leaf_area_index
+ long_name = perturbation of leaf area index
+ units = frac
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[xmu]
+ standard_name = zenith_angle_temporal_adjustment_factor_for_shortwave_fluxes
+ long_name = zenith angle temporal adjustment factor for shortwave
+ units = none
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[z01d]
+ standard_name = perturbation_of_momentum_roughness_length
+ long_name = perturbation of momentum roughness length
+ units = frac
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[ztmax_water]
+ standard_name = bounded_surface_roughness_length_for_heat_over_water
+ long_name = bounded surface roughness length for heat over water
+ units = m
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[ztmax_land]
+ standard_name = bounded_surface_roughness_length_for_heat_over_land
+ long_name = bounded surface roughness length for heat over land
+ units = m
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[ztmax_ice]
+ standard_name = bounded_surface_roughness_length_for_heat_over_ice
+ long_name = bounded surface roughness length for heat over ice
+ units = m
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[zt1d]
+ standard_name = perturbation_of_heat_to_momentum_roughness_length_ratio
+ long_name = perturbation of heat to momentum roughness length ratio
+ units = frac
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[zmtb]
+ standard_name = height_of_mountain_blocking
+ long_name = height of mountain blocking drag
+ units = m
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[dudt_ngw]
+ standard_name = tendency_of_x_wind_due_to_nonorographic_gravity_wave_drag
+ long_name = zonal wind tendency due to non-stationary GWs
+ units = m s-2
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2)
+[dvdt_ngw]
+ standard_name = tendency_of_y_wind_due_to_nonorographic_gravity_wave_drag
+ long_name = meridional wind tendency due to non-stationary GWs
+ units = m s-2
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2)
+[dtdt_ngw]
+ standard_name = tendency_of_air_temperature_due_to_nonorographic_gravity_wave_drag
+ long_name = air temperature tendency due to non-stationary GWs
+ units = K s-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2)
+[kdis_ngw]
+ standard_name = atmosphere_momentum_diffusivity_due_to_nonorographic_gravity_wave_drag
+ long_name = eddy mixing due to non-stationary GWs
+ units = m2 s-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2)
+[zlwb]
+ standard_name = height_of_low_level_wave_breaking
+ long_name = height of low level wave breaking
+ units = m
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[zogw]
+ standard_name = height_of_launch_level_of_orographic_gravity_wave
+ long_name = height of launch level of orographic gravity wave
+ units = m
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[zngw]
+ standard_name = height_of_launch_level_of_nonorographic_gravity_waves
+ long_name = height of launch level of non-stationary GWs
+ units = m
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[tau_tofd]
+ standard_name = instantaneous_momentum_flux_due_to_turbulent_orographic_form_drag
+ long_name = instantaneous momentum flux due to TOFD
+ units = Pa
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[tau_mtb]
+ standard_name = instantaneous_momentum_flux_due_to_mountain_blocking_drag
+ long_name = instantaneous momentum flux due to mountain blocking drag
+ units = Pa
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[tau_ogw]
+ standard_name = instantaneous_momentum_flux_due_to_orographic_gravity_wave_drag
+ long_name = instantaneous momentum flux due to orographic gravity wave drag
+ units = Pa
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[tau_oss]
+ standard_name = momentum_flux_due_to_subgrid_scale_orographic_gravity_wave_drag
+ long_name = momentum flux or stress due to SSO including OBL-OSS-OFD
+ units = Pa
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[tau_ngw]
+ standard_name = instantaneous_momentum_flux_due_to_nonstationary_gravity_wave
+ long_name = instantaneous momentum flux due to nonstationary gravity waves
+ units = Pa
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+[dudt_mtb]
+ standard_name = instantaneous_change_in_x_wind_due_to_mountain_blocking_drag
+ long_name = instantaneous change in x wind due to mountain blocking drag
+ units = m s-2
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[dudt_tms]
+ standard_name = tendency_of_x_wind_due_to_turbulent_orographic_form_drag
+ long_name = instantaneous change in x wind due to TOFD
+ units = m s-2
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+[qs_lay]
+ standard_name = saturation_vapor_pressure
+ long_name = saturation vapor pressure
+ units = Pa
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[q_lay]
+ standard_name = water_vapor_mixing_ratio
+ long_name = water vaport mixing ratio
+ units = kg kg-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[p_lay]
+ standard_name = air_pressure_at_layer_for_RRTMGP
+ long_name = air pressure layer
+ units = Pa
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[p_lev]
+ standard_name = air_pressure_at_interface_for_RRTMGP
+ long_name = air pressure level
+ units = Pa
+ dimensions = (horizontal_loop_extent,vertical_interface_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[t_lay]
+ standard_name = air_temperature_at_layer_for_RRTMGP
+ long_name = air temperature layer
+ units = K
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[t_lev]
+ standard_name = air_temperature_at_interface_for_RRTMGP
+ long_name = air temperature layer
+ units = K
+ dimensions = (horizontal_loop_extent,vertical_interface_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[tv_lay]
+ standard_name = virtual_temperature
+ long_name = layer virtual temperature
+ units = K
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[relhum]
+ standard_name = relative_humidity
+ long_name = layer relative humidity
+ units = frac
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[deltaZ]
+ standard_name = layer_thickness
+ long_name = layer_thickness
+ units = m
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[deltaZc]
+ standard_name = layer_thickness_from_layer_center
+ long_name = layer_thickness
+ units = m
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[deltaP]
+ standard_name = layer_thickness_in_Pa
+ long_name = layer_thickness_in_Pa
+ units = Pa
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[tracer]
+ standard_name = chemical_tracers
+ long_name = chemical tracers
+ units = g g-1
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_tracers)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[cloud_overlap_param]
+ standard_name = cloud_overlap_param
+ long_name = cloud overlap parameter for RRTMGP (but not for RRTMG)
+ units = km
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[precip_overlap_param]
+ standard_name = precip_overlap_param
+ long_name = precipitation overlap parameter
+ units = km
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[fluxlwUP_allsky]
+ standard_name = RRTMGP_lw_flux_profile_upward_allsky
+ long_name = RRTMGP upward longwave all-sky flux profile
+ units = W m-2
+ dimensions = (horizontal_loop_extent,vertical_interface_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[fluxlwDOWN_allsky]
+ standard_name = RRTMGP_lw_flux_profile_downward_allsky
+ long_name = RRTMGP downward longwave all-sky flux profile
+ units = W m-2
+ dimensions = (horizontal_loop_extent,vertical_interface_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[fluxlwUP_clrsky]
+ standard_name = RRTMGP_lw_flux_profile_upward_clrsky
+ long_name = RRTMGP upward longwave clr-sky flux profile
+ units = W m-2
+ dimensions = (horizontal_loop_extent,vertical_interface_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[fluxlwDOWN_clrsky]
+ standard_name = RRTMGP_lw_flux_profile_downward_clrsky
+ long_name = RRTMGP downward longwave clr-sky flux profile
+ units = W m-2
+ dimensions = (horizontal_loop_extent,vertical_interface_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[fluxswUP_allsky]
+ standard_name = RRTMGP_sw_flux_profile_upward_allsky
+ long_name = RRTMGP upward shortwave all-sky flux profile
+ units = W m-2
+ dimensions = (horizontal_loop_extent,vertical_interface_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[fluxswDOWN_allsky]
+ standard_name = RRTMGP_sw_flux_profile_downward_allsky
+ long_name = RRTMGP downward shortwave all-sky flux profile
+ units = W m-2
+ dimensions = (horizontal_loop_extent,vertical_interface_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[fluxswUP_clrsky]
+ standard_name = RRTMGP_sw_flux_profile_upward_clrsky
+ long_name = RRTMGP upward shortwave clr-sky flux profile
+ units = W m-2
+ dimensions = (horizontal_loop_extent,vertical_interface_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[fluxswDOWN_clrsky]
+ standard_name = RRTMGP_sw_flux_profile_downward_clrsky
+ long_name = RRTMGP downward shortwave clr-sky flux profile
+ units = W m-2
+ dimensions = (horizontal_loop_extent,vertical_interface_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[flxprf_lw]
+ standard_name = RRTMGP_lw_fluxes
+ long_name = lw fluxes total sky / csk and up / down at levels
+ units = W m-2
+ dimensions = (horizontal_loop_extent,vertical_interface_dimension)
+ type = proflw_type
+ active = (flag_for_rrtmgp_radiation_scheme)
+[flxprf_sw]
+ standard_name = RRTMGP_sw_fluxes
+ long_name = sw fluxes total sky / csk and up / down at levels
+ units = W m-2
+ dimensions = (horizontal_loop_extent,vertical_interface_dimension)
+ type = profsw_type
+ active = (flag_for_rrtmgp_radiation_scheme)
+[aerosolslw]
+ standard_name = RRTMGP_aerosol_optical_properties_for_longwave_bands_01_16
+ long_name = aerosol optical properties for longwave bands 01-16
+ units = mixed
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_longwave_bands,number_of_aerosol_output_fields_for_longwave_radiation)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[aerosolslw(:,:,:,1)]
+ standard_name = RRTMGP_aerosol_optical_depth_for_longwave_bands_01_16
+ long_name = aerosol optical depth for longwave bands 01-16
+ units = none
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_longwave_bands)
+ type = real
+ kind = kind_phys
+[aerosolslw(:,:,:,2)]
+ standard_name = RRTMGP_aerosol_single_scattering_albedo_for_longwave_bands_01_16
+ long_name = aerosol single scattering albedo for longwave bands 01-16
+ units = frac
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_longwave_bands)
+ type = real
+ kind = kind_phys
+[aerosolslw(:,:,:,3)]
+ standard_name = RRTMGP_aerosol_asymmetry_parameter_for_longwave_bands_01_16
+ long_name = aerosol asymmetry parameter for longwave bands 01-16
+ units = none
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_longwave_bands)
+ type = real
+ kind = kind_phys
+[aerosolssw]
+ standard_name = RRTMGP_aerosol_optical_properties_for_shortwave_bands_01_16
+ long_name = aerosol optical properties for shortwave bands 01-16
+ units = mixed
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_shortwave_bands, number_of_aerosol_output_fields_for_shortwave_radiation)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[aerosolssw(:,:,:,1)]
+ standard_name = RRTMGP_aerosol_optical_depth_for_shortwave_bands_01_16
+ long_name = aerosol optical depth for shortwave bands 01-16
+ units = none
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_shortwave_bands)
+ type = real
+ kind = kind_phys
+[aerosolssw(:,:,:,2)]
+ standard_name = RRTMGP_aerosol_single_scattering_albedo_for_shortwave_bands_01_16
+ long_name = aerosol single scattering albedo for shortwave bands 01-16
+ units = frac
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_shortwave_bands)
+ type = real
+ kind = kind_phys
+[aerosolssw(:,:,:,3)]
+ standard_name = RRTMGP_aerosol_asymmetry_parameter_for_shortwave_bands_01_16
+ long_name = aerosol asymmetry parameter for shortwave bands 01-16
+ units = none
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_shortwave_bands)
+ type = real
+ kind = kind_phys
+[precip_frac]
+ standard_name = precipitation_fraction_by_layer
+ long_name = precipitation fraction in each layer
+ units = frac
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[cnv_cloud_overlap_param]
+ standard_name = convective_cloud_overlap_param
+ long_name = convective cloud overlap parameter
+ units = km
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[cld_cnv_frac]
+ standard_name = convective_cloud_fraction_for_RRTMGP
+ long_name = layer convective cloud fraction
+ units = frac
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[cld_cnv_lwp]
+ standard_name = convective_cloud_liquid_water_path
+ long_name = layer convective cloud liquid water path
+ units = g m-2
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[cld_cnv_iwp]
+ standard_name = convective_cloud_ice_water_path
+ long_name = layer convective cloud ice water path
+ units = g m-2
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[cld_cnv_reliq]
+ standard_name = mean_effective_radius_for_liquid_convective_cloud
+ long_name = mean effective radius for liquid convective cloud
+ units = um
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[cld_cnv_reice]
+ standard_name = mean_effective_radius_for_ice_convective_cloud
+ long_name = mean effective radius for ice convective cloud
+ units = um
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[cld_pbl_lwp]
+ standard_name = MYNN_SGS_cloud_liquid_water_path
+ long_name = layer convective cloud liquid water path
+ units = g m-2
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[cld_pbl_iwp]
+ standard_name = MYNN_SGS_cloud_ice_water_path
+ long_name = layer convective cloud ice water path
+ units = g m-2
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[cld_pbl_reliq]
+ standard_name = mean_effective_radius_for_liquid_MYNN_SGS_cloud
+ long_name = mean effective radius for liquid MYNN_SGS cloud
+ units = um
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[cld_pbl_reice]
+ standard_name = mean_effective_radius_for_ice_MYNN_SGS_cloud
+ long_name = mean effective radius for ice MYNN_SGS cloud
+ units = um
+ dimensions = (horizontal_loop_extent,vertical_layer_dimension)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[sw_optical_props_clrsky]
+ standard_name = shortwave_optical_properties_for_clear_sky
+ long_name = Fortran DDT containing RRTMGP optical properties
+ units = DDT
+ dimensions = ()
+ type = ty_optical_props_2str
+ active = (flag_for_rrtmgp_radiation_scheme)
+[sw_optical_props_cloudsByBand]
+ standard_name = shortwave_optical_properties_for_cloudy_atmosphere_by_band
+ long_name = Fortran DDT containing RRTMGP optical properties
+ units = DDT
+ dimensions = ()
+ type = ty_optical_props_2str
+ active = (flag_for_rrtmgp_radiation_scheme)
+[sw_optical_props_cnvcloudsByBand]
+ standard_name = shortwave_optical_properties_for_convective_cloudy_atmosphere_by_band
+ long_name = Fortran DDT containing RRTMGP optical properties
+ units = DDT
+ dimensions = ()
+ type = ty_optical_props_2str
+[sw_optical_props_MYNNcloudsByBand]
+ standard_name = shortwave_optical_properties_for_MYNN_EDMF_PBL_cloudy_atmosphere_by_band
+ long_name = Fortran DDT containing RRTMGP optical properties
+ units = DDT
+ dimensions = ()
+ type = ty_optical_props_2str
+ active = (flag_for_rrtmgp_radiation_scheme)
+[sw_optical_props_cnvclouds]
+ standard_name = shortwave_optical_properties_for_convective_cloudy_atmosphere
+ long_name = Fortran DDT containing RRTMGP optical properties
+ units = DDT
+ dimensions = ()
+ type = ty_optical_props_2str
+ active = (flag_for_rrtmgp_radiation_scheme)
+ active = (flag_for_rrtmgp_radiation_scheme)
+[sw_optical_props_precipByBand]
+ standard_name = shortwave_optical_properties_for_precipitation_by_band
+ long_name = Fortran DDT containing RRTMGP optical properties
+ units = DDT
+ dimensions = ()
+ type = ty_optical_props_2str
+ active = (flag_for_rrtmgp_radiation_scheme)
+[sw_optical_props_precip]
+ standard_name = shortwave_optical_properties_for_precipitation
+ long_name = Fortran DDT containing RRTMGP optical properties
+ units = DDT
+ dimensions = ()
+ type = ty_optical_props_2str
+ active = (flag_for_rrtmgp_radiation_scheme)
+[sw_optical_props_clouds]
+ standard_name = shortwave_optical_properties_for_cloudy_atmosphere
+ long_name = Fortran DDT containing RRTMGP optical properties
+ units = DDT
+ dimensions = ()
+ type = ty_optical_props_2str
+ active = (flag_for_rrtmgp_radiation_scheme)
+[sw_optical_props_aerosol]
+ standard_name = shortwave_optical_properties_for_aerosols
+ long_name = Fortran DDT containing RRTMGP optical properties
+ units = DDT
+ dimensions = ()
+ type = ty_optical_props_2str
+ active = (flag_for_rrtmgp_radiation_scheme)
+[gas_concentrations]
+ standard_name = Gas_concentrations_for_RRTMGP_suite
+ long_name = DDT containing gas concentrations for RRTMGP radiation scheme
+ units = DDT
+ dimensions = ()
+ type = ty_gas_concs
+ active = (flag_for_rrtmgp_radiation_scheme)
+[sources]
+ standard_name = longwave_source_function
+ long_name = Fortran DDT containing RRTMGP source functions
+ units = DDT
+ dimensions = ()
+ type = ty_source_func_lw
+ active = (flag_for_rrtmgp_radiation_scheme)
+[lw_optical_props_clrsky]
+ standard_name = longwave_optical_properties_for_clear_sky
+ long_name = Fortran DDT containing RRTMGP optical properties
+ units = DDT
+ dimensions = ()
+ type = ty_optical_props_1scl
+ active = (flag_for_rrtmgp_radiation_scheme)
+[lw_optical_props_clouds]
+ standard_name = longwave_optical_properties_for_cloudy_atmosphere
+ long_name = Fortran DDT containing RRTMGP optical properties
+ units = DDT
+ dimensions = ()
+ type = ty_optical_props_2str
+ active = (flag_for_rrtmgp_radiation_scheme)
+[lw_optical_props_precip]
+ standard_name = longwave_optical_properties_for_precipitation
+ long_name = Fortran DDT containing RRTMGP optical properties
+ units = DDT
+ dimensions = ()
+ type = ty_optical_props_2str
+ active = (flag_for_rrtmgp_radiation_scheme)
+[lw_optical_props_cloudsByBand]
+ standard_name = longwave_optical_properties_for_cloudy_atmosphere_by_band
+ long_name = Fortran DDT containing RRTMGP optical properties
+ units = DDT
+ dimensions = ()
+ type = ty_optical_props_2str
+ active = (flag_for_rrtmgp_radiation_scheme)
+[lw_optical_props_cnvcloudsByBand]
+ standard_name = longwave_optical_properties_for_convective_cloudy_atmosphere_by_band
+ long_name = Fortran DDT containing RRTMGP optical properties
+ units = DDT
+ dimensions = ()
+ type = ty_optical_props_2str
+ active = (flag_for_rrtmgp_radiation_scheme)
+[lw_optical_props_MYNNcloudsByBand]
+ standard_name = longwave_optical_properties_for_MYNN_EDMF_PBL_cloudy_atmosphere_by_band
+ long_name = Fortran DDT containing RRTMGP optical properties
+ units = DDT
+ dimensions = ()
+ type = ty_optical_props_2str
+ active = (flag_for_rrtmgp_radiation_scheme)
+[lw_optical_props_cnvclouds]
+ standard_name = longwave_optical_properties_for_convective_cloudy_atmosphere
+ long_name = Fortran DDT containing RRTMGP optical properties
+ units = DDT
+ dimensions = ()
+ type = ty_optical_props_2str
+ active = (flag_for_rrtmgp_radiation_scheme)
+[lw_optical_props_precipByBand]
+ standard_name = longwave_optical_properties_for_precipitation_by_band
+ long_name = Fortran DDT containing RRTMGP optical properties
+ units = DDT
+ dimensions = ()
+ type = ty_optical_props_2str
+ active = (flag_for_rrtmgp_radiation_scheme)
+[lw_optical_props_aerosol]
+ standard_name = longwave_optical_properties_for_aerosols
+ long_name = Fortran DDT containing RRTMGP optical properties
+ units = DDT
+ dimensions = ()
+ type = ty_optical_props_1scl
+ active = (flag_for_rrtmgp_radiation_scheme)
+[sfc_emiss_byband]
+ standard_name = surface_emissivity_in_each_RRTMGP_LW_band
+ long_name = surface emissivity in each RRTMGP LW band
+ units = none
+ dimensions = (number_of_longwave_bands,horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[sec_diff_byband]
+ standard_name = secant_of_diffusivity_angle_each_RRTMGP_LW_band
+ long_name = secant of diffusivity angle in each RRTMGP LW band
+ units = none
+ dimensions = (number_of_longwave_bands,horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[sfc_alb_nir_dir]
+ standard_name = surface_albedo_nearIR_direct
+ long_name = near-IR (direct) surface albedo (sfc_alb_nir_dir)
+ units = none
+ dimensions = (number_of_shortwave_bands,horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[sfc_alb_nir_dif]
+ standard_name = surface_albedo_nearIR_diffuse
+ long_name = near-IR (diffuse) surface albedo (sfc_alb_nir_dif)
+ units = none
+ dimensions = (number_of_shortwave_bands,horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[sfc_alb_uvvis_dir]
+ standard_name = surface_albedo_uvvis_direct
+ long_name = UVVIS (direct) surface albedo (sfc_alb_uvvis_dir)
+ units = none
+ dimensions = (number_of_shortwave_bands,horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[sfc_alb_uvvis_dif]
+ standard_name = surface_albedo_uvvis_diffuse
+ long_name = UVVIS (diffuse) surface albedo (sfc_alb_uvvis_dif)
+ units = none
+ dimensions = (number_of_shortwave_bands,horizontal_loop_extent)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[toa_src_lw]
+ standard_name = toa_incident_lw_flux_by_spectral_point
+ long_name = TOA longwave incident flux at each spectral points
+ units = W m-2
+ dimensions = (horizontal_loop_extent,number_of_longwave_spectral_points)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[toa_src_sw]
+ standard_name = toa_incident_sw_flux_by_spectral_point
+ long_name = TOA shortwave incident flux at each spectral points
+ units = W m-2
+ dimensions = (horizontal_loop_extent,number_of_shortwave_spectral_points)
+ type = real
+ kind = kind_phys
+ active = (flag_for_rrtmgp_radiation_scheme)
+[rtg_ozone_index]
+ standard_name = vertically_diffused_tracer_index_of_ozone
+ long_name = number of tracers
+ units = count
+ dimensions = ()
+ type = integer
+
+########################################################################
+[ccpp-table-properties]
+ name = CCPP_typedefs
+ type = module
+ relative_path = ../../ccpp/physics/physics
+ dependencies = machine.F,ozne_def.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
+ dependencies = rte-rrtmgp/rte/mo_source_functions.F90
+
+[ccpp-arg-table]
+ name = CCPP_typedefs
+ type = module
+[GFS_interstitial_type]
+ standard_name = GFS_interstitial_type
+ long_name = definition of type GFS_interstitial_type
+ units = DDT
+ dimensions = ()
+ type = GFS_interstitial_type
diff --git a/scm/src/CMakeLists.txt b/scm/src/CMakeLists.txt
index 45188fb32..a1221089e 100644
--- a/scm/src/CMakeLists.txt
+++ b/scm/src/CMakeLists.txt
@@ -34,7 +34,7 @@ message (STATUS "Running ccpp_prebuild.py for CCPP")
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/ccpp/physics/physics)
if (${CMAKE_BUILD_TYPE} MATCHES "Debug")
execute_process(
- COMMAND ccpp/framework/scripts/ccpp_prebuild.py --config=ccpp/config/ccpp_prebuild_config.py --suites=${SUITES} --builddir=${CMAKE_CURRENT_BINARY_DIR} --debug
+ COMMAND ccpp/framework/scripts/ccpp_prebuild.py --config=ccpp/config/ccpp_prebuild_config.py --suites=${SUITES} --builddir=${CMAKE_CURRENT_BINARY_DIR} --debug --verbose
OUTPUT_FILE ${PROJECT_BINARY_DIR}/ccpp_prebuild.out
ERROR_FILE ${PROJECT_BINARY_DIR}/ccpp_prebuild.err
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../..
diff --git a/scm/src/GFS_typedefs.F90 b/scm/src/GFS_typedefs.F90
index bcb504773..d999113ec 100644
--- a/scm/src/GFS_typedefs.F90
+++ b/scm/src/GFS_typedefs.F90
@@ -1,75 +1,57 @@
-
module GFS_typedefs
- use machine, only: kind_phys, kind_dbl_prec
- use module_radsw_parameters, only: topfsw_type, sfcfsw_type, profsw_type, cmpfsw_type, NBDSW
- use module_radlw_parameters, only: topflw_type, sfcflw_type, proflw_type, NBDLW
- use ozne_def, only: levozp, oz_coeff
- use h2o_def, only: levh2o, h2o_coeff
- use mo_gas_optics_rrtmgp, only: ty_gas_optics_rrtmgp
- use mo_optical_props, only: ty_optical_props_1scl,ty_optical_props_2str
- use mo_cloud_optics, only: ty_cloud_optics
- use mo_gas_concentrations, only: ty_gas_concs
- use mo_source_functions, only: ty_source_func_lw
-
- implicit none
-
- ! To ensure that these values match what's in the physics, array
- ! sizes are compared in the auto-generated physics caps in debug mode
- private :: NF_AESW, NF_AELW, NSPC, NSPC1, NF_CLDS, NF_VGAS, NF_ALBD, ntrcaerm
- ! from module_radiation_aerosols
- integer, parameter :: NF_AESW = 3
- integer, parameter :: NF_AELW = 3
- integer, parameter :: NSPC = 5
- integer, parameter :: NSPC1 = NSPC + 1
- ! from module_radiation_clouds
- integer, parameter :: NF_CLDS = 9
- ! from module_radiation_gases
- integer, parameter :: NF_VGAS = 10
- ! from module_radiation_surface
- integer, parameter :: NF_ALBD = 4
- ! from aerclm_def
- integer, parameter :: ntrcaerm = 15
-
- ! This will be set later in GFS_Control%initialize, since
- ! it depends on the runtime config (Model%aero_in)
- private :: ntrcaer
- integer :: ntrcaer
-
- ! If these are changed to >99, need to adjust formatting string in GFS_diagnostics.F90 (and names in diag_tables)
- integer, parameter :: naux2dmax = 20 !< maximum number of auxiliary 2d arrays in output (for debugging)
- integer, parameter :: naux3dmax = 20 !< maximum number of auxiliary 3d arrays in output (for debugging)
-
- integer, parameter :: dfi_radar_max_intervals = 4 !< Number of radar-derived temperature tendency and/or convection suppression intervals. Do not change.
-
- real(kind=kind_phys), parameter :: limit_unspecified = 1e12 !< special constant for "namelist value was not provided" in radar-derived temperature tendency limit range
+ use machine, only: kind_phys, kind_dbl_prec
+
+ 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
+
+ implicit none
+
+ ! To ensure that these values match what's in the physics, array
+ ! sizes are compared in the auto-generated physics caps in debug mode
+ ! from aerclm_def
+ integer, parameter, private :: ntrcaerm = 15
+
+ ! This will be set later in GFS_Control%initialize, since
+ ! it depends on the runtime config (Model%aero_in)
+ integer, private :: ntrcaer
+
+ ! If these are changed to >99, need to adjust formatting string in GFS_diagnostics.F90 (and names in diag_tables)
+ integer, parameter :: naux2dmax = 20 !< maximum number of auxiliary 2d arrays in output (for debugging)
+ integer, parameter :: naux3dmax = 20 !< maximum number of auxiliary 3d arrays in output (for debugging)
+
+ integer, parameter :: dfi_radar_max_intervals = 4 !< Number of radar-derived temperature tendency and/or convection suppression intervals. Do not change.
+
+ real(kind=kind_phys), parameter :: limit_unspecified = 1e12 !< special constant for "namelist value was not provided" in radar-derived temperature tendency limit range
!> \section arg_table_GFS_typedefs
!! \htmlinclude GFS_typedefs.html
!!
- !--- version of physics
- character(len=64) :: phys_version = 'v2018 FV3GFS BETA VERSION PHYSICS'
-
- !--- parameter constants used for default initializations
- real(kind=kind_phys), parameter :: zero = 0.0_kind_phys
-! real(kind=kind_phys), parameter :: huge = 9.9692099683868690E36 ! NetCDF float FillValue
- real(kind=kind_phys), parameter :: clear_val = zero
- !real(kind=kind_phys), parameter :: clear_val = -9.9999e80
- real(kind=kind_phys), parameter :: rann_init = 0.6_kind_phys
- real(kind=kind_phys), parameter :: cn_one = 1._kind_phys
- real(kind=kind_phys), parameter :: cn_100 = 100._kind_phys
- real(kind=kind_phys), parameter :: cn_th = 1000._kind_phys
- real(kind=kind_phys), parameter :: cn_hr = 3600._kind_phys
-
- ! optional extra top layer on top of low ceiling models
- ! this parameter was originally defined in the radiation driver
- ! (and is still for standard non-CCPP builds), but is required
- ! here for CCPP to allocate arrays used for the interstitial
- ! calculations previously in GFS_{physics,radiation}_driver.F90
- ! LTP=0: no extra top layer
- integer, parameter :: LTP = 0 ! no extra top layer
- !integer, parameter :: LTP = 1 ! add an extra top layer
+ !--- version of physics
+ character(len=64) :: phys_version = 'v2021 UFS PHYSICS'
+
+ !--- parameter constants used for default initializations
+ real(kind=kind_phys), parameter :: zero = 0.0_kind_phys
+ !real(kind=kind_phys), parameter :: huge = 9.9692099683868690E36 ! NetCDF float FillValue
+ real(kind=kind_phys), parameter :: clear_val = zero
+ !real(kind=kind_phys), parameter :: clear_val = -9.9999e80
+ real(kind=kind_phys), parameter :: rann_init = 0.6_kind_phys
+ real(kind=kind_phys), parameter :: cn_one = 1._kind_phys
+ real(kind=kind_phys), parameter :: cn_100 = 100._kind_phys
+ real(kind=kind_phys), parameter :: cn_th = 1000._kind_phys
+ real(kind=kind_phys), parameter :: cn_hr = 3600._kind_phys
+
+ ! optional extra top layer on top of low ceiling models
+ ! this parameter was originally defined in the radiation driver
+ ! (and is still for standard non-CCPP builds), but is required
+ ! here for CCPP to allocate arrays used for the interstitial
+ ! calculations previously in GFS_{physics,radiation}_driver.F90
+ ! LTP=0: no extra top layer
+ integer, parameter :: LTP = 0 ! no extra top layer
+ !integer, parameter :: LTP = 1 ! add an extra top layer
!----------------
! Data Containers
@@ -88,7 +70,6 @@ module GFS_typedefs
! GFS_cldprop_type !< cloud fields needed by radiation from physics
! GFS_radtend_type !< radiation tendencies needed in physics
! GFS_diag_type !< fields targetted for diagnostic output
-! GFS_interstitial_type !< fields required to replace interstitial code in GFS_{physics,radiation}_driver.F90 in CCPP
!--------------------------------------------------------------------------------
! GFS_init_type
@@ -288,6 +269,7 @@ module GFS_typedefs
real (kind=kind_phys), pointer :: ffmm (:) => null() !< fm parameter from PBL scheme
real (kind=kind_phys), pointer :: ffhh (:) => null() !< fh parameter from PBL scheme
real (kind=kind_phys), pointer :: f10m (:) => null() !< fm at 10m - Ratio of sigma level 1 wind and 10m wind
+ real (kind=kind_phys), pointer :: rca (:) => null() !< canopy resistance
real (kind=kind_phys), pointer :: tprcp (:) => null() !< sfc_fld%tprcp - total precipitation
real (kind=kind_phys), pointer :: srflag (:) => null() !< sfc_fld%srflag - snow/rain flag for precipitation
real (kind=kind_phys), pointer :: slc (:,:) => null() !< liquid soil moisture
@@ -640,6 +622,7 @@ module GFS_typedefs
logical :: cplocn2atm !< default yes ocn->atm coupling
logical :: cplwav !< default no cplwav collection
logical :: cplwav2atm !< default no wav->atm coupling
+ logical :: cplaqm !< default no cplaqm collection
logical :: cplchm !< default no cplchm collection
logical :: use_cice_alb !< default .false. - i.e. don't use albedo imported from the ice model
logical :: cpl_imp_mrg !< default no merge import with internal forcings
@@ -737,6 +720,7 @@ module GFS_typedefs
logical :: doG_cldoptics !< Use legacy RRTMG cloud-optics?
logical :: doGP_cldoptics_PADE !< Use RRTMGP cloud-optics: PADE approximation?
logical :: doGP_cldoptics_LUT !< Use RRTMGP cloud-optics: LUTs?
+ integer :: iovr_convcld !< Cloud-overlap assumption for convective-cloud
integer :: rrtmgp_nrghice !< Number of ice-roughness categories
integer :: rrtmgp_nGauss_ang !< Number of angles used in Gaussian quadrature
logical :: do_GPsw_Glw !< If set to true use rrtmgp for SW calculation, rrtmg for LW.
@@ -746,6 +730,8 @@ module GFS_typedefs
real(kind_phys) :: lfnc_k !< Logistic function transition depth (Pa)
real(kind_phys) :: lfnc_p0 !< Logistic function transition level (Pa)
logical :: doGP_lwscat !< If true, include scattering in longwave cloud-optics, only compatible w/ GP cloud-optics
+ logical :: doGP_sgs_cnv !< If true, include SubGridScale convective cloud in RRTMGP
+ logical :: doGP_sgs_mynn !< If true, include SubGridScale MYNN-EDMF cloud in RRTMGP
real(kind_phys) :: minGPpres !< Minimum pressure allowed in RRTMGP.
real(kind_phys) :: maxGPpres !< Maximum pressure allowed in RRTMGP.
real(kind_phys) :: minGPtemp !< Minimum temperature allowed in RRTMGP.
@@ -888,9 +874,6 @@ module GFS_typedefs
logical :: usemonalb !< flag to read surface diffused shortwave albedo from input file for NOAH LSM WRFv4
real(kind=kind_phys) :: aoasis !< potential evaporation multiplication factor for NOAH LSM WRFv4
integer :: fasdas !< flag to use "flux-adjusting surface data assimilation system"; 0 = OFF, 1 = ON
- integer :: isurban !< vegetation/land use type corresponding to the urban environment for the chosen ivegsrc
- integer :: isice !< vegetation/land use type corresponding to permanent ice/snow for the chosen ivegsrc
- integer :: iswater !< vegetation/land use type corresponding to water bodies for the chosen ivegsrc
integer :: iopt_thcnd !< option to treat thermal conductivity in Noah LSM (new in 3.8)
!< = 1, original (default)
!< = 2, McCumber and Pielke for silt loam and sandy loam
@@ -908,6 +891,7 @@ module GFS_typedefs
integer :: iopt_snf !rainfall & snowfall (1-jordan91; 2->bats; 3->noah)
integer :: iopt_tbot !lower boundary of soil temperature (1->zero-flux; 2->noah)
integer :: iopt_stc !snow/soil temperature time scheme (only layer 1)
+ integer :: iopt_trs !thermal roughness scheme (1-z0h=z0m; 2-czil; 3-ec;4-kb inversed)
logical :: use_ufo !< flag for gcycle surface option
@@ -1192,6 +1176,7 @@ module GFS_typedefs
integer :: n_var_spp
character(len=3) , pointer :: spp_var_list(:) ! dimension here must match n_var_spp in stochy_nml_def
real(kind=kind_phys), pointer :: spp_prt_list(:) ! dimension here must match n_var_spp in stochy_nml_def
+ real(kind=kind_phys), pointer :: spp_stddev_cutoff(:) ! dimension here must match n_var_spp in stochy_nml_def
!--- tracer handling
character(len=32), pointer :: tracer_names(:) !< array of initialized tracers from dynamic core
@@ -1834,6 +1819,9 @@ module GFS_typedefs
! Extended output diagnostics for Thompson MP
real (kind=kind_phys), pointer :: thompson_ext_diag3d (:,:,:) => null() ! extended diagnostic 3d output arrays from Thompson MP
+ ! Diagnostics for coupled air quality model
+ real (kind=kind_phys), pointer :: aod (:) => null() !< instantaneous aerosol optical depth ( n/a )
+
! Auxiliary output arrays for debugging
real (kind=kind_phys), pointer :: aux2d(:,:) => null() !< auxiliary 2d arrays in output (for debugging)
real (kind=kind_phys), pointer :: aux3d(:,:,:)=> null() !< auxiliary 2d arrays in output (for debugging)
@@ -1844,396 +1832,6 @@ module GFS_typedefs
procedure :: phys_zero => diag_phys_zero
end type GFS_diag_type
-!---------------------------------------------------------------------
-! GFS_interstitial_type
-! fields required for interstitial code in CCPP schemes, previously
-! in GFS_{physics,radiation}_driver.F90
-!---------------------------------------------------------------------
-!! \section arg_table_GFS_interstitial_type
-!! \htmlinclude GFS_interstitial_type.html
-!!
- type GFS_interstitial_type
-
- real (kind=kind_phys), pointer :: adjsfculw_land(:) => null() !<
- real (kind=kind_phys), pointer :: adjsfculw_ice(:) => null() !<
- real (kind=kind_phys), pointer :: adjsfculw_water(:) => null() !<
- real (kind=kind_phys), pointer :: adjnirbmd(:) => null() !<
- real (kind=kind_phys), pointer :: adjnirbmu(:) => null() !<
- real (kind=kind_phys), pointer :: adjnirdfd(:) => null() !<
- real (kind=kind_phys), pointer :: adjnirdfu(:) => null() !<
- real (kind=kind_phys), pointer :: adjvisbmd(:) => null() !<
- real (kind=kind_phys), pointer :: adjvisbmu(:) => null() !<
- real (kind=kind_phys), pointer :: adjvisdfu(:) => null() !<
- real (kind=kind_phys), pointer :: adjvisdfd(:) => null() !<
- real (kind=kind_phys), pointer :: aerodp(:,:) => null() !<
- real (kind=kind_phys), pointer :: alb1d(:) => null() !<
- real (kind=kind_phys), pointer :: alpha(:,:) => null() !<
- real (kind=kind_phys), pointer :: bexp1d(:) => null() !<
- real (kind=kind_phys), pointer :: cd(:) => null() !<
- real (kind=kind_phys), pointer :: cd_ice(:) => null() !<
- real (kind=kind_phys), pointer :: cd_land(:) => null() !<
- real (kind=kind_phys), pointer :: cd_water(:) => null() !<
- real (kind=kind_phys), pointer :: cdq(:) => null() !<
- real (kind=kind_phys), pointer :: cdq_ice(:) => null() !<
- real (kind=kind_phys), pointer :: cdq_land(:) => null() !<
- real (kind=kind_phys), pointer :: cdq_water(:) => null() !<
- real (kind=kind_phys), pointer :: cf_upi(:,:) => null() !<
- real (kind=kind_phys), pointer :: chh_ice(:) => null() !<
- real (kind=kind_phys), pointer :: chh_land(:) => null() !<
- real (kind=kind_phys), pointer :: chh_water(:) => null() !<
- real (kind=kind_phys), pointer :: clcn(:,:) => null() !<
- real (kind=kind_phys), pointer :: cldf(:) => null() !<
- real (kind=kind_phys), pointer :: cldsa(:,:) => null() !<
- real (kind=kind_phys), pointer :: cldtaulw(:,:) => null() !<
- real (kind=kind_phys), pointer :: cldtausw(:,:) => null() !<
- real (kind=kind_phys), pointer :: cld1d(:) => null() !<
- real (kind=kind_phys), pointer :: clouds(:,:,:) => null() !<
- real (kind=kind_phys), pointer :: clw(:,:,:) => null() !<
- real (kind=kind_phys), pointer :: clx(:,:) => null() !<
- real (kind=kind_phys), pointer :: cmm_ice(:) => null() !<
- real (kind=kind_phys), pointer :: cmm_land(:) => null() !<
- real (kind=kind_phys), pointer :: cmm_water(:) => null() !<
- real (kind=kind_phys), pointer :: cnv_dqldt(:,:) => null() !<
- real (kind=kind_phys), pointer :: cnv_fice(:,:) => null() !<
- real (kind=kind_phys), pointer :: cnv_mfd(:,:) => null() !<
- real (kind=kind_phys), pointer :: cnv_ndrop(:,:) => null() !<
- real (kind=kind_phys), pointer :: cnv_nice(:,:) => null() !<
- real (kind=kind_phys), pointer :: cnvc(:,:) => null() !<
- real (kind=kind_phys), pointer :: cnvw(:,:) => null() !<
- real (kind=kind_phys), pointer :: ctei_r(:) => null() !<
- real (kind=kind_phys), pointer :: ctei_rml(:) => null() !<
- real (kind=kind_phys), pointer :: cumabs(:) => null() !<
- real (kind=kind_phys), pointer :: dd_mf(:,:) => null() !<
- real (kind=kind_phys), pointer :: de_lgth(:) => null() !<
- real (kind=kind_phys), pointer :: del(:,:) => null() !<
- real (kind=kind_phys), pointer :: del_gz(:,:) => null() !<
- real (kind=kind_phys), pointer :: delr(:,:) => null() !<
- real (kind=kind_phys), pointer :: dlength(:) => null() !<
- real (kind=kind_phys), pointer :: dqdt(:,:,:) => null() !<
- real (kind=kind_phys), pointer :: dqsfc1(:) => null() !<
- real (kind=kind_phys), pointer :: drain(:) => null() !<
- real (kind=kind_phys), pointer :: dtdt(:,:) => null() !<
- real (kind=kind_phys), pointer :: dtsfc1(:) => null() !<
- real (kind=kind_phys), pointer :: dtzm(:) => null() !<
- real (kind=kind_phys), pointer :: dt_mf(:,:) => null() !<
- real (kind=kind_phys), pointer :: dudt(:,:) => null() !<
- real (kind=kind_phys), pointer :: dusfcg(:) => null() !<
- real (kind=kind_phys), pointer :: dusfc1(:) => null() !<
- real (kind=kind_phys), pointer :: dvdftra(:,:,:) => null() !<
- real (kind=kind_phys), pointer :: dvdt(:,:) => null() !<
- real (kind=kind_phys), pointer :: dvsfcg(:) => null() !<
- real (kind=kind_phys), pointer :: dvsfc1(:) => null() !<
- real (kind=kind_phys), pointer :: dzlyr(:,:) => null() !<
- real (kind=kind_phys), pointer :: elvmax(:) => null() !<
- real (kind=kind_phys), pointer :: ep1d(:) => null() !<
- real (kind=kind_phys), pointer :: ep1d_ice(:) => null() !<
- real (kind=kind_phys), pointer :: ep1d_land(:) => null() !<
- real (kind=kind_phys), pointer :: ep1d_water(:) => null() !<
- real (kind=kind_phys), pointer :: evap_ice(:) => null() !<
- real (kind=kind_phys), pointer :: evap_land(:) => null() !<
- real (kind=kind_phys), pointer :: evap_water(:) => null() !<
- real (kind=kind_phys), pointer :: evbs(:) => null() !<
- real (kind=kind_phys), pointer :: evcw(:) => null() !<
- real (kind=kind_phys), pointer :: pah(:) => null() !<
- real (kind=kind_phys), pointer :: ecan(:) => null() !<
- real (kind=kind_phys), pointer :: etran(:) => null() !<
- real (kind=kind_phys), pointer :: edir(:) => null() !<
- real (kind=kind_phys), pointer :: faerlw(:,:,:,:) => null() !<
- real (kind=kind_phys), pointer :: faersw(:,:,:,:) => null() !<
- real (kind=kind_phys), pointer :: ffhh_ice(:) => null() !<
- real (kind=kind_phys), pointer :: ffhh_land(:) => null() !<
- real (kind=kind_phys), pointer :: ffhh_water(:) => null() !<
- real (kind=kind_phys), pointer :: fh2(:) => null() !<
- real (kind=kind_phys), pointer :: fh2_ice(:) => null() !<
- real (kind=kind_phys), pointer :: fh2_land(:) => null() !<
- real (kind=kind_phys), pointer :: fh2_water(:) => null() !<
- logical, pointer :: flag_cice(:) => null() !<
- logical, pointer :: flag_guess(:) => null() !<
- logical, pointer :: flag_iter(:) => null() !<
- real (kind=kind_phys), pointer :: ffmm_ice(:) => null() !<
- real (kind=kind_phys), pointer :: ffmm_land(:) => null() !<
- real (kind=kind_phys), pointer :: ffmm_water(:) => null() !<
- real (kind=kind_phys), pointer :: fm10(:) => null() !<
- real (kind=kind_phys), pointer :: fm10_ice(:) => null() !<
- real (kind=kind_phys), pointer :: fm10_land(:) => null() !<
- real (kind=kind_phys), pointer :: fm10_water(:) => null() !<
- real (kind=kind_phys) :: frain !<
- real (kind=kind_phys), pointer :: frland(:) => null() !<
- real (kind=kind_phys), pointer :: fscav(:) => null() !<
- real (kind=kind_phys), pointer :: fswtr(:) => null() !<
- real (kind=kind_phys), pointer :: gabsbdlw(:) => null() !<
- real (kind=kind_phys), pointer :: gabsbdlw_ice(:) => null() !<
- real (kind=kind_phys), pointer :: gabsbdlw_land(:) => null() !<
- real (kind=kind_phys), pointer :: gabsbdlw_water(:) => null() !<
- real (kind=kind_phys), pointer :: gamma(:) => null() !<
- real (kind=kind_phys), pointer :: gamq(:) => null() !<
- real (kind=kind_phys), pointer :: gamt(:) => null() !<
- real (kind=kind_phys), pointer :: gasvmr(:,:,:) => null() !<
- real (kind=kind_phys), pointer :: gflx(:) => null() !<
- real (kind=kind_phys), pointer :: gflx_ice(:) => null() !<
- real (kind=kind_phys), pointer :: gflx_land(:) => null() !<
- real (kind=kind_phys), pointer :: gflx_water(:) => null() !<
- real (kind=kind_phys), pointer :: graupelmp(:) => null() !<
- real (kind=kind_phys), pointer :: gwdcu(:,:) => null() !<
- real (kind=kind_phys), pointer :: gwdcv(:,:) => null() !<
- real (kind=kind_phys), pointer :: zvfun(:) => null() !<
- real (kind=kind_phys), pointer :: hffac(:) => null() !<
- real (kind=kind_phys), pointer :: hflxq(:) => null() !<
- real (kind=kind_phys), pointer :: hflx_ice(:) => null() !<
- real (kind=kind_phys), pointer :: hflx_land(:) => null() !<
- real (kind=kind_phys), pointer :: hflx_water(:) => null() !<
- !--- radiation variables that need to be carried over from radiation to physics
- real (kind=kind_phys), pointer :: htlwc(:,:) => null() !<
- real (kind=kind_phys), pointer :: htlw0(:,:) => null() !<
- real (kind=kind_phys), pointer :: htswc(:,:) => null() !<
- real (kind=kind_phys), pointer :: htsw0(:,:) => null() !<
- !
- real (kind=kind_phys), pointer :: icemp(:) => null() !<
- logical, pointer :: dry(:) => null() !<
- integer, pointer :: idxday(:) => null() !<
- logical, pointer :: icy(:) => null() !<
- logical, pointer :: lake(:) => null() !<
- logical, pointer :: use_flake(:) => null() !<
- logical, pointer :: ocean(:) => null() !<
- integer :: ipr !<
- integer, pointer :: islmsk(:) => null() !<
- integer, pointer :: islmsk_cice(:) => null() !<
- integer :: itc !<
- logical, pointer :: wet(:) => null() !<
- integer :: kb !<
- integer, pointer :: kbot(:) => null() !<
- integer, pointer :: kcnv(:) => null() !<
- integer :: kd !<
- integer, pointer :: kinver(:) => null() !<
- integer, pointer :: kpbl(:) => null() !<
- integer :: kt !<
- integer, pointer :: ktop(:) => null() !<
- integer :: latidxprnt !<
- integer :: levi !<
- integer :: lmk !<
- integer :: lmp !<
- integer, pointer :: mbota(:,:) => null() !<
- logical :: mg3_as_mg2 !<
- integer, pointer :: mtopa(:,:) => null() !<
- integer :: nbdlw !<
- integer :: nbdsw !<
- real (kind=kind_phys), pointer :: ncgl(:,:) => null() !<
- real (kind=kind_phys), pointer :: ncpi(:,:) => null() !<
- real (kind=kind_phys), pointer :: ncpl(:,:) => null() !<
- real (kind=kind_phys), pointer :: ncpr(:,:) => null() !<
- real (kind=kind_phys), pointer :: ncps(:,:) => null() !<
- integer :: ncstrac !<
- integer :: nday !<
- integer :: nf_aelw !<
- integer :: nf_aesw !<
- integer :: nn !<
- integer :: nsamftrac !<
- integer :: nscav !<
- integer :: nspc1 !<
- integer :: ntqvx !<
- integer :: ntcwx !<
- integer :: ntiwx !<
- integer :: ntrwx !<
- integer :: ntozx !<
- integer :: ntk !<
- integer :: ntkev !<
- integer :: nvdiff !<
- real (kind=kind_phys), pointer :: oa4(:,:) => null() !<
- real (kind=kind_phys), pointer :: oc(:) => null() !<
- real (kind=kind_phys), pointer :: olyr(:,:) => null() !<
- logical , pointer :: otspt(:,:) => null() !<
- logical , pointer :: otsptflag(:) => null() !<
- integer :: oz_coeffp5 !<
- logical :: phys_hydrostatic !<
- real (kind=kind_phys), pointer :: plvl(:,:) => null() !<
- real (kind=kind_phys), pointer :: plyr(:,:) => null() !<
- real (kind=kind_phys), pointer :: prcpmp(:) => null() !<
- real (kind=kind_phys), pointer :: prnum(:,:) => null() !<
- real (kind=kind_phys), pointer :: q2mp(:) => null() !<
- real (kind=kind_phys), pointer :: qgl(:,:) => null() !<
- real (kind=kind_phys), pointer :: qicn(:,:) => null() !<
- real (kind=kind_phys), pointer :: qlcn(:,:) => null() !<
- real (kind=kind_phys), pointer :: qlyr(:,:) => null() !<
- real (kind=kind_phys), pointer :: qrn(:,:) => null() !<
- real (kind=kind_phys), pointer :: qsnw(:,:) => null() !<
- real (kind=kind_phys), pointer :: qss_ice(:) => null() !<
- real (kind=kind_phys), pointer :: qss_land(:) => null() !<
- real (kind=kind_phys), pointer :: qss_water(:) => null() !<
- logical :: radar_reset !<
- real (kind=kind_phys) :: raddt !<
- real (kind=kind_phys), pointer :: rainmp(:) => null() !<
- real (kind=kind_phys), pointer :: raincd(:) => null() !<
- real (kind=kind_phys), pointer :: raincs(:) => null() !<
- real (kind=kind_phys), pointer :: rainmcadj(:) => null() !<
- real (kind=kind_phys), pointer :: rainp(:,:) => null() !<
- real (kind=kind_phys), pointer :: rb(:) => null() !<
- real (kind=kind_phys), pointer :: rb_ice(:) => null() !<
- real (kind=kind_phys), pointer :: rb_land(:) => null() !<
- real (kind=kind_phys), pointer :: rb_water(:) => null() !<
- logical :: max_hourly_reset !<
- logical :: ext_diag_thompson_reset !<
- real (kind=kind_phys), pointer :: rhc(:,:) => null() !<
- real (kind=kind_phys), pointer :: runoff(:) => null() !<
- real (kind=kind_phys), pointer :: save_q(:,:,:) => null() !<
- real (kind=kind_phys), pointer :: save_t(:,:) => null() !<
- real (kind=kind_phys), pointer :: save_tcp(:,:) => null() !<
- real (kind=kind_phys), pointer :: save_u(:,:) => null() !<
- real (kind=kind_phys), pointer :: save_v(:,:) => null() !<
- real (kind=kind_phys), pointer :: sbsno(:) => null() !<
- type (cmpfsw_type), pointer :: scmpsw(:) => null() !<
- real (kind=kind_phys), pointer :: sfcalb(:,:) => null() !<
- real (kind=kind_phys), pointer :: sigma(:) => null() !<
- real (kind=kind_phys), pointer :: sigmaf(:) => null() !<
- real (kind=kind_phys), pointer :: sigmafrac(:,:) => null() !<
- real (kind=kind_phys), pointer :: sigmatot(:,:) => null() !<
- logical :: skip_macro !<
- real (kind=kind_phys), pointer :: snowc(:) => null() !<
- real (kind=kind_phys), pointer :: snohf(:) => null() !<
- real (kind=kind_phys), pointer :: snowmp(:) => null() !<
- real (kind=kind_phys), pointer :: snowmt(:) => null() !<
- real (kind=kind_phys), pointer :: stress(:) => null() !<
- real (kind=kind_phys), pointer :: stress_ice(:) => null() !<
- real (kind=kind_phys), pointer :: stress_land(:) => null() !<
- real (kind=kind_phys), pointer :: stress_water(:) => null() !<
- real (kind=kind_phys), pointer :: t2mmp(:) => null() !<
- real (kind=kind_phys), pointer :: theta(:) => null() !<
- real (kind=kind_phys), pointer :: tlvl(:,:) => null() !<
- real (kind=kind_phys), pointer :: tlyr(:,:) => null() !<
- real (kind=kind_phys), pointer :: tprcp_ice(:) => null() !<
- real (kind=kind_phys), pointer :: tprcp_land(:) => null() !<
- real (kind=kind_phys), pointer :: tprcp_water(:) => null() !<
- integer :: tracers_start_index !<
- integer :: tracers_total !<
- integer :: tracers_water !<
- logical :: trans_aero !<
- real (kind=kind_phys), pointer :: trans(:) => null() !<
- real (kind=kind_phys), pointer :: tseal(:) => null() !<
- real (kind=kind_phys), pointer :: tsfa(:) => null() !<
- real (kind=kind_phys), pointer :: tsfc_water(:) => null() !<
- real (kind=kind_phys), pointer :: tsfg(:) => null() !<
- real (kind=kind_phys), pointer :: tsurf_ice(:) => null() !<
- real (kind=kind_phys), pointer :: tsurf_land(:) => null() !<
- real (kind=kind_phys), pointer :: tsurf_water(:) => null() !<
- real (kind=kind_phys), pointer :: ud_mf(:,:) => null() !<
- real (kind=kind_phys), pointer :: uustar_ice(:) => null() !<
- real (kind=kind_phys), pointer :: uustar_land(:) => null() !<
- real (kind=kind_phys), pointer :: uustar_water(:) => null() !<
- real (kind=kind_phys), pointer :: vdftra(:,:,:) => null() !<
- real (kind=kind_phys), pointer :: vegf1d(:) => null() !<
- real (kind=kind_phys) :: lndp_vgf !<
-
- real (kind=kind_phys), pointer :: w_upi(:,:) => null() !<
- real (kind=kind_phys), pointer :: wcbmax(:) => null() !<
- real (kind=kind_phys), pointer :: wind(:) => null() !<
- real (kind=kind_phys), pointer :: work1(:) => null() !<
- real (kind=kind_phys), pointer :: work2(:) => null() !<
- real (kind=kind_phys), pointer :: work3(:) => null() !<
- real (kind=kind_phys), pointer :: xcosz(:) => null() !<
- real (kind=kind_phys), pointer :: xlai1d(:) => null() !<
- real (kind=kind_phys), pointer :: xmu(:) => null() !<
- real (kind=kind_phys), pointer :: z01d(:) => null() !<
- real (kind=kind_phys), pointer :: zt1d(:) => null() !<
- real (kind=kind_phys), pointer :: ztmax_ice(:) => null() !<
- real (kind=kind_phys), pointer :: ztmax_land(:) => null() !<
- real (kind=kind_phys), pointer :: ztmax_water(:) => null() !<
-!==================================================================================================
-! UGWP - five mechnanisms of momentum deposition due to various types of GWs
-! (oss, ofd, obl, ogw) + ngw = sum( sso + ngw)
-!==================================================================================================
-! nGWs
- real (kind=kind_phys), pointer :: dudt_ngw(:,:) => null() !<
- real (kind=kind_phys), pointer :: dvdt_ngw(:,:) => null() !<
- real (kind=kind_phys), pointer :: dtdt_ngw(:,:) => null() !<
- real (kind=kind_phys), pointer :: kdis_ngw(:,:) => null() !<
-
- real (kind=kind_phys), pointer :: tau_oss(: ) => null() !< instantaneous momentum flux due to OSS
- real (kind=kind_phys), pointer :: tau_tofd(:) => null() !< instantaneous momentum flux due to TOFD
- real (kind=kind_phys), pointer :: tau_mtb(:) => null() !< instantaneous momentum of mountain blocking drag
- real (kind=kind_phys), pointer :: tau_ogw(:) => null() !< instantaneous momentum flux of OGWs
- real (kind=kind_phys), pointer :: tau_ngw(:) => null() !< instantaneous momentum flux of NGWs
-
- real (kind=kind_phys), pointer :: zngw(:) => null() !< launch levels of NGWs
- real (kind=kind_phys), pointer :: zmtb(:) => null() !< mountain blocking height
- real (kind=kind_phys), pointer :: zlwb(:) => null() !< low level wave breaking height
- real (kind=kind_phys), pointer :: zogw(:) => null() !< height of OGW-launch
-
- real (kind=kind_phys), pointer :: dudt_mtb(:,:) => null() !< daily aver u-wind tend due to mountain blocking
- real (kind=kind_phys), pointer :: dudt_tms(:,:) => null() !< daily aver u-wind tend due to TMS
-
- ! RRTMGP
- real (kind=kind_phys), pointer :: p_lay(:,:) => null() !<
- real (kind=kind_phys), pointer :: p_lev(:,:) => null() !<
- real (kind=kind_phys), pointer :: t_lev(:,:) => null() !<
- real (kind=kind_phys), pointer :: t_lay(:,:) => null() !<
- real (kind=kind_phys), pointer :: relhum(:,:) => null() !<
- real (kind=kind_phys), pointer :: tv_lay(:,:) => null() !<
- real (kind=kind_phys), pointer :: qs_lay(:,:) => null() !<
- real (kind=kind_phys), pointer :: q_lay(:,:) => null() !<
- real (kind=kind_phys), pointer :: deltaZ(:,:) => null() !<
- real (kind=kind_phys), pointer :: cloud_overlap_param(:,:) => null() !< Cloud overlap parameter
- real (kind=kind_phys), pointer :: precip_overlap_param(:,:) => null() !< Precipitation overlap parameter
- real (kind=kind_phys), pointer :: tracer(:,:,:) => null() !<
- real (kind=kind_phys), pointer :: aerosolslw(:,:,:,:) => null() !< Aerosol radiative properties in each LW band.
- real (kind=kind_phys), pointer :: aerosolssw(:,:,:,:) => null() !< Aerosol radiative properties in each SW band.
- real (kind=kind_phys), pointer :: cld_frac(:,:) => null() !< Total cloud fraction
- real (kind=kind_phys), pointer :: cld_lwp(:,:) => null() !< Cloud liquid water path
- real (kind=kind_phys), pointer :: cld_reliq(:,:) => null() !< Cloud liquid effective radius
- real (kind=kind_phys), pointer :: cld_iwp(:,:) => null() !< Cloud ice water path
- real (kind=kind_phys), pointer :: cld_reice(:,:) => null() !< Cloud ice effecive radius
- real (kind=kind_phys), pointer :: cld_swp(:,:) => null() !< Cloud snow water path
- real (kind=kind_phys), pointer :: cld_resnow(:,:) => null() !< Cloud snow effective radius
- real (kind=kind_phys), pointer :: cld_rwp(:,:) => null() !< Cloud rain water path
- real (kind=kind_phys), pointer :: cld_rerain(:,:) => null() !< Cloud rain effective radius
- real (kind=kind_phys), pointer :: precip_frac(:,:) => null() !< Precipitation fraction
- real (kind=kind_phys), pointer :: fluxlwUP_allsky(:,:) => null() !< RRTMGP upward longwave all-sky flux profile
- real (kind=kind_phys), pointer :: fluxlwDOWN_allsky(:,:) => null() !< RRTMGP downward longwave all-sky flux profile
- real (kind=kind_phys), pointer :: fluxlwUP_clrsky(:,:) => null() !< RRTMGP upward longwave clr-sky flux profile
- real (kind=kind_phys), pointer :: fluxlwDOWN_clrsky(:,:) => null() !< RRTMGP downward longwave clr-sky flux profile
- real (kind=kind_phys), pointer :: fluxswUP_allsky(:,:) => null() !< RRTMGP upward shortwave all-sky flux profile
- real (kind=kind_phys), pointer :: fluxswDOWN_allsky(:,:) => null() !< RRTMGP downward shortwave all-sky flux profile
- real (kind=kind_phys), pointer :: fluxswUP_clrsky(:,:) => null() !< RRTMGP upward shortwave clr-sky flux profile
- real (kind=kind_phys), pointer :: fluxswDOWN_clrsky(:,:) => null() !< RRTMGP downward shortwave clr-sky flux profile
- real (kind=kind_phys), pointer :: sfc_emiss_byband(:,:) => null() !<
- real (kind=kind_phys), pointer :: sec_diff_byband(:,:) => null() !<
- real (kind=kind_phys), pointer :: sfc_alb_nir_dir(:,:) => null() !<
- real (kind=kind_phys), pointer :: sfc_alb_nir_dif(:,:) => null() !<
- real (kind=kind_phys), pointer :: sfc_alb_uvvis_dir(:,:) => null() !<
- real (kind=kind_phys), pointer :: sfc_alb_uvvis_dif(:,:) => null() !<
- real (kind=kind_phys), pointer :: toa_src_lw(:,:) => null() !<
- real (kind=kind_phys), pointer :: toa_src_sw(:,:) => null() !<
- type(proflw_type), pointer :: flxprf_lw(:,:) => null() !< DDT containing RRTMGP longwave fluxes
- type(profsw_type), pointer :: flxprf_sw(:,:) => null() !< DDT containing RRTMGP shortwave fluxes
- type(ty_optical_props_2str) :: lw_optical_props_cloudsByBand !< RRTMGP DDT
- type(ty_optical_props_2str) :: lw_optical_props_clouds !< RRTMGP DDT
- type(ty_optical_props_2str) :: lw_optical_props_precipByBand !< RRTMGP DDT
- type(ty_optical_props_2str) :: lw_optical_props_precip !< RRTMGP DDT
- type(ty_optical_props_1scl) :: lw_optical_props_clrsky !< RRTMGP DDT
- type(ty_optical_props_1scl) :: lw_optical_props_aerosol !< RRTMGP DDT
- type(ty_optical_props_2str) :: sw_optical_props_cloudsByBand !< RRTMGP DDT
- type(ty_optical_props_2str) :: sw_optical_props_clouds !< RRTMGP DDT
- type(ty_optical_props_2str) :: sw_optical_props_precipByBand !< RRTMGP DDT
- type(ty_optical_props_2str) :: sw_optical_props_precip !< RRTMGP DDT
- type(ty_optical_props_2str) :: sw_optical_props_clrsky !< RRTMGP DDT
- type(ty_optical_props_2str) :: sw_optical_props_aerosol !< RRTMGP DDT
- type(ty_gas_concs) :: gas_concentrations !< RRTMGP DDT
- type(ty_source_func_lw) :: sources !< RRTMGP DDT
-
- !-- GSL drag suite
- real (kind=kind_phys), pointer :: varss(:) => null() !<
- real (kind=kind_phys), pointer :: ocss(:) => null() !<
- real (kind=kind_phys), pointer :: oa4ss(:,:) => null() !<
- real (kind=kind_phys), pointer :: clxss(:,:) => null() !<
-
- !-- 3D diagnostics
- integer :: rtg_ozone_index, rtg_tke_index
-
- contains
- procedure :: create => interstitial_create !< allocate array data
- procedure :: rad_reset => interstitial_rad_reset !< reset array data for radiation
- procedure :: phys_reset => interstitial_phys_reset !< reset array data for physics
-
- end type GFS_interstitial_type
-
!----------------
! PUBLIC ENTITIES
!----------------
@@ -2242,7 +1840,6 @@ module GFS_typedefs
GFS_coupling_type
public GFS_control_type, GFS_grid_type, GFS_tbd_type, &
GFS_cldprop_type, GFS_radtend_type, GFS_diag_type
- public GFS_interstitial_type
!*******************************************************************************************
CONTAINS
@@ -2557,6 +2154,12 @@ subroutine sfcprop_create (Sfcprop, IM, Model)
Sfcprop%dt_cool = zero
Sfcprop%qrain = zero
endif
+ if (Model%lsm == Model%lsm_noah) then
+ allocate (Sfcprop%xlaixy (IM))
+ allocate (Sfcprop%rca (IM))
+ Sfcprop%xlaixy = clear_val
+ Sfcprop%rca = clear_val
+ end if
if (Model%lsm == Model%lsm_ruc .or. Model%lsm == Model%lsm_noahmp) then
allocate(Sfcprop%raincprv (IM))
allocate(Sfcprop%rainncprv (IM))
@@ -2976,6 +2579,23 @@ subroutine coupling_create (Coupling, IM, Model)
Coupling%pfl_lsan = clear_val
endif
+ ! -- additional coupling options for air quality
+ if (Model%cplaqm .and. .not.Model%cplflx) then
+ !--- outgoing instantaneous quantities
+ allocate (Coupling%dtsfci_cpl (IM))
+ allocate (Coupling%dqsfci_cpl (IM))
+ allocate (Coupling%nswsfci_cpl (IM))
+ allocate (Coupling%t2mi_cpl (IM))
+ allocate (Coupling%q2mi_cpl (IM))
+ allocate (Coupling%psurfi_cpl (IM))
+ Coupling%dtsfci_cpl = clear_val
+ Coupling%dqsfci_cpl = clear_val
+ Coupling%nswsfci_cpl = clear_val
+ Coupling%t2mi_cpl = clear_val
+ Coupling%q2mi_cpl = clear_val
+ Coupling%psurfi_cpl = clear_val
+ endif
+
!--- stochastic physics option
if (Model%do_sppt .or. Model%ca_global) then
allocate (Coupling%sppt_wts (IM,Model%levs))
@@ -3119,6 +2739,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
logical :: cplocn2atm = .true. !< default yes cplocn2atm coupling (turn on the feedback from ocn to atm)
logical :: cplwav = .false. !< default no cplwav collection
logical :: cplwav2atm = .false. !< default no cplwav2atm coupling
+ logical :: cplaqm = .false. !< default no cplaqm collection
logical :: cplchm = .false. !< default no cplchm collection
logical :: use_cice_alb = .false. !< default no cice albedo
logical :: cpl_imp_mrg = .false. !< default no merge import with internal forcings
@@ -3192,6 +2813,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
logical :: doG_cldoptics = .false. !< Use legacy RRTMG cloud-optics?
logical :: doGP_cldoptics_PADE = .false. !< Use RRTMGP cloud-optics: PADE approximation?
logical :: doGP_cldoptics_LUT = .false. !< Use RRTMGP cloud-optics: LUTs?
+ integer :: iovr_convcld = 1 !< Cloud-overlap assumption for convective-cloud (defaults to iovr if not set)
integer :: rrtmgp_nrghice = 3 !< Number of ice-roughness categories
integer :: rrtmgp_nGauss_ang = 1 !< Number of angles used in Gaussian quadrature
logical :: do_GPsw_Glw = .false.
@@ -3200,6 +2822,8 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
real(kind=kind_phys) :: lfnc_k = -999 !<
real(kind=kind_phys) :: lfnc_p0 = -999 !<
logical :: doGP_lwscat = .false. !< If true, include scattering in longwave cloud-optics, only compatible w/ GP cloud-optics
+ logical :: doGP_sgs_cnv = .false. !< If true, include SubGridScale convective cloud in RRTMGP
+ logical :: doGP_sgs_mynn = .false. !< If true, include SubGridScale MYNN-EDMF cloud in RRTMGP
!--- Z-C microphysical parameters
integer :: imp_physics = 99 !< choice of cloud scheme
real(kind=kind_phys) :: psautco(2) = (/6.0d-4,3.0d-4/) !< [in] auto conversion coeff from ice to snow
@@ -3307,6 +2931,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
integer :: iopt_snf = 1 !rainfall & snowfall (1-jordan91; 2->bats; 3->noah)
integer :: iopt_tbot = 2 !lower boundary of soil temperature (1->zero-flux; 2->noah)
integer :: iopt_stc = 1 !snow/soil temperature time scheme (only layer 1)
+ integer :: iopt_trs = 2 !thermal roughness scheme (1-z0h=z0m; 2-czil; 3-ec;4-kb reversed)
logical :: use_ufo = .false. !< flag for gcycle surface option
@@ -3451,12 +3076,11 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
real(kind=kind_phys) :: ral_ts = 0.0d0 !< time scale for Rayleigh damping in days
!--- mass flux deep convection
-! real(kind=kind_phys) :: clam_deep = 0.1 !< c_e for deep convection (Han and Pan, 2011, eq(6))
- real(kind=kind_phys) :: clam_deep = 0.07 !< c_e for deep convection (Han and Pan, 2011, eq(6))
+ real(kind=kind_phys) :: clam_deep = 0.1 !< c_e for deep convection (Han and Pan, 2011, eq(6))
real(kind=kind_phys) :: c0s_deep = 0.002 !< convective rain conversion parameter
real(kind=kind_phys) :: c1_deep = 0.002 !< conversion parameter of detrainment from liquid water into grid-scale cloud water
- real(kind=kind_phys) :: betal_deep = 0.01 !< fraction factor of downdraft air mass reaching ground surface over land
- real(kind=kind_phys) :: betas_deep = 0.01 !< fraction factor of downdraft air mass reaching ground surface over sea
+ real(kind=kind_phys) :: betal_deep = 0.05 !< fraction factor of downdraft air mass reaching ground surface over land
+ real(kind=kind_phys) :: betas_deep = 0.05 !< fraction factor of downdraft air mass reaching ground surface over sea
real(kind=kind_phys) :: evef = 0.09 !< evaporation factor from convective rain
real(kind=kind_phys) :: evfact_deep = 0.3 !< evaporation factor from convective rain
real(kind=kind_phys) :: evfactl_deep = 0.3 !< evaporation factor from convective rain over land
@@ -3596,7 +3220,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
logical :: do_spp = .false.
!--- aerosol scavenging factors
- integer, parameter :: max_scav_factors = 25
+ integer, parameter :: max_scav_factors = 183
character(len=40) :: fscav_aero(max_scav_factors)
real(kind=kind_phys) :: radar_tten_limits(2) = (/ limit_unspecified, limit_unspecified /)
@@ -3610,8 +3234,8 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
naux3d, aux2d_time_avg, aux3d_time_avg, fhcyc, &
thermodyn_id, sfcpress_id, &
!--- coupling parameters
- cplflx, cplice, cplocn2atm, cplwav, cplwav2atm, cplchm, &
- cpl_imp_mrg, cpl_imp_dbg, &
+ cplflx, cplice, cplocn2atm, cplwav, cplwav2atm, cplaqm, &
+ cplchm, cpl_imp_mrg, cpl_imp_dbg, &
use_cice_alb, &
#ifdef IDEA_PHYS
lsidea, weimer_model, f107_kp_size, f107_kp_interval, &
@@ -3632,7 +3256,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
doG_cldoptics, doGP_cldoptics_PADE, doGP_cldoptics_LUT, &
rrtmgp_nrghice, rrtmgp_nGauss_ang, do_GPsw_Glw, &
use_LW_jacobian, doGP_lwscat, damp_LW_fluxadj, lfnc_k, &
- lfnc_p0, &
+ lfnc_p0, iovr_convcld, doGP_sgs_cnv, doGP_sgs_mynn, &
! IN CCN forcing
iccn, &
!--- microphysical parameterizations
@@ -3657,6 +3281,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
! Noah MP options
iopt_dveg,iopt_crs,iopt_btr,iopt_run,iopt_sfc, iopt_frz, &
iopt_inf, iopt_rad,iopt_alb,iopt_snf,iopt_tbot,iopt_stc, &
+ iopt_trs, &
! GFDL surface layer options
lcurr_sf, pert_cd, ntsflg, sfenth, &
!--- lake model control
@@ -3939,7 +3564,8 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
Model%cplocn2atm = cplocn2atm
Model%cplwav = cplwav
Model%cplwav2atm = cplwav2atm
- Model%cplchm = cplchm
+ Model%cplaqm = cplaqm
+ Model%cplchm = cplchm .or. cplaqm
Model%use_cice_alb = use_cice_alb
Model%cpl_imp_mrg = cpl_imp_mrg
Model%cpl_imp_dbg = cpl_imp_dbg
@@ -4053,11 +3679,14 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
Model%doG_cldoptics = doG_cldoptics
Model%doGP_cldoptics_PADE = doGP_cldoptics_PADE
Model%doGP_cldoptics_LUT = doGP_cldoptics_LUT
+ Model%iovr_convcld = iovr_convcld
Model%use_LW_jacobian = use_LW_jacobian
Model%damp_LW_fluxadj = damp_LW_fluxadj
Model%lfnc_k = lfnc_k
Model%lfnc_p0 = lfnc_p0
Model%doGP_lwscat = doGP_lwscat
+ Model%doGP_sgs_cnv = doGP_sgs_cnv
+ Model%doGP_sgs_mynn = doGP_sgs_mynn
if (Model%do_RRTMGP) then
! RRTMGP incompatible with levr /= levs
if (Model%levr /= Model%levs) then
@@ -4069,6 +3698,10 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
write(0,*) "Logic error, RRTMGP Longwave cloud-scattering not supported with RRTMG cloud-optics."
stop
end if
+ if (Model%doGP_sgs_mynn .and. .not. do_mynnedmf) then
+ write(0,*) "Logic error, RRTMGP flag doGP_sgs_mynn only works with do_mynnedmf=.true."
+ stop
+ endif
if (Model%doGP_cldoptics_PADE .and. Model%doGP_cldoptics_LUT) then
write(0,*) "Logic error, Both RRTMGP cloud-optics options cannot be selected. "
stop
@@ -4192,8 +3825,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
end if
! DH* TODO - need to clean up how different land surface models handle initializing zs and dzs
! For Noah and NoahMP, hardcode here for the moment; for RUC, these variables get initialized
- ! in the RUC LSM init calls; for Noah WRF4, dzs gets initialized in sfc_noah_wrfv4_interstitial
- ! init, and zs doesn't get used at all.
+ ! in the RUC LSM init calls.
! Allocate variables to store depth/thickness of soil layers
allocate (Model%zs (Model%lsoil_lsm))
allocate (Model%dzs(Model%lsoil_lsm))
@@ -4254,9 +3886,6 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
Model%lsnow_lsm_lbound = 0
Model%lsnow_lsm_ubound = 0
end if
- Model%isurban = -999 !GJF isurban is only used in NOAH WRFv4 and is initialized in sfc_noah_GFS_interstitial.F90/sfc_noah_GFS_pre_init
- Model%isice = -999 !GJF isice is only used in NOAH WRFv4 and is initialized in sfc_noah_GFS_interstitial.F90/sfc_noah_GFS_pre_init
- Model%iswater = -999 !GJF iswater is only used in NOAH WRFv4 and is initialized in sfc_noah_GFS_interstitial.F90/sfc_noah_GFS_pre_init
Model%iopt_thcnd = iopt_thcnd
Model%ua_phys = ua_phys
Model%usemonalb = usemonalb
@@ -4289,6 +3918,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
Model%iopt_snf = iopt_snf
Model%iopt_tbot = iopt_tbot
Model%iopt_stc = iopt_stc
+ Model%iopt_trs = iopt_trs
!--- tuning parameters for physical parameterizations
Model%ras = ras
@@ -4515,8 +4145,10 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
if (Model%do_spp) then
allocate(Model%spp_var_list(Model%n_var_spp))
allocate(Model%spp_prt_list(Model%n_var_spp))
+ allocate(Model%spp_stddev_cutoff(Model%n_var_spp))
Model%spp_var_list(:) = ''
Model%spp_prt_list(:) = clear_val
+ Model%spp_stddev_cutoff(:) = clear_val
end if
!--- cellular automata options
@@ -5126,6 +4758,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
print *,'iopt_snf = ', Model%iopt_snf
print *,'iopt_tbot = ',Model%iopt_tbot
print *,'iopt_stc = ', Model%iopt_stc
+ print *,'iopt_trs = ', Model%iopt_trs
elseif (Model%lsm == Model%lsm_ruc) then
print *,' RUC Land Surface Model used'
else
@@ -5769,6 +5402,7 @@ subroutine control_print(Model)
print *, ' cplocn2atm : ', Model%cplocn2atm
print *, ' cplwav : ', Model%cplwav
print *, ' cplwav2atm : ', Model%cplwav2atm
+ print *, ' cplaqm : ', Model%cplaqm
print *, ' cplchm : ', Model%cplchm
print *, ' use_cice_alb : ', Model%use_cice_alb
print *, ' cpl_imp_mrg : ', Model%cpl_imp_mrg
@@ -5839,6 +5473,9 @@ subroutine control_print(Model)
print *, ' lfnc_k : ', Model%lfnc_k
print *, ' lfnc_p0 : ', Model%lfnc_p0
print *, ' doGP_lwscat : ', Model%doGP_lwscat
+ print *, ' doGP_sgs_cnv : ', Model%doGP_sgs_cnv
+ print *, ' doGP_sgs_mynn : ', Model%doGP_sgs_cnv
+ print *, ' iovr_convcld : ', Model%iovr_convcld
endif
print *, ' '
print *, 'microphysical switch'
@@ -5950,6 +5587,7 @@ subroutine control_print(Model)
print *, ' iopt_snf : ', Model%iopt_snf
print *, ' iopt_tbot : ', Model%iopt_tbot
print *, ' iopt_stc : ', Model%iopt_stc
+ print *, ' iopt_trs : ', Model%iopt_trs
endif
print *, ' use_ufo : ', Model%use_ufo
print *, ' lcurr_sf : ', Model%lcurr_sf
@@ -7021,6 +6659,13 @@ subroutine diag_create (Diag, IM, Model)
Diag%thompson_ext_diag3d = clear_val
endif
+ ! Air quality diagnostics
+ ! -- initialize diagnostic variables
+ if (Model%cplaqm) then
+ allocate (Diag%aod(IM))
+ Diag%aod = zero
+ end if
+
! Auxiliary arrays in output for debugging
if (Model%naux2d>0) then
allocate (Diag%aux2d(IM,Model%naux2d))
@@ -7291,1079 +6936,4 @@ subroutine diag_phys_zero (Diag, Model, linit, iauwindow_center)
end subroutine diag_phys_zero
- !-------------------------
- ! GFS_interstitial_type%create
- !-------------------------
- subroutine interstitial_create (Interstitial, IM, Model)
- !
- implicit none
- !
- class(GFS_interstitial_type) :: Interstitial
- integer, intent(in) :: IM
- type(GFS_control_type), intent(in) :: Model
- integer :: iGas
- !
- allocate (Interstitial%otspt (Model%ntracp1,2))
- allocate (Interstitial%otsptflag (Model%ntrac))
- ! Set up numbers of tracers for PBL, convection, etc: sets
- ! Interstitial%{nvdiff,mg3_as_mg2,nn,tracers_total,ntqvx,ntcwx,ntiwx,ntk,ntkev,ntozx,otspt,nsamftrac,ncstrac,nscav}
- call interstitial_setup_tracers(Interstitial, Model)
- ! Allocate arrays
- allocate (Interstitial%adjsfculw_land (IM))
- allocate (Interstitial%adjsfculw_ice (IM))
- allocate (Interstitial%adjsfculw_water (IM))
- allocate (Interstitial%adjnirbmd (IM))
- allocate (Interstitial%adjnirbmu (IM))
- allocate (Interstitial%adjnirdfd (IM))
- allocate (Interstitial%adjnirdfu (IM))
- allocate (Interstitial%adjvisbmd (IM))
- allocate (Interstitial%adjvisbmu (IM))
- allocate (Interstitial%adjvisdfu (IM))
- allocate (Interstitial%adjvisdfd (IM))
- allocate (Interstitial%aerodp (IM,NSPC1))
- allocate (Interstitial%alb1d (IM))
- if (.not. Model%do_RRTMGP) then
- ! RRTMGP uses its own cloud_overlap_param
- allocate (Interstitial%alpha (IM,Model%levr+LTP))
- end if
- allocate (Interstitial%bexp1d (IM))
- allocate (Interstitial%cd (IM))
- allocate (Interstitial%cd_ice (IM))
- allocate (Interstitial%cd_land (IM))
- allocate (Interstitial%cd_water (IM))
- allocate (Interstitial%cdq (IM))
- allocate (Interstitial%cdq_ice (IM))
- allocate (Interstitial%cdq_land (IM))
- allocate (Interstitial%cdq_water (IM))
- allocate (Interstitial%chh_ice (IM))
- allocate (Interstitial%chh_land (IM))
- allocate (Interstitial%chh_water (IM))
- allocate (Interstitial%cldf (IM))
- allocate (Interstitial%cldsa (IM,5))
- allocate (Interstitial%cldtaulw (IM,Model%levr+LTP))
- allocate (Interstitial%cldtausw (IM,Model%levr+LTP))
- allocate (Interstitial%cld1d (IM))
- allocate (Interstitial%clouds (IM,Model%levr+LTP,NF_CLDS))
- allocate (Interstitial%clw (IM,Model%levs,Interstitial%nn))
- allocate (Interstitial%clx (IM,4))
- allocate (Interstitial%cmm_ice (IM))
- allocate (Interstitial%cmm_land (IM))
- allocate (Interstitial%cmm_water (IM))
- allocate (Interstitial%cnvc (IM,Model%levs))
- allocate (Interstitial%cnvw (IM,Model%levs))
- allocate (Interstitial%ctei_r (IM))
- allocate (Interstitial%ctei_rml (IM))
- allocate (Interstitial%cumabs (IM))
- allocate (Interstitial%dd_mf (IM,Model%levs))
- allocate (Interstitial%de_lgth (IM))
- allocate (Interstitial%del (IM,Model%levs))
- allocate (Interstitial%del_gz (IM,Model%levs+1))
- allocate (Interstitial%delr (IM,Model%levr+LTP))
- allocate (Interstitial%dlength (IM))
- allocate (Interstitial%dqdt (IM,Model%levs,Model%ntrac))
- allocate (Interstitial%dqsfc1 (IM))
- allocate (Interstitial%drain (IM))
- allocate (Interstitial%dtdt (IM,Model%levs))
- allocate (Interstitial%dtsfc1 (IM))
- allocate (Interstitial%dt_mf (IM,Model%levs))
- allocate (Interstitial%dtzm (IM))
- allocate (Interstitial%dudt (IM,Model%levs))
- allocate (Interstitial%dusfcg (IM))
- allocate (Interstitial%dusfc1 (IM))
- allocate (Interstitial%dvdt (IM,Model%levs))
- allocate (Interstitial%dvsfcg (IM))
- allocate (Interstitial%dvsfc1 (IM))
- allocate (Interstitial%dvdftra (IM,Model%levs,Interstitial%nvdiff))
- allocate (Interstitial%dzlyr (IM,Model%levr+LTP))
- allocate (Interstitial%elvmax (IM))
- allocate (Interstitial%ep1d (IM))
- allocate (Interstitial%ep1d_ice (IM))
- allocate (Interstitial%ep1d_land (IM))
- allocate (Interstitial%ep1d_water (IM))
- allocate (Interstitial%evap_ice (IM))
- allocate (Interstitial%evap_land (IM))
- allocate (Interstitial%evap_water (IM))
- allocate (Interstitial%evbs (IM))
- allocate (Interstitial%evcw (IM))
- allocate (Interstitial%pah (IM))
- allocate (Interstitial%ecan (IM))
- allocate (Interstitial%etran (IM))
- allocate (Interstitial%edir (IM))
- allocate (Interstitial%faerlw (IM,Model%levr+LTP,NBDLW,NF_AELW))
- allocate (Interstitial%faersw (IM,Model%levr+LTP,NBDSW,NF_AESW))
- allocate (Interstitial%ffhh_ice (IM))
- allocate (Interstitial%ffhh_land (IM))
- allocate (Interstitial%ffhh_water (IM))
- allocate (Interstitial%fh2 (IM))
- allocate (Interstitial%fh2_ice (IM))
- allocate (Interstitial%fh2_land (IM))
- allocate (Interstitial%fh2_water (IM))
- allocate (Interstitial%flag_cice (IM))
- allocate (Interstitial%flag_guess (IM))
- allocate (Interstitial%flag_iter (IM))
- allocate (Interstitial%ffmm_ice (IM))
- allocate (Interstitial%ffmm_land (IM))
- allocate (Interstitial%ffmm_water (IM))
- allocate (Interstitial%fm10 (IM))
- allocate (Interstitial%fm10_ice (IM))
- allocate (Interstitial%fm10_land (IM))
- allocate (Interstitial%fm10_water (IM))
- allocate (Interstitial%frland (IM))
- allocate (Interstitial%fscav (Interstitial%nscav))
- allocate (Interstitial%fswtr (Interstitial%nscav))
- allocate (Interstitial%gabsbdlw (IM))
- allocate (Interstitial%gabsbdlw_ice (IM))
- allocate (Interstitial%gabsbdlw_land (IM))
- allocate (Interstitial%gabsbdlw_water (IM))
- allocate (Interstitial%gamma (IM))
- allocate (Interstitial%gamq (IM))
- allocate (Interstitial%gamt (IM))
- allocate (Interstitial%gasvmr (IM,Model%levr+LTP,NF_VGAS))
- allocate (Interstitial%gflx (IM))
- allocate (Interstitial%gflx_ice (IM))
- allocate (Interstitial%gflx_land (IM))
- allocate (Interstitial%gflx_water (IM))
- allocate (Interstitial%gwdcu (IM,Model%levs))
- allocate (Interstitial%gwdcv (IM,Model%levs))
- allocate (Interstitial%zvfun (IM))
- allocate (Interstitial%hffac (IM))
- allocate (Interstitial%hflxq (IM))
- allocate (Interstitial%hflx_ice (IM))
- allocate (Interstitial%hflx_land (IM))
- allocate (Interstitial%hflx_water (IM))
- allocate (Interstitial%htlwc (IM,Model%levr+LTP))
- allocate (Interstitial%htlw0 (IM,Model%levr+LTP))
- allocate (Interstitial%htswc (IM,Model%levr+LTP))
- allocate (Interstitial%htsw0 (IM,Model%levr+LTP))
- allocate (Interstitial%dry (IM))
- allocate (Interstitial%idxday (IM))
- allocate (Interstitial%icy (IM))
- allocate (Interstitial%lake (IM))
- allocate (Interstitial%use_flake (IM))
- allocate (Interstitial%ocean (IM))
- allocate (Interstitial%islmsk (IM))
- allocate (Interstitial%islmsk_cice (IM))
- allocate (Interstitial%wet (IM))
- allocate (Interstitial%kbot (IM))
- allocate (Interstitial%kcnv (IM))
- allocate (Interstitial%kinver (IM))
- allocate (Interstitial%kpbl (IM))
- allocate (Interstitial%ktop (IM))
- allocate (Interstitial%mbota (IM,3))
- allocate (Interstitial%mtopa (IM,3))
- allocate (Interstitial%oa4 (IM,4))
- allocate (Interstitial%oc (IM))
- allocate (Interstitial%olyr (IM,Model%levr+LTP))
- allocate (Interstitial%plvl (IM,Model%levr+1+LTP))
- allocate (Interstitial%plyr (IM,Model%levr+LTP))
- allocate (Interstitial%prnum (IM,Model%levs))
- allocate (Interstitial%qlyr (IM,Model%levr+LTP))
- allocate (Interstitial%prcpmp (IM))
- allocate (Interstitial%qss_ice (IM))
- allocate (Interstitial%qss_land (IM))
- allocate (Interstitial%qss_water (IM))
- allocate (Interstitial%raincd (IM))
- allocate (Interstitial%raincs (IM))
- allocate (Interstitial%rainmcadj (IM))
- allocate (Interstitial%rainp (IM,Model%levs))
- allocate (Interstitial%rb (IM))
- allocate (Interstitial%rb_ice (IM))
- allocate (Interstitial%rb_land (IM))
- allocate (Interstitial%rb_water (IM))
- allocate (Interstitial%rhc (IM,Model%levs))
- allocate (Interstitial%runoff (IM))
- allocate (Interstitial%save_q (IM,Model%levs,Model%ntrac))
- allocate (Interstitial%save_t (IM,Model%levs))
- allocate (Interstitial%save_tcp (IM,Model%levs))
- allocate (Interstitial%save_u (IM,Model%levs))
- allocate (Interstitial%save_v (IM,Model%levs))
- allocate (Interstitial%sbsno (IM))
- allocate (Interstitial%scmpsw (IM))
- allocate (Interstitial%sfcalb (IM,NF_ALBD))
- allocate (Interstitial%sigma (IM))
- allocate (Interstitial%sigmaf (IM))
- allocate (Interstitial%sigmafrac (IM,Model%levs))
- allocate (Interstitial%sigmatot (IM,Model%levs))
- allocate (Interstitial%snowc (IM))
- allocate (Interstitial%snohf (IM))
- allocate (Interstitial%snowmt (IM))
- allocate (Interstitial%stress (IM))
- allocate (Interstitial%stress_ice (IM))
- allocate (Interstitial%stress_land (IM))
- allocate (Interstitial%stress_water (IM))
- allocate (Interstitial%theta (IM))
- allocate (Interstitial%tlvl (IM,Model%levr+1+LTP))
- allocate (Interstitial%tlyr (IM,Model%levr+LTP))
- allocate (Interstitial%tprcp_ice (IM))
- allocate (Interstitial%tprcp_land (IM))
- allocate (Interstitial%tprcp_water (IM))
- allocate (Interstitial%trans (IM))
- allocate (Interstitial%tseal (IM))
- allocate (Interstitial%tsfa (IM))
- allocate (Interstitial%tsfc_water (IM))
- allocate (Interstitial%tsfg (IM))
- allocate (Interstitial%tsurf_ice (IM))
- allocate (Interstitial%tsurf_land (IM))
- allocate (Interstitial%tsurf_water (IM))
- allocate (Interstitial%ud_mf (IM,Model%levs))
- allocate (Interstitial%uustar_ice (IM))
- allocate (Interstitial%uustar_land (IM))
- allocate (Interstitial%uustar_water (IM))
- allocate (Interstitial%vdftra (IM,Model%levs,Interstitial%nvdiff)) !GJF first dimension was set as 'IX' in GFS_physics_driver
- allocate (Interstitial%vegf1d (IM))
- allocate (Interstitial%wcbmax (IM))
- allocate (Interstitial%wind (IM))
- allocate (Interstitial%work1 (IM))
- allocate (Interstitial%work2 (IM))
- allocate (Interstitial%work3 (IM))
- allocate (Interstitial%xcosz (IM))
- allocate (Interstitial%xlai1d (IM))
- allocate (Interstitial%xmu (IM))
- allocate (Interstitial%z01d (IM))
- allocate (Interstitial%zt1d (IM))
- allocate (Interstitial%ztmax_ice (IM))
- allocate (Interstitial%ztmax_land (IM))
- allocate (Interstitial%ztmax_water (IM))
-
- ! RRTMGP
- if (Model%do_RRTMGP) then
- allocate (Interstitial%tracer (IM, Model%levs,Model%ntrac))
- allocate (Interstitial%tv_lay (IM, Model%levs))
- allocate (Interstitial%relhum (IM, Model%levs))
- allocate (Interstitial%qs_lay (IM, Model%levs))
- allocate (Interstitial%q_lay (IM, Model%levs))
- allocate (Interstitial%deltaZ (IM, Model%levs))
- allocate (Interstitial%p_lev (IM, Model%levs+1))
- allocate (Interstitial%p_lay (IM, Model%levs))
- allocate (Interstitial%t_lev (IM, Model%levs+1))
- allocate (Interstitial%t_lay (IM, Model%levs))
- allocate (Interstitial%cloud_overlap_param (IM, Model%levs))
- allocate (Interstitial%precip_overlap_param (IM, Model%levs))
- allocate (Interstitial%fluxlwUP_allsky (IM, Model%levs+1))
- allocate (Interstitial%fluxlwDOWN_allsky (IM, Model%levs+1))
- allocate (Interstitial%fluxlwUP_clrsky (IM, Model%levs+1))
- allocate (Interstitial%fluxlwDOWN_clrsky (IM, Model%levs+1))
- allocate (Interstitial%fluxswUP_allsky (IM, Model%levs+1))
- allocate (Interstitial%fluxswDOWN_allsky (IM, Model%levs+1))
- allocate (Interstitial%fluxswUP_clrsky (IM, Model%levs+1))
- allocate (Interstitial%fluxswDOWN_clrsky (IM, Model%levs+1))
- allocate (Interstitial%aerosolslw (IM, Model%levs, Model%rrtmgp_nBandsLW, NF_AELW))
- allocate (Interstitial%aerosolssw (IM, Model%levs, Model%rrtmgp_nBandsSW, NF_AESW))
- allocate (Interstitial%cld_frac (IM, Model%levs))
- allocate (Interstitial%cld_lwp (IM, Model%levs))
- allocate (Interstitial%cld_reliq (IM, Model%levs))
- allocate (Interstitial%cld_iwp (IM, Model%levs))
- allocate (Interstitial%cld_reice (IM, Model%levs))
- allocate (Interstitial%cld_swp (IM, Model%levs))
- allocate (Interstitial%cld_resnow (IM, Model%levs))
- allocate (Interstitial%cld_rwp (IM, Model%levs))
- allocate (Interstitial%cld_rerain (IM, Model%levs))
- allocate (Interstitial%precip_frac (IM, Model%levs))
- allocate (Interstitial%flxprf_lw (IM, Model%levs+1))
- allocate (Interstitial%flxprf_sw (IM, Model%levs+1))
- allocate (Interstitial%sfc_emiss_byband (Model%rrtmgp_nBandsLW,IM))
- allocate (Interstitial%sec_diff_byband (Model%rrtmgp_nBandsLW,IM))
- allocate (Interstitial%sfc_alb_nir_dir (Model%rrtmgp_nBandsSW,IM))
- allocate (Interstitial%sfc_alb_nir_dif (Model%rrtmgp_nBandsSW,IM))
- allocate (Interstitial%sfc_alb_uvvis_dir (Model%rrtmgp_nBandsSW,IM))
- allocate (Interstitial%sfc_alb_uvvis_dif (Model%rrtmgp_nBandsSW,IM))
- allocate (Interstitial%toa_src_sw (IM,Model%rrtmgp_nGptsSW))
- allocate (Interstitial%toa_src_lw (IM,Model%rrtmgp_nGptsLW))
- !
- ! gas_concentrations (ty_gas_concs)
- !
- Interstitial%gas_concentrations%ncol = IM
- Interstitial%gas_concentrations%nlay = Model%levs
- allocate(Interstitial%gas_concentrations%gas_name(Model%nGases))
- allocate(Interstitial%gas_concentrations%concs(Model%nGases))
- do iGas=1,Model%nGases
- allocate(Interstitial%gas_concentrations%concs(iGas)%conc(IM, Model%levs))
- enddo
- !
- ! lw_optical_props_clrsky (ty_optical_props_1scl)
- !
- allocate(Interstitial%lw_optical_props_clrsky%tau( IM, Model%levs, Model%rrtmgp_nGptsLW ))
- allocate(Interstitial%lw_optical_props_clrsky%band2gpt (2, Model%rrtmgp_nBandsLW ))
- allocate(Interstitial%lw_optical_props_clrsky%band_lims_wvn(2, Model%rrtmgp_nBandsLW ))
- allocate(Interstitial%lw_optical_props_clrsky%gpt2band( Model%rrtmgp_nGptsLW ))
- !
- ! lw_optical_props_aerosol (ty_optical_props_1scl)
- !
- allocate(Interstitial%lw_optical_props_aerosol%tau( IM, Model%levs, Model%rrtmgp_nBandsLW ))
- allocate(Interstitial%lw_optical_props_aerosol%band2gpt (2, Model%rrtmgp_nBandsLW ))
- allocate(Interstitial%lw_optical_props_aerosol%band_lims_wvn(2, Model%rrtmgp_nBandsLW ))
- allocate(Interstitial%lw_optical_props_aerosol%gpt2band( Model%rrtmgp_nBandsLW ))
- !
- ! lw_optical_props_cloudsByBand (ty_optical_props_2str)
- !
- allocate(Interstitial%lw_optical_props_cloudsByBand%tau(IM, Model%levs, Model%rrtmgp_nBandsLW ))
- allocate(Interstitial%lw_optical_props_cloudsByBand%ssa(IM, Model%levs, Model%rrtmgp_nBandsLW ))
- allocate(Interstitial%lw_optical_props_cloudsByBand%g( IM, Model%levs, Model%rrtmgp_nBandsLW ))
- allocate(Interstitial%lw_optical_props_cloudsByBand%band2gpt (2, Model%rrtmgp_nBandsLW ))
- allocate(Interstitial%lw_optical_props_cloudsByBand%band_lims_wvn(2, Model%rrtmgp_nBandsLW ))
- allocate(Interstitial%lw_optical_props_cloudsByBand%gpt2band( Model%rrtmgp_nBandsLW ))
- !
- ! lw_optical_props_precipByBand (ty_optical_props_2str)
- !
- allocate(Interstitial%lw_optical_props_precipByBand%tau(IM, Model%levs, Model%rrtmgp_nBandsLW ))
- allocate(Interstitial%lw_optical_props_precipByBand%ssa(IM, Model%levs, Model%rrtmgp_nBandsLW ))
- allocate(Interstitial%lw_optical_props_precipByBand%g( IM, Model%levs, Model%rrtmgp_nBandsLW ))
- allocate(Interstitial%lw_optical_props_precipByBand%band2gpt (2, Model%rrtmgp_nBandsLW ))
- allocate(Interstitial%lw_optical_props_precipByBand%band_lims_wvn(2, Model%rrtmgp_nBandsLW ))
- allocate(Interstitial%lw_optical_props_precipByBand%gpt2band( Model%rrtmgp_nBandsLW ))
- !
- ! lw_optical_props_clouds (ty_optical_props_2str)
- !
- allocate(Interstitial%lw_optical_props_clouds%tau( IM, Model%levs, Model%rrtmgp_nGptsLW ))
- allocate(Interstitial%lw_optical_props_clouds%ssa( IM, Model%levs, Model%rrtmgp_nGptsLW ))
- allocate(Interstitial%lw_optical_props_clouds%g( IM, Model%levs, Model%rrtmgp_nGptsLW ))
- allocate(Interstitial%lw_optical_props_clouds%band2gpt (2, Model%rrtmgp_nBandsLW ))
- allocate(Interstitial%lw_optical_props_clouds%band_lims_wvn(2, Model%rrtmgp_nBandsLW ))
- allocate(Interstitial%lw_optical_props_clouds%gpt2band( Model%rrtmgp_nGptsLW ))
- !
- ! lw_optical_props_precip (ty_optical_props_2str)
- !
- allocate(Interstitial%lw_optical_props_precip%tau( IM, Model%levs, Model%rrtmgp_nGptsLW ))
- allocate(Interstitial%lw_optical_props_precip%ssa( IM, Model%levs, Model%rrtmgp_nGptsLW ))
- allocate(Interstitial%lw_optical_props_precip%g( IM, Model%levs, Model%rrtmgp_nGptsLW ))
- allocate(Interstitial%lw_optical_props_precip%band2gpt (2, Model%rrtmgp_nBandsLW ))
- allocate(Interstitial%lw_optical_props_precip%band_lims_wvn(2, Model%rrtmgp_nBandsLW ))
- allocate(Interstitial%lw_optical_props_precip%gpt2band( Model%rrtmgp_nGptsLW ))
- !
- ! sources (ty_source_func_lw)
- !
- allocate(Interstitial%sources%sfc_source( IM, Model%rrtmgp_nGptsLW ))
- allocate(Interstitial%sources%lay_source( IM, Model%levs, Model%rrtmgp_nGptsLW ))
- allocate(Interstitial%sources%lev_source_inc( IM, Model%levs, Model%rrtmgp_nGptsLW ))
- allocate(Interstitial%sources%lev_source_dec( IM, Model%levs, Model%rrtmgp_nGptsLW ))
- allocate(Interstitial%sources%sfc_source_Jac( IM, Model%rrtmgp_nGptsLW ))
- allocate(Interstitial%sources%band2gpt ( 2, Model%rrtmgp_nBandsLW ))
- allocate(Interstitial%sources%band_lims_wvn ( 2, Model%rrtmgp_nBandsLW ))
- allocate(Interstitial%sources%gpt2band( Model%rrtmgp_nGptsLW ))
- end if
-
-! UGWP common
- allocate (Interstitial%tau_mtb (IM))
- allocate (Interstitial%tau_ogw (IM))
- allocate (Interstitial%tau_tofd (IM))
- allocate (Interstitial%tau_ngw (IM))
- allocate (Interstitial%tau_oss (IM))
- allocate (Interstitial%dudt_mtb (IM,Model%levs))
- allocate (Interstitial%dudt_tms (IM,Model%levs))
- allocate (Interstitial%zmtb (IM) )
- allocate (Interstitial%zlwb (IM) )
- allocate (Interstitial%zogw (IM) )
- allocate (Interstitial%zngw (IM) )
-
-! CIRES UGWP v1
- if (Model%do_ugwp_v1) then
- allocate (Interstitial%dudt_ngw (IM,Model%levs))
- allocate (Interstitial%dvdt_ngw (IM,Model%levs))
- allocate (Interstitial%dtdt_ngw (IM,Model%levs))
- allocate (Interstitial%kdis_ngw (IM,Model%levs))
- end if
-
-!-- GSL drag suite
- if (Model%gwd_opt==3 .or. Model%gwd_opt==33 .or. &
- Model%gwd_opt==2 .or. Model%gwd_opt==22 ) then
- allocate (Interstitial%varss (IM))
- allocate (Interstitial%ocss (IM))
- allocate (Interstitial%oa4ss (IM,4))
- allocate (Interstitial%clxss (IM,4))
- end if
-!
- ! Allocate arrays that are conditional on physics choices
- if (Model%imp_physics == Model%imp_physics_gfdl .or. Model%imp_physics == Model%imp_physics_thompson &
- .or. Model%imp_physics == Model%imp_physics_nssl &
- ) then
- allocate (Interstitial%graupelmp (IM))
- allocate (Interstitial%icemp (IM))
- allocate (Interstitial%rainmp (IM))
- allocate (Interstitial%snowmp (IM))
- else if (Model%imp_physics == Model%imp_physics_mg) then
- allocate (Interstitial%ncgl (IM,Model%levs))
- allocate (Interstitial%ncpr (IM,Model%levs))
- allocate (Interstitial%ncps (IM,Model%levs))
- allocate (Interstitial%qgl (IM,Model%levs))
- allocate (Interstitial%qrn (IM,Model%levs))
- allocate (Interstitial%qsnw (IM,Model%levs))
- allocate (Interstitial%qlcn (IM,Model%levs))
- allocate (Interstitial%qicn (IM,Model%levs))
- allocate (Interstitial%w_upi (IM,Model%levs))
- allocate (Interstitial%cf_upi (IM,Model%levs))
- allocate (Interstitial%cnv_mfd (IM,Model%levs))
- allocate (Interstitial%cnv_dqldt (IM,Model%levs))
- allocate (Interstitial%clcn (IM,Model%levs))
- allocate (Interstitial%cnv_fice (IM,Model%levs))
- allocate (Interstitial%cnv_ndrop (IM,Model%levs))
- allocate (Interstitial%cnv_nice (IM,Model%levs))
- end if
- if (Model%do_shoc) then
- if (.not. associated(Interstitial%qrn)) allocate (Interstitial%qrn (IM,Model%levs))
- if (.not. associated(Interstitial%qsnw)) allocate (Interstitial%qsnw (IM,Model%levs))
- ! DH* updated version of shoc from May 22 2019 (not yet in CCPP) doesn't use qgl? remove?
- if (.not. associated(Interstitial%qgl)) allocate (Interstitial%qgl (IM,Model%levs))
- ! *DH
- allocate (Interstitial%ncpi (IM,Model%levs))
- allocate (Interstitial%ncpl (IM,Model%levs))
- end if
- if (Model%lsm == Model%lsm_noahmp) then
- allocate (Interstitial%t2mmp (IM))
- allocate (Interstitial%q2mp (IM))
- end if
- !
- ! Set components that do not change
- Interstitial%frain = Model%dtf/Model%dtp
- Interstitial%ipr = min(IM,10)
- Interstitial%latidxprnt = 1
- Interstitial%levi = Model%levs+1
- Interstitial%lmk = Model%levr+LTP
- Interstitial%lmp = Model%levr+1+LTP
- Interstitial%nbdlw = NBDLW
- Interstitial%nbdsw = NBDSW
- Interstitial%nf_aelw = NF_AELW
- Interstitial%nf_aesw = NF_AESW
- Interstitial%nspc1 = NSPC1
- if (Model%oz_phys .or. Model%oz_phys_2015) then
- Interstitial%oz_coeffp5 = oz_coeff+5
- else
- Interstitial%oz_coeffp5 = 5
- endif
- !
- Interstitial%skip_macro = .false.
- ! The value phys_hydrostatic from dynamics does not match the
- ! hardcoded value for calling GFDL MP in GFS_physics_driver.F90,
- ! which is set to .true.
- Interstitial%phys_hydrostatic = .true.
- !
- ! Reset all other variables
- call Interstitial%rad_reset (Model)
- call Interstitial%phys_reset (Model)
- !
- end subroutine interstitial_create
-
- subroutine interstitial_setup_tracers(Interstitial, Model)
- !
- implicit none
- !
- class(GFS_interstitial_type) :: Interstitial
- type(GFS_control_type), intent(in) :: Model
- integer :: n, tracers
- logical :: ltest
-
- !first, initialize the values (in case the values don't get initialized within if statements below)
- Interstitial%nvdiff = Model%ntrac
- Interstitial%mg3_as_mg2 = .false.
- Interstitial%nn = Model%ntrac + 1
- Interstitial%itc = 0
- Interstitial%ntk = 0
- Interstitial%ntkev = 0
- Interstitial%tracers_total = 0
- Interstitial%otspt(:,:) = .true.
- Interstitial%otsptflag(:) = .true.
- Interstitial%nsamftrac = 0
- Interstitial%ncstrac = 0
- Interstitial%ntcwx = 0
- Interstitial%ntiwx = 0
- Interstitial%ntrwx = 0
-
- ! perform aerosol convective transport and PBL diffusion
- Interstitial%trans_aero = Model%cplchm .and. Model%trans_trac
-
- if (Model%imp_physics == Model%imp_physics_thompson) then
- if (Model%ltaerosol) then
- Interstitial%nvdiff = 12
- else
- Interstitial%nvdiff = 9
- endif
- if (Model%satmedmf) Interstitial%nvdiff = Interstitial%nvdiff + 1
- elseif ( Model%imp_physics == Model%imp_physics_nssl ) then
- if (Model%me == Model%master) write(0,*) 'nssl_settings1: nvdiff,ntrac = ', Interstitial%nvdiff, Model%ntrac
-
- IF ( Model%nssl_hail_on ) THEN
- Interstitial%nvdiff = 16 ! Model%ntrac ! 17
- ELSE
- Interstitial%nvdiff = 13 ! turn off hail q,N, and volume
- ENDIF
- ! write(*,*) 'NSSL: nvdiff, ntrac = ',Interstitial%nvdiff, Model%ntrac
- if (Model%satmedmf) Interstitial%nvdiff = Interstitial%nvdiff + 1
- IF ( Model%nssl_ccn_on ) THEN
- Interstitial%nvdiff = Interstitial%nvdiff + 1
- ENDIF
- if (Model%me == Model%master) write(0,*) 'nssl_settings2: nvdiff,ntrac = ', Interstitial%nvdiff, Model%ntrac
-
- elseif (Model%imp_physics == Model%imp_physics_wsm6) then
- Interstitial%nvdiff = Model%ntrac -3
- if (Model%satmedmf) Interstitial%nvdiff = Interstitial%nvdiff + 1
- elseif (Model%ntclamt > 0) then ! for GFDL MP don't diffuse cloud amount
- Interstitial%nvdiff = Model%ntrac - 1
- endif
-
- if (Model%imp_physics == Model%imp_physics_mg) then
- if (abs(Model%fprcp) == 1) then
- Interstitial%mg3_as_mg2 = .false.
- elseif (Model%fprcp >= 2) then
- if(Model%ntgl > 0 .and. (Model%mg_do_graupel .or. Model%mg_do_hail)) then
- Interstitial%mg3_as_mg2 = .false.
- else ! MG3 code run without graupel/hail i.e. as MG2
- Interstitial%mg3_as_mg2 = .true.
- endif
- endif
- endif
-
- Interstitial%nscav = Model%ntrac - Model%ncnd + 2
-
- if (Interstitial%nvdiff == Model%ntrac) then
- Interstitial%ntcwx = Model%ntcw
- Interstitial%ntiwx = Model%ntiw
- Interstitial%ntrwx = Model%ntrw
- Interstitial%ntozx = Model%ntoz
- else
- if (Model%imp_physics == Model%imp_physics_wsm6) then
- Interstitial%ntqvx = 1
- Interstitial%ntcwx = 2
- Interstitial%ntiwx = 3
- Interstitial%ntozx = 4
- elseif (Model%imp_physics == Model%imp_physics_nssl) then ! ERM: temporary settings - what is needed?
- Interstitial%ntqvx = 1
- Interstitial%ntcwx = 2
- Interstitial%ntiwx = 3
- IF ( Model%nssl_hail_on ) THEN
- Interstitial%ntozx = 15 ! 17
- ELSE
- Interstitial%ntozx = 12 ! 14
- ENDIF
- IF ( Model%nssl_ccn_on ) THEN
- Interstitial%ntozx = Interstitial%ntozx + 1 ! not clear if ntozx is used?
- ENDIF
- elseif (Model%imp_physics == Model%imp_physics_thompson) then
- if(Model%ltaerosol) then
- Interstitial%ntqvx = 1
- Interstitial%ntcwx = 2
- Interstitial%ntiwx = 3
- Interstitial%ntrwx = 4
- Interstitial%ntozx = 10
- else
- Interstitial%ntqvx = 1
- Interstitial%ntcwx = 2
- Interstitial%ntiwx = 3
- Interstitial%ntrwx = 4
- Interstitial%ntozx = 9
- endif
- elseif (Model%imp_physics == Model%imp_physics_gfdl) then
- Interstitial%ntqvx = 1
- Interstitial%ntcwx = 2
- Interstitial%ntiwx = 3
- Interstitial%ntrwx = 4
- Interstitial%ntozx = 7
- ! F-A MP scheme
- elseif (Model%imp_physics == Model%imp_physics_fer_hires) then
- Interstitial%ntqvx = 1
- Interstitial%ntcwx = 2
- Interstitial%ntiwx = 3
- Interstitial%ntrwx = 4
- Interstitial%ntozx = 6
- elseif (Model%imp_physics == Model%imp_physics_mg) then
- Interstitial%ntqvx = 1
- Interstitial%ntcwx = 2
- Interstitial%ntiwx = 3
- Interstitial%ntrwx = 4
- if (Model%ntgl > 0) then
- Interstitial%ntozx = 12
- else
- Interstitial%ntozx = 10
- end if
- elseif (Model%imp_physics == Model%imp_physics_zhao_carr) then
- Interstitial%ntqvx = 1
- Interstitial%ntcwx = 2
- Interstitial%ntozx = 3
- else
- Interstitial%ntqvx = 1
- Interstitial%ntcwx = 2
- Interstitial%ntiwx = 0
- Interstitial%ntozx = 3
- endif
- endif
-
- if (Model%cplchm) then
- ! Only the following microphysics schemes are supported with coupled chemistry
- if (Model%imp_physics == Model%imp_physics_zhao_carr) then
- Interstitial%nvdiff = 3
- elseif (Model%imp_physics == Model%imp_physics_mg) then
- if (Model%ntgl > 0) then
- Interstitial%nvdiff = 12
- else
- Interstitial%nvdiff = 10
- endif
- elseif (Model%imp_physics == Model%imp_physics_gfdl) then
- Interstitial%nvdiff = 7
- elseif (Model%imp_physics == Model%imp_physics_thompson) then
- if (Model%ltaerosol) then
- Interstitial%nvdiff = 12
- else
- Interstitial%nvdiff = 9
- endif
- else
- write(0,*) "Selected microphysics scheme is not supported when coupling with chemistry"
- stop
- endif
- if (Interstitial%trans_aero) Interstitial%nvdiff = Interstitial%nvdiff + Model%ntchm
- if (Model%ntke > 0) Interstitial%nvdiff = Interstitial%nvdiff + 1 ! adding tke to the list
- endif
-
- if (Model%ntke > 0) Interstitial%ntkev = Interstitial%nvdiff
-
- if (Model%ntiw > 0) then
- if (Model%ntclamt > 0) then
- Interstitial%nn = Model%ntrac - 2
- else
- Interstitial%nn = Model%ntrac - 1
- endif
- elseif (Model%ntcw > 0) then
- Interstitial%nn = Model%ntrac
- else
- Interstitial%nn = Model%ntrac + 1
- endif
-
- if (Model%cscnv .or. Model%satmedmf .or. Model%trans_trac ) then
- Interstitial%otspt(:,:) = .true. ! otspt is used only for cscnv
- Interstitial%otspt(1:3,:) = .false. ! this is for sp.hum, ice and liquid water
- Interstitial%otsptflag(:) = .true.
- tracers = 2
- do n=2,Model%ntrac
- ltest = ( n /= Model%ntcw .and. n /= Model%ntiw .and. n /= Model%ntclamt .and. &
- n /= Model%ntrw .and. n /= Model%ntsw .and. n /= Model%ntrnc .and. &
- n /= Model%ntsnc .and. n /= Model%ntgl .and. n /= Model%ntgnc .and. &
- n /= Model%nthl .and. n /= Model%nthnc .and. n /= Model%ntgv .and. &
- n /= Model%nthv .and. n /= Model%ntccn .and. n /= Model%ntccna )
- Interstitial%otsptflag(n) = ltest
-
- if ( ltest ) then
- tracers = tracers + 1
- if (Model%ntke == n ) then
- Interstitial%otspt(tracers+1,1) = .false.
- Interstitial%ntk = tracers
- endif
- if (Model%ntlnc == n .or. Model%ntinc == n .or. Model%ntrnc == n .or. Model%ntsnc == n .or. Model%ntgnc == n) &
-! if (ntlnc == n .or. ntinc == n .or. ntrnc == n .or. ntsnc == n .or.&
-! ntrw == n .or. ntsw == n .or. ntgl == n) &
- Interstitial%otspt(tracers+1,1) = .false.
- if (Interstitial%trans_aero .and. Model%ntchs == n) Interstitial%itc = tracers
- endif
- enddo
- Interstitial%tracers_total = tracers - 2
- endif ! end if_ras or cfscnv or samf
- if (.not. Model%satmedmf .and. .not. Model%trans_trac .and. &
- .not. Model%ras .and. .not. Model%do_shoc) then
- Interstitial%nsamftrac = 0
- else
- Interstitial%nsamftrac = Interstitial%tracers_total
- endif
- Interstitial%ncstrac = Interstitial%tracers_total + 3
-
- end subroutine interstitial_setup_tracers
-
- subroutine interstitial_rad_reset (Interstitial, Model)
- !
- implicit none
- !
- class(GFS_interstitial_type) :: Interstitial
- type(GFS_control_type), intent(in) :: Model
- integer :: iGas
- !
- Interstitial%aerodp = clear_val
- Interstitial%alb1d = clear_val
- if (.not. Model%do_RRTMGP) then
- Interstitial%alpha = clear_val
- end if
- Interstitial%cldsa = clear_val
- Interstitial%cldtaulw = clear_val
- Interstitial%cldtausw = clear_val
- Interstitial%clouds = clear_val
- Interstitial%de_lgth = clear_val
- Interstitial%delr = clear_val
- Interstitial%dzlyr = clear_val
- Interstitial%faerlw = clear_val
- Interstitial%faersw = clear_val
- Interstitial%gasvmr = clear_val
- Interstitial%htlwc = clear_val
- Interstitial%htlw0 = clear_val
- Interstitial%htswc = clear_val
- Interstitial%htsw0 = clear_val
- Interstitial%idxday = 0
- Interstitial%kb = 0
- Interstitial%kd = 0
- Interstitial%kt = 0
- Interstitial%mbota = 0
- Interstitial%mtopa = 0
- Interstitial%nday = 0
- Interstitial%olyr = clear_val
- Interstitial%plvl = clear_val
- Interstitial%plyr = clear_val
- Interstitial%qlyr = clear_val
- Interstitial%raddt = clear_val
- Interstitial%sfcalb = clear_val
- Interstitial%tlvl = clear_val
- Interstitial%tlyr = clear_val
- Interstitial%tsfa = clear_val
- Interstitial%tsfg = clear_val
-
- ! Interstitials used by both RRTMG and RRTMGP
- Interstitial%scmpsw%uvbfc = clear_val
- Interstitial%scmpsw%uvbf0 = clear_val
- Interstitial%scmpsw%nirbm = clear_val
- Interstitial%scmpsw%nirdf = clear_val
- Interstitial%scmpsw%visbm = clear_val
- Interstitial%scmpsw%visdf = clear_val
- if (Model%do_RRTMGP) then
- Interstitial%tracer = clear_val
- Interstitial%tv_lay = clear_val
- Interstitial%relhum = clear_val
- Interstitial%qs_lay = clear_val
- Interstitial%q_lay = clear_val
- Interstitial%deltaZ = clear_val
- Interstitial%p_lev = clear_val
- Interstitial%p_lay = clear_val
- Interstitial%t_lev = clear_val
- Interstitial%t_lay = clear_val
- Interstitial%cloud_overlap_param = clear_val
- Interstitial%precip_overlap_param = clear_val
- Interstitial%fluxlwUP_allsky = clear_val
- Interstitial%fluxlwDOWN_allsky = clear_val
- Interstitial%fluxlwUP_clrsky = clear_val
- Interstitial%fluxlwDOWN_clrsky = clear_val
- Interstitial%fluxswUP_allsky = clear_val
- Interstitial%fluxswDOWN_allsky = clear_val
- Interstitial%fluxswUP_clrsky = clear_val
- Interstitial%fluxswDOWN_clrsky = clear_val
- Interstitial%aerosolslw = clear_val
- Interstitial%aerosolssw = clear_val
- Interstitial%cld_frac = clear_val
- Interstitial%cld_lwp = clear_val
- Interstitial%cld_reliq = clear_val
- Interstitial%cld_iwp = clear_val
- Interstitial%cld_reice = clear_val
- Interstitial%cld_swp = clear_val
- Interstitial%cld_resnow = clear_val
- Interstitial%cld_rwp = clear_val
- Interstitial%cld_rerain = clear_val
- Interstitial%precip_frac = clear_val
- Interstitial%sfc_emiss_byband = clear_val
- Interstitial%sec_diff_byband = clear_val
- Interstitial%sfc_alb_nir_dir = clear_val
- Interstitial%sfc_alb_nir_dif = clear_val
- Interstitial%sfc_alb_uvvis_dir = clear_val
- Interstitial%sfc_alb_uvvis_dif = clear_val
- Interstitial%toa_src_sw = clear_val
- Interstitial%toa_src_lw = clear_val
- do iGas=1,Model%nGases
- Interstitial%gas_concentrations%concs(iGas)%conc = clear_val
- end do
- Interstitial%lw_optical_props_clrsky%tau = clear_val
- Interstitial%lw_optical_props_aerosol%tau = clear_val
- Interstitial%lw_optical_props_clouds%tau = clear_val
- Interstitial%lw_optical_props_clouds%ssa = clear_val
- Interstitial%lw_optical_props_clouds%g = clear_val
- Interstitial%lw_optical_props_precip%tau = clear_val
- Interstitial%lw_optical_props_precip%ssa = clear_val
- Interstitial%lw_optical_props_precip%g = clear_val
- Interstitial%lw_optical_props_cloudsByBand%tau = clear_val
- Interstitial%lw_optical_props_cloudsByBand%ssa = clear_val
- Interstitial%lw_optical_props_cloudsByBand%g = clear_val
- Interstitial%lw_optical_props_precipByBand%tau = clear_val
- Interstitial%lw_optical_props_precipByBand%ssa = clear_val
- Interstitial%lw_optical_props_precipByBand%g = clear_val
- Interstitial%sources%sfc_source = clear_val
- Interstitial%sources%lay_source = clear_val
- Interstitial%sources%lev_source_inc = clear_val
- Interstitial%sources%lev_source_dec = clear_val
- Interstitial%sources%sfc_source_Jac = clear_val
- Interstitial%flxprf_lw%upfxc = clear_val
- Interstitial%flxprf_lw%dnfxc = clear_val
- Interstitial%flxprf_lw%upfx0 = clear_val
- Interstitial%flxprf_lw%dnfx0 = clear_val
- Interstitial%flxprf_sw%upfxc = clear_val
- Interstitial%flxprf_sw%dnfxc = clear_val
- Interstitial%flxprf_sw%upfx0 = clear_val
- Interstitial%flxprf_sw%dnfx0 = clear_val
- end if
- !
- end subroutine interstitial_rad_reset
-
- subroutine interstitial_phys_reset (Interstitial, Model)
- !
- implicit none
- !
- class(GFS_interstitial_type) :: Interstitial
- type(GFS_control_type), intent(in) :: Model
- !
- Interstitial%adjsfculw_land = clear_val
- Interstitial%adjsfculw_ice = clear_val
- Interstitial%adjsfculw_water = clear_val
- Interstitial%adjnirbmd = clear_val
- Interstitial%adjnirbmu = clear_val
- Interstitial%adjnirdfd = clear_val
- Interstitial%adjnirdfu = clear_val
- Interstitial%adjvisbmd = clear_val
- Interstitial%adjvisbmu = clear_val
- Interstitial%adjvisdfu = clear_val
- Interstitial%adjvisdfd = clear_val
- Interstitial%bexp1d = clear_val
- Interstitial%cd = clear_val
- Interstitial%cd_ice = Model%huge
- Interstitial%cd_land = Model%huge
- Interstitial%cd_water = Model%huge
- Interstitial%cdq = clear_val
- Interstitial%cdq_ice = Model%huge
- Interstitial%cdq_land = Model%huge
- Interstitial%cdq_water = Model%huge
- Interstitial%chh_ice = Model%huge
- Interstitial%chh_land = Model%huge
- Interstitial%chh_water = Model%huge
- Interstitial%cld1d = clear_val
- Interstitial%cldf = clear_val
- Interstitial%clw = clear_val
- Interstitial%clw(:,:,2) = -999.9
- Interstitial%clx = clear_val
- Interstitial%cmm_ice = Model%huge
- Interstitial%cmm_land = Model%huge
- Interstitial%cmm_water = Model%huge
- Interstitial%cnvc = clear_val
- Interstitial%cnvw = clear_val
- Interstitial%ctei_r = clear_val
- Interstitial%ctei_rml = clear_val
- Interstitial%cumabs = clear_val
- Interstitial%dd_mf = clear_val
- Interstitial%del = clear_val
- Interstitial%del_gz = clear_val
- Interstitial%dlength = clear_val
- Interstitial%dqdt = clear_val
- Interstitial%dqsfc1 = clear_val
- Interstitial%drain = clear_val
- Interstitial%dt_mf = clear_val
- Interstitial%dtdt = clear_val
- Interstitial%dtsfc1 = clear_val
- Interstitial%dtzm = clear_val
- Interstitial%dudt = clear_val
- Interstitial%dusfcg = clear_val
- Interstitial%dusfc1 = clear_val
- Interstitial%dvdftra = clear_val
- Interstitial%dvdt = clear_val
- Interstitial%dvsfcg = clear_val
- Interstitial%dvsfc1 = clear_val
- Interstitial%elvmax = clear_val
- Interstitial%ep1d = clear_val
- Interstitial%ep1d_ice = Model%huge
- Interstitial%ep1d_land = Model%huge
- Interstitial%ep1d_water = Model%huge
- Interstitial%evap_ice = Model%huge
- Interstitial%evap_land = Model%huge
- Interstitial%evap_water = Model%huge
- Interstitial%evbs = clear_val
- Interstitial%evcw = clear_val
- Interstitial%pah = clear_val
- Interstitial%ecan = clear_val
- Interstitial%etran = clear_val
- Interstitial%edir = clear_val
- Interstitial%ffhh_ice = Model%huge
- Interstitial%ffhh_land = Model%huge
- Interstitial%ffhh_water = Model%huge
- Interstitial%fh2 = clear_val
- Interstitial%fh2_ice = Model%huge
- Interstitial%fh2_land = Model%huge
- Interstitial%fh2_water = Model%huge
- Interstitial%flag_cice = .false.
- Interstitial%flag_guess = .false.
- Interstitial%flag_iter = .true.
- Interstitial%ffmm_ice = Model%huge
- Interstitial%ffmm_land = Model%huge
- Interstitial%ffmm_water = Model%huge
- Interstitial%fm10 = clear_val
- Interstitial%fm10_ice = Model%huge
- Interstitial%fm10_land = Model%huge
- Interstitial%fm10_water = Model%huge
- Interstitial%frland = clear_val
- Interstitial%fscav = clear_val
- Interstitial%fswtr = clear_val
- Interstitial%gabsbdlw = clear_val
- Interstitial%gabsbdlw_ice = clear_val
- Interstitial%gabsbdlw_land = clear_val
- Interstitial%gabsbdlw_water = clear_val
- Interstitial%gamma = clear_val
- Interstitial%gamq = clear_val
- Interstitial%gamt = clear_val
- Interstitial%gflx = clear_val
- Interstitial%gflx_ice = clear_val
- Interstitial%gflx_land = clear_val
- Interstitial%gflx_water = clear_val
- Interstitial%gwdcu = clear_val
- Interstitial%gwdcv = clear_val
- Interstitial%zvfun = clear_val
- Interstitial%hffac = clear_val
- Interstitial%hflxq = clear_val
- Interstitial%hflx_ice = Model%huge
- Interstitial%hflx_land = Model%huge
- Interstitial%hflx_water = Model%huge
- Interstitial%dry = .false.
- Interstitial%icy = .false.
- Interstitial%lake = .false.
- Interstitial%use_flake = .false.
- Interstitial%ocean = .false.
- Interstitial%islmsk = 0
- Interstitial%islmsk_cice = 0
- Interstitial%wet = .false.
- Interstitial%kbot = Model%levs
- Interstitial%kcnv = 0
- Interstitial%kinver = Model%levs
- Interstitial%kpbl = 0
- Interstitial%ktop = 1
- Interstitial%oa4 = clear_val
- Interstitial%oc = clear_val
- Interstitial%prcpmp = clear_val
- Interstitial%prnum = clear_val
- Interstitial%qss_ice = Model%huge
- Interstitial%qss_land = Model%huge
- Interstitial%qss_water = Model%huge
- Interstitial%raincd = clear_val
- Interstitial%raincs = clear_val
- Interstitial%rainmcadj = clear_val
- Interstitial%rainp = clear_val
- Interstitial%rb = clear_val
- Interstitial%rb_ice = Model%huge
- Interstitial%rb_land = Model%huge
- Interstitial%rb_water = Model%huge
- Interstitial%rhc = clear_val
- Interstitial%runoff = clear_val
- Interstitial%save_q = clear_val
- Interstitial%save_t = clear_val
- Interstitial%save_tcp = clear_val
- Interstitial%save_u = clear_val
- Interstitial%save_v = clear_val
- Interstitial%sbsno = clear_val
- Interstitial%sigma = clear_val
- Interstitial%sigmaf = clear_val
- Interstitial%sigmafrac = clear_val
- Interstitial%sigmatot = clear_val
- Interstitial%snowc = clear_val
- Interstitial%snohf = clear_val
- Interstitial%snowmt = clear_val
- Interstitial%stress = clear_val
- Interstitial%stress_ice = Model%huge
- Interstitial%stress_land = Model%huge
- Interstitial%stress_water = Model%huge
- Interstitial%theta = clear_val
- Interstitial%tprcp_ice = Model%huge
- Interstitial%tprcp_land = Model%huge
- Interstitial%tprcp_water = Model%huge
- Interstitial%trans = clear_val
- Interstitial%tseal = clear_val
- Interstitial%tsfc_water = Model%huge
- Interstitial%tsurf_ice = Model%huge
- Interstitial%tsurf_land = Model%huge
- Interstitial%tsurf_water = Model%huge
- Interstitial%ud_mf = clear_val
- Interstitial%uustar_ice = Model%huge
- Interstitial%uustar_land = Model%huge
- Interstitial%uustar_water = Model%huge
- Interstitial%vdftra = clear_val
- Interstitial%vegf1d = clear_val
- Interstitial%lndp_vgf = clear_val
- Interstitial%wcbmax = clear_val
- Interstitial%wind = Model%huge
- Interstitial%work1 = clear_val
- Interstitial%work2 = clear_val
- Interstitial%work3 = clear_val
- Interstitial%xcosz = clear_val
- Interstitial%xlai1d = clear_val
- Interstitial%xmu = clear_val
- Interstitial%z01d = clear_val
- Interstitial%zt1d = clear_val
- Interstitial%ztmax_ice = clear_val
- Interstitial%ztmax_land = clear_val
- Interstitial%ztmax_water = clear_val
-
-! UGWP common
- Interstitial%tau_mtb = clear_val
- Interstitial%tau_ogw = clear_val
- Interstitial%tau_tofd = clear_val
- Interstitial%tau_ngw = clear_val
- Interstitial%tau_oss = clear_val
- Interstitial%dudt_mtb = clear_val
- Interstitial%dudt_tms = clear_val
- Interstitial%zmtb = clear_val
- Interstitial%zlwb = clear_val
- Interstitial%zogw = clear_val
- Interstitial%zngw = clear_val
-
-! CIRES UGWP v1
- if (Model%do_ugwp_v1) then
- Interstitial%dudt_ngw = clear_val
- Interstitial%dvdt_ngw = clear_val
- Interstitial%dtdt_ngw = clear_val
- Interstitial%kdis_ngw = clear_val
- end if
-
-!-- GSL drag suite
- if (Model%gwd_opt==3 .or. Model%gwd_opt==33 .or. &
- Model%gwd_opt==2 .or. Model%gwd_opt==22) then
- Interstitial%varss = clear_val
- Interstitial%ocss = clear_val
- Interstitial%oa4ss = clear_val
- Interstitial%clxss = clear_val
- end if
-!
- ! Reset fields that are conditional on physics choices
- if (Model%imp_physics == Model%imp_physics_gfdl .or. Model%imp_physics == Model%imp_physics_thompson &
- .or. Model%imp_physics == Model%imp_physics_nssl &
- ) then
- Interstitial%graupelmp = clear_val
- Interstitial%icemp = clear_val
- Interstitial%rainmp = clear_val
- Interstitial%snowmp = clear_val
- else if (Model%imp_physics == Model%imp_physics_mg) then
- Interstitial%ncgl = clear_val
- Interstitial%ncpr = clear_val
- Interstitial%ncps = clear_val
- Interstitial%qgl = clear_val
- Interstitial%qrn = clear_val
- Interstitial%qsnw = clear_val
- Interstitial%qlcn = clear_val
- Interstitial%qicn = clear_val
- Interstitial%w_upi = clear_val
- Interstitial%cf_upi = clear_val
- Interstitial%cnv_mfd = clear_val
- Interstitial%cnv_dqldt = clear_val
- Interstitial%clcn = clear_val
- Interstitial%cnv_fice = clear_val
- Interstitial%cnv_ndrop = clear_val
- Interstitial%cnv_nice = clear_val
- end if
- if (Model%do_shoc) then
- Interstitial%qrn = clear_val
- Interstitial%qsnw = clear_val
- ! DH* updated version of shoc from May 22 2019 doesn't use qgl? remove?
- Interstitial%qgl = clear_val
- ! *DH
- Interstitial%ncpi = clear_val
- Interstitial%ncpl = clear_val
- end if
- if (Model%lsm == Model%lsm_noahmp) then
- Interstitial%t2mmp = clear_val
- Interstitial%q2mp = clear_val
- end if
- !
- ! Set flag for resetting maximum hourly output fields
- Interstitial%max_hourly_reset = mod(Model%kdt-1, nint(Model%avg_max_length/Model%dtp)) == 0
- ! Use same logic in UFS to reset Thompson extended diagnostics
- Interstitial%ext_diag_thompson_reset = Interstitial%max_hourly_reset
- !
- ! Set flag for resetting radar reflectivity calculation
- if (Model%nsradar_reset<0) then
- Interstitial%radar_reset = .true.
- else
- Interstitial%radar_reset = mod(Model%kdt-1, nint(Model%nsradar_reset/Model%dtp)) == 0
- end if
- !
- end subroutine interstitial_phys_reset
-
end module GFS_typedefs
diff --git a/scm/src/GFS_typedefs.meta b/scm/src/GFS_typedefs.meta
index 5298c998e..dfeb6b96d 100644
--- a/scm/src/GFS_typedefs.meta
+++ b/scm/src/GFS_typedefs.meta
@@ -969,6 +969,13 @@
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
+[rca]
+ standard_name = aerodynamic_resistance_in_canopy
+ long_name = canopy resistance
+ units = s m-1
+ dimensions = (horizontal_loop_extent)
+ type = real
+ kind = kind_phys
[tprcp]
standard_name = nonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep
long_name = total precipitation amount in each time step
@@ -1392,7 +1399,7 @@
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
- active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme .or. (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme .and. flag_for_reading_leaf_area_index_from_input))
+ active = (control_for_land_surface_scheme == identifier_for_noah_land_surface_scheme .or. control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme .or. (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme .and. flag_for_reading_leaf_area_index_from_input))
[xsaixy]
standard_name = stem_area_index
long_name = stem area index
@@ -2091,7 +2098,7 @@
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
- active = (flag_for_surface_flux_coupling)
+ active = (flag_for_surface_flux_coupling .or. flag_for_air_quality_coupling)
[dqsfci_cpl]
standard_name = surface_upward_latent_heat_flux_for_coupling
long_name = instantaneous sfc latent heat flux
@@ -2099,7 +2106,7 @@
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
- active = (flag_for_surface_flux_coupling)
+ active = (flag_for_surface_flux_coupling .or. flag_for_air_quality_coupling)
[dlwsfci_cpl]
standard_name = surface_downwelling_longwave_flux_for_coupling
long_name = instantaneous sfc downward lw flux
@@ -2163,7 +2170,7 @@
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
- active = (flag_for_surface_flux_coupling)
+ active = (flag_for_surface_flux_coupling .or. flag_for_air_quality_coupling)
[nnirbmi_cpl]
standard_name = surface_net_downwelling_direct_nir_shortwave_flux_for_coupling
long_name = instantaneous net nir beam sfc downward sw flux
@@ -2203,7 +2210,7 @@
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
- active = (flag_for_surface_flux_coupling)
+ active = (flag_for_surface_flux_coupling .or. flag_for_air_quality_coupling)
[q2mi_cpl]
standard_name = specific_humidity_at_2m_for_coupling
long_name = instantaneous Q2m
@@ -2211,7 +2218,7 @@
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
- active = (flag_for_surface_flux_coupling)
+ active = (flag_for_surface_flux_coupling .or. flag_for_air_quality_coupling)
[u10mi_cpl]
standard_name = x_wind_at_10m_for_coupling
long_name = instantaneous U10m
@@ -2243,7 +2250,7 @@
dimensions = (horizontal_loop_extent)
type = real
kind = kind_phys
- active = (flag_for_surface_flux_coupling)
+ active = (flag_for_surface_flux_coupling .or. flag_for_air_quality_coupling)
[ulwsfcin_cpl]
standard_name = surface_upwelling_longwave_flux_from_coupled_process
long_name = surface upwelling LW flux for coupling
@@ -2563,6 +2570,7 @@
dimensions = (number_of_lines_in_internal_namelist)
type = character
kind = len=256
+ active = (number_of_lines_in_internal_namelist > 0)
[logunit]
standard_name = iounit_of_log
long_name = fortran unit number for logfile
@@ -2761,6 +2769,12 @@
units = flag
dimensions = ()
type = logical
+[cplaqm]
+ standard_name = flag_for_air_quality_coupling
+ long_name = flag controlling cplaqm collection (default off)
+ units = flag
+ dimensions = ()
+ type = logical
[cplchm]
standard_name = flag_for_chemistry_coupling
long_name = flag controlling cplchm collection (default off)
@@ -3147,6 +3161,24 @@
units = flag
dimensions = ()
type = logical
+[doGP_sgs_cnv]
+ standard_name = flag_to_include_sgs_convective_cloud_in_RRTMGP
+ long_name = logical flag to control sgs convective cloud in RRTMGP
+ units = flag
+ dimensions = ()
+ type = logical
+[doGP_sgs_mynn]
+ standard_name = flag_to_include_sgs_MYNN_EDMF_cloud_in_RRTMGP
+ long_name = logical flag to control MYNN-EDMF PBL cloud in RRTMGP
+ units = flag
+ dimensions = ()
+ type = logical
+[iovr_convcld]
+ standard_name = flag_for_convective_cloud_overlap_method_for_radiation
+ long_name = flag for convective cloud overlap method
+ units = flag
+ dimensions = ()
+ type = integer
[rrtmgp_nrghice]
standard_name = number_of_ice_roughness_categories
long_name = number of ice-roughness categories in RRTMGP calculation (Model%rrtmgp_nrghice)
@@ -3925,24 +3957,6 @@
units = index
dimensions = ()
type = integer
-[isurban]
- standard_name = index_of_urban_vegetation_category
- long_name = index of the urban vegetation category in the chosen vegetation dataset
- units = index
- dimensions = ()
- type = integer
-[isice]
- standard_name = index_of_ice_vegetation_category
- long_name = index of the permanent snow/ice category in the chosen vegetation dataset
- units = index
- dimensions = ()
- type = integer
-[iswater]
- standard_name = index_of_water_vegetation_category
- long_name = index of the water body vegetation category in the chosen vegetation dataset
- units = index
- dimensions = ()
- type = integer
[iopt_thcnd]
standard_name = control_for_land_surface_scheme_thermal_conductivity_option
long_name = choice for thermal conductivity option (see module_sf_noahlsm)
@@ -4034,6 +4048,12 @@
units = index
dimensions = ()
type = integer
+[iopt_trs]
+ standard_name = control_for_land_surface_scheme_surface_thermal_roughness
+ long_name = choice for surface thermal roughness option (see noahmp module for definition)
+ units = index
+ dimensions = ()
+ type = integer
[use_ufo]
standard_name = flag_for_gcycle_surface_option
long_name = flag for gcycle surface option
@@ -4845,19 +4865,29 @@
dimensions = ()
type = integer
[spp_prt_list]
- standard_name =magnitude_of_spp_perturbations
+ standard_name = magnitude_of_spp_perturbations
long_name = magnitude of spp perturbations
units = 1
- dimensions = (number_of_spp_schemes_perturbed)
+ dimensions = (number_of_perturbed_spp_schemes)
+ type = real
+ kind = kind_phys
+ active = (do_stochastically_perturbed_parameterizations)
+[spp_stddev_cutoff]
+ standard_name = magnitude_of_spp_standard_deviation_cutoff
+ long_name = magnitude of spp standard deviation cutoff
+ units = 1
+ dimensions = (number_of_perturbed_spp_schemes)
type = real
kind = kind_phys
+ active = (do_stochastically_perturbed_parameterizations)
[spp_var_list]
standard_name = perturbed_spp_schemes
long_name = perturbed spp schemes
units = none
- dimensions = (number_of_spp_schemes_perturbed)
+ dimensions = (number_of_perturbed_spp_schemes)
type = character
kind = len=3
+ active = (do_stochastically_perturbed_parameterizations)
[spp_pbl]
standard_name = control_for_pbl_spp_perturbations
long_name = control for pbl spp perturbations
@@ -7913,2913 +7943,11 @@
########################################################################
[ccpp-table-properties]
- name = GFS_interstitial_type
- type = ddt
- dependencies =
-
-[ccpp-arg-table]
- name = GFS_interstitial_type
- type = ddt
-[adjsfculw_water]
- standard_name = surface_upwelling_longwave_flux_over_water
- long_name = surface upwelling longwave flux at current time over water
- units = W m-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[adjsfculw_land]
- standard_name = surface_upwelling_longwave_flux_over_land
- long_name = surface upwelling longwave flux at current time over land
- units = W m-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[adjsfculw_ice]
- standard_name = surface_upwelling_longwave_flux_over_ice
- long_name = surface upwelling longwave flux at current time over ice
- units = W m-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[adjnirbmd]
- standard_name = surface_downwelling_direct_near_infrared_shortwave_flux
- long_name = surface downwelling beam near-infrared shortwave flux at current time
- units = W m-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[adjnirbmu]
- standard_name = surface_upwelling_direct_near_infrared_shortwave_flux
- long_name = surface upwelling beam near-infrared shortwave flux at current time
- units = W m-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[adjnirdfd]
- standard_name = surface_downwelling_diffuse_near_infrared_shortwave_flux
- long_name = surface downwelling diffuse near-infrared shortwave flux at current time
- units = W m-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[adjnirdfu]
- standard_name = surface_upwelling_diffuse_near_infrared_shortwave_flux
- long_name = surface upwelling diffuse near-infrared shortwave flux at current time
- units = W m-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[adjvisbmd]
- standard_name = surface_downwelling_direct_ultraviolet_and_visible_shortwave_flux
- long_name = surface downwelling beam ultraviolet plus visible shortwave flux at current time
- units = W m-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[adjvisbmu]
- standard_name = surface_upwelling_direct_ultraviolet_and_visible_shortwave_flux
- long_name = surface upwelling beam ultraviolet plus visible shortwave flux at current time
- units = W m-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[adjvisdfu]
- standard_name = surface_upwelling_diffuse_ultraviolet_and_visible_shortwave_flux
- long_name = surface upwelling diffuse ultraviolet plus visible shortwave flux at current time
- units = W m-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[adjvisdfd]
- standard_name = surface_downwelling_diffuse_ultraviolet_and_visible_shortwave_flux
- long_name = surface downwelling diffuse ultraviolet plus visible shortwave flux at current time
- units = W m-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[aerodp]
- standard_name = atmosphere_optical_thickness_due_to_ambient_aerosol_particles
- long_name = vertical integrated optical depth for various aerosol species
- units = none
- dimensions = (horizontal_loop_extent,number_of_species_for_aerosol_optical_depth)
- type = real
- kind = kind_phys
-[alb1d]
- standard_name = surface_albedo_perturbation
- long_name = surface albedo perturbation
- units = frac
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[alpha]
- standard_name = cloud_overlap_decorrelation_parameter
- long_name = cloud overlap decorrelation parameter for RRTMG (but not for RRTMGP)
- units = frac
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
- type = real
- kind = kind_phys
-[bexp1d]
- standard_name = perturbation_of_soil_type_b_parameter
- long_name = perturbation of soil type "b" parameter
- units = frac
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[cd]
- standard_name = surface_drag_coefficient_for_momentum_in_air
- long_name = surface exchange coeff for momentum
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[cd_water]
- standard_name = surface_drag_coefficient_for_momentum_in_air_over_water
- long_name = surface exchange coeff for momentum over water
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[cd_land]
- standard_name = surface_drag_coefficient_for_momentum_in_air_over_land
- long_name = surface exchange coeff for momentum over land
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[cd_ice]
- standard_name = surface_drag_coefficient_for_momentum_in_air_over_ice
- long_name = surface exchange coeff for momentum over ice
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[cdq]
- standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air
- long_name = surface exchange coeff heat & moisture
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[cdq_water]
- standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_water
- long_name = surface exchange coeff heat surface exchange coeff heat & moisture over ocean moisture over water
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[cdq_land]
- standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_land
- long_name = surface exchange coeff heat & moisture over land
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[cdq_ice]
- standard_name = surface_drag_coefficient_for_heat_and_moisture_in_air_over_ice
- long_name = surface exchange coeff heat & moisture over ice
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[chh_water]
- standard_name = surface_drag_mass_flux_for_heat_and_moisture_in_air_over_water
- long_name = thermal exchange coefficient over water
- units = kg m-2 s-1
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[chh_land]
- standard_name = surface_drag_mass_flux_for_heat_and_moisture_in_air_over_land
- long_name = thermal exchange coefficient over land
- units = kg m-2 s-1
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[chh_ice]
- standard_name = surface_drag_mass_flux_for_heat_and_moisture_in_air_over_ice
- long_name = thermal exchange coefficient over ice
- units = kg m-2 s-1
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[cf_upi]
- standard_name = convective_cloud_fraction_for_microphysics
- long_name = convective cloud fraction for microphysics
- units = frac
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme)
-[clcn]
- standard_name = convective_cloud_volume_fraction
- long_name = convective cloud volume fraction
- units = frac
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme)
-[cldf]
- standard_name = cloud_area_fraction
- long_name = fraction of grid box area in which updrafts occur
- units = frac
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[cldsa]
- standard_name = cloud_area_fraction_for_radiation
- long_name = fraction of clouds for low, middle, high, total and BL
- units = frac
- dimensions = (horizontal_loop_extent,5)
- type = real
- kind = kind_phys
-[cldtaulw]
- standard_name = cloud_optical_depth_layers_at_10mu_band
- long_name = approx 10mu band layer cloud optical depth
- units = none
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
- type = real
- kind = kind_phys
-[cldtausw]
- standard_name = cloud_optical_depth_layers_at_0p55mu_band
- long_name = approx .55mu band layer cloud optical depth
- units = none
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
- type = real
- kind = kind_phys
-[cld1d]
- standard_name = cloud_work_function
- long_name = cloud work function
- units = m2 s-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[clouds(:,:,1)]
- standard_name = total_cloud_fraction
- long_name = layer total cloud fraction
- units = frac
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
- type = real
- kind = kind_phys
-[clouds(:,:,2)]
- standard_name = cloud_liquid_water_path
- long_name = layer cloud liquid water path
- units = g m-2
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
- type = real
- kind = kind_phys
-[clouds(:,:,3)]
- standard_name = mean_effective_radius_for_liquid_cloud
- long_name = mean effective radius for liquid cloud
- units = um
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
- type = real
- kind = kind_phys
-[clouds(:,:,4)]
- standard_name = cloud_ice_water_path
- long_name = layer cloud ice water path
- units = g m-2
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
- type = real
- kind = kind_phys
-[clouds(:,:,5)]
- standard_name = mean_effective_radius_for_ice_cloud
- long_name = mean effective radius for ice cloud
- units = um
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
- type = real
- kind = kind_phys
-[clouds(:,:,6)]
- standard_name = cloud_rain_water_path
- long_name = cloud rain water path
- units = g m-2
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
- type = real
- kind = kind_phys
-[clouds(:,:,7)]
- standard_name = mean_effective_radius_for_rain_drop
- long_name = mean effective radius for rain drop
- units = um
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
- type = real
- kind = kind_phys
-[clouds(:,:,8)]
- standard_name = cloud_snow_water_path
- long_name = cloud snow water path
- units = g m-2
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
- type = real
- kind = kind_phys
-[clouds(:,:,9)]
- standard_name = mean_effective_radius_for_snow_flake
- long_name = mean effective radius for snow flake
- units = um
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
- type = real
- kind = kind_phys
-[clw]
- standard_name = convective_transportable_tracers
- long_name = array to contain cloud water and other convective trans. tracers
- units = kg kg-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_tracers_for_convective_transport)
- type = real
- kind = kind_phys
-[clw(:,:,1)]
- standard_name = ice_water_mixing_ratio_convective_transport_tracer
- long_name = ratio of mass of ice water to mass of dry air plus vapor (without condensates) in the convectively transported tracer array
- units = kg kg-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[clw(:,:,2)]
- standard_name = cloud_condensed_water_mixing_ratio_convective_transport_tracer
- long_name = ratio of mass of cloud water to mass of dry air plus vapor (without condensates) in the convectively transported tracer array
- units = kg kg-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[clw(:,:,index_for_turbulent_kinetic_energy_convective_transport_tracer)]
- standard_name = turbulent_kinetic_energy_convective_transport_tracer
- long_name = turbulent kinetic energy in the convectively transported tracer array
- units = m2 s-2
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[clx]
- standard_name = fraction_of_grid_box_with_subgrid_orography_higher_than_critical_height
- long_name = frac. of grid box with by subgrid height_above_mean_sea_level higher than critical height
- units = frac
- dimensions = (horizontal_loop_extent,4)
- type = real
- kind = kind_phys
-[clxss]
- standard_name = fraction_of_grid_box_with_subgrid_orography_higher_than_critical_height_small_scale
- long_name = frac. of grid box with by subgrid height_above_mean_sea_level higher than critical height small scale
- units = frac
- dimensions = (horizontal_loop_extent,4)
- type = real
- kind = kind_phys
- active = (control_for_drag_suite_gravity_wave_drag == 3 .or. control_for_drag_suite_gravity_wave_drag == 33)
-[cmm_water]
- standard_name = surface_drag_wind_speed_for_momentum_in_air_over_water
- long_name = momentum exchange coefficient over water
- units = m s-1
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[cmm_land]
- standard_name = surface_drag_wind_speed_for_momentum_in_air_over_land
- long_name = momentum exchange coefficient over land
- units = m s-1
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[cmm_ice]
- standard_name = surface_drag_wind_speed_for_momentum_in_air_over_ice
- long_name = momentum exchange coefficient over ice
- units = m s-1
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[cnv_dqldt]
- standard_name = tendency_of_cloud_water_due_to_convective_microphysics
- long_name = tendency of cloud water due to convective microphysics
- units = kg m-2 s-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme)
-[cnv_fice]
- standard_name = ice_fraction_in_convective_tower
- long_name = ice fraction in convective tower
- units = frac
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme)
-[cnv_mfd]
- standard_name = detrained_mass_flux
- long_name = detrained mass flux
- units = kg m-2 s-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme)
-[cnv_ndrop]
- standard_name = number_concentration_of_cloud_liquid_water_particles_for_detrainment
- long_name = droplet number concentration in convective detrainment
- units = m-3
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme)
-[cnv_nice]
- standard_name = number_concentration_of_ice_crystals_for_detrainment
- long_name = crystal number concentration in convective detrainment
- units = m-3
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme)
-[cnvc]
- standard_name = convective_cloud_cover
- long_name = convective cloud cover
- units = frac
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[cnvw]
- standard_name = convective_cloud_water_mixing_ratio
- long_name = moist convective cloud water mixing ratio
- units = kg kg-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[ctei_r]
- standard_name = cloud_top_entrainment_instability_value
- long_name = cloud top entrainment instability value
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[ctei_rml]
- standard_name = grid_sensitive_critical_cloud_top_entrainment_instability_criteria
- long_name = grid sensitive critical cloud top entrainment instability criteria
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[cumabs]
- standard_name = maximum_column_heating_rate
- long_name = maximum heating rate in column
- units = K s-1
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[dd_mf]
- standard_name = instantaneous_atmosphere_downdraft_convective_mass_flux
- long_name = (downdraft mass flux) * delt
- units = kg m-2
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[de_lgth]
- standard_name = cloud_decorrelation_length
- long_name = cloud decorrelation length
- units = km
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[del]
- standard_name = air_pressure_difference_between_midlayers
- long_name = air pressure difference between midlayers
- units = Pa
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[del_gz]
- standard_name = geopotential_difference_between_midlayers_divided_by_midlayer_virtual_temperature
- long_name = difference between mid-layer geopotentials divided by mid-layer virtual temperature
- units = m2 s-2 K-1
- dimensions = (horizontal_loop_extent,vertical_interface_dimension)
- type = real
- kind = kind_phys
-[delr]
- standard_name = layer_pressure_thickness_for_radiation
- long_name = layer pressure thickness on radiation levels
- units = hPa
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
- type = real
- kind = kind_phys
-[dlength]
- standard_name = characteristic_grid_length_scale
- long_name = representative horizontal length scale of grid box
- units = m
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[dqdt]
- standard_name = process_split_cumulative_tendency_of_tracers
- long_name = updated tendency of the tracers due to model physics
- units = kg kg-1 s-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_tracers)
- type = real
- kind = kind_phys
-[dqdt(:,:,index_of_specific_humidity_in_tracer_concentration_array)]
- standard_name = process_split_cumulative_tendency_of_specific_humidity
- long_name = water vapor specific humidity tendency due to model physics
- units = kg kg-1 s-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[dqdt(:,:,index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array)]
- standard_name = process_split_cumulative_tendency_of_cloud_liquid_water_mixing_ratio
- long_name = cloud condensed water mixing ratio tendency due to model physics
- units = kg kg-1 s-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[dqdt(:,:,index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array)]
- standard_name = process_split_cumulative_tendency_of_cloud_ice_mixing_ratio
- long_name = cloud condensed water mixing ratio tendency due to model physics
- units = kg kg-1 s-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[dqdt(:,:,index_of_ozone_mixing_ratio_in_tracer_concentration_array)]
- standard_name = process_split_cumulative_tendency_of_ozone_mixing_ratio
- long_name = ozone mixing ratio tendency due to model physics
- units = kg kg-1 s-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[dqdt(:,:,index_of_mass_number_concentration_of_cloud_droplets_in_tracer_concentration_array)]
- standard_name = process_split_cumulative_tendency_of_mass_number_concentration_of_cloud_liquid_water_particles_in_air
- long_name = number concentration of cloud droplets (liquid) tendency due to model physics
- units = kg-1 s-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (index_of_mass_number_concentration_of_cloud_droplets_in_tracer_concentration_array > 0)
-[dqdt(:,:,index_of_mass_number_concentration_of_cloud_ice_in_tracer_concentration_array)]
- standard_name = process_split_cumulative_tendency_of_mass_number_concentration_of_cloud_ice_water_crystals_in_air
- long_name = number concentration of ice tendency due to model physics
- units = kg-1 s-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[dqdt(:,:,index_of_mass_number_concentration_of_hygroscopic_aerosols_in_tracer_concentration_array)]
- standard_name = process_split_cumulative_tendency_of_mass_number_concentration_of_hygroscopic_aerosols
- long_name = number concentration of water-friendly aerosols tendency due to model physics
- units = kg-1 s-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (index_of_mass_number_concentration_of_hygroscopic_aerosols_in_tracer_concentration_array > 0)
-[dqdt(:,:,index_of_mass_number_concentration_of_nonhygroscopic_ice_nucleating_aerosols_in_tracer_concentration_array)]
- standard_name = process_split_cumulative_tendency_of_mass_number_concentration_of_nonhygroscopic_ice_nucleating_aerosols
- long_name = number concentration of ice-friendly aerosols tendency due to model physics
- units = kg-1 s-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (index_of_mass_number_concentration_of_nonhygroscopic_ice_nucleating_aerosols_in_tracer_concentration_array > 0)
-[dqdt(:,:,index_of_cloud_condensation_nuclei_number_concentration_in_tracer_concentration_array)]
- standard_name = tendency_of_cloud_condensation_nuclei_number_concentration_due_to_model_physics
- long_name = number concentration of cloud condensation nuclei tendency due to model physics
- units = kg-1 s-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = ( index_of_cloud_condensation_nuclei_number_concentration_in_tracer_concentration_array > 0 )
-[dqdt(:,:,index_of_rain_mixing_ratio_in_tracer_concentration_array)]
- standard_name = process_split_cumulative_tendency_of_rain_mixing_ratio
- long_name = ratio of mass of rain water tendency to mass of dry air plus vapor (without condensates) due to model physics
- units = kg kg-1 s-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[dqdt(:,:,index_of_snow_mixing_ratio_in_tracer_concentration_array)]
- standard_name = process_split_cumulative_tendency_of_snow_mixing_ratio
- long_name = ratio of mass of snow water tendency to mass of dry air plus vapor (without condensates) due to model physics
- units = kg kg-1 s-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[dqdt(:,:,index_of_graupel_mixing_ratio_in_tracer_concentration_array)]
- standard_name = process_split_cumulative_tendency_of_graupel_mixing_ratio
- long_name = ratio of mass of graupel tendency to mass of dry air plus vapor (without condensates) due to model physics
- units = kg kg-1 s-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[dqdt(:,:,index_of_turbulent_kinetic_energy_in_tracer_concentration_array)]
- standard_name = process_split_cumulative_tendency_of_turbulent_kinetic_energy
- long_name = turbulent kinetic energy tendency due to model physics
- units = J s-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[dqsfc1]
- standard_name = instantaneous_surface_upward_latent_heat_flux
- long_name = surface upward latent heat flux
- units = W m-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[drain]
- standard_name = subsurface_runoff_flux
- long_name = subsurface runoff flux
- units = kg m-2 s-1
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[dtdt]
- standard_name = process_split_cumulative_tendency_of_air_temperature
- long_name = air temperature tendency due to model physics
- units = K s-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[dtsfc1]
- standard_name = instantaneous_surface_upward_sensible_heat_flux
- long_name = surface upward sensible heat flux
- units = W m-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[dtzm]
- standard_name = mean_change_over_depth_in_sea_water_temperature
- long_name = mean of dT(z) (zsea1 to zsea2)
- units = K
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[dt_mf]
- standard_name = instantaneous_atmosphere_detrainment_convective_mass_flux
- long_name = (detrainment mass flux) * delt
- units = kg m-2
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[dudt]
- standard_name = process_split_cumulative_tendency_of_x_wind
- long_name = zonal wind tendency due to model physics
- units = m s-2
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[dusfcg]
- standard_name = instantaneous_x_stress_due_to_gravity_wave_drag
- long_name = zonal surface stress due to orographic gravity wave drag
- units = Pa
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[dusfc1]
- standard_name = instantaneous_surface_x_momentum_flux
- long_name = x momentum flux
- units = Pa
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[dvdftra]
- standard_name = tendency_of_vertically_diffused_tracer_concentration
- long_name = updated tendency of the tracers due to vertical diffusion in PBL scheme
- units = kg kg-1 s-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_vertical_diffusion_tracers)
- type = real
- kind = kind_phys
-[dvdt]
- standard_name = process_split_cumulative_tendency_of_y_wind
- long_name = meridional wind tendency due to model physics
- units = m s-2
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[dvsfcg]
- standard_name = instantaneous_y_stress_due_to_gravity_wave_drag
- long_name = meridional surface stress due to orographic gravity wave drag
- units = Pa
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[dvsfc1]
- standard_name = instantaneous_surface_y_momentum_flux
- long_name = y momentum flux
- units = Pa
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[dzlyr]
- standard_name = layer_thickness_for_radiation
- long_name = layer thickness on radiation levels
- units = km
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
- type = real
- kind = kind_phys
-[elvmax]
- standard_name = maximum_subgrid_orography
- long_name = maximum of subgrid height_above_mean_sea_level
- units = m
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[ep1d]
- standard_name = surface_upward_potential_latent_heat_flux
- long_name = surface upward potential latent heat flux
- units = W m-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[ep1d_water]
- standard_name = surface_upward_potential_latent_heat_flux_over_water
- long_name = surface upward potential latent heat flux over water
- units = W m-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[ep1d_land]
- standard_name = surface_upward_potential_latent_heat_flux_over_land
- long_name = surface upward potential latent heat flux over land
- units = W m-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[ep1d_ice]
- standard_name = surface_upward_potential_latent_heat_flux_over_ice
- long_name = surface upward potential latent heat flux over ice
- units = W m-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[evap_water]
- standard_name = kinematic_surface_upward_latent_heat_flux_over_water
- long_name = kinematic surface upward latent heat flux over water
- units = kg kg-1 m s-1
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[evap_land]
- standard_name = kinematic_surface_upward_latent_heat_flux_over_land
- long_name = kinematic surface upward latent heat flux over land
- units = kg kg-1 m s-1
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[evap_ice]
- standard_name = kinematic_surface_upward_latent_heat_flux_over_ice
- long_name = kinematic surface upward latent heat flux over ice
- units = kg kg-1 m s-1
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[evbs]
- standard_name = soil_upward_latent_heat_flux
- long_name = soil upward latent heat flux
- units = W m-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[evcw]
- standard_name = canopy_upward_latent_heat_flux
- long_name = canopy upward latent heat flux
- units = W m-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[pah]
- standard_name = total_precipitation_advected_heat
- long_name = precipitation advected heat - total
- units = W m-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[ecan]
- standard_name = evaporation_of_intercepted_water
- long_name = evaporation of intercepted water
- units = kg m-2 s-1
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[etran]
- standard_name = transpiration_rate
- long_name = transpiration rate
- units = kg m-2 s-1
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[edir]
- standard_name = soil_surface_evaporation_rate
- long_name = soil surface evaporation rate
- units = kg m-2 s-1
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[faerlw]
- standard_name = aerosol_optical_properties_for_longwave_bands_01_16
- long_name = aerosol optical properties for longwave bands 01-16
- units = mixed
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_longwave_radiation,number_of_aerosol_output_fields_for_longwave_radiation)
- type = real
- kind = kind_phys
-[faerlw(:,:,:,1)]
- standard_name = aerosol_optical_depth_for_longwave_bands_01_16
- long_name = aerosol optical depth for longwave bands 01-16
- units = none
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_longwave_radiation)
- type = real
- kind = kind_phys
-[faerlw(:,:,:,2)]
- standard_name = aerosol_single_scattering_albedo_for_longwave_bands_01_16
- long_name = aerosol single scattering albedo for longwave bands 01-16
- units = frac
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_longwave_radiation)
- type = real
- kind = kind_phys
-[faerlw(:,:,:,3)]
- standard_name = aerosol_asymmetry_parameter_for_longwave_bands_01_16
- long_name = aerosol asymmetry parameter for longwave bands 01-16
- units = none
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_longwave_radiation)
- type = real
- kind = kind_phys
-[faersw]
- standard_name = aerosol_optical_properties_for_shortwave_bands_01_16
- long_name = aerosol optical properties for shortwave bands 01-16
- units = mixed
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_shortwave_radiation,number_of_aerosol_output_fields_for_shortwave_radiation)
- type = real
- kind = kind_phys
-[faersw(:,:,:,1)]
- standard_name = aerosol_optical_depth_for_shortwave_bands_01_16
- long_name = aerosol optical depth for shortwave bands 01-16
- units = none
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_shortwave_radiation)
- type = real
- kind = kind_phys
-[faersw(:,:,:,2)]
- standard_name = aerosol_single_scattering_albedo_for_shortwave_bands_01_16
- long_name = aerosol single scattering albedo for shortwave bands 01-16
- units = frac
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_shortwave_radiation)
- type = real
- kind = kind_phys
-[faersw(:,:,:,3)]
- standard_name = aerosol_asymmetry_parameter_for_shortwave_bands_01_16
- long_name = aerosol asymmetry parameter for shortwave bands 01-16
- units = none
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_shortwave_radiation)
- type = real
- kind = kind_phys
-[ffhh_water]
- standard_name = Monin_Obukhov_similarity_function_for_heat_over_water
- long_name = Monin-Obukhov similarity function for heat over water
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[ffhh_land]
- standard_name = Monin_Obukhov_similarity_function_for_heat_over_land
- long_name = Monin-Obukhov similarity function for heat over land
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[ffhh_ice]
- standard_name = Monin_Obukhov_similarity_function_for_heat_over_ice
- long_name = Monin-Obukhov similarity function for heat over ice
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[fh2]
- standard_name = Monin_Obukhov_similarity_function_for_heat_at_2m
- long_name = Monin-Obukhov similarity parameter for heat at 2m
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[fh2_water]
- standard_name = Monin_Obukhov_similarity_function_for_heat_at_2m_over_water
- long_name = Monin-Obukhov similarity parameter for heat at 2m over water
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[fh2_land]
- standard_name = Monin_Obukhov_similarity_function_for_heat_at_2m_over_land
- long_name = Monin-Obukhov similarity parameter for heat at 2m over land
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[fh2_ice]
- standard_name = Monin_Obukhov_similarity_function_for_heat_at_2m_over_ice
- long_name = Monin-Obukhov similarity parameter for heat at 2m over ice
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[flag_cice]
- standard_name = flag_for_cice
- long_name = flag for cice
- units = flag
- dimensions = (horizontal_loop_extent)
- type = logical
-[flag_guess]
- standard_name = flag_for_guess_run
- long_name = flag for guess run
- units = flag
- dimensions = (horizontal_loop_extent)
- type = logical
-[flag_iter]
- standard_name = flag_for_iteration
- long_name = flag for iteration
- units = flag
- dimensions = (horizontal_loop_extent)
- type = logical
-[ffmm_water]
- standard_name = Monin_Obukhov_similarity_function_for_momentum_over_water
- long_name = Monin-Obukhov similarity function for momentum over water
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[ffmm_land]
- standard_name = Monin_Obukhov_similarity_function_for_momentum_over_land
- long_name = Monin-Obukhov similarity function for momentum over land
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[ffmm_ice]
- standard_name = Monin_Obukhov_similarity_function_for_momentum_over_ice
- long_name = Monin-Obukhov similarity function for momentum over ice
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[fm10]
- standard_name = Monin_Obukhov_similarity_function_for_momentum_at_10m
- long_name = Monin-Obukhov similarity parameter for momentum at 10m
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[fm10_water]
- standard_name = Monin_Obukhov_similarity_function_for_momentum_at_10m_over_water
- long_name = Monin-Obukhov similarity parameter for momentum at 10m over water
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[fm10_land]
- standard_name = Monin_Obukhov_similarity_function_for_momentum_at_10m_over_land
- long_name = Monin-Obukhov similarity parameter for momentum at 10m over land
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[fm10_ice]
- standard_name = Monin_Obukhov_similarity_function_for_momentum_at_10m_over_ice
- long_name = Monin-Obukhov similarity parameter for momentum at 10m over ice
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[frain]
- standard_name = dynamics_to_physics_timestep_ratio
- long_name = ratio of dynamics timestep to physics timestep
- units = none
- dimensions = ()
- type = real
- kind = kind_phys
-[frland]
- standard_name = land_area_fraction_for_microphysics
- long_name = land area fraction used in microphysics schemes
- units = frac
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[fscav]
- standard_name = fraction_of_tracer_scavenged
- long_name = fraction of the tracer (aerosols) that is scavenged by convection
- units = km-1
- dimensions = (number_of_tracers_scavenged)
- type = real
- kind = kind_phys
-[fswtr]
- standard_name = fraction_of_cloud_top_water_scavenged
- long_name = fraction of the tracer (cloud top water) that is scavenged by convection
- units = km-1
- dimensions = (number_of_tracers_scavenged)
- type = real
- kind = kind_phys
-[gabsbdlw]
- standard_name = surface_downwelling_longwave_flux_absorbed_by_ground
- long_name = total sky surface downward longwave flux absorbed by the ground
- units = W m-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[gabsbdlw_water]
- standard_name = surface_downwelling_longwave_flux_absorbed_by_ground_over_water
- long_name = total sky surface downward longwave flux absorbed by the ground over water
- units = W m-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[gabsbdlw_land]
- standard_name = surface_downwelling_longwave_flux_absorbed_by_ground_over_land
- long_name = total sky surface downward longwave flux absorbed by the ground over land
- units = W m-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[gabsbdlw_ice]
- standard_name = surface_downwelling_longwave_flux_absorbed_by_ground_over_ice
- long_name = total sky surface downward longwave flux absorbed by the ground over ice
- units = W m-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[gamma]
- standard_name = anisotropy_of_subgrid_orography
- long_name = anisotropy of subgrid height_above_mean_sea_level
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[gamq]
- standard_name = countergradient_mixing_term_for_water_vapor
- long_name = countergradient mixing term for water vapor
- units = kg kg-1
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[gamt]
- standard_name = countergradient_mixing_term_for_temperature
- long_name = countergradient mixing term for temperature
- units = K
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[gasvmr(:,:,1)]
- standard_name = volume_mixing_ratio_of_co2
- long_name = volume mixing ratio co2
- units = m3 m-3
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
- type = real
- kind = kind_phys
-[gasvmr(:,:,2)]
- standard_name = volume_mixing_ratio_of_n2o
- long_name = volume mixing ratio no2
- units = m3 m-3
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
- type = real
- kind = kind_phys
-[gasvmr(:,:,3)]
- standard_name = volume_mixing_ratio_of_ch4
- long_name = volume mixing ratio ch4
- units = m3 m-3
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
- type = real
- kind = kind_phys
-[gasvmr(:,:,4)]
- standard_name = volume_mixing_ratio_of_o2
- long_name = volume mixing ratio o2
- units = m3 m-3
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
- type = real
- kind = kind_phys
-[gasvmr(:,:,5)]
- standard_name = volume_mixing_ratio_of_co
- long_name = volume mixing ratio co
- units = m3 m-3
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
- type = real
- kind = kind_phys
-[gasvmr(:,:,6)]
- standard_name = volume_mixing_ratio_of_cfc11
- long_name = volume mixing ratio cfc11
- units = m3 m-3
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
- type = real
- kind = kind_phys
-[gasvmr(:,:,7)]
- standard_name = volume_mixing_ratio_of_cfc12
- long_name = volume mixing ratio cfc12
- units = m3 m-3
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
- type = real
- kind = kind_phys
-[gasvmr(:,:,8)]
- standard_name = volume_mixing_ratio_of_cfc22
- long_name = volume mixing ratio cfc22
- units = m3 m-3
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
- type = real
- kind = kind_phys
-[gasvmr(:,:,9)]
- standard_name = volume_mixing_ratio_of_ccl4
- long_name = volume mixing ratio ccl4
- units = m3 m-3
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
- type = real
- kind = kind_phys
-[gasvmr(:,:,10)]
- standard_name = volume_mixing_ratio_of_cfc113
- long_name = volume mixing ratio cfc113
- units = m3 m-3
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
- type = real
- kind = kind_phys
-[gflx]
- standard_name = upward_heat_flux_in_soil
- long_name = soil heat flux
- units = W m-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[gflx_water]
- standard_name = upward_heat_flux_in_soil_over_water
- long_name = soil heat flux over water
- units = W m-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[gflx_land]
- standard_name = upward_heat_flux_in_soil_over_land
- long_name = soil heat flux over land
- units = W m-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[gflx_ice]
- standard_name = upward_heat_flux_in_soil_over_ice
- long_name = soil heat flux over ice
- units = W m-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[graupelmp]
- standard_name = lwe_thickness_of_graupel_amount
- long_name = explicit graupel fall on physics timestep
- units = m
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
- active = (control_for_microphysics_scheme == identifier_for_gfdl_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_thompson_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_nssl_microphysics_scheme)
-[gwdcu]
- standard_name = tendency_of_x_wind_due_to_convective_gravity_wave_drag
- long_name = zonal wind tendency due to convective gravity wave drag
- units = m s-2
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[gwdcv]
- standard_name = tendency_of_y_wind_due_to_convective_gravity_wave_drag
- long_name = meridional wind tendency due to convective gravity wave drag
- units = m s-2
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[zvfun]
- standard_name = function_of_surface_roughness_length_and_green_vegetation_fraction
- long_name = function of surface roughness length and green vegetation fraction
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[hffac]
- standard_name = surface_upward_sensible_heat_flux_reduction_factor
- long_name = surface upward sensible heat flux reduction factor from canopy heat storage
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[hflxq]
- standard_name = kinematic_surface_upward_sensible_heat_flux_reduced_by_surface_roughness_and_vegetation
- long_name = kinematic surface upward sensible heat flux reduced by surface roughness and vegetation
- units = K m s-1
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[hflx_water]
- standard_name = kinematic_surface_upward_sensible_heat_flux_over_water
- long_name = kinematic surface upward sensible heat flux over water
- units = K m s-1
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[hflx_land]
- standard_name = kinematic_surface_upward_sensible_heat_flux_over_land
- long_name = kinematic surface upward sensible heat flux over land
- units = K m s-1
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[hflx_ice]
- standard_name = kinematic_surface_upward_sensible_heat_flux_over_ice
- long_name = kinematic surface upward sensible heat flux over ice
- units = K m s-1
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[htlwc]
- standard_name = tendency_of_air_temperature_due_to_longwave_heating_on_radiation_time_step_and_radiation_levels
- long_name = total sky heating rate due to longwave radiation
- units = K s-1
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
- type = real
- kind = kind_phys
-[htlw0]
- standard_name = tendency_of_air_temperature_due_to_longwave_heating_assuming_clear_sky_on_radiation_time_step_and_radiation_levels
- long_name = clear sky heating rate due to longwave radiation
- units = K s-1
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
- type = real
- kind = kind_phys
-[htswc]
- standard_name = tendency_of_air_temperature_due_to_shortwave_heating_on_radiation_time_step_and_radiation_levels
- long_name = total sky heating rate due to shortwave radiation
- units = K s-1
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
- type = real
- kind = kind_phys
-[htsw0]
- standard_name = tendency_of_air_temperature_due_to_shortwave_heating_assuming_clear_sky_on_radiation_time_step_and_radiation_levels
- long_name = clear sky heating rates due to shortwave radiation
- units = K s-1
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
- type = real
- kind = kind_phys
-[icemp]
- standard_name = lwe_thickness_of_ice_amount
- long_name = explicit ice fall on physics timestep
- units = m
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
- active = (control_for_microphysics_scheme == identifier_for_gfdl_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_thompson_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_nssl_microphysics_scheme)
-[dry]
- standard_name = flag_nonzero_land_surface_fraction
- long_name = flag indicating presence of some land surface area fraction
- units = flag
- dimensions = (horizontal_loop_extent)
- type = logical
-[idxday]
- standard_name = daytime_points
- long_name = daytime points
- units = index
- dimensions = (horizontal_loop_extent)
- type = integer
-[icy]
- standard_name = flag_nonzero_sea_ice_surface_fraction
- long_name = flag indicating presence of some sea ice surface area fraction
- units = flag
- dimensions = (horizontal_loop_extent)
- type = logical
-[lake]
- standard_name = flag_nonzero_lake_surface_fraction
- long_name = flag indicating presence of some lake surface area fraction
- units = flag
- dimensions = (horizontal_loop_extent)
- type = logical
-[use_flake]
- standard_name = flag_for_using_flake
- long_name = flag indicating lake points using flake model
- units = flag
- dimensions = (horizontal_loop_extent)
- type = logical
-[ocean]
- standard_name = flag_nonzero_ocean_surface_fraction
- long_name = flag indicating presence of some ocean surface area fraction
- units = flag
- dimensions = (horizontal_loop_extent)
- type = logical
-[ipr]
- standard_name = horizontal_index_of_printed_column
- long_name = horizontal index of printed column
- units = index
- dimensions = ()
- type = integer
-[islmsk]
- standard_name = sea_land_ice_mask
- long_name = sea/land/ice mask (=0/1/2)
- units = flag
- dimensions = (horizontal_loop_extent)
- type = integer
-[islmsk_cice]
- standard_name = sea_land_ice_mask_cice
- long_name = sea/land/ice mask cice (=0/1/2)
- units = flag
- dimensions = (horizontal_loop_extent)
- type = integer
-[itc]
- standard_name = index_of_first_chemical_tracer_for_convection
- long_name = index of first chemical tracer transported/scavenged by convection
- units = index
- dimensions = ()
- type = integer
-[wet]
- standard_name = flag_nonzero_wet_surface_fraction
- long_name = flag indicating presence of some ocean or lake surface area fraction
- units = flag
- dimensions = (horizontal_loop_extent)
- type = logical
-[kb]
- standard_name = vertical_index_difference_between_layer_and_lower_bound
- long_name = vertical index difference between layer and lower bound
- units = index
- dimensions = ()
- type = integer
-[kbot]
- standard_name = vertical_index_at_cloud_base
- long_name = vertical index at cloud base
- units = index
- dimensions = (horizontal_loop_extent)
- type = integer
-[kcnv]
- standard_name = flag_deep_convection
- long_name = flag indicating whether convection occurs in column (0 or 1)
- units = flag
- dimensions = (horizontal_loop_extent)
- type = integer
-[kd]
- standard_name = vertical_index_difference_between_inout_and_local
- long_name = vertical index difference between in/out and local
- units = index
- dimensions = ()
- type = integer
-[kinver]
- standard_name = index_of_highest_temperature_inversion
- long_name = index of highest temperature inversion
- units = index
- dimensions = (horizontal_loop_extent)
- type = integer
-[kpbl]
- standard_name = vertical_index_at_top_of_atmosphere_boundary_layer
- long_name = vertical index at top atmospheric boundary layer
- units = index
- dimensions = (horizontal_loop_extent)
- type = integer
-[kt]
- standard_name = vertical_index_difference_between_layer_and_upper_bound
- long_name = vertical index difference between layer and upper bound
- units = index
- dimensions = ()
- type = integer
-[ktop]
- standard_name = vertical_index_at_cloud_top
- long_name = vertical index at cloud top
- units = index
- dimensions = (horizontal_loop_extent)
- type = integer
-[latidxprnt]
- standard_name = latitude_index_in_debug_printouts
- long_name = latitude index in debug printouts
- units = index
- dimensions = ()
- type = integer
-[levi]
- standard_name = vertical_interface_dimension_interstitial
- long_name = vertical interface dimension
- units = count
- dimensions = ()
- type = integer
-[lmk]
- standard_name = adjusted_vertical_layer_dimension_for_radiation
- long_name = adjusted number of vertical layers for radiation
- units = count
- dimensions = ()
- type = integer
-[lmp]
- standard_name = adjusted_vertical_level_dimension_for_radiation
- long_name = adjusted number of vertical levels for radiation
- units = count
- dimensions = ()
- type = integer
-[mbota]
- standard_name = model_layer_number_at_cloud_base
- long_name = vertical indices for low, middle and high cloud bases
- units = index
- dimensions = (horizontal_loop_extent,3)
- type = integer
-[mg3_as_mg2]
- standard_name = flag_mg3_as_mg2
- long_name = flag for controlling prep for Morrison-Gettelman microphysics
- units = flag
- dimensions = ()
- type = logical
-[mtopa]
- standard_name = model_layer_number_at_cloud_top
- long_name = vertical indices for low, middle and high cloud tops
- units = index
- dimensions = (horizontal_loop_extent,3)
- type = integer
-[nbdlw]
- standard_name = number_of_aerosol_bands_for_longwave_radiation
- long_name = number of aerosol bands for longwave radiation
- units = count
- dimensions = ()
- type = integer
-[nbdsw]
- standard_name = number_of_aerosol_bands_for_shortwave_radiation
- long_name = number of aerosol bands for shortwave radiation
- units = count
- dimensions = ()
- type = integer
-[ncgl]
- standard_name = local_graupel_number_concentration
- long_name = number concentration of graupel local to physics
- units = kg-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme)
-[ncpi]
- standard_name = local_ice_number_concentration
- long_name = number concentration of ice local to physics
- units = kg-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (flag_for_shoc)
-[ncpl]
- standard_name = local_condesed_water_number_concentration
- long_name = number concentration of condensed water local to physics
- units = kg-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (flag_for_shoc)
-[ncpr]
- standard_name = local_rain_number_concentration
- long_name = number concentration of rain local to physics
- units = kg-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme)
-[ncps]
- standard_name = local_snow_number_concentration
- long_name = number concentration of snow local to physics
- units = kg-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme)
-[ncstrac]
- standard_name = number_of_tracers_for_CS
- long_name = number of convectively transported tracers in Chikira-Sugiyama deep convection scheme
- units = count
- dimensions = ()
- type = integer
-[nday]
- standard_name = daytime_points_dimension
- long_name = daytime points dimension
- units = count
- dimensions = ()
- type = integer
-[nf_aelw]
- standard_name = number_of_aerosol_output_fields_for_longwave_radiation
- long_name = number of aerosol output fields for longwave radiation
- units = count
- dimensions = ()
- type = integer
-[nf_aesw]
- standard_name = number_of_aerosol_output_fields_for_shortwave_radiation
- long_name = number of aerosol output fields for shortwave radiation
- units = count
- dimensions = ()
- type = integer
-[nn]
- standard_name = number_of_tracers_for_convective_transport
- long_name = number of tracers for convective transport
- units = count
- dimensions = ()
- type = integer
-[nsamftrac]
- standard_name = number_of_tracers_for_samf
- long_name = number of tracers for scale-aware mass flux schemes
- units = count
- dimensions = ()
- type = integer
-[nscav]
- standard_name = number_of_tracers_scavenged
- long_name = number of tracers scavenged
- units = count
- dimensions = ()
- type = integer
-[nspc1]
- standard_name = number_of_species_for_aerosol_optical_depth
- long_name = number of species for output aerosol optical depth plus total
- units = count
- dimensions = ()
- type = integer
-[ntqvx]
- standard_name = index_for_water_vapor_vertical_diffusion_tracer
- long_name = tracer index for water vapor (specific humidity) in the vertically diffused tracer array
- units = index
- dimensions = ()
- type = integer
-[ntcwx]
- standard_name = index_for_liquid_cloud_condensate_vertical_diffusion_tracer
- long_name = index for liquid cloud condensate in the vertically diffused tracer array
- units = index
- dimensions = ()
- type = integer
-[ntiwx]
- standard_name = index_for_ice_cloud_condensate_vertical_diffusion_tracer
- long_name = index for ice cloud condensate in the vertically diffused tracer array
- units = index
- dimensions = ()
- type = integer
-[ntrwx]
- standard_name = index_for_rain_water_vertical_diffusion_tracer
- long_name = tracer index for rain water in the vertically diffused tracer array
- units = index
- dimensions = ()
- type = integer
-[ntk]
- standard_name = index_for_turbulent_kinetic_energy_convective_transport_tracer
- long_name = index for turbulent kinetic energy in the convectively transported tracer array
- units = index
- dimensions = ()
- type = integer
-[ntkev]
- standard_name = index_for_turbulent_kinetic_energy_vertical_diffusion_tracer
- long_name = index for turbulent kinetic energy in the vertically diffused tracer array
- units = index
- dimensions = ()
- type = integer
-[ntozx]
- standard_name = index_for_ozone_vertical_diffusion_tracer
- long_name = tracer index for ozone mixing ratio in the vertically diffused tracer array
- units = index
- dimensions = ()
- type = integer
-[nvdiff]
- standard_name = number_of_vertical_diffusion_tracers
- long_name = number of tracers to diffuse vertically
- units = count
- dimensions = ()
- type = integer
-[oa4]
- standard_name = asymmetry_of_subgrid_orography
- long_name = asymmetry of subgrid height_above_mean_sea_level
- units = none
- dimensions = (horizontal_loop_extent,4)
- type = real
- kind = kind_phys
-[varss]
- standard_name = standard_deviation_of_subgrid_orography_small_scale
- long_name = standard deviation of subgrid height_above_mean_sea_level small scale
- units = m
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
- active = (control_for_drag_suite_gravity_wave_drag == 3 .or. control_for_drag_suite_gravity_wave_drag == 33)
-[oa4ss]
- standard_name = asymmetry_of_subgrid_orography_small_scale
- long_name = asymmetry of subgrid height_above_mean_sea_level small scale
- units = none
- dimensions = (horizontal_loop_extent,4)
- type = real
- kind = kind_phys
- active = (control_for_drag_suite_gravity_wave_drag == 3 .or. control_for_drag_suite_gravity_wave_drag == 33)
-[oc]
- standard_name = convexity_of_subgrid_orography
- long_name = convexity of subgrid height_above_mean_sea_level
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[ocss]
- standard_name = convexity_of_subgrid_orography_small_scale
- long_name = convexity of subgrid height_above_mean_sea_level small scale
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
- active = (control_for_drag_suite_gravity_wave_drag == 3 .or. control_for_drag_suite_gravity_wave_drag == 33)
-[olyr]
- standard_name = ozone_concentration_at_layer_for_radiation
- long_name = ozone concentration layer
- units = kg kg-1
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
- type = real
- kind = kind_phys
-[otspt]
- standard_name = flag_convective_tracer_transport
- long_name = flag to enable tracer transport by updrafts/downdrafts[(:,1)] or subsidence [(:,2)]
- units = flag
- dimensions = (number_of_tracers_plus_one,2)
- type = logical
-[otsptflag]
- standard_name = flag_convective_tracer_transport_interstitial
- long_name = flag for interstitial tracer transport
- units = flag
- dimensions = (number_of_tracers)
- type = logical
-[oz_coeffp5]
- standard_name = number_of_coefficients_in_ozone_forcing_data_plus_five
- long_name = number of coefficients in ozone forcing data plus five
- units = index
- dimensions = ()
- type = integer
-[phys_hydrostatic]
- standard_name = flag_for_hydrostatic_heating_from_physics
- long_name = flag for use of hydrostatic heating in physics
- units = flag
- dimensions = ()
- type = logical
-[plvl]
- standard_name = air_pressure_at_interface_for_radiation_in_hPa
- long_name = air pressure at vertical interface for radiation calculation
- units = hPa
- dimensions = (horizontal_loop_extent,adjusted_vertical_level_dimension_for_radiation)
- type = real
- kind = kind_phys
-[plyr]
- standard_name = air_pressure_at_layer_for_radiation_in_hPa
- long_name = air pressure at vertical layer for radiation calculation
- units = hPa
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
- type = real
- kind = kind_phys
-[prnum]
- standard_name = prandtl_number
- long_name = turbulent Prandtl number
- units = none
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[q2mp]
- standard_name = specific_humidity_at_2m_from_noahmp
- long_name = 2 meter specific humidity from noahmp
- units = kg kg-1
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
- active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme)
-[qgl]
- standard_name = local_graupel_mixing_ratio
- long_name = ratio of mass of graupel to mass of dry air plus vapor (without condensates) local to physics
- units = kg kg-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme .or. flag_for_shoc)
-[qicn]
- standard_name = mass_fraction_of_convective_cloud_ice
- long_name = mass fraction of convective cloud ice water
- units = kg kg-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme)
-[qlcn]
- standard_name = mass_fraction_of_convective_cloud_liquid_water
- long_name = mass fraction of convective cloud liquid water
- units = kg kg-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme)
-[qlyr]
- standard_name = water_vapor_specific_humidity_at_layer_for_radiation
- long_name = specific humidity layer
- units = kg kg-1
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
- type = real
- kind = kind_phys
-[qrn]
- standard_name = local_rain_water_mixing_ratio
- long_name = ratio of mass of rain water to mass of dry air plus vapor (without condensates) local to physics
- units = kg kg-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme .or. flag_for_shoc)
-[qsnw]
- standard_name = local_snow_water_mixing_ratio
- long_name = ratio of mass of snow water to mass of dry air plus vapor (without condensates) local to physics
- units = kg kg-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme .or. flag_for_shoc)
-[prcpmp]
- standard_name = lwe_thickness_of_explicit_precipitation_amount
- long_name = explicit precipitation (rain, ice, snow, graupel, ...) on physics timestep
- units = m
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[qss_water]
- standard_name = surface_specific_humidity_over_water
- long_name = surface air saturation specific humidity over water
- units = kg kg-1
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[qss_land]
- standard_name = surface_specific_humidity_over_land
- long_name = surface air saturation specific humidity over land
- units = kg kg-1
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[qss_ice]
- standard_name = surface_specific_humidity_over_ice
- long_name = surface air saturation specific humidity over ice
- units = kg kg-1
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[radar_reset]
- standard_name = flag_for_resetting_radar_reflectivity_calculation
- long_name = flag for resetting radar reflectivity calculation
- units = flag
- dimensions = ()
- type = logical
-[raddt]
- standard_name = time_step_for_radiation
- long_name = radiation time step
- units = s
- dimensions = ()
- type = real
- kind = kind_phys
-[raincd]
- standard_name = lwe_thickness_of_deep_convective_precipitation_amount
- long_name = deep convective rainfall amount on physics timestep
- units = m
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[raincs]
- standard_name = lwe_thickness_of_shallow_convective_precipitation_amount
- long_name = shallow convective rainfall amount on physics timestep
- units = m
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[rainmcadj]
- standard_name = lwe_thickness_of_moist_convective_adj_precipitation_amount
- long_name = adjusted moist convective rainfall amount on physics timestep
- units = m
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[rainmp]
- standard_name = lwe_thickness_of_explicit_rain_amount
- long_name = explicit rain on physics timestep
- units = m
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
- active = (control_for_microphysics_scheme == identifier_for_gfdl_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_thompson_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_nssl_microphysics_scheme)
-[rainp]
- standard_name = tendency_of_rain_water_mixing_ratio_due_to_microphysics
- long_name = tendency of rain water mixing ratio due to microphysics
- units = kg kg-1 s-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[rb]
- standard_name = bulk_richardson_number_at_lowest_model_level
- long_name = bulk Richardson number at the surface
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[rb_water]
- standard_name = bulk_richardson_number_at_lowest_model_level_over_water
- long_name = bulk Richardson number at the surface over water
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[rb_land]
- standard_name = bulk_richardson_number_at_lowest_model_level_over_land
- long_name = bulk Richardson number at the surface over land
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[rb_ice]
- standard_name = bulk_richardson_number_at_lowest_model_level_over_ice
- long_name = bulk Richardson number at the surface over ice
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[max_hourly_reset]
- standard_name = flag_reset_maximum_hourly_fields
- long_name = flag for resetting maximum hourly fields
- units = flag
- dimensions = ()
- type = logical
-[ext_diag_thompson_reset]
- standard_name = flag_reset_extended_diagnostics_output_arrays_from_thompson_microphysics
- long_name = flag for resetting extended diagnostics output arrays from thompson microphysics
- units = flag
- dimensions = ()
- type = logical
-[rhc]
- standard_name = critical_relative_humidity
- long_name = critical relative humidity
- units = frac
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[rho1]
- standard_name = air_density_at_lowest_model_layer
- long_name = air density at lowest model layer
- units = kg m-3
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[runoff]
- standard_name = surface_runoff_flux
- long_name = surface runoff flux
- units = kg m-2 s-1
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[save_q(:,:,index_of_ozone_mixing_ratio_in_tracer_concentration_array)]
- standard_name = ozone_mixing_ratio_save
- long_name = ozone mixing ratio before entering a physics scheme
- units = kg kg-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[save_q(:,:,index_of_turbulent_kinetic_energy_in_tracer_concentration_array)]
- standard_name = turbulent_kinetic_energy_save
- long_name = turbulent kinetic energy before entering a physics scheme
- units = kg kg-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[save_q(:,:,index_of_cloud_liquid_water_mixing_ratio_in_tracer_concentration_array)]
- standard_name = cloud_condensed_water_mixing_ratio_save
- long_name = ratio of mass of cloud water to mass of dry air plus vapor (without condensates) before entering a physics scheme
- units = kg kg-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[save_q(:,:,index_of_cloud_ice_mixing_ratio_in_tracer_concentration_array)]
- standard_name = ice_water_mixing_ratio_save
- long_name = cloud ice water mixing ratio before entering a physics scheme
- units = kg kg-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[save_q(:,:,index_of_specific_humidity_in_tracer_concentration_array)]
- standard_name = water_vapor_specific_humidity_save
- long_name = water vapor specific humidity before entering a physics scheme
- units = kg kg-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[save_q(:,:,index_of_mass_number_concentration_of_cloud_droplets_in_tracer_concentration_array)]
- standard_name = liquid_cloud_number_concentration_save
- long_name = liquid cloud number concentration before entering a physics scheme
- units = kg kg-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[save_q(:,:,index_of_mass_number_concentration_of_cloud_ice_in_tracer_concentration_array)]
- standard_name = ice_cloud_number_concentration_save
- long_name = ice cloud number concentration before entering a physics scheme
- units = kg kg-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[save_q]
- standard_name = tracer_concentration_save
- long_name = tracer concentration before entering a physics scheme
- units = kg kg-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_tracers)
- type = real
- kind = kind_phys
-[save_t]
- standard_name = air_temperature_save
- long_name = air temperature before entering a physics scheme
- units = K
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[save_tcp]
- standard_name = air_temperature_save_from_convective_parameterization
- long_name = air temperature after cumulus parameterization
- units = K
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[save_u]
- standard_name = x_wind_save
- long_name = x-wind before entering a physics scheme
- units = m s-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[save_v]
- standard_name = y_wind_save
- long_name = y-wind before entering a physics scheme
- units = m s-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[sbsno]
- standard_name = snow_deposition_sublimation_upward_latent_heat_flux
- long_name = latent heat flux from snow depo/subl
- units = W m-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[scmpsw]
- standard_name = components_of_surface_downward_shortwave_fluxes
- long_name = derived type for special components of surface downward shortwave fluxes
- units = W m-2
- dimensions = (horizontal_loop_extent)
- type = cmpfsw_type
-[sfcalb]
- standard_name = surface_albedo_components
- long_name = surface albedo IR/UV/VIS components
- units = frac
- dimensions = (horizontal_loop_extent,number_of_components_for_surface_albedo)
- type = real
- kind = kind_phys
-[sfcalb(:,1)]
- standard_name = surface_albedo_due_to_near_IR_direct
- long_name = surface albedo due to near IR direct beam
- units = frac
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[sfcalb(:,2)]
- standard_name = surface_albedo_due_to_near_IR_diffused
- long_name = surface albedo due to near IR diffused beam
- units = frac
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[sfcalb(:,3)]
- standard_name = surface_albedo_due_to_UV_and_VIS_direct
- long_name = surface albedo due to UV+VIS direct beam
- units = frac
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[sfcalb(:,4)]
- standard_name = surface_albedo_due_to_UV_and_VIS_diffused
- long_name = surface albedo due to UV+VIS diffused beam
- units = frac
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[sigma]
- standard_name = slope_of_subgrid_orography
- long_name = slope of subgrid height_above_mean_sea_level
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[sigmaf]
- standard_name = bounded_vegetation_area_fraction
- long_name = areal fractional cover of green vegetation bounded on the bottom
- units = frac
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[sigmafrac]
- standard_name = convective_updraft_area_fraction
- long_name = convective updraft area fraction
- units = frac
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[sigmatot]
- standard_name = convective_updraft_area_fraction_at_model_interfaces
- long_name = convective updraft area fraction at model interfaces
- units = frac
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[skip_macro]
- standard_name = flag_skip_macro
- long_name = flag to skip cloud macrophysics in Morrison scheme
- units = flag
- dimensions = ()
- type = logical
-[snowc]
- standard_name = surface_snow_area_fraction
- long_name = surface snow area fraction
- units = frac
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[snohf]
- standard_name = snow_freezing_rain_upward_latent_heat_flux
- long_name = latent heat flux due to snow and frz rain
- units = W m-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[snowmp]
- standard_name = lwe_thickness_of_snow_amount
- long_name = explicit snow fall on physics timestep
- units = m
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
- active = (control_for_microphysics_scheme == identifier_for_gfdl_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_thompson_microphysics_scheme .or. control_for_microphysics_scheme == identifier_for_nssl_microphysics_scheme)
-[snowmt]
- standard_name = surface_snow_melt
- long_name = snow melt during timestep
- units = m
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[stress]
- standard_name = surface_wind_stress
- long_name = surface wind stress
- units = m2 s-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[stress_water]
- standard_name = surface_wind_stress_over_water
- long_name = surface wind stress over water
- units = m2 s-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[stress_land]
- standard_name = surface_wind_stress_over_land
- long_name = surface wind stress over land
- units = m2 s-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[stress_ice]
- standard_name = surface_wind_stress_over_ice
- long_name = surface wind stress over ice
- units = m2 s-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[t2mmp]
- standard_name = temperature_at_2m_from_noahmp
- long_name = 2 meter temperature from noahmp
- units = K
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
- active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme)
-[theta]
- standard_name = angle_from_east_of_maximum_subgrid_orographic_variations
- long_name = angle with_respect to east of maximum subgrid orographic variations
- units = degree
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[tlvl]
- standard_name = air_temperature_at_interface_for_radiation
- long_name = air temperature at vertical interface for radiation calculation
- units = K
- dimensions = (horizontal_loop_extent,adjusted_vertical_level_dimension_for_radiation)
- type = real
- kind = kind_phys
-[tlyr]
- standard_name = air_temperature_at_layer_for_radiation
- long_name = air temperature at vertical layer for radiation calculation
- units = K
- dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation)
- type = real
- kind = kind_phys
-[tprcp_water]
- standard_name = nonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep_over_water
- long_name = total precipitation amount in each time step over water
- units = m
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[tprcp_land]
- standard_name = nonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep_over_land
- long_name = total precipitation amount in each time step over land
- units = m
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[tprcp_ice]
- standard_name = nonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep_over_ice
- long_name = total precipitation amount in each time step over ice
- units = m
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[tracers_start_index]
- standard_name = start_index_of_other_tracers
- long_name = beginning index of the non-water tracer species
- units = index
- dimensions = ()
- type = integer
-[tracers_total]
- standard_name = number_of_total_tracers
- long_name = total number of tracers
- units = count
- dimensions = ()
- type = integer
-[trans_aero]
- standard_name = flag_for_aerosol_convective_transport_and_PBL_diffusion
- long_name = flag for aerosol convective transport and PBL diffusion
- units = flag
- dimensions = ()
- type = logical
-[trans]
- standard_name = transpiration_flux
- long_name = total plant transpiration rate
- units = W m-2
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[tseal]
- standard_name = surface_skin_temperature_for_nsst
- long_name = ocean surface skin temperature
- units = K
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[tsfa]
- standard_name = surface_air_temperature_for_radiation
- long_name = lowest model layer air temperature for radiation
- units = K
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[tsfc_water]
- standard_name = surface_skin_temperature_over_water
- long_name = surface skin temperature over water
- units = K
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[tsfg]
- standard_name = surface_ground_temperature_for_radiation
- long_name = surface ground temperature for radiation
- units = K
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[tsurf_water]
- standard_name = surface_skin_temperature_after_iteration_over_water
- long_name = surface skin temperature after iteration over water
- units = K
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[tsurf_land]
- standard_name = surface_skin_temperature_after_iteration_over_land
- long_name = surface skin temperature after iteration over land
- units = K
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[tsurf_ice]
- standard_name = surface_skin_temperature_after_iteration_over_ice
- long_name = surface skin temperature after iteration over ice
- units = K
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[tracers_water]
- standard_name = number_of_water_tracers
- long_name = number of water-related tracers
- units = count
- dimensions = ()
- type = integer
-[ud_mf]
- standard_name = instantaneous_atmosphere_updraft_convective_mass_flux
- long_name = (updraft mass flux) * delt
- units = kg m-2
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[uustar_water]
- standard_name = surface_friction_velocity_over_water
- long_name = surface friction velocity over water
- units = m s-1
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[uustar_land]
- standard_name = surface_friction_velocity_over_land
- long_name = surface friction velocity over land
- units = m s-1
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[uustar_ice]
- standard_name = surface_friction_velocity_over_ice
- long_name = surface friction velocity over ice
- units = m s-1
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[vdftra]
- standard_name = vertically_diffused_tracer_concentration
- long_name = tracer concentration diffused by PBL scheme
- units = kg kg-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_vertical_diffusion_tracers)
- type = real
- kind = kind_phys
-[lndp_vgf]
- standard_name = magnitude_of_perturbation_of_vegetation_fraction
- long_name = magnitude of perturbation of vegetation fraction
- units = frac
- dimensions = ()
- type = real
- kind = kind_phys
-[vegf1d]
- standard_name = perturbation_of_vegetation_fraction
- long_name = perturbation of vegetation fraction
- units = frac
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[w_upi]
- standard_name = vertical_velocity_for_updraft
- long_name = vertical velocity for updraft
- units = m s-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (control_for_microphysics_scheme == identifier_for_morrison_gettelman_microphysics_scheme)
-[wcbmax]
- standard_name = maximum_updraft_velocity_at_cloud_base
- long_name = maximum updraft velocity at cloud base
- units = m s-1
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[wind]
- standard_name = wind_speed_at_lowest_model_layer
- long_name = wind speed at lowest model level
- units = m s-1
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[work1]
- standard_name = grid_size_related_coefficient_used_in_scale_sensitive_schemes
- long_name = grid size related coefficient used in scale-sensitive schemes
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[work2]
- standard_name = grid_size_related_coefficient_used_in_scale_sensitive_schemes_complement
- long_name = complement to work1
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[work3]
- standard_name = ratio_of_exner_function_between_midlayer_and_interface_at_lowest_model_layer
- long_name = Exner function ratio bt midlayer and interface at 1st layer
- units = ratio
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[xcosz]
- standard_name = instantaneous_cosine_of_zenith_angle
- long_name = cosine of zenith angle at current time
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[xlai1d]
- standard_name = perturbation_of_leaf_area_index
- long_name = perturbation of leaf area index
- units = frac
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[xmu]
- standard_name = zenith_angle_temporal_adjustment_factor_for_shortwave_fluxes
- long_name = zenith angle temporal adjustment factor for shortwave
- units = none
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[z01d]
- standard_name = perturbation_of_momentum_roughness_length
- long_name = perturbation of momentum roughness length
- units = frac
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[ztmax_water]
- standard_name = bounded_surface_roughness_length_for_heat_over_water
- long_name = bounded surface roughness length for heat over water
- units = m
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[ztmax_land]
- standard_name = bounded_surface_roughness_length_for_heat_over_land
- long_name = bounded surface roughness length for heat over land
- units = m
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[ztmax_ice]
- standard_name = bounded_surface_roughness_length_for_heat_over_ice
- long_name = bounded surface roughness length for heat over ice
- units = m
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[zt1d]
- standard_name = perturbation_of_heat_to_momentum_roughness_length_ratio
- long_name = perturbation of heat to momentum roughness length ratio
- units = frac
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[zmtb]
- standard_name = height_of_mountain_blocking
- long_name = height of mountain blocking drag
- units = m
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[dudt_ngw]
- standard_name = tendency_of_x_wind_due_to_nonorographic_gravity_wave_drag
- long_name = zonal wind tendency due to non-stationary GWs
- units = m s-2
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2)
-[dvdt_ngw]
- standard_name = tendency_of_y_wind_due_to_nonorographic_gravity_wave_drag
- long_name = meridional wind tendency due to non-stationary GWs
- units = m s-2
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2)
-[dtdt_ngw]
- standard_name = tendency_of_air_temperature_due_to_nonorographic_gravity_wave_drag
- long_name = air temperature tendency due to non-stationary GWs
- units = K s-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2)
-[kdis_ngw]
- standard_name = atmosphere_momentum_diffusivity_due_to_nonorographic_gravity_wave_drag
- long_name = eddy mixing due to non-stationary GWs
- units = m2 s-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2)
-[zlwb]
- standard_name = height_of_low_level_wave_breaking
- long_name = height of low level wave breaking
- units = m
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[zogw]
- standard_name = height_of_launch_level_of_orographic_gravity_wave
- long_name = height of launch level of orographic gravity wave
- units = m
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[zngw]
- standard_name = height_of_launch_level_of_nonorographic_gravity_waves
- long_name = height of launch level of non-stationary GWs
- units = m
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[tau_tofd]
- standard_name = instantaneous_momentum_flux_due_to_turbulent_orographic_form_drag
- long_name = instantaneous momentum flux due to TOFD
- units = Pa
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[tau_mtb]
- standard_name = instantaneous_momentum_flux_due_to_mountain_blocking_drag
- long_name = instantaneous momentum flux due to mountain blocking drag
- units = Pa
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[tau_ogw]
- standard_name = instantaneous_momentum_flux_due_to_orographic_gravity_wave_drag
- long_name = instantaneous momentum flux due to orographic gravity wave drag
- units = Pa
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[tau_oss]
- standard_name = momentum_flux_due_to_subgrid_scale_orographic_gravity_wave_drag
- long_name = momentum flux or stress due to SSO including OBL-OSS-OFD
- units = Pa
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[tau_ngw]
- standard_name = instantaneous_momentum_flux_due_to_nonstationary_gravity_wave
- long_name = instantaneous momentum flux due to nonstationary gravity waves
- units = Pa
- dimensions = (horizontal_loop_extent)
- type = real
- kind = kind_phys
-[dudt_mtb]
- standard_name = instantaneous_change_in_x_wind_due_to_mountain_blocking_drag
- long_name = instantaneous change in x wind due to mountain blocking drag
- units = m s-2
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[dudt_tms]
- standard_name = tendency_of_x_wind_due_to_turbulent_orographic_form_drag
- long_name = instantaneous change in x wind due to TOFD
- units = m s-2
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
-[qs_lay]
- standard_name = saturation_vapor_pressure
- long_name = saturation vapor pressure
- units = Pa
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (flag_for_rrtmgp_radiation_scheme)
-[q_lay]
- standard_name = water_vapor_mixing_ratio
- long_name = water vaport mixing ratio
- units = kg kg-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (flag_for_rrtmgp_radiation_scheme)
-[p_lay]
- standard_name = air_pressure_at_layer_for_RRTMGP
- long_name = air pressure layer
- units = Pa
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (flag_for_rrtmgp_radiation_scheme)
-[p_lev]
- standard_name = air_pressure_at_interface_for_RRTMGP
- long_name = air pressure level
- units = Pa
- dimensions = (horizontal_loop_extent,vertical_interface_dimension)
- type = real
- kind = kind_phys
- active = (flag_for_rrtmgp_radiation_scheme)
-[t_lay]
- standard_name = air_temperature_at_layer_for_RRTMGP
- long_name = air temperature layer
- units = K
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (flag_for_rrtmgp_radiation_scheme)
-[t_lev]
- standard_name = air_temperature_at_interface_for_RRTMGP
- long_name = air temperature layer
- units = K
- dimensions = (horizontal_loop_extent,vertical_interface_dimension)
- type = real
- kind = kind_phys
- active = (flag_for_rrtmgp_radiation_scheme)
-[tv_lay]
- standard_name = virtual_temperature
- long_name = layer virtual temperature
- units = K
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (flag_for_rrtmgp_radiation_scheme)
-[relhum]
- standard_name = relative_humidity
- long_name = layer relative humidity
- units = frac
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (flag_for_rrtmgp_radiation_scheme)
-[deltaZ]
- standard_name = layer_thickness
- long_name = layer_thickness
- units = m
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (flag_for_rrtmgp_radiation_scheme)
-[tracer]
- standard_name = chemical_tracers
- long_name = chemical tracers
- units = g g-1
- dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_tracers)
- type = real
- kind = kind_phys
- active = (flag_for_rrtmgp_radiation_scheme)
-[cloud_overlap_param]
- standard_name = cloud_overlap_param
- long_name = cloud overlap parameter for RRTMGP (but not for RRTMG)
- units = km
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (flag_for_rrtmgp_radiation_scheme)
-[precip_overlap_param]
- standard_name = precip_overlap_param
- long_name = precipitation overlap parameter
- units = km
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (flag_for_rrtmgp_radiation_scheme)
-[fluxlwUP_allsky]
- standard_name = RRTMGP_lw_flux_profile_upward_allsky
- long_name = RRTMGP upward longwave all-sky flux profile
- units = W m-2
- dimensions = (horizontal_loop_extent,vertical_interface_dimension)
- type = real
- kind = kind_phys
- active = (flag_for_rrtmgp_radiation_scheme)
-[fluxlwDOWN_allsky]
- standard_name = RRTMGP_lw_flux_profile_downward_allsky
- long_name = RRTMGP downward longwave all-sky flux profile
- units = W m-2
- dimensions = (horizontal_loop_extent,vertical_interface_dimension)
- type = real
- kind = kind_phys
- active = (flag_for_rrtmgp_radiation_scheme)
-[fluxlwUP_clrsky]
- standard_name = RRTMGP_lw_flux_profile_upward_clrsky
- long_name = RRTMGP upward longwave clr-sky flux profile
- units = W m-2
- dimensions = (horizontal_loop_extent,vertical_interface_dimension)
- type = real
- kind = kind_phys
- active = (flag_for_rrtmgp_radiation_scheme)
-[fluxlwDOWN_clrsky]
- standard_name = RRTMGP_lw_flux_profile_downward_clrsky
- long_name = RRTMGP downward longwave clr-sky flux profile
- units = W m-2
- dimensions = (horizontal_loop_extent,vertical_interface_dimension)
- type = real
- kind = kind_phys
- active = (flag_for_rrtmgp_radiation_scheme)
-[fluxswUP_allsky]
- standard_name = RRTMGP_sw_flux_profile_upward_allsky
- long_name = RRTMGP upward shortwave all-sky flux profile
- units = W m-2
- dimensions = (horizontal_loop_extent,vertical_interface_dimension)
- type = real
- kind = kind_phys
- active = (flag_for_rrtmgp_radiation_scheme)
-[fluxswDOWN_allsky]
- standard_name = RRTMGP_sw_flux_profile_downward_allsky
- long_name = RRTMGP downward shortwave all-sky flux profile
- units = W m-2
- dimensions = (horizontal_loop_extent,vertical_interface_dimension)
- type = real
- kind = kind_phys
- active = (flag_for_rrtmgp_radiation_scheme)
-[fluxswUP_clrsky]
- standard_name = RRTMGP_sw_flux_profile_upward_clrsky
- long_name = RRTMGP upward shortwave clr-sky flux profile
- units = W m-2
- dimensions = (horizontal_loop_extent,vertical_interface_dimension)
- type = real
- kind = kind_phys
- active = (flag_for_rrtmgp_radiation_scheme)
-[fluxswDOWN_clrsky]
- standard_name = RRTMGP_sw_flux_profile_downward_clrsky
- long_name = RRTMGP downward shortwave clr-sky flux profile
- units = W m-2
- dimensions = (horizontal_loop_extent,vertical_interface_dimension)
- type = real
- kind = kind_phys
- active = (flag_for_rrtmgp_radiation_scheme)
-[flxprf_lw]
- standard_name = RRTMGP_lw_fluxes
- long_name = lw fluxes total sky / csk and up / down at levels
- units = W m-2
- dimensions = (horizontal_loop_extent,vertical_interface_dimension)
- type = proflw_type
- active = (flag_for_rrtmgp_radiation_scheme)
-[flxprf_sw]
- standard_name = RRTMGP_sw_fluxes
- long_name = sw fluxes total sky / csk and up / down at levels
- units = W m-2
- dimensions = (horizontal_loop_extent,vertical_interface_dimension)
- type = profsw_type
- active = (flag_for_rrtmgp_radiation_scheme)
-[aerosolslw]
- standard_name = RRTMGP_aerosol_optical_properties_for_longwave_bands_01_16
- long_name = aerosol optical properties for longwave bands 01-16
- units = mixed
- dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_longwave_bands,number_of_aerosol_output_fields_for_longwave_radiation)
- type = real
- kind = kind_phys
- active = (flag_for_rrtmgp_radiation_scheme)
-[aerosolslw(:,:,:,1)]
- standard_name = RRTMGP_aerosol_optical_depth_for_longwave_bands_01_16
- long_name = aerosol optical depth for longwave bands 01-16
- units = none
- dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_longwave_bands)
- type = real
- kind = kind_phys
-[aerosolslw(:,:,:,2)]
- standard_name = RRTMGP_aerosol_single_scattering_albedo_for_longwave_bands_01_16
- long_name = aerosol single scattering albedo for longwave bands 01-16
- units = frac
- dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_longwave_bands)
- type = real
- kind = kind_phys
-[aerosolslw(:,:,:,3)]
- standard_name = RRTMGP_aerosol_asymmetry_parameter_for_longwave_bands_01_16
- long_name = aerosol asymmetry parameter for longwave bands 01-16
- units = none
- dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_longwave_bands)
- type = real
- kind = kind_phys
-[aerosolssw]
- standard_name = RRTMGP_aerosol_optical_properties_for_shortwave_bands_01_16
- long_name = aerosol optical properties for shortwave bands 01-16
- units = mixed
- dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_shortwave_bands, number_of_aerosol_output_fields_for_shortwave_radiation)
- type = real
- kind = kind_phys
- active = (flag_for_rrtmgp_radiation_scheme)
-[aerosolssw(:,:,:,1)]
- standard_name = RRTMGP_aerosol_optical_depth_for_shortwave_bands_01_16
- long_name = aerosol optical depth for shortwave bands 01-16
- units = none
- dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_shortwave_bands)
- type = real
- kind = kind_phys
-[aerosolssw(:,:,:,2)]
- standard_name = RRTMGP_aerosol_single_scattering_albedo_for_shortwave_bands_01_16
- long_name = aerosol single scattering albedo for shortwave bands 01-16
- units = frac
- dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_shortwave_bands)
- type = real
- kind = kind_phys
-[aerosolssw(:,:,:,3)]
- standard_name = RRTMGP_aerosol_asymmetry_parameter_for_shortwave_bands_01_16
- long_name = aerosol asymmetry parameter for shortwave bands 01-16
- units = none
- dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_shortwave_bands)
- type = real
- kind = kind_phys
-[precip_frac]
- standard_name = precipitation_fraction_by_layer
- long_name = precipitation fraction in each layer
- units = frac
- dimensions = (horizontal_loop_extent,vertical_layer_dimension)
- type = real
- kind = kind_phys
- active = (flag_for_rrtmgp_radiation_scheme)
-[sw_optical_props_clrsky]
- standard_name = shortwave_optical_properties_for_clear_sky
- long_name = Fortran DDT containing RRTMGP optical properties
- units = DDT
- dimensions = ()
- type = ty_optical_props_2str
- active = (flag_for_rrtmgp_radiation_scheme)
-[sw_optical_props_cloudsByBand]
- standard_name = shortwave_optical_properties_for_cloudy_atmosphere_by_band
- long_name = Fortran DDT containing RRTMGP optical properties
- units = DDT
- dimensions = ()
- type = ty_optical_props_2str
- active = (flag_for_rrtmgp_radiation_scheme)
-[sw_optical_props_precipByBand]
- standard_name = shortwave_optical_properties_for_precipitation_by_band
- long_name = Fortran DDT containing RRTMGP optical properties
- units = DDT
- dimensions = ()
- type = ty_optical_props_2str
- active = (flag_for_rrtmgp_radiation_scheme)
-[sw_optical_props_precip]
- standard_name = shortwave_optical_properties_for_precipitation
- long_name = Fortran DDT containing RRTMGP optical properties
- units = DDT
- dimensions = ()
- type = ty_optical_props_2str
- active = (flag_for_rrtmgp_radiation_scheme)
-[sw_optical_props_clouds]
- standard_name = shortwave_optical_properties_for_cloudy_atmosphere
- long_name = Fortran DDT containing RRTMGP optical properties
- units = DDT
- dimensions = ()
- type = ty_optical_props_2str
- active = (flag_for_rrtmgp_radiation_scheme)
-[sw_optical_props_aerosol]
- standard_name = shortwave_optical_properties_for_aerosols
- long_name = Fortran DDT containing RRTMGP optical properties
- units = DDT
- dimensions = ()
- type = ty_optical_props_2str
- active = (flag_for_rrtmgp_radiation_scheme)
-[gas_concentrations]
- standard_name = Gas_concentrations_for_RRTMGP_suite
- long_name = DDT containing gas concentrations for RRTMGP radiation scheme
- units = DDT
- dimensions = ()
- type = ty_gas_concs
- active = (flag_for_rrtmgp_radiation_scheme)
-[sources]
- standard_name = longwave_source_function
- long_name = Fortran DDT containing RRTMGP source functions
- units = DDT
- dimensions = ()
- type = ty_source_func_lw
- active = (flag_for_rrtmgp_radiation_scheme)
-[lw_optical_props_clrsky]
- standard_name = longwave_optical_properties_for_clear_sky
- long_name = Fortran DDT containing RRTMGP optical properties
- units = DDT
- dimensions = ()
- type = ty_optical_props_1scl
- active = (flag_for_rrtmgp_radiation_scheme)
-[lw_optical_props_clouds]
- standard_name = longwave_optical_properties_for_cloudy_atmosphere
- long_name = Fortran DDT containing RRTMGP optical properties
- units = DDT
- dimensions = ()
- type = ty_optical_props_2str
- active = (flag_for_rrtmgp_radiation_scheme)
-[lw_optical_props_precip]
- standard_name = longwave_optical_properties_for_precipitation
- long_name = Fortran DDT containing RRTMGP optical properties
- units = DDT
- dimensions = ()
- type = ty_optical_props_2str
- active = (flag_for_rrtmgp_radiation_scheme)
-[lw_optical_props_cloudsByBand]
- standard_name = longwave_optical_properties_for_cloudy_atmosphere_by_band
- long_name = Fortran DDT containing RRTMGP optical properties
- units = DDT
- dimensions = ()
- type = ty_optical_props_2str
- active = (flag_for_rrtmgp_radiation_scheme)
-[lw_optical_props_precipByBand]
- standard_name = longwave_optical_properties_for_precipitation_by_band
- long_name = Fortran DDT containing RRTMGP optical properties
- units = DDT
- dimensions = ()
- type = ty_optical_props_2str
- active = (flag_for_rrtmgp_radiation_scheme)
-[lw_optical_props_aerosol]
- standard_name = longwave_optical_properties_for_aerosols
- long_name = Fortran DDT containing RRTMGP optical properties
- units = DDT
- dimensions = ()
- type = ty_optical_props_1scl
- active = (flag_for_rrtmgp_radiation_scheme)
-[sfc_emiss_byband]
- standard_name = surface_emissivity_in_each_RRTMGP_LW_band
- long_name = surface emissivity in each RRTMGP LW band
- units = none
- dimensions = (number_of_longwave_bands,horizontal_loop_extent)
- type = real
- kind = kind_phys
- active = (flag_for_rrtmgp_radiation_scheme)
-[sec_diff_byband]
- standard_name = secant_of_diffusivity_angle_each_RRTMGP_LW_band
- long_name = secant of diffusivity angle in each RRTMGP LW band
- units = none
- dimensions = (number_of_longwave_bands,horizontal_loop_extent)
- type = real
- kind = kind_phys
- active = (flag_for_rrtmgp_radiation_scheme)
-[sfc_alb_nir_dir]
- standard_name = surface_albedo_nearIR_direct
- long_name = near-IR (direct) surface albedo (sfc_alb_nir_dir)
- units = none
- dimensions = (number_of_shortwave_bands,horizontal_loop_extent)
- type = real
- kind = kind_phys
- active = (flag_for_rrtmgp_radiation_scheme)
-[sfc_alb_nir_dif]
- standard_name = surface_albedo_nearIR_diffuse
- long_name = near-IR (diffuse) surface albedo (sfc_alb_nir_dif)
- units = none
- dimensions = (number_of_shortwave_bands,horizontal_loop_extent)
- type = real
- kind = kind_phys
- active = (flag_for_rrtmgp_radiation_scheme)
-[sfc_alb_uvvis_dir]
- standard_name = surface_albedo_uvvis_direct
- long_name = UVVIS (direct) surface albedo (sfc_alb_uvvis_dir)
- units = none
- dimensions = (number_of_shortwave_bands,horizontal_loop_extent)
- type = real
- kind = kind_phys
- active = (flag_for_rrtmgp_radiation_scheme)
-[sfc_alb_uvvis_dif]
- standard_name = surface_albedo_uvvis_diffuse
- long_name = UVVIS (diffuse) surface albedo (sfc_alb_uvvis_dif)
- units = none
- dimensions = (number_of_shortwave_bands,horizontal_loop_extent)
- type = real
- kind = kind_phys
- active = (flag_for_rrtmgp_radiation_scheme)
-[toa_src_lw]
- standard_name = toa_incident_lw_flux_by_spectral_point
- long_name = TOA longwave incident flux at each spectral points
- units = W m-2
- dimensions = (horizontal_loop_extent,number_of_longwave_spectral_points)
- type = real
- kind = kind_phys
- active = (flag_for_rrtmgp_radiation_scheme)
-[toa_src_sw]
- standard_name = toa_incident_sw_flux_by_spectral_point
- long_name = TOA shortwave incident flux at each spectral points
- units = W m-2
- dimensions = (horizontal_loop_extent,number_of_shortwave_spectral_points)
- type = real
- kind = kind_phys
- active = (flag_for_rrtmgp_radiation_scheme)
-[rtg_ozone_index]
- standard_name = vertically_diffused_tracer_index_of_ozone
- long_name = number of tracers
- units = count
- dimensions = ()
- type = integer
-
-########################################################################
-[ccpp-table-properties]
- name = GFS_data_type
- type = ddt
- dependencies =
-
-[ccpp-arg-table]
- name = GFS_data_type
- type = ddt
-[Statein]
- standard_name = GFS_statein_type_instance
- long_name = prognostic state data in from dycore
- units = DDT
- dimensions = ()
- type = GFS_statein_type
-[Stateout]
- standard_name = GFS_stateout_type_instance
- long_name = prognostic state or tendencies return to dycore
- units = DDT
- dimensions = ()
- type = GFS_stateout_type
-[Sfcprop]
- standard_name = GFS_sfcprop_type_instance
- long_name = surface fields
- units = DDT
- dimensions = ()
- type = GFS_sfcprop_type
-[Coupling]
- standard_name = GFS_coupling_type_instance
- long_name = fields to/from coupling with other components (land/ice/ocean)
- units = DDT
- dimensions = ()
- type = GFS_coupling_type
-[Grid]
- standard_name = GFS_grid_type_instance
- long_name = grid and interpolation related data
- units = DDT
- dimensions = ()
- type = GFS_grid_type
-[Tbd]
- standard_name = GFS_tbd_type_instance
- long_name = to be determined data that doesn't fit in any one container
- units = DDT
- dimensions = ()
- type = GFS_tbd_type
-[Cldprop]
- standard_name = GFS_cldprop_type_instance
- long_name = cloud fields needed by radiation from physics
- units = DDT
- dimensions = ()
- type = GFS_cldprop_type
-[Radtend]
- standard_name = GFS_radtend_type_instance
- long_name = radiation tendencies needed in physics
- units = DDT
- dimensions = ()
- type = GFS_radtend_type
-[Intdiag]
- standard_name = GFS_diag_type_instance
- long_name = fields targeted for diagnostic output
- units = DDT
- dimensions = ()
- type = GFS_diag_type
-
-########################################################################
-[ccpp-table-properties]
- name = GFS_typedefs
- type = module
- relative_path = ../../ccpp/physics/physics
- dependencies = machine.F,physcons.F90,radlw_param.f,radsw_param.f,GFDL_parse_tracers.F90
- dependencies = rte-rrtmgp/rrtmgp/mo_gas_optics_rrtmgp.F90,rte-rrtmgp/rte/mo_optical_props.F90,rte-rrtmgp/extensions/cloud_optics/mo_cloud_optics.F90
- dependencies = rte-rrtmgp/rrtmgp/mo_gas_concentrations.F90,rte-rrtmgp/rte/mo_rte_config.F90,rte-rrtmgp/rte/mo_source_functions.F90
+ name = GFS_typedefs
+ 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
[ccpp-arg-table]
name = GFS_typedefs
@@ -10842,12 +7970,6 @@
units = DDT
dimensions = ()
type = GFS_coupling_type
-[GFS_data_type]
- standard_name = GFS_data_type
- long_name = definition of type GFS_data_type
- units = DDT
- dimensions = ()
- type = GFS_data_type
[GFS_diag_type]
standard_name = GFS_diag_type
long_name = definition of type GFS_diag_type
@@ -10860,12 +7982,6 @@
units = DDT
dimensions = ()
type = GFS_grid_type
-[GFS_interstitial_type]
- standard_name = GFS_interstitial_type
- long_name = definition of type GFS_interstitial_type
- units = DDT
- dimensions = ()
- type = GFS_interstitial_type
[GFS_radtend_type]
standard_name = GFS_radtend_type
long_name = definition of type GFS_radtend_type
diff --git a/scm/src/scm_setup.F90 b/scm/src/scm_setup.F90
index b467c019d..30ebf3d47 100644
--- a/scm/src/scm_setup.F90
+++ b/scm/src/scm_setup.F90
@@ -288,8 +288,8 @@ subroutine GFS_suite_setup (Model, Statein, Stateout, Sfcprop,
GFS_sfcprop_type, GFS_coupling_type, &
GFS_control_type, GFS_grid_type, &
GFS_tbd_type, GFS_cldprop_type, &
- GFS_radtend_type, GFS_diag_type, &
- GFS_interstitial_type
+ GFS_radtend_type, GFS_diag_type
+ use CCPP_typedefs, only: GFS_interstitial_type
use physcons, only: pi => con_pi
diff --git a/scm/src/scm_time_integration.F90 b/scm/src/scm_time_integration.F90
index 85ecb0e96..4e5743c14 100644
--- a/scm/src/scm_time_integration.F90
+++ b/scm/src/scm_time_integration.F90
@@ -6,7 +6,7 @@ module scm_time_integration
use scm_kinds, only: sp, dp, qp
use scm_forcing
-use ccpp_api, only: ccpp_t
+use ccpp_types, only: ccpp_t
use :: ccpp_static_api, &
only: ccpp_physics_timestep_init, &
ccpp_physics_run, &
diff --git a/scm/src/scm_type_defs.F90 b/scm/src/scm_type_defs.F90
index 9b9147045..ea9aa951f 100644
--- a/scm/src/scm_type_defs.F90
+++ b/scm/src/scm_type_defs.F90
@@ -18,10 +18,10 @@ module scm_type_defs
GFS_cldprop_type, &
GFS_radtend_type, &
GFS_diag_type, &
- GFS_interstitial_type, &
GFS_init_type
+ use CCPP_typedefs, only: GFS_interstitial_type
use machine, only: kind_phys
- use ccpp_api, only: ccpp_t
+ use ccpp_types, only: ccpp_t
implicit none
diff --git a/scm/src/scm_type_defs.meta b/scm/src/scm_type_defs.meta
index 8ea6d6080..2a11f7d99 100644
--- a/scm/src/scm_type_defs.meta
+++ b/scm/src/scm_type_defs.meta
@@ -1,7 +1,7 @@
[ccpp-table-properties]
name = physics_type
type = ddt
- dependencies = GFS_typedefs.F90
+ dependencies = GFS_typedefs.F90,CCPP_typedefs.F90
[ccpp-arg-table]
name = physics_type
@@ -77,7 +77,7 @@
[ccpp-table-properties]
name = scm_type_defs
type = module
- dependencies = scm_kinds.F90,GFS_typedefs.F90,../../ccpp/physics/physics/machine.F,../../ccpp/framework/src/ccpp_api.F90
+ dependencies = scm_kinds.F90,GFS_typedefs.F90,CCPP_typedefs.F90,../../ccpp/physics/physics/machine.F
[ccpp-arg-table]
name = scm_type_defs