diff --git a/physics/GFS_rrtmgp_gas_optics.F90 b/physics/GFS_rrtmgp_gas_optics.F90 index 3ff397268..1054c0908 100644 --- a/physics/GFS_rrtmgp_gas_optics.F90 +++ b/physics/GFS_rrtmgp_gas_optics.F90 @@ -53,7 +53,7 @@ subroutine GFS_rrtmgp_gas_optics_init(Model, Radtend, errmsg, errflg) gasIndices(Model%ngases,2)=len(trim(Model%active_gases)) ! Now extract the gas names do ij=1,Model%ngases - Radtend%active_gases(ij,1) = Model%active_gases(gasIndices(ij,1):gasIndices(ij,2)) + Radtend%active_gases(ij) = Model%active_gases(gasIndices(ij,1):gasIndices(ij,2)) enddo endif end subroutine GFS_rrtmgp_gas_optics_init diff --git a/physics/GFS_rrtmgp_pre.F90 b/physics/GFS_rrtmgp_pre.F90 index 6a93eec36..a501b196b 100644 --- a/physics/GFS_rrtmgp_pre.F90 +++ b/physics/GFS_rrtmgp_pre.F90 @@ -71,7 +71,7 @@ module GFS_rrtmgp_pre ! ######################################################################################### subroutine GFS_rrtmgp_pre_init(Model, Radtend, errmsg, errflg) ! Inputs - type(GFS_control_type), intent(in) :: & + type(GFS_control_type), intent(inout) :: & Model ! DDT containing model control parameters type(GFS_radtend_type), intent(inout) :: & Radtend ! Fortran DDT containing FV3-GFS radiation tendencies @@ -108,7 +108,7 @@ subroutine GFS_rrtmgp_pre_init(Model, Radtend, errmsg, errflg) gasIndices(Model%ngases,2)=len(trim(Model%active_gases)) ! Now extract the gas names do ij=1,Model%ngases - Radtend%active_gases(ij,1) = Model%active_gases(gasIndices(ij,1):gasIndices(ij,2)) + Model%active_gases_array(ij) = Model%active_gases(gasIndices(ij,1):gasIndices(ij,2)) enddo endif end subroutine GFS_rrtmgp_pre_init diff --git a/physics/GFS_rrtmgp_pre.meta b/physics/GFS_rrtmgp_pre.meta index 1379ea1aa..e70d7400c 100644 --- a/physics/GFS_rrtmgp_pre.meta +++ b/physics/GFS_rrtmgp_pre.meta @@ -7,7 +7,7 @@ units = DDT dimensions = () type = GFS_control_type - intent = in + intent = inout optional = F [Radtend] standard_name = GFS_radtend_type_instance diff --git a/physics/rrtmgp_lw_gas_optics.F90 b/physics/rrtmgp_lw_gas_optics.F90 index 773bdeda4..3ae94dea1 100644 --- a/physics/rrtmgp_lw_gas_optics.F90 +++ b/physics/rrtmgp_lw_gas_optics.F90 @@ -411,7 +411,7 @@ subroutine rrtmgp_lw_gas_optics_init(Model, Radtend, mpicomm, mpirank, mpiroot, ! Initialize gas concentrations and gas optics class with data do iGas=1,Model%nGases - call check_error_msg('lw_gas_optics_init',gas_concentrations%set_vmr(Radtend%active_gases(iGas,1), 0._kind_phys)) + call check_error_msg('lw_gas_optics_init',gas_concentrations%set_vmr(Model%active_gases_array(iGas), 0._kind_phys)) enddo call check_error_msg('lw_gas_optics_init',lw_gas_props%load(gas_concentrations, gas_names, & key_species, band2gpt, band_lims, press_ref, press_ref_trop, temp_ref, temp_ref_p, & diff --git a/physics/rrtmgp_sw_clrallsky_driver.F90 b/physics/rrtmgp_sw_clrallsky_driver.F90 index 249975783..df45c1a6b 100644 --- a/physics/rrtmgp_sw_clrallsky_driver.F90 +++ b/physics/rrtmgp_sw_clrallsky_driver.F90 @@ -133,8 +133,8 @@ subroutine rrtmgp_sw_clrallsky_driver_run(Model, Radtend, ncol, sw_gas_props, p_ ! Similarly, subset the gas concentrations. do iGas=1,Model%nGases - call check_error_msg('rrtmgp_sw_clrallsky_driver_run',gas_concentrations%get_vmr(trim(Radtend%active_gases(iGas,1)),vmrTemp)) - call check_error_msg('rrtmgp_sw_clrallsky_driver_run',gas_concentrations_daylit%set_vmr(trim(Radtend%active_gases(iGas,1)),vmrTemp(idxday,:))) + call check_error_msg('rrtmgp_sw_clrallsky_driver_run',gas_concentrations%get_vmr(trim(Model%active_gases_array(iGas)),vmrTemp)) + call check_error_msg('rrtmgp_sw_clrallsky_driver_run',gas_concentrations_daylit%set_vmr(trim(Model%active_gases_array(iGas)),vmrTemp(idxday,:))) enddo ! Initialize RRTMGP DDT containing 2D(3D) fluxes diff --git a/physics/rrtmgp_sw_gas_optics.F90 b/physics/rrtmgp_sw_gas_optics.F90 index 8e73d42b1..049ab03d4 100644 --- a/physics/rrtmgp_sw_gas_optics.F90 +++ b/physics/rrtmgp_sw_gas_optics.F90 @@ -408,7 +408,7 @@ subroutine rrtmgp_sw_gas_optics_init(Model, Radtend, mpicomm, mpirank, mpiroot, ! Initialize gas concentrations and gas optics class with data do iGas=1,Model%nGases - call check_error_msg('sw_gas_optics_init',gas_concentrations%set_vmr(Radtend%active_gases(iGas,1), 0._kind_phys)) + call check_error_msg('sw_gas_optics_init',gas_concentrations%set_vmr(Model%active_gases_array(iGas), 0._kind_phys)) enddo call check_error_msg('sw_gas_optics_init',sw_gas_props%load(gas_concentrations, gas_names_sw, & key_species_sw, band2gpt_sw, band_lims_sw, press_ref_sw, press_ref_trop_sw, temp_ref_sw, & diff --git a/physics/rrtmgp_sw_rte.F90 b/physics/rrtmgp_sw_rte.F90 index f7d8f8fc9..56d846845 100644 --- a/physics/rrtmgp_sw_rte.F90 +++ b/physics/rrtmgp_sw_rte.F90 @@ -154,8 +154,8 @@ subroutine rrtmgp_sw_rte_run(Model, Radtend, Statein, ncol, sw_gas_props, p_lay, ! Similarly, subset the gas concentrations. do iGas=1,Model%nGases - call check_error_msg('rrtmgp_sw_rte_run',gas_concentrations%get_vmr(trim(Radtend%active_gases(iGas,1)),vmrTemp)) - call check_error_msg('rrtmgp_sw_rte_run',gas_concentrations_daylit%set_vmr(trim(Radtend%active_gases(iGas,1)),vmrTemp(idxday,:))) + call check_error_msg('rrtmgp_sw_rte_run',gas_concentrations%get_vmr(trim(Model%active_gases_array(iGas)),vmrTemp)) + call check_error_msg('rrtmgp_sw_rte_run',gas_concentrations_daylit%set_vmr(trim(Model%active_gases_array(iGas)),vmrTemp(idxday,:))) enddo ! Initialize RRTMGP DDT containing 2D(3D) fluxes