Skip to content
Merged
Show file tree
Hide file tree
Changes from 27 commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
c8b8da7
Changes to typedefs for RRTMGP refactoring. Updates to prebuild and S…
dustinswales Aug 26, 2022
bf3d76c
Updated ccpp-physics
dustinswales Sep 7, 2022
2f4f2b7
Merge branch 'develop' of https://github.com/NOAA-EMC/fv3atm into HEAD
dustinswales Sep 7, 2022
f7e71e3
Address ccpp-physics issue 957
dustinswales Sep 7, 2022
143c40b
bugfix to save q state regardless of diagnostic flag, submodule update
lisa-bengtsson Sep 14, 2022
1648b3b
optimizing massflux at cloud base based on P8 simulations, submodule …
lisa-bengtsson Sep 14, 2022
817bfd0
typo in ccpp/physics submodule
lisa-bengtsson Sep 15, 2022
6dcfe36
Merge branch 'develop' of https://github.com/NOAA-EMC/fv3atm into pro…
lisa-bengtsson Sep 21, 2022
30515f5
Added RRTMGP p8 coupled RT.
Sep 22, 2022
a487329
Some modifications for rrtmgp physics blocking to work.
Sep 23, 2022
3971abb
Change submodule pointer to NCAR/main
Sep 23, 2022
9ae2cdc
update to NCAR main after merge
lisa-bengtsson Sep 28, 2022
abe1069
Merge pull request #66 from lisa-bengtsson/prog_bugfix
Sep 28, 2022
2ae6cbc
Move allocation of RRTMGP DDTs to init.
dustinswales Oct 3, 2022
dbdec0c
Merge branch 'main' of https://github.com/NCAR/fv3atm into HEAD
dustinswales Oct 3, 2022
bbf0d4e
Merge branch 'rrtmgp_refactor' of https://github.com/dustinswales/fv3…
dustinswales Oct 3, 2022
ecd06b6
Updated physics with BOTH upstream forks.
Oct 4, 2022
091e26a
Merge branch 'develop' of https://github.com/NOAA-EMC/fv3atm into HEAD
Oct 4, 2022
459c7b0
Updated ccpp-physics.
Nov 21, 2022
25bdd7b
Merge branch 'rrtmgp_refactor' of https://github.com/dustinswales/fv3…
Nov 21, 2022
7853780
Update ccpp-physics
Jan 13, 2023
dcfd297
Merge branch 'develop' of https://github.com/NOAA-EMC/fv3atm into HEAD
Jan 13, 2023
9402ef3
Synced with upstream
Jan 13, 2023
61e3cb2
Merge branch 'rrtmgp_refactor' of https://github.com/dustinswales/fv3…
Jan 13, 2023
17626af
Fixed submodule pointer
Jan 13, 2023
0791844
Merge branch 'develop' of https://github.com/NOAA-EMC/fv3atm into HEAD
dustinswales Jan 18, 2023
ef3df94
Removed deprecated SDFs
dustinswales Jan 19, 2023
77d69d4
Merge branch 'develop' of https://github.com/NOAA-EMC/fv3atm into HEAD
dustinswales Feb 1, 2023
3f40ecc
Synced physics
dustinswales Feb 1, 2023
8feb875
Interface changes for SP build in GP
dustinswales Feb 3, 2023
a396673
Update submodules
Feb 7, 2023
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
4 changes: 2 additions & 2 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
branch = main
[submodule "ccpp/physics"]
path = ccpp/physics
url = https://github.com/ufs-community/ccpp-physics
branch = ufs/dev
url = https://github.com/dustinswales/ccpp-physics
branch = rrtmgp_refactor
[submodule "upp"]
path = upp
url = https://github.com/NOAA-EMC/UPP
Expand Down
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 @@ -788,9 +788,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 @@ -3037,6 +3039,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 @@ -3499,6 +3503,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 @@ -3946,6 +3951,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 @@ -5833,6 +5840,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 @@ -3445,6 +3445,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
+97 −103 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
+158 −35 physics/GFS_rrtmgp_post.meta
+63 −52 physics/GFS_rrtmgp_pre.F90
+77 −53 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
+27 −39 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
+682 −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