diff --git a/examples/suite_FV3_test.xml b/examples/suite_FV3_test.xml index 3a1f7345..c5ba02f5 100644 --- a/examples/suite_FV3_test.xml +++ b/examples/suite_FV3_test.xml @@ -7,10 +7,33 @@ FV3_test + + + GFS_rrtmg_setup + + + + + GFS_suite_interstitial_rad_reset + GFS_rrtmg_pre + rrtmg_sw_pre + rrtmg_sw + rrtmg_sw_post + rrtmg_lw_pre + rrtmg_lw + rrtmg_lw_post + GFS_rrtmg_post + + + + + + GFS_suite_interstitial_phys_reset + hedmf + samfdeepcnv cnvc90 - mp_thompson_hrrr diff --git a/examples/suite_FV3_test_thompson.xml b/examples/suite_FV3_test_thompson.xml new file mode 100644 index 00000000..f1ee3333 --- /dev/null +++ b/examples/suite_FV3_test_thompson.xml @@ -0,0 +1,41 @@ + + + + + + + FV3_test + + + + + GFS_rrtmg_setup + + + + + GFS_suite_interstitial_rad_reset + GFS_rrtmg_pre + rrtmg_sw_pre + rrtmg_sw + rrtmg_sw_post + rrtmg_lw_pre + rrtmg_lw + rrtmg_lw_post + GFS_rrtmg_post + + + + + + + + GFS_suite_interstitial_phys_reset + hedmf + samfdeepcnv + cnvc90 + mp_thompson_hrrr + + + + diff --git a/scripts/ccpp_prebuild_config_FV3.py b/scripts/ccpp_prebuild_config_FV3.py index a91fbe25..3bc5326a 100755 --- a/scripts/ccpp_prebuild_config_FV3.py +++ b/scripts/ccpp_prebuild_config_FV3.py @@ -16,41 +16,42 @@ # Add all physics scheme dependencies relative to basedir - note that these are all violations # of the CCPP requirement to not use any external modules except Fortran standard modules! SCHEME_FILES_DEPENDENCIES = [ -# 'ccpp/physics/physics/GFDL_parse_tracers.F90', + 'ccpp/physics/physics/GFDL_parse_tracers.F90', # 'ccpp/physics/physics/date_def.f', 'ccpp/physics/physics/funcphys.f90', -# 'ccpp/physics/physics/gfs_phy_tracer_config.f', -# 'ccpp/physics/physics/gocart_tracer_config_stub.f', -# 'ccpp/physics/physics/h2o_def.f', -# 'ccpp/physics/physics/iounitdef.f', + 'ccpp/physics/physics/gfs_phy_tracer_config.f', + 'ccpp/physics/physics/gocart_tracer_config_stub.f', + 'ccpp/physics/physics/h2o_def.f', + 'ccpp/physics/physics/iounitdef.f', 'ccpp/physics/physics/machine.F', # DH should this be in FV3/gfsphysics/physics/physparam.f ? -# 'ccpp/physics/physics/mersenne_twister.f', + 'ccpp/physics/physics/mersenne_twister.f', 'ccpp/physics/physics/mfpbl.f', -# 'ccpp/physics/physics/module_bfmicrophysics.f', + 'ccpp/physics/physics/module_bfmicrophysics.f', # 'ccpp/physics/physics/module_nst_model.f90', # 'ccpp/physics/physics/module_nst_parameters.f90', # 'ccpp/physics/physics/module_nst_water_prop.f90', 'ccpp/physics/physics/module_mp_thompson_hrrr_radar.F90', 'ccpp/physics/physics/module_mp_thompson_hrrr.F90', # 'ccpp/physics/physics/namelist_soilveg.f', -# 'ccpp/physics/physics/ozne_def.f', + 'ccpp/physics/physics/ozne_def.f', 'ccpp/physics/physics/physcons.f90', 'ccpp/physics/physics/physparam.f', # DH should this be in FV3/gfsphysics/physics/physparam.f ? -# 'ccpp/physics/physics/radcons.f90', -# 'ccpp/physics/physics/radiation_aerosols.f', -# 'ccpp/physics/physics/radiation_astronomy.f', -# 'ccpp/physics/physics/radiation_clouds.f', -# 'ccpp/physics/physics/radiation_gases.f', -# 'ccpp/physics/physics/radiation_surface.f', -# 'ccpp/physics/physics/radlw_datatb.f', - 'ccpp/physics/physics/radlw_param.f', # DH should this be in FV3/gfsphysics/physics/radlw_param.f -# 'ccpp/physics/physics/radsw_datatb.f', - 'ccpp/physics/physics/radsw_param.f', # DH should this be in FV3/gfsphysics/physics/radsw_param.f -# 'ccpp/physics/physics/rascnvv2.f', + 'ccpp/physics/physics/radcons.f90', + 'ccpp/physics/physics/radiation_aerosols.f', + 'ccpp/physics/physics/radiation_astronomy.f', + 'ccpp/physics/physics/radiation_clouds.f', + 'ccpp/physics/physics/radiation_gases.f', + 'ccpp/physics/physics/radiation_surface.f', + 'ccpp/physics/physics/radlw_datatb.f', + 'ccpp/physics/physics/radlw_param.f', + 'ccpp/physics/physics/radsw_datatb.f', + 'ccpp/physics/physics/radsw_param.f', + 'ccpp/physics/physics/rascnvv2.f', # 'ccpp/physics/physics/sflx.f', + 'ccpp/physics/physics/surface_perturbation.F90', 'ccpp/physics/physics/tridi.f', -# 'ccpp/physics/physics/wam_f107_kp_mod.f90', -# 'FV3/gfsphysics/GFS_layer/GFS_typedefs.F90', + 'ccpp/physics/physics/wam_f107_kp_mod.f90', + 'FV3/gfsphysics/GFS_layer/GFS_typedefs.F90', ] # Add all physics scheme files relative to basedir @@ -62,11 +63,12 @@ # 'ccpp/physics/physics/GFS_PBL_generic.f90', # 'ccpp/physics/physics/GFS_SCNV_generic.f90', # 'ccpp/physics/physics/GFS_calpreciptype.f90', -# 'ccpp/physics/physics/GFS_debug.F90', -# 'ccpp/physics/physics/GFS_rrtmg_post.F90', -# 'ccpp/physics/physics/GFS_rrtmg_pre.F90', + 'ccpp/physics/physics/GFS_debug.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_stochastics.f90', -# 'ccpp/physics/physics/GFS_suite_interstitial.ccpp.F90', + 'ccpp/physics/physics/GFS_suite_interstitial.F90', # 'ccpp/physics/physics/GFS_surface_generic.f90', # 'ccpp/physics/physics/GFS_surface_loop_control.f', # 'ccpp/physics/physics/GFS_zhao_carr_pre.f90', @@ -82,13 +84,13 @@ 'ccpp/physics/physics/mp_thompson_hrrr.F90', # 'ccpp/physics/physics/ozphys.f', # 'ccpp/physics/physics/precpd.f', -# 'ccpp/physics/physics/radlw_main.f', -# 'ccpp/physics/physics/radsw_main.f', + 'ccpp/physics/physics/radlw_main.f', + 'ccpp/physics/physics/radsw_main.f', # 'ccpp/physics/physics/rayleigh_damp.f', -# '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/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/sfc_diag.f', # 'ccpp/physics/physics/sfc_diff.f', # 'ccpp/physics/physics/sfc_drv.f', @@ -156,6 +158,8 @@ 'mean_effective_radius_for_rain_drop', 'cloud_snow_water_path', 'mean_effective_radius_for_snow_flake', + 'cloud_optical_depth_weighted', + 'cloud_optical_depth_layers_678', ], }, 'rrtmg_lw' : { @@ -169,6 +173,8 @@ 'mean_effective_radius_for_rain_drop', 'cloud_snow_water_path', 'mean_effective_radius_for_snow_flake', + 'cloud_optical_depth_weighted', + 'cloud_optical_depth_layers_678', ], }, 'mp_thompson_hrrr' : { @@ -222,24 +228,18 @@ use ccpp_api, only: ccpp_error ''' -## Modules to load for auto-generated ccpp_field_get code -## in the physics scheme cap (e.g. derived data types) -#MODULE_USE_TEMPLATE_SCHEME_CAP = \ -#''' -# use machine, only: kind_phys -# use module_radlw_parameters, only: sfcflw_type, topflw_type -# use module_radsw_parameters, only: cmpfsw_type, sfcfsw_type, topfsw_type -# use GFS_typedefs, only: GFS_statein_type, GFS_stateout_type, & -# 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 -#''' - # Modules to load for auto-generated ccpp_field_get code # in the physics scheme cap (e.g. derived data types) MODULE_USE_TEMPLATE_SCHEME_CAP = \ ''' use machine, only: kind_phys + use machine, only: kind_phys + use module_radlw_parameters, only: sfcflw_type, topflw_type + use module_radsw_parameters, only: cmpfsw_type, sfcfsw_type, topfsw_type + use GFS_typedefs, only: GFS_statein_type, GFS_stateout_type, & + 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 ''' diff --git a/scripts/ccpp_prebuild_config_SCM.py b/scripts/ccpp_prebuild_config_SCM.py index fd5ffaaf..b4933da0 100755 --- a/scripts/ccpp_prebuild_config_SCM.py +++ b/scripts/ccpp_prebuild_config_SCM.py @@ -32,7 +32,7 @@ 'ccpp-physics/physics/GFS_rad_time_vary.scm.f90', 'ccpp-physics/physics/GFS_rrtmg_post.F90', 'ccpp-physics/physics/GFS_rrtmg_pre.F90', - 'ccpp-physics/physics/GFS_suite_interstitial.ccpp.F90', + 'ccpp-physics/physics/GFS_suite_interstitial.F90', 'ccpp-physics/physics/GFS_surface_generic.f90', 'ccpp-physics/physics/GFS_surface_loop_control.f', 'ccpp-physics/physics/GFS_zhao_carr_pre.f90', @@ -97,6 +97,8 @@ 'mean_effective_radius_for_rain_drop', 'cloud_snow_water_path', 'mean_effective_radius_for_snow_flake', + 'cloud_optical_depth_weighted', + 'cloud_optical_depth_layers_678', ], }, 'rrtmg_lw' : { @@ -110,6 +112,8 @@ 'mean_effective_radius_for_rain_drop', 'cloud_snow_water_path', 'mean_effective_radius_for_snow_flake', + 'cloud_optical_depth_weighted', + 'cloud_optical_depth_layers_678', ], }, #'subroutine_name_1' : 'all', diff --git a/src/ccpp_fcall.F90 b/src/ccpp_fcall.F90 index 2600e65e..964a92c4 100644 --- a/src/ccpp_fcall.F90 +++ b/src/ccpp_fcall.F90 @@ -178,7 +178,7 @@ subroutine ccpp_run_suite(suite, cdata, stage, ierr) ierr = 0 - call ccpp_debug('Called ccpp_run_suite') + call ccpp_debug('Called ccpp_run_suite for stage ' // trim(stage)) do i=1,suite%groups_max call ccpp_run_group(suite%groups(i), cdata, stage=stage, ierr=ierr) @@ -243,7 +243,7 @@ subroutine ccpp_run_group(group, cdata, stage, ierr) ierr = 0 - call ccpp_debug('Called ccpp_run_group') + call ccpp_debug('Called ccpp_run_group for stage ' // trim(stage)) do i=1,group%subcycles_max call ccpp_run_subcycle(group%subcycles(i), cdata, stage=stage, ierr=ierr) @@ -307,7 +307,7 @@ subroutine ccpp_run_subcycle(subcycle, cdata, stage, ierr) ierr = 0 - call ccpp_debug('Called ccpp_run_subcycle') + call ccpp_debug('Called ccpp_run_subcycle for stage ' // trim(stage)) do i=1,subcycle%loop do j=1,subcycle%schemes_max