Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ufs-dev PR34a #84

Merged
merged 5 commits into from
Mar 2, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
40 changes: 3 additions & 37 deletions ccpp/config/ccpp_prebuild_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,6 @@
'physics/physics/h2o_def.f',
'physics/physics/ozne_def.f',
'physics/physics/radiation_surface.f',
'physics/physics/rte-rrtmgp/rrtmgp/mo_gas_optics_rrtmgp.F90',
'physics/physics/rte-rrtmgp/rrtmgp/mo_gas_concentrations.F90',
'physics/physics/rte-rrtmgp/rte/mo_optical_props.F90',
'physics/physics/rte-rrtmgp/extensions/cloud_optics/mo_cloud_optics.F90',
'physics/physics/rte-rrtmgp/rte/mo_source_functions.F90',
'data/CCPP_typedefs.F90',
'data/GFS_typedefs.F90',
'data/CCPP_data.F90',
Expand Down Expand Up @@ -68,27 +63,6 @@
'GFS_stateout_type' : 'GFS_Data(cdata%blk_no)%Stateout',
'GFS_typedefs' : '',
},
'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 files relative to basedir
Expand Down Expand Up @@ -218,23 +192,15 @@
'physics/smoke/rrfs_smoke_postpbl.F90',
'physics/smoke/rrfs_smoke_lsdep_wrapper.F90',
# RRTMGP
'physics/physics/rrtmgp_lw_gas_optics.F90',
'physics/physics/rrtmgp_lw_cloud_optics.F90',
'physics/physics/rrtmgp_sw_gas_optics.F90',
'physics/physics/rrtmgp_sw_cloud_optics.F90',
'physics/physics/rrtmgp_aerosol_optics.F90',
'physics/physics/rrtmgp_lw_rte.F90',
'physics/physics/rrtmgp_sw_rte.F90',
'physics/physics/rrtmgp_lw_main.F90',
'physics/physics/rrtmgp_sw_main.F90',
'physics/physics/GFS_rrtmgp_setup.F90',
'physics/physics/GFS_rrtmgp_pre.F90',
'physics/physics/rrtmgp_lw_pre.F90',
'physics/physics/GFS_rrtmgp_lw_post.F90',
'physics/physics/rrtmgp_lw_cloud_sampling.F90',
'physics/physics/rrtmgp_sw_cloud_sampling.F90',
'physics/physics/GFS_cloud_diagnostics.F90',
'physics/physics/GFS_rrtmgp_cloud_mp.F90',
'physics/physics/GFS_rrtmgp_cloud_overlap.F90',
'physics/physics/GFS_rrtmgp_sw_post.F90'
'physics/physics/GFS_rrtmgp_post.F90'
]

# Default build dir, relative to current working directory,
Expand Down
191 changes: 28 additions & 163 deletions ccpp/data/CCPP_typedefs.F90

Large diffs are not rendered by default.

