Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
73666b7
Merge pull request #1 from NCAR/master
dustinswales Sep 19, 2019
7bf0bd4
Merge branch 'dtc/develop' of https://github.com/NCAR/gmtb-scm
dustinswales Dec 4, 2019
3d2b125
New branch. History corrupted at some point...
dustinswales Dec 4, 2019
3f0a1de
Seperated RRTMGP cloud-optics scheme into three new schemes, aerosol-…
dustinswales Dec 13, 2019
a10258f
Updated submodule
dustinswales Dec 13, 2019
db77999
Moved GFS_rrtmgp_lw_pre.F90 to rrtmgp_lw_pre.F90
dustinswales Dec 31, 2019
40c9410
Added by-band fluxes to output.
dustinswales Jan 14, 2020
cdb49ee
Updated submodules
dustinswales Feb 11, 2020
2aacbeb
Updated .gitmodules
dustinswales Feb 11, 2020
8e093ec
Changes to ccpp prebuild script. Some rte-rrtmgp source files have ch…
dustinswales Feb 11, 2020
d3b9a52
Merge branch 'master' of https://github.com/NCAR/gmtb-scm into rrtmgp…
dustinswales Feb 12, 2020
4118459
Updated submodule.
dustinswales Feb 12, 2020
e860c96
Cleaned up a tad.
dustinswales Feb 14, 2020
f8c7253
Merge branch 'dtc/develop-release-merge' into grant-rrtmgp
grantfirl Mar 20, 2020
1fe7d91
update SCM code to work with RRTMGP (starting from dustinswales fork,…
grantfirl Mar 21, 2020
f49d5c4
remove some of dustinswales testing files: twpice_[ice,liq]cloud.nc, …
grantfirl Mar 21, 2020
58029ba
Merge branch 'dtc/develop' into grant-rrtmgp
grantfirl Mar 21, 2020
d657b6c
update ccpp_prebuild_config.py in accordance with FV3 version; update…
grantfirl Mar 25, 2020
2824804
Update submodule pointers for ccpp-framework and ccpp-physics
climbfuji Mar 26, 2020
c09db8d
Change logic on how/where kind and type definitions are compiled
climbfuji Mar 26, 2020
f40c9f1
Merge pull request #3 from climbfuji/grant-rrtmgp_dom-mods
grantfirl Mar 26, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,3 @@ non-tracked_files/
scm/data/physics_input_data/qr_acr*.dat
scm/data/physics_input_data/freezeH2O.dat
scm/data/physics_input_data/CCN_ACTIVATE.BIN

118 changes: 115 additions & 3 deletions ccpp/config/ccpp_prebuild_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,22 @@

HOST_MODEL_IDENTIFIER = "SCM"

# Add all files with metadata tables on the host model side,
# relative to basedir = top-level directory of host model
# Add all files with metadata tables on the host model side and in CCPP,
# relative to basedir = top-level directory of host model. This includes
# kind and type definitions used in CCPP physics.
VARIABLE_DEFINITION_FILES = [
'ccpp/physics/physics/machine.F',
'ccpp/physics/physics/radsw_param.f',
'ccpp/physics/physics/radlw_param.f',
'scm/src/GFS_typedefs.F90',
'scm/src/gmtb_scm_kinds.F90',
'scm/src/gmtb_scm_type_defs.F90',
'scm/src/gmtb_scm_physical_constants.F90'
'scm/src/gmtb_scm_physical_constants.F90',
'ccpp/physics/physics/rte-rrtmgp/rrtmgp/mo_gas_optics_rrtmgp.F90',
'ccpp/physics/physics/rte-rrtmgp/rrtmgp/mo_gas_concentrations.F90',
'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'
]

TYPEDEFS_NEW_METADATA = {
Expand Down Expand Up @@ -55,6 +62,27 @@
'gmtb_scm_type_defs' : '',
'physics_type' : 'physics',
},
'mo_gas_concentrations' : {
'ty_gas_concs' : '',
'mo_gas_concentrations' : '',
},
'mo_gas_optics_rrtmgp' : {
'ty_gas_optics_rrtmgp' : '',
'mo_gas_optics_rrtmgp' : '',
},
'mo_optical_props' : {
'ty_optical_props_1scl' : '',
'ty_optical_props_2str' : '',
'mo_optical_props' : '',
},
'mo_cloud_optics' : {
'ty_cloud_optics' : '',
'mo_cloud_optics' : '',
},
'mo_source_functions' : {
'ty_source_func_lw' : '',
'mo_source_functions' : '',
},
}

