Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
fbeb1d2
fix the RRTMGP cloud scheme to be sonsistent with those in RRTMG
Qingfu-Liu Mar 20, 2025
7f70814
fix the RRTMGP cloud scheme to be sonsistent with those in RRTMG
Qingfu-Liu Mar 20, 2025
9185d39
Update rte-rrtmgp submodule hash to v1.8 and add any necessary CCPP i…
dustinswales Apr 15, 2025
fd568df
Merge branch 'ufs/dev' of https://github.com/ufs-community/ccpp-physi…
dustinswales Apr 21, 2025
b19522d
Changes to use single precision in rte-rrtmgp CCPP interface
dustinswales Apr 21, 2025
2f651ff
Fix MPI types in broadcast calls
dustinswales Apr 21, 2025
8f0a55f
Merge branch 'ufs/dev' of https://github.com/ufs-community/ccpp-physi…
dustinswales May 29, 2025
a4d393b
Merge branch 'rrtmgp_cloud_fix' of https://github.com/Qingfu-Liu/ccpp…
dustinswales May 29, 2025
fe22f04
Merge branch 'ufs/dev' of https://github.com/ufs-community/ccpp-physi…
dustinswales Jul 22, 2025
076942e
Omission
dustinswales Jul 22, 2025
a281d66
Fix typo
dustinswales Jul 25, 2025
4124ccc
Replace integers with variables in metadata.
dustinswales Jul 28, 2025
7720b58
Merge branch 'ufs/dev' of https://github.com/ufs-community/ccpp-physi…
dustinswales Sep 5, 2025
0bb3223
Changes to metadata file in physics.
dustinswales Sep 8, 2025
99dec3a
Address reviewer comment
dustinswales Sep 8, 2025
c7bbe0b
Merge branch 'ufs/dev' of https://github.com/ufs-community/ccpp-physi…
dustinswales Sep 15, 2025
8e3e05c
Merge branch 'ufs/dev' of https://github.com/ufs-community/ccpp-physi…
dustinswales Sep 18, 2025
7a1a702
Merge branch 'ufs/dev' into feature/rte-rrtmgp-v1.8
grantfirl Oct 3, 2025
0722a9d
Merge pull request #262 from grantfirl/feature/rad-fix_gjf
rhaesung Oct 7, 2025
4966c23
Merge branch 'ufs/dev' into feature/rte-rrtmgp-v1.8
grantfirl Oct 7, 2025
baf9502
remove obsolete RRTMGP namelist variables
grantfirl Oct 8, 2025
0e9100c
Merge branch 'feature/rte-rrtmgp-v1.8' into ufs-dev-PR305
grantfirl Oct 20, 2025
1a25d8a
Merge branch 'main' into ufs-dev-PR305
grantfirl Oct 21, 2025
4d6c3bf
edit openmp_off flag name
grantfirl Nov 6, 2025
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
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[submodule "physics/Radiation/RRTMGP/rte-rrtmgp"]
path = physics/Radiation/RRTMGP/rte-rrtmgp
url = https://github.com/earth-system-radiation/rte-rrtmgp
url = https://github.com/NCAR/rte-rrtmgp
branch = main
[submodule "physics/MP/TEMPO/TEMPO"]
path = physics/MP/TEMPO/TEMPO
Expand Down
41 changes: 21 additions & 20 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -82,31 +82,32 @@ get_filename_component(LOCAL_CURRENT_SOURCE_DIR ${FULL_PATH_TO_CMAKELISTS} DIREC
#------------------------------------------------------------------------------

# List of files that need to be compiled without OpenMP
set(SCHEMES_OPENMP_OFF ${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/rrtmgp/mo_gas_optics.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/rrtmgp/mo_rrtmgp_constants.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/rrtmgp/mo_gas_concentrations.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/rrtmgp/mo_rrtmgp_util_string.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/rrtmgp/kernels/mo_gas_optics_kernels.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/rrtmgp/mo_gas_optics_rrtmgp.F90
set(SCHEMES_OPENMP_OFF ${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/gas-optics/mo_gas_optics.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/gas-optics/mo_gas_optics_constants.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/gas-optics/mo_gas_concentrations.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/gas-optics/mo_gas_optics_util_string.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/rrtmgp-frontend/mo_gas_optics_rrtmgp.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/rrtmgp-kernels/mo_gas_optics_rrtmgp_kernels.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/rrtmgp-frontend/mo_cloud_optics_rrtmgp.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/extensions/mo_rrtmgp_clr_all_sky.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/extensions/mo_fluxes_byband.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/extensions/solar_variability/mo_solar_variability.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/extensions/mo_heating_rates.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/extensions/mo_fluxes_bygpoint.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/extensions/mo_compute_bc.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/extensions/cloud_optics/mo_cloud_sampling.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/extensions/cloud_optics/mo_cloud_optics.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/rte/mo_rte_config.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/rte/mo_source_functions.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/rte/mo_rte_sw.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/rte/mo_fluxes.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/rte/mo_rte_lw.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/rte/mo_rte_util_array.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/rte/kernels/mo_rte_solver_kernels.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/rte/kernels/mo_optical_props_kernels.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/rte/kernels/mo_fluxes_broadband_kernels.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/rte/mo_rte_kind.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/rte/mo_optical_props.F90)
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/extensions/mo_cloud_sampling.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/rte-frontend/mo_rte_util_array_validation.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/rte-frontend/mo_rte_config.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/rte-frontend/mo_source_functions.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/rte-frontend/mo_rte_sw.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/rte-frontend/mo_fluxes.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/rte-frontend/mo_rte_lw.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/rte-kernels/mo_rte_util_array.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/rte-kernels/mo_rte_solver_kernels.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/rte-kernels/mo_optical_props_kernels.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/rte-kernels/mo_fluxes_broadband_kernels.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/rte-frontend/mo_rte_kind.F90
${LOCAL_CURRENT_SOURCE_DIR}/physics/Radiation/RRTMGP/rte-rrtmgp/rte-frontend/mo_optical_props.F90)

# List of files that need to be compiled with different precision
set(SCHEMES_DYNAMICS)
Expand All @@ -127,7 +128,7 @@ endif()
# of files with standard compiler flags, and assign no-OpenMP flags
if(SCHEMES_OPENMP_OFF)
SET_PROPERTY(SOURCE ${SCHEMES_OPENMP_OFF}
APPEND_STRING PROPERTY COMPILE_FLAGS " ${CMAKE_Fortran_FLAGS_PHYSICS}")
APPEND_STRING PROPERTY COMPILE_FLAGS " ${CMAKE_Fortran_FLAGS_OPENMP_OFF}")
list(REMOVE_ITEM SCHEMES ${SCHEMES_OPENMP_OFF})
endif()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,14 +140,14 @@
intent = in
[ipsd0]
standard_name = initial_seed_for_mcica
long_name = initial permutaion seed for mcica radiation
long_name = initial permutation seed for mcica radiation
units = 1
dimensions = ()
type = integer
intent = in
[ipsdlim]
standard_name = limit_for_initial_seed_for_mcica
long_name = limit for initial permutaion seed for mcica radiation
long_name = limit for initial permutation seed for mcica radiation
units = 1
dimensions = ()
type = integer
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,14 +140,14 @@
intent = in
[ipsd0]
standard_name = initial_seed_for_mcica
long_name = initial permutaion seed for mcica radiation
long_name = initial permutation seed for mcica radiation
units = 1
dimensions = ()
type = integer
intent = in
[ipsdlim]
standard_name = limit_for_initial_seed_for_mcica
long_name = limit for initial permutaion seed for mcica radiation
long_name = limit for initial permutation seed for mcica radiation
units = 1
dimensions = ()
type = integer
Expand Down
44 changes: 24 additions & 20 deletions physics/Interstitials/UFS_SCM_NEPTUNE/GFS_radiation_post.F90
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ module GFS_radiation_post
use module_radsw_parameters, only: topfsw_type, sfcfsw_type, cmpfsw_type
use mo_heating_rates, only: compute_heating_rate
use radiation_tools, only: check_error_msg
use mo_rte_kind, only: rte_wp => wp
implicit none

public GFS_radiation_post_run
Expand Down Expand Up @@ -175,7 +176,8 @@ subroutine GFS_radiation_post_run(doLWrad, doSWrad, lssav, total_albedo, topfsw,

! Local variables
integer :: i
real(kind_phys), dimension(nDay, nLev) :: thetaTendClrSky, thetaTendAllSky
real(rte_wp), dimension(nDay, nLev) :: thetaTendClrSkySW, thetaTendAllSkySW
real(rte_wp), dimension(nCol, nLev) :: thetaTendClrSkyLW, thetaTendAllSkyLW

! Initialize CCPP error handling variables
errmsg = ''
Expand All @@ -192,19 +194,21 @@ subroutine GFS_radiation_post_run(doLWrad, doSWrad, lssav, total_albedo, topfsw,
! Clear-sky heating-rate (optional)
if (do_lw_clrsky_hr) then
call check_error_msg('GFS_radiation_post',compute_heating_rate( &
fluxlwUP_clrsky, & ! IN - RRTMGP upward longwave clear-sky flux profiles (W/m2)
fluxlwDOWN_clrsky, & ! IN - RRTMGP downward longwave clear-sky flux profiles (W/m2)
p_lev, & ! IN - Pressure @ layer-interfaces (Pa)
htrlwc)) ! OUT - Longwave clear-sky heating rate (K/sec)
real(fluxlwUP_clrsky, kind=rte_wp), & ! IN - RRTMGP upward longwave clear-sky flux profiles (W/m2)
real(fluxlwDOWN_clrsky, kind=rte_wp), & ! IN - RRTMGP downward longwave clear-sky flux profiles (W/m2)
real(p_lev, kind=rte_wp), & ! IN - Pressure @ layer-interfaces (Pa)
thetaTendClrSkyLW)) ! OUT - Longwave clear-sky heating rate (K/sec)
htrlwc = thetaTendClrSkyLW
endif

! All-sky heating-rate (mandatory)
call check_error_msg('GFS_radiation_post',compute_heating_rate( &
fluxlwUP_allsky, & ! IN - RRTMGP upward longwave all-sky flux profiles (W/m2)
fluxlwDOWN_allsky, & ! IN - RRTMGP downward longwave all-sky flux profiles (W/m2)
p_lev, & ! IN - Pressure @ layer-interfaces (Pa)
htrlw)) ! OUT - Longwave all-sky heating rate (K/sec)

real(fluxlwUP_allsky, kind=rte_wp), & ! IN - RRTMGP upward longwave all-sky flux profiles (W/m2)
real(fluxlwDOWN_allsky, kind=rte_wp), & ! IN - RRTMGP downward longwave all-sky flux profiles (W/m2)
real(p_lev, kind=rte_wp), & ! IN - Pressure @ layer-interfaces (Pa)
thetaTendAllSkyLW)) ! OUT - Longwave all-sky heating rate (K/sec)
htrlw = thetaTendAllSkyLW

! (Copy fluxes from RRTMGP types into model radiation types.)
! TOA fluxes
topflw(:)%upfxc = fluxlwUP_allsky(:,iTOA)
Expand Down Expand Up @@ -238,21 +242,21 @@ subroutine GFS_radiation_post_run(doLWrad, doSWrad, lssav, total_albedo, topfsw,
if (do_sw_clrsky_hr) then
htrswc(:,:) = 0._kind_phys
call check_error_msg('GFS_radiation_post',compute_heating_rate( &
fluxswUP_clrsky(idxday(1:nDay),:), & ! IN - Shortwave upward clear-sky flux profiles (W/m2)
fluxswDOWN_clrsky(idxday(1:nDay),:), & ! IN - Shortwave downward clear-sky flux profiles (W/m2)
p_lev(idxday(1:nDay),:), & ! IN - Pressure at model-interface (Pa)
thetaTendClrSky)) ! OUT - Clear-sky heating-rate (K/sec)
htrswc(idxday(1:nDay),:)=thetaTendClrSky !**NOTE** GP doesn't use radiation levels, it uses the model fields. Not sure if this is necessary
real(fluxswUP_clrsky(idxday(1:nDay),:), kind=rte_wp), & ! IN - Shortwave upward clear-sky flux profiles (W/m2)
real(fluxswDOWN_clrsky(idxday(1:nDay),:), kind=rte_wp), & ! IN - Shortwave downward clear-sky flux profiles (W/m2)
real(p_lev(idxday(1:nDay),:), kind=rte_wp), & ! IN - Pressure at model-interface (Pa)
thetaTendClrSkySW)) ! OUT - Clear-sky heating-rate (K/sec)
htrswc(idxday(1:nDay),:)=thetaTendClrSkySW !**NOTE** GP doesn't use radiation levels, it uses the model fields. Not sure if this is necessary
endif

! All-sky heating-rate (mandatory)
htrsw(:,:) = 0._kind_phys
call check_error_msg('GFS_radiation_post',compute_heating_rate( &
fluxswUP_allsky(idxday(1:nDay),:), & ! IN - Shortwave upward all-sky flux profiles (W/m2)
fluxswDOWN_allsky(idxday(1:nDay),:), & ! IN - Shortwave downward all-sky flux profiles (W/m2)
p_lev(idxday(1:nDay),:), & ! IN - Pressure at model-interface (Pa)
thetaTendAllSky)) ! OUT - All-sky heating-rate (K/sec)
htrsw(idxday(1:nDay),:) = thetaTendAllSky
real(fluxswUP_allsky(idxday(1:nDay),:), kind=rte_wp), & ! IN - Shortwave upward all-sky flux profiles (W/m2)
real(fluxswDOWN_allsky(idxday(1:nDay),:), kind=rte_wp), & ! IN - Shortwave downward all-sky flux profiles (W/m2)
real(p_lev(idxday(1:nDay),:), kind=rte_wp), & ! IN - Pressure at model-interface (Pa)
thetaTendAllSkySW)) ! OUT - All-sky heating-rate (K/sec)
htrsw(idxday(1:nDay),:) = thetaTendAllSkySW

! (Copy fluxes from RRTMGP types into model radiation types.)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
relative_path = ../../
dependencies = hooks/machine.F,Radiation/radiation_aerosols.f
dependencies = Radiation/RRTMG/radlw_param.f,Radiation/radiation_tools.F90,Radiation/RRTMGP/rte-rrtmgp/extensions/mo_heating_rates.F90
dependencies = Radiation/RRTMGP/rte-rrtmgp/rte-frontend/mo_rte_kind.F90

########################################################################
[ccpp-arg-table]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -364,7 +364,7 @@
intent = in
[ipsd0]
standard_name = initial_seed_for_mcica
long_name = initial permutaion seed for mcica radiation
long_name = initial permutation seed for mcica radiation
units = 1
dimensions = ()
type = integer
Expand Down
Loading