176 changes: 42 additions & 134 deletions ccpp/data/CCPP_typedefs.meta
Original file line number Diff line number Diff line change
Expand Up @@ -2755,145 +2755,53 @@
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
[vmr_o2]
standard_name = volume_mixing_ratio_for_o2
long_name = molar mixing ratio of o2 in with respect to dry air
units = 1
dimensions = (horizontal_loop_extent,vertical_layer_dimension)
type = real
kind = kind_phys
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
[vmr_h2o]
standard_name = volume_mixing_ratio_for_h2o
long_name = molar mixing ratio of h2o in with respect to dry air
units = 1
dimensions = (horizontal_loop_extent,vertical_layer_dimension)
type = real
kind = kind_phys
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
[vmr_o3]
standard_name = volume_mixing_ratio_for_o3
long_name = molar mixing ratio of o3 in with respect to dry air
units = 1
dimensions = (horizontal_loop_extent,vertical_layer_dimension)
type = real
kind = kind_phys
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
[vmr_ch4]
standard_name = volume_mixing_ratio_for_ch4
long_name = molar mixing ratio of ch4 in with respect to dry air
units = 1
dimensions = (horizontal_loop_extent,vertical_layer_dimension)
type = real
kind = kind_phys
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
[vmr_n2o]
standard_name = volume_mixing_ratio_for_n2o
long_name = molar mixing ratio of n2o in with respect to dry air
units = 1
dimensions = (horizontal_loop_extent,vertical_layer_dimension)
type = real
kind = kind_phys
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
[vmr_co2]
standard_name = volume_mixing_ratio_for_co2
long_name = molar mixing ratio of co2 in with respect to dry air
units = 1
dimensions = (horizontal_loop_extent,vertical_layer_dimension)
type = real
kind = kind_phys
active = (flag_for_rrtmgp_radiation_scheme)
[sfc_emiss_byband]
standard_name = surface_emissivity_in_each_RRTMGP_LW_band
Expand Down
15 changes: 12 additions & 3 deletions ccpp/data/GFS_typedefs.F90
Original file line number Diff line number Diff line change
Expand Up @@ -815,9 +815,11 @@ 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 explicit SubGridScale convective cloud in RRTMGP
logical :: doGP_sgs_mynn !< If true, include explicit SubGridScale MYNN-EDMF cloud in RRTMGP
logical :: doGP_smearclds !< If true, include implicit SubGridScale clouds in RRTMGP
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
integer :: rrtmgp_lw_phys_blksz !< Number of columns to pass to RRTMGP LW per block.
integer :: rrtmgp_sw_phys_blksz !< Number of columns to pass to RRTMGP SW per block.
logical :: doGP_smearclds !< If true, include implicit SubGridScale clouds 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.
Expand Down Expand Up @@ -3099,6 +3101,8 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
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
integer :: rrtmgp_lw_phys_blksz= 1 !< Number of columns for RRTMGP LW scheme to process at each instance.
integer :: rrtmgp_sw_phys_blksz= 1 !< Number of columns for RRTMGP SW scheme to process at each instance.
logical :: doGP_smearclds = .true. !< If true, include implicit SubGridScale clouds in RRTMGP
!--- Z-C microphysical parameters
integer :: imp_physics = 99 !< choice of cloud scheme
Expand Down Expand Up @@ -3561,6 +3565,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
rrtmgp_nrghice, rrtmgp_nGauss_ang, do_GPsw_Glw, &
use_LW_jacobian, doGP_lwscat, damp_LW_fluxadj, lfnc_k, &
lfnc_p0, iovr_convcld, doGP_sgs_cnv, doGP_sgs_mynn, &
rrtmgp_lw_phys_blksz, rrtmgp_sw_phys_blksz, &
! IN CCN forcing
iccn, mraerosol, &
!--- microphysical parameterizations
Expand Down Expand Up @@ -4048,6 +4053,8 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, &
Model%doGP_lwscat = doGP_lwscat
Model%doGP_sgs_cnv = doGP_sgs_cnv
Model%doGP_sgs_mynn = doGP_sgs_mynn
Model%rrtmgp_lw_phys_blksz = rrtmgp_lw_phys_blksz
Model%rrtmgp_sw_phys_blksz = rrtmgp_sw_phys_blksz
if (Model%do_RRTMGP) then
! RRTMGP incompatible with levr /= levs
if (Model%levr /= Model%levs) then
Expand Down Expand Up @@ -5957,6 +5964,8 @@ subroutine control_print(Model)
print *, ' doGP_sgs_mynn : ', Model%doGP_sgs_cnv
print *, ' doGP_smearclds : ', Model%doGP_smearclds
print *, ' iovr_convcld : ', Model%iovr_convcld
print *, ' rrtmgp_sw_phys_blksz : ', Model%rrtmgp_sw_phys_blksz
print *, ' rrtmgp_lw_phys_blksz : ', Model%rrtmgp_lw_phys_blksz
endif
print *, ' '
print *, 'microphysical switch'
Expand Down
12 changes: 12 additions & 0 deletions ccpp/data/GFS_typedefs.meta
Original file line number Diff line number Diff line change
Expand Up @@ -3542,6 +3542,18 @@
units = flag
dimensions = ()
type = logical
[rrtmgp_lw_phys_blksz]
standard_name = number_of_columns_per_RRTMGP_LW_block
long_name = number of columns to process at a time by RRTMGP LW scheme
units = count
dimensions = ()
type = integer
[rrtmgp_sw_phys_blksz]
standard_name = number_of_columns_per_RRTMGP_SW_block
long_name = number of columns to process at a time by RRTMGP SW scheme
units = count
dimensions = ()
type = integer
[doGP_smearclds]
standard_name = flag_for_implicit_sgs_cloud_in_RRTMGP
long_name = logical flag to impicit SGS cloud in RRTMGP
Expand Down
2 changes: 1 addition & 1 deletion ccpp/physics
Submodule physics updated 40 files
+1 −1 .gitmodules
+0 −12 CMakeLists.txt
+25 −23 physics/GFS_rrtmgp_cloud_mp.F90
+3 −3 physics/GFS_rrtmgp_cloud_mp.meta
+0 −188 physics/GFS_rrtmgp_lw_post.F90
+0 −253 physics/GFS_rrtmgp_lw_post.meta
+394 −0 physics/GFS_rrtmgp_post.F90
+157 −34 physics/GFS_rrtmgp_post.meta
+86 −57 physics/GFS_rrtmgp_pre.F90
+80 −56 physics/GFS_rrtmgp_pre.meta
+3 −3 physics/GFS_rrtmgp_setup.F90
+1 −1 physics/GFS_rrtmgp_setup.meta
+0 −286 physics/GFS_rrtmgp_sw_post.F90
+0 −95 physics/GFS_rrtmgp_sw_pre.F90
+0 −124 physics/GFS_rrtmgp_sw_pre.meta
+26 −38 physics/rrtmgp_aerosol_optics.F90
+50 −30 physics/rrtmgp_aerosol_optics.meta
+18 −200 physics/rrtmgp_lw_cloud_optics.F90
+0 −412 physics/rrtmgp_lw_cloud_optics.meta
+0 −170 physics/rrtmgp_lw_cloud_sampling.F90
+0 −226 physics/rrtmgp_lw_cloud_sampling.meta
+13 −108 physics/rrtmgp_lw_gas_optics.F90
+0 −203 physics/rrtmgp_lw_gas_optics.meta
+611 −0 physics/rrtmgp_lw_main.F90
+641 −0 physics/rrtmgp_lw_main.meta
+0 −61 physics/rrtmgp_lw_pre.F90
+0 −47 physics/rrtmgp_lw_pre.meta
+0 −208 physics/rrtmgp_lw_rte.F90
+0 −208 physics/rrtmgp_lw_rte.meta
+21 −223 physics/rrtmgp_sw_cloud_optics.F90
+0 −393 physics/rrtmgp_sw_cloud_optics.meta
+0 −174 physics/rrtmgp_sw_cloud_sampling.F90
+0 −240 physics/rrtmgp_sw_cloud_sampling.meta
+11 −126 physics/rrtmgp_sw_gas_optics.F90
+0 −201 physics/rrtmgp_sw_gas_optics.meta
+683 −0 physics/rrtmgp_sw_main.F90
+664 −0 physics/rrtmgp_sw_main.meta
+0 −219 physics/rrtmgp_sw_rte.F90
+0 −240 physics/rrtmgp_sw_rte.meta
+1 −1 physics/rte-rrtmgp
15 changes: 3 additions & 12 deletions ccpp/suites/suite_FV3_GFS_v17_p8_rrtmgp.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,19 +18,10 @@
<scheme>GFS_rrtmgp_cloud_mp</scheme>
<scheme>GFS_rrtmgp_cloud_overlap</scheme>
<scheme>GFS_cloud_diagnostics</scheme>
<scheme>rad_sw_pre</scheme>
<scheme>rrtmgp_aerosol_optics</scheme>
<scheme>rrtmgp_sw_gas_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_cloud_optics</scheme>
<scheme>rrtmgp_lw_cloud_sampling</scheme>
<scheme>rrtmgp_lw_rte</scheme>
<scheme>GFS_rrtmgp_lw_post</scheme>
<scheme>rrtmgp_sw_main</scheme>
<scheme>rrtmgp_lw_main</scheme>
<scheme>GFS_rrtmgp_post</scheme>
</subcycle>
</group>
<group name="physics">
Expand Down
Loading