# Add all physics scheme dependencies relative to basedir - note that the CCPP
Expand Down Expand Up @@ -142,9 +170,37 @@
'ccpp/physics/physics/namelist_soilveg_ruc.F90',
'ccpp/physics/physics/set_soilveg_ruc.F90',
'ccpp/physics/physics/module_soil_pre.F90',
# RRTMGP
'ccpp/physics/physics/rte-rrtmgp/rrtmgp/mo_gas_concentrations.F90',
'ccpp/physics/physics/rte-rrtmgp/rrtmgp/mo_gas_optics.F90',
'ccpp/physics/physics/rte-rrtmgp/rrtmgp/mo_gas_optics_rrtmgp.F90',
'ccpp/physics/physics/rte-rrtmgp/rrtmgp/mo_rrtmgp_constants.F90',
'ccpp/physics/physics/rte-rrtmgp/rrtmgp/mo_rrtmgp_util_reorder.F90',
'ccpp/physics/physics/rte-rrtmgp/rrtmgp/mo_rrtmgp_util_string.F90',
'ccpp/physics/physics/rte-rrtmgp/rrtmgp/kernels/mo_gas_optics_kernels.F90',
'ccpp/physics/physics/rte-rrtmgp/rrtmgp/kernels/mo_rrtmgp_util_reorder_kernels.F90',
'ccpp/physics/physics/rte-rrtmgp/rte/mo_fluxes.F90',
'ccpp/physics/physics/rte-rrtmgp/rte/mo_rte_util_array.F90',
'ccpp/physics/physics/rte-rrtmgp/rte/mo_optical_props.F90',
'ccpp/physics/physics/rte-rrtmgp/rte/mo_rte_kind.F90',
'ccpp/physics/physics/rte-rrtmgp/rte/mo_rte_lw.F90',
'ccpp/physics/physics/rte-rrtmgp/rte/mo_rte_sw.F90',
'ccpp/physics/physics/rte-rrtmgp/rte/mo_source_functions.F90',
'ccpp/physics/physics/rte-rrtmgp/rte/kernels/mo_fluxes_broadband_kernels.F90',
'ccpp/physics/physics/rte-rrtmgp/rte/kernels/mo_optical_props_kernels.F90',
'ccpp/physics/physics/rte-rrtmgp/rte/kernels/mo_rte_solver_kernels.F90',
'ccpp/physics/physics/rte-rrtmgp/extensions/mo_compute_bc.F90',
'ccpp/physics/physics/rte-rrtmgp/extensions/mo_fluxes_byband.F90',
'ccpp/physics/physics/rte-rrtmgp/extensions/mo_fluxes_byband_kernels.F90',
'ccpp/physics/physics/rte-rrtmgp/extensions/mo_fluxes_bygpoint.F90',
'ccpp/physics/physics/rte-rrtmgp/extensions/mo_heating_rates.F90',
'ccpp/physics/physics/rte-rrtmgp/extensions/mo_rrtmgp_clr_all_sky.F90',
'ccpp/physics/physics/rte-rrtmgp/extensions/cloud_optics/mo_cloud_optics.F90',
'ccpp/physics/physics/rte-rrtmgp/extensions/cloud_optics/mo_cloud_sampling.F90',
# derived data type definitions
'scm/src/GFS_typedefs.F90',
'scm/src/gmtb_scm_kinds.F90',
'scm/src/gmtb_scm_physical_constants.F90',
'scm/src/gmtb_scm_type_defs.F90',
]

Expand Down Expand Up @@ -233,12 +289,37 @@
'ccpp/physics/physics/sfc_sice.f' : ['physics'],
'ccpp/physics/physics/mp_fer_hires.F90' : ['physics'],
'ccpp/physics/physics/gmtb_scm_sfc_flux_spec.F90' : ['physics'],
# RRTMGP
'ccpp/physics/physics/rrtmg_lw_cloud_optics.F90' : ['physics'],
'ccpp/physics/physics/rrtmg_sw_cloud_optics.F90' : ['physics'],
'ccpp/physics/physics/rrtmgp_aux.F90' : ['physics'],
'ccpp/physics/physics/rrtmgp_lw_gas_optics.F90' : ['physics'],
'ccpp/physics/physics/rrtmgp_lw_cloud_optics.F90' : ['physics'],
'ccpp/physics/physics/rrtmgp_sw_gas_optics.F90' : ['physics'],
'ccpp/physics/physics/rrtmgp_sw_cloud_optics.F90' : ['physics'],
'ccpp/physics/physics/rrtmgp_sw_aerosol_optics.F90' : ['physics'],
'ccpp/physics/physics/rrtmgp_lw_rte.F90' : ['physics'],
'ccpp/physics/physics/rrtmgp_lw_cloud_sampling.F90' : ['physics'],
'ccpp/physics/physics/rrtmgp_sw_rte.F90' : ['physics'],
'ccpp/physics/physics/rrtmgp_sw_cloud_sampling.F90' : ['physics'],
'ccpp/physics/physics/rrtmgp_lw_aerosol_optics.F90' : ['physics'],
'ccpp/physics/physics/GFS_rrtmgp_setup.F90' : ['physics'],
'ccpp/physics/physics/GFS_rrtmgp_pre.F90' : ['physics'],
'ccpp/physics/physics/rrtmgp_lw_pre.F90' : ['physics'],
'ccpp/physics/physics/GFS_rrtmgp_sw_pre.F90' : ['physics'],
'ccpp/physics/physics/GFS_rrtmgp_lw_post.F90' : ['physics'],
'ccpp/physics/physics/GFS_rrtmgp_sw_post.F90' : ['physics'],
}

# Default build dir, relative to current working directory,
# if not specified as command-line argument
DEFAULT_BUILD_DIR = 'scm/bin'

# Auto-generated makefile/cmakefile snippets that contain all type definitions
TYPEDEFS_MAKEFILE = 'ccpp/physics/CCPP_TYPEDEFS.mk'
TYPEDEFS_CMAKEFILE = 'ccpp/physics/CCPP_TYPEDEFS.cmake'
TYPEDEFS_SOURCEFILE = 'ccpp/physics/CCPP_TYPEDEFS.sh'

