Skip to content
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
8 changes: 7 additions & 1 deletion schemes/rrtmgp/objects/ccpp_gas_optics_rrtmgp.meta
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
[ccpp-table-properties]
name = ty_gas_optics_rrtmgp_ccpp
type = ddt
dependencies = ../ext/rrtmgp-frontend/mo_gas_optics_rrtmgp.F90,../ext/rrtmgp-kernels/mo_gas_optics_rrtmgp_kernels.F90
dependencies = ../ext/rrtmgp-frontend/mo_gas_optics_rrtmgp.F90
# Host model must choose the appropriate module to build
# IF CPUS:
dependencies = ../ext/rrtmgp-kernels/mo_gas_optics_rrtmgp_kernels.F90
# ELSE IF GPUS:
dependencies = ../ext/rrtmgp-kernels/accel/mo_gas_optics_rrtmgp_kernels.F90
# END IF
dependencies = ../ext/gas-optics/mo_gas_optics_constants.F90,../ext/gas-optics/mo_gas_optics_util_string.F90
dependencies = ../ext/gas-optics/mo_gas_optics.F90
dependencies = ../ext/rte-kernels/mo_rte_kind.F90
Expand Down
3 changes: 3 additions & 0 deletions schemes/rrtmgp/rrtmgp_constituents.F90
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ subroutine rrtmgp_constituents_register(rad_climate, rrtmgp_dyn_consts, errmsg,
units = 'kg kg-1', &
vertical_dim = 'vertical_layer_dimension', &
min_value = 0.0_kind_phys, &
diag_name = stdname, &
advected = .true., &
water_species = .false., &
mixing_ratio_type = 'dry', &
Expand All @@ -95,6 +96,7 @@ subroutine rrtmgp_constituents_register(rad_climate, rrtmgp_dyn_consts, errmsg,
vertical_dim = 'vertical_layer_dimension', &
min_value = 0.0_kind_phys, &
advected = .false., &
diag_name = stdname, &
water_species = .false., &
mixing_ratio_type = 'dry', &
errcode = errflg, &
Expand All @@ -109,6 +111,7 @@ subroutine rrtmgp_constituents_register(rad_climate, rrtmgp_dyn_consts, errmsg,
min_value = 0.0_kind_phys, &
default_value = 0.0_kind_phys, &
advected = .false., &
diag_name = stdname, &
water_species = .false., &
mixing_ratio_type = 'dry', &
errcode = errflg, &
Expand Down
5 changes: 5 additions & 0 deletions schemes/rrtmgp/rrtmgp_lw_cloud_optics.meta
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
[ccpp-table-properties]
name = rrtmgp_lw_cloud_optics
type = scheme
# Host model must choose the appropriate module to build
# IF CPUS:
dependencies = ext/rte-kernels/mo_optical_props_kernels.F90
# ELSE IF GPUS:
dependencies = ext/rte-kernels/accel/mo_optical_props_kernels.F90
# END IF

[ccpp-arg-table]
name = rrtmgp_lw_cloud_optics_run
Expand Down
6 changes: 6 additions & 0 deletions schemes/rrtmgp/rrtmgp_lw_gas_optics.meta
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,14 @@
type = scheme
dependencies = ext/rte-kernels/mo_rte_kind.F90
dependencies = objects/ccpp_gas_concentrations.F90
# Host model must choose the appropriate module to build
# IF CPUS:
dependencies = ext/rte-kernels/mo_optical_props_kernels.F90
dependencies = ext/rrtmgp-kernels/mo_gas_optics_rrtmgp_kernels.F90
# ELSE IF GPUS:
dependencies = ext/rte-kernels/accel/mo_optical_props_kernels.F90
dependencies = ext/rrtmgp-kernels/accel/mo_gas_optics_rrtmgp_kernels.F90
# END IF

[ccpp-arg-table]
name = rrtmgp_lw_gas_optics_init
Expand Down
6 changes: 5 additions & 1 deletion schemes/rrtmgp/rrtmgp_lw_rte.meta
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,13 @@
dependencies = ext/rte-frontend/mo_rte_config.F90
dependencies = ext/rte-kernels/mo_rte_util_array.F90
dependencies = ext/rte-frontend/mo_rte_util_array_validation.F90
dependencies = ext/rte-kernels/mo_rte_solver_kernels.F90
dependencies = ext/rte-kernels/mo_fluxes_broadband_kernels.F90
# Host model must choose the appropriate module to build
# IF CPUS:
dependencies = ext/rte-kernels/mo_rte_solver_kernels.F90
# ELSE IF GPUS:
dependencies = ext/rte-kernels/accel/mo_rte_solver_kernels.F90
# END IF
dependencies = utils/radiation_tools.F90
dependencies = objects/ccpp_source_functions.F90,objects/ccpp_gas_optics_rrtmgp.F90
dependencies = objects/ccpp_optical_props.F90
Expand Down
6 changes: 6 additions & 0 deletions schemes/rrtmgp/rrtmgp_sw_gas_optics.meta
Original file line number Diff line number Diff line change
@@ -1,8 +1,14 @@
[ccpp-table-properties]
name = rrtmgp_sw_gas_optics
type = scheme
# Host model must choose the appropriate module to build
# IF CPUS:
dependencies = ext/rte-kernels/mo_optical_props_kernels.F90
dependencies = ext/rrtmgp-kernels/mo_gas_optics_rrtmgp_kernels.F90
# ELSE IF GPUS:
dependencies = ext/rte-kernels/accel/mo_optical_props_kernels.F90
dependencies = ext/rrtmgp-kernels/accel/mo_gas_optics_rrtmgp_kernels.F90
# END IF

[ccpp-arg-table]
name = rrtmgp_sw_gas_optics_init
Expand Down
6 changes: 5 additions & 1 deletion schemes/rrtmgp/rrtmgp_sw_rte.meta
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,13 @@
dependencies = ext/rte-frontend/mo_rte_config.F90
dependencies = ext/rte-kernels/mo_rte_util_array.F90
dependencies = ext/rte-frontend/mo_rte_util_array_validation.F90
dependencies = ext/rte-kernels/mo_rte_solver_kernels.F90
dependencies = ext/rte-kernels/mo_fluxes_broadband_kernels.F90
# Host model must choose the appropriate module to build
# IF CPUS:
dependencies = ext/rte-kernels/mo_rte_solver_kernels.F90
# ELSE IF GPUS:
dependencies = ext/rte-kernels/accel/mo_rte_solver_kernels.F90
# END IF
dependencies = utils/radiation_tools.F90
dependencies = objects/ccpp_source_functions.F90,objects/ccpp_gas_optics_rrtmgp.F90
dependencies = objects/ccpp_optical_props.F90
Expand Down
15 changes: 14 additions & 1 deletion test/test_schemes/initialize_constituents.F90
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,15 @@ subroutine initialize_constituents_register(constituents, errmsg, errcode)
integer :: num_variables
integer :: ierr
integer :: var_index
integer :: split_index
integer :: constituent_index
integer :: known_const_index
integer :: found_const_count
logical :: known_constituent
character(len=256) :: variable_name
character(len=512) :: alloc_err_msg
character(len=256), allocatable :: constituent_names(:)
character(len=256), allocatable :: const_diag_names(:)
character(len=65), parameter :: water_species_std_names(6) = &
(/'water_vapor_mixing_ratio_wrt_moist_air_and_condensed_water ', &
'cloud_liquid_water_mixing_ratio_wrt_moist_air_and_condensed_water', &
Expand Down Expand Up @@ -66,14 +68,22 @@ subroutine initialize_constituents_register(constituents, errmsg, errcode)
write(errmsg,*) 'Failed to allocate "constituent_names" in initialize_constituents_register: ', trim(alloc_err_msg)
return
end if
allocate(const_diag_names(num_variables), stat=ierr, errmsg=alloc_err_msg)
if (ierr /= 0) then
errcode = 1
write(errmsg,*) 'Failed to allocate "const_diag_names" in initialize_constituents_register: ', trim(alloc_err_msg)
return
end if

! Loop over all variables in the file and add each constituent to the
! dynamic constituent array
do var_index = 1, num_variables
ierr = pio_inq_varname(ncdata, var_index, variable_name)
known_constituent = .false.
if (index(variable_name, 'cnst_') > 0) then
split_index = index(variable_name, 'cnst_')
if (split_index > 0) then
constituent_index = constituent_index + 1
const_diag_names(constituent_index) = variable_name(split_index:)
! Replace with standard name if known, to avoid duplicates
if (found_const_count < size(water_species_std_names)) then
do known_const_index = 1, size(const_file_names)
Expand Down Expand Up @@ -107,6 +117,7 @@ subroutine initialize_constituents_register(constituents, errmsg, errcode)
vertical_dim = 'vertical_layer_dimension', &
min_value = 0.0_kind_phys, &
advected = .true., &
diag_name = const_diag_names(var_index), &
water_species = .true., &
mixing_ratio_type = 'wet', &
errcode = errcode, &
Expand All @@ -122,6 +133,7 @@ subroutine initialize_constituents_register(constituents, errmsg, errcode)
vertical_dim = 'vertical_layer_dimension', &
min_value = 0.0_kind_phys, &
advected = .true., &
diag_name = const_diag_names(var_index), &
mixing_ratio_type = 'wet', &
errcode = errcode, &
errmsg = errmsg)
Expand All @@ -133,6 +145,7 @@ subroutine initialize_constituents_register(constituents, errmsg, errcode)
vertical_dim = 'vertical_layer_dimension', &
min_value = 0.0_kind_phys, &
advected = .true., &
diag_name = const_diag_names(var_index), &
errcode = errcode, &
errmsg = errmsg)
end if
Expand Down
Loading