# Auto-generated makefile/cmakefile snippets that contain all schemes
SCHEMES_MAKEFILE = 'ccpp/physics/CCPP_SCHEMES.mk'
SCHEMES_CMAKEFILE = 'ccpp/physics/CCPP_SCHEMES.cmake'
Expand Down Expand Up @@ -328,6 +409,37 @@
'rime_factor',
],
},
'rrtmgp_sw_rte' : {
'rrtmgp_sw_rte_run' : [
'components_of_surface_downward_shortwave_fluxes',
'sw_fluxes_sfc',
'sw_fluxes_toa',
],
},
'GFS_rrtmgp_sw_post' : {
'GFS_rrtmgp_sw_post_run' : [
'components_of_surface_downward_shortwave_fluxes',
'sw_fluxes_sfc',
'sw_fluxes_toa',
],
},
'rrtmgp_lw_rte' : {
'rrtmgp_lw_rte_run' : [
'lw_fluxes_sfc',
'lw_fluxes_toa',
],
},
'GFS_rrtmgp_lw_post' : {
'GFS_rrtmgp_lw_post_run' : [
'lw_fluxes_sfc',
'lw_fluxes_toa',
],
},
'GFS_rrtmgp_post' : {
'GFS_rrtmgp_post_run' : [
'components_of_surface_downward_shortwave_fluxes',
],
},
#'subroutine_name_1' : 'all',
#'subroutine_name_2' : 'none',
#'subroutine_name_2' : [ 'var1', 'var3'],
Expand Down
2 changes: 1 addition & 1 deletion ccpp/physics
Submodule physics updated 49 files
+4 −0 .gitmodules
+23 −9 CMakeLists.txt
+233 −0 physics/GFS_rrtmgp_lw_post.F90
+199 −0 physics/GFS_rrtmgp_lw_post.meta
+783 −0 physics/GFS_rrtmgp_pre.F90
+375 −0 physics/GFS_rrtmgp_pre.meta
+610 −0 physics/GFS_rrtmgp_setup.F90
+343 −0 physics/GFS_rrtmgp_setup.meta
+307 −0 physics/GFS_rrtmgp_sw_post.F90
+258 −0 physics/GFS_rrtmgp_sw_post.meta
+155 −0 physics/GFS_rrtmgp_sw_pre.F90
+194 −0 physics/GFS_rrtmgp_sw_pre.meta
+8 −8 physics/dcyc2.meta
+2 −4 physics/module_MYNNPBL_wrapper.F90
+0 −9 physics/module_MYNNPBL_wrapper.meta
+4 −4 physics/moninedmf.meta
+4 −4 physics/moninedmf_hafs.meta
+6 −0 physics/radlw_param.meta
+6 −0 physics/radsw_param.meta
+821 −0 physics/rrtmg_lw_cloud_optics.F90
+2,412 −0 physics/rrtmg_sw_cloud_optics.F90
+23 −0 physics/rrtmgp_aux.F90
+100 −0 physics/rrtmgp_lw_aerosol_optics.F90
+166 −0 physics/rrtmgp_lw_aerosol_optics.meta
+372 −0 physics/rrtmgp_lw_cloud_optics.F90
+285 −0 physics/rrtmgp_lw_cloud_optics.meta
+128 −0 physics/rrtmgp_lw_cloud_sampling.F90
+114 −0 physics/rrtmgp_lw_cloud_sampling.meta
+338 −0 physics/rrtmgp_lw_gas_optics.F90
+210 −0 physics/rrtmgp_lw_gas_optics.meta
+91 −0 physics/rrtmgp_lw_pre.F90
+134 −0 physics/rrtmgp_lw_pre.meta
+170 −0 physics/rrtmgp_lw_rte.F90
+191 −0 physics/rrtmgp_lw_rte.meta
+118 −0 physics/rrtmgp_sw_aerosol_optics.F90
+182 −0 physics/rrtmgp_sw_aerosol_optics.meta
+370 −0 physics/rrtmgp_sw_cloud_optics.F90
+278 −0 physics/rrtmgp_sw_cloud_optics.meta
+135 −0 physics/rrtmgp_sw_cloud_sampling.F90
+130 −0 physics/rrtmgp_sw_cloud_sampling.meta
+371 −0 physics/rrtmgp_sw_gas_optics.F90
+244 −0 physics/rrtmgp_sw_gas_optics.meta
+215 −0 physics/rrtmgp_sw_rte.F90
+243 −0 physics/rrtmgp_sw_rte.meta
+1 −0 physics/rte-rrtmgp
+4 −4 physics/satmedmfvdif.meta
+4 −4 physics/satmedmfvdifq.meta
+1 −1 physics/ysuvdif.F90
+4 −4 physics/ysuvdif.meta
125 changes: 125 additions & 0 deletions ccpp/physics_namelists/input_GFS_v15p2_RRTMGP.nml
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
&gfs_physics_nml
fhzero = 6.
h2o_phys = .true.
ldiag3d = .true.
fhcyc = 24.
use_ufo = .true.
pre_rad = .false.
ncld = 5
imp_physics = 11
pdfcld = .false.
fhswr = 3600.
fhlwr = 3600.
ialb = 1
iems = 1
iaer = 111
ico2 = 2
isubc_sw = 2
isubc_lw = 2
isol = 2
lwhtr = .true.
swhtr = .true.
cnvgwd = .true.
shal_cnv = .true.
cal_pre = .false.
redrag = .true.
dspheat = .true.
hybedmf = .true.
random_clds = .false.
trans_trac = .true.
cnvcld = .true.
imfshalcnv = 2
imfdeepcnv = 2
cdmbgwd = 3.5,0.25
prslrd0 = 0.
ivegsrc = 1
isot = 1
debug = .false.
oz_phys = .false.
oz_phys_2015 = .true.
nstf_name = 2,1,0,0,0
nst_anl = .true.
psautco = 0.0008,0.0005
prautco = 0.00015,0.00015
lgfdlmprad = .true.
effr_in = .true.
do_sppt = .false.
do_shum = .false.
do_skeb = .false.
do_sfcperts = .false.
do_RRTMGP = .true.
active_gases = 'h2o_co2_o3_n2o_ch4_o2'
ngases = 6
rrtmgp_root = '../../ccpp/physics/physics/rte-rrtmgp/'
lw_file_gas = 'rrtmgp/data/rrtmgp-data-lw-g256-2018-12-04.nc'
lw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-lw.nc'
sw_file_gas = 'rrtmgp/data/rrtmgp-data-sw-g224-2018-12-04.nc'
sw_file_clouds = 'extensions/cloud_optics/rrtmgp-cloud-optics-coeffs-sw.nc'
rrtmgp_cld_optics = 0
rrtmgp_ngauss_ang = 3
rrtmgp_nrghice = 3
/

&gfdl_cloud_microphysics_nml
sedi_transport = .true.
do_sedi_heat = .false.
rad_snow = .true.
rad_graupel = .true.
rad_rain = .true.
const_vi = .F.
const_vs = .F.
const_vg = .F.
const_vr = .F.
vi_max = 1.
vs_max = 2.
vg_max = 12.
vr_max = 12.
qi_lim = 1.
prog_ccn = .false.
do_qa = .false.
fast_sat_adj = .false.
tau_l2v = 225.
tau_v2l = 150.
tau_g2v = 900.
rthresh = 10.e-6 ! This is a key parameter for cloud water
dw_land = 0.16
dw_ocean = 0.10
ql_gen = 1.0e-3
ql_mlt = 1.0e-3
qi0_crt = 8.0E-5
qs0_crt = 1.0e-3
tau_i2s = 1000.
c_psaci = 0.05
c_pgacs = 0.01
rh_inc = 0.30
rh_inr = 0.30
rh_ins = 0.30
ccn_l = 300.
ccn_o = 100.
c_paut = 0.5
c_cracw = 0.8
use_ppm = .false.
use_ccn = .true.
mono_prof = .true.
z_slope_liq = .true.
z_slope_ice = .true.
de_ice = .false.
fix_negative = .true.
icloud_f = 1
mp_time = 150.
/

&cires_ugwp_nml
knob_ugwp_solver = 2
knob_ugwp_source = 1,1,0,0
knob_ugwp_wvspec = 1,25,25,25
knob_ugwp_azdir = 2,4,4,4
knob_ugwp_stoch = 0,0,0,0
knob_ugwp_effac = 1,1,1,1
knob_ugwp_doaxyz = 1
knob_ugwp_doheat = 1
knob_ugwp_dokdis = 1
knob_ugwp_ndx4lh = 1
knob_ugwp_version = 0
launch_level = 25
/
88 changes: 88 additions & 0 deletions ccpp/suites/suite_SCM_GFS_v15p2_RRTMGP.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
<?xml version="1.0" encoding="UTF-8"?>

<suite name="SCM_GFS_v15p2_RRTMGP" lib="ccppphys" ver="4">
<group name="time_vary">
<subcycle loop="1">
<scheme>GFS_time_vary_pre</scheme>
<scheme>GFS_rrtmgp_setup</scheme>
<scheme>GFS_rad_time_vary</scheme>
<scheme>GFS_phys_time_vary</scheme>
</subcycle>
</group>
<group name="radiation">
<subcycle loop="1">
<scheme>GFS_suite_interstitial_rad_reset</scheme>
<scheme>GFS_rrtmgp_pre</scheme>
<scheme>GFS_rrtmgp_sw_pre</scheme>
<scheme>rrtmgp_sw_gas_optics</scheme>
<scheme>rrtmgp_sw_aerosol_optics</scheme>
<scheme>rrtmgp_sw_cloud_optics</scheme>
<scheme>rrtmgp_sw_cloud_sampling</scheme>
<scheme>rrtmgp_sw_rte</scheme>
<scheme>GFS_rrtmgp_sw_post</scheme>
<scheme>rrtmgp_lw_pre</scheme>
<scheme>rrtmgp_lw_gas_optics</scheme>
<scheme>rrtmgp_lw_aerosol_optics</scheme>
<scheme>rrtmgp_lw_cloud_optics</scheme>
<scheme>rrtmgp_lw_cloud_sampling</scheme>
<scheme>rrtmgp_lw_rte</scheme>
<scheme>GFS_rrtmgp_lw_post</scheme>
</subcycle>
</group>
<group name="physics">
<subcycle loop="1">
<scheme>GFS_suite_interstitial_phys_reset</scheme>
<scheme>GFS_suite_stateout_reset</scheme>
<scheme>get_prs_fv3</scheme>
<scheme>GFS_suite_interstitial_1</scheme>
<scheme>GFS_surface_generic_pre</scheme>
<scheme>GFS_surface_composites_pre</scheme>
<scheme>dcyc2t3</scheme>
<scheme>GFS_surface_composites_inter</scheme>
<scheme>GFS_suite_interstitial_2</scheme>
</subcycle>
<!-- Surface iteration loop -->
<subcycle loop="2">
<scheme>sfc_diff</scheme>
<scheme>GFS_surface_loop_control_part1</scheme>
<scheme>sfc_nst_pre</scheme>
<scheme>sfc_nst</scheme>
<scheme>sfc_nst_post</scheme>
<scheme>lsm_noah</scheme>
<scheme>sfc_sice</scheme>
<scheme>GFS_surface_loop_control_part2</scheme>
</subcycle>
<!-- End of surface iteration loop -->
<subcycle loop="1">
<scheme>GFS_surface_composites_post</scheme>
<scheme>sfc_diag</scheme>
<scheme>sfc_diag_post</scheme>
<scheme>GFS_surface_generic_post</scheme>
<scheme>GFS_PBL_generic_pre</scheme>
<scheme>hedmf</scheme>
<scheme>GFS_PBL_generic_post</scheme>
<scheme>GFS_GWD_generic_pre</scheme>
<scheme>cires_ugwp</scheme>
<scheme>cires_ugwp_post</scheme>
<scheme>GFS_GWD_generic_post</scheme>
<scheme>rayleigh_damp</scheme>
<scheme>GFS_suite_stateout_update</scheme>
<scheme>ozphys_2015</scheme>
<scheme>h2ophys</scheme>
<scheme>GFS_DCNV_generic_pre</scheme>
<scheme>get_phi_fv3</scheme>
<scheme>GFS_suite_interstitial_3</scheme>
<scheme>samfdeepcnv</scheme>
<scheme>GFS_DCNV_generic_post</scheme>
<scheme>GFS_SCNV_generic_pre</scheme>
<scheme>samfshalcnv</scheme>
<scheme>GFS_SCNV_generic_post</scheme>
<scheme>GFS_suite_interstitial_4</scheme>
<scheme>cnvc90</scheme>
<scheme>GFS_MP_generic_pre</scheme>
<scheme>gfdl_cloud_microphys</scheme>
<scheme>GFS_MP_generic_post</scheme>
<scheme>maximum_hourly_diagnostics</scheme>
</subcycle>
</group>
</suite>
Loading