CCPP Scientific Documentation
v5.0.0
subroutine, public gfs_rrtmg_pre::gfs_rrtmg_pre_run ( type(gfs_control_type), intent(in)  Model,
type(gfs_grid_type), intent(in)  Grid,
type(gfs_sfcprop_type), intent(in)  Sfcprop,
type(gfs_statein_type), intent(in)  Statein,
type(gfs_tbd_type), intent(in)  Tbd,
type(gfs_cldprop_type), intent(in)  Cldprop,
type(gfs_coupling_type), intent(in)  Coupling,
type(gfs_radtend_type), intent(inout)  Radtend,
integer, intent(in)  imfdeepcnv,
integer, intent(in)  imfdeepcnv_gf,
integer, intent(in)  lm,
integer, intent(in)  im,
integer, intent(in)  lmk,
integer, intent(in)  lmp,
integer, intent(out)  kd,
integer, intent(out)  kt,
integer, intent(out)  kb,
real(kind=kind_phys), intent(out)  raddt,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+ltp), intent(out)  delp,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+ltp), intent(out)  dz,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+1+ltp), intent(out)  plvl,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+ltp), intent(out)  plyr,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+1+ltp), intent(out)  tlvl,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+ltp), intent(out)  tlyr,
real(kind=kind_phys), dimension(size(grid%xlon,1)), intent(out)  tsfg,
real(kind=kind_phys), dimension(size(grid%xlon,1)), intent(out)  tsfa,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+ltp), intent(out)  qlyr,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+ltp), intent(out)  olyr,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+ltp), intent(out)  gasvmr_co2,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+ltp), intent(out)  gasvmr_n2o,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+ltp), intent(out)  gasvmr_ch4,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+ltp), intent(out)  gasvmr_o2,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+ltp), intent(out)  gasvmr_co,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+ltp), intent(out)  gasvmr_cfc11,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+ltp), intent(out)  gasvmr_cfc12,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+ltp), intent(out)  gasvmr_cfc22,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+ltp), intent(out)  gasvmr_ccl4,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+ltp), intent(out)  gasvmr_cfc113,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+ltp,nbdsw), intent(out)  faersw1,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+ltp,nbdsw), intent(out)  faersw2,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+ltp,nbdsw), intent(out)  faersw3,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+ltp,nbdlw), intent(out)  faerlw1,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+ltp,nbdlw), intent(out)  faerlw2,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+ltp,nbdlw), intent(out)  faerlw3,
real(kind=kind_phys), dimension(size(grid%xlon,1),nspc1), intent(out)  aerodp,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+ltp), intent(inout)  clouds1,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+ltp), intent(inout)  clouds2,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+ltp), intent(inout)  clouds3,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+ltp), intent(inout)  clouds4,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+ltp), intent(inout)  clouds5,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+ltp), intent(out)  clouds6,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+ltp), intent(out)  clouds7,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+ltp), intent(out)  clouds8,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+ltp), intent(out)  clouds9,
real(kind=kind_phys), dimension(size(grid%xlon,1),5), intent(out)  cldsa,
real(kind=kind_phys), dimension(size(grid%xlon,1),lm+ltp), intent(out)  cldfra,
integer, dimension(size(grid%xlon,1),3), intent(out)  mtopa,
integer, dimension(size(grid%xlon,1),3), intent(out)  mbota,
real(kind=kind_phys), dimension(size(grid%xlon,1)), intent(out)  de_lgth,
real(kind=kind_phys), dimension(size(grid%xlon,1)), intent(out)  alb1d,
character(len=*), intent(out)  errmsg,
integer, intent(out)  errflg 
)

Argument Table

GFS_rrtmg_pre_run argument table
local_namestandard_namelong_nameunitstypedimensionskindintentoptional
ModelGFS_control_type_instanceFortran DDT containing FV3-GFS model control parametersDDTGFS_control_type()inFalse
GridGFS_grid_type_instanceFortran DDT containing FV3-GFS grid and interpolation related dataDDTGFS_grid_type()inFalse
SfcpropGFS_sfcprop_type_instanceFortran DDT containing FV3-GFS surface fieldsDDTGFS_sfcprop_type()inFalse
StateinGFS_statein_type_instanceFortran DDT containing FV3-GFS prognostic state data in from dycoreDDTGFS_statein_type()inFalse
TbdGFS_tbd_type_instanceFortran DDT containing FV3-GFS data not yet assigned to a defined containerDDTGFS_tbd_type()inFalse
CldpropGFS_cldprop_type_instanceFortran DDT containing FV3-GFS cloud fields needed by radiation from physicsDDTGFS_cldprop_type()inFalse
CouplingGFS_coupling_type_instanceFortran DDT containing FV3-GFS fields needed for couplingDDTGFS_coupling_type()inFalse
RadtendGFS_radtend_type_instanceFortran DDT containing FV3-GFS radiation tendenciesDDTGFS_radtend_type()inoutFalse
lmnumber_of_vertical_layers_for_radiation_calculationsnumber of vertical layers for radiation calculationcountinteger()inFalse
imhorizontal_loop_extenthorizontal loop extentcountinteger()inFalse
lmkadjusted_vertical_layer_dimension_for_radiationnumber of vertical layers for radiationcountinteger()inFalse
lmpadjusted_vertical_level_dimension_for_radiationnumber of vertical levels for radiationcountinteger()inFalse
kdvertical_index_difference_between_inout_and_localvertical index difference between in/out and localindexinteger()outFalse
ktvertical_index_difference_between_layer_and_upper_boundvertical index difference between layer and upper boundindexinteger()outFalse
kbvertical_index_difference_between_layer_and_lower_boundvertical index difference between layer and lower boundindexinteger()outFalse
raddttime_step_for_radiationradiation time stepsreal()kind_physoutFalse
delplayer_pressure_thickness_for_radiationlayer pressure thickness on radiation levelshPareal(horizontal_dimension, adjusted_vertical_layer_dimension_for_radiation)kind_physoutFalse
dzlayer_thickness_for_radiationlayer thickness on radiation levelskmreal(horizontal_dimension, adjusted_vertical_layer_dimension_for_radiation)kind_physoutFalse
plvlair_pressure_at_interface_for_radiation_in_hPaair pressure at vertical interface for radiation calculationhPareal(horizontal_dimension, adjusted_vertical_level_dimension_for_radiation)kind_physoutFalse
plyrair_pressure_at_layer_for_radiation_in_hPaair pressure at vertical layer for radiation calculationhPareal(horizontal_dimension, adjusted_vertical_layer_dimension_for_radiation)kind_physoutFalse
tlvlair_temperature_at_interface_for_radiationair temperature at vertical interface for radiation calculationKreal(horizontal_dimension, adjusted_vertical_level_dimension_for_radiation)kind_physoutFalse
tlyrair_temperature_at_layer_for_radiationair temperature at vertical layer for radiation calculationKreal(horizontal_dimension, adjusted_vertical_layer_dimension_for_radiation)kind_physoutFalse
tsfgsurface_ground_temperature_for_radiationsurface ground temperature for radiationKreal(horizontal_dimension)kind_physoutFalse
tsfasurface_air_temperature_for_radiationlowest model layer air temperature for radiationKreal(horizontal_dimension)kind_physoutFalse
qlyrwater_vapor_specific_humidity_at_layer_for_radiationwater vapor specific humidity at vertical layer for radiation calculationkg kg-1real(horizontal_dimension, adjusted_vertical_layer_dimension_for_radiation)kind_physoutFalse
olyrozone_concentration_at_layer_for_radiationozone concentrationkg kg-1real(horizontal_dimension, adjusted_vertical_layer_dimension_for_radiation)kind_physoutFalse
imfdeepcnvflag_for_mass_flux_deep_convection_schemeflag for mass-flux deep convection schemeflaginteger()inFalse
imfdeepcnv_gfflag_for_gf_deep_convection_schemeflag for Grell-Freitas deep convection schemeflaginteger()inFalse
gasvmr_co2volume_mixing_ratio_co2CO2 volume mixing ratiokg kg-1real(horizontal_dimension, adjusted_vertical_layer_dimension_for_radiation)kind_physoutFalse
gasvmr_n2ovolume_mixing_ratio_n2oN2O volume mixing ratiokg kg-1real(horizontal_dimension, adjusted_vertical_layer_dimension_for_radiation)kind_physoutFalse
gasvmr_ch4volume_mixing_ratio_ch4CH4 volume mixing ratiokg kg-1real(horizontal_dimension, adjusted_vertical_layer_dimension_for_radiation)kind_physoutFalse
gasvmr_o2volume_mixing_ratio_o2O2 volume mixing ratiokg kg-1real(horizontal_dimension, adjusted_vertical_layer_dimension_for_radiation)kind_physoutFalse
gasvmr_covolume_mixing_ratio_coCO volume mixing ratiokg kg-1real(horizontal_dimension, adjusted_vertical_layer_dimension_for_radiation)kind_physoutFalse
gasvmr_cfc11volume_mixing_ratio_cfc11CFC11 volume mixing ratiokg kg-1real(horizontal_dimension, adjusted_vertical_layer_dimension_for_radiation)kind_physoutFalse
gasvmr_cfc12volume_mixing_ratio_cfc12CFC12 volume mixing ratiokg kg-1real(horizontal_dimension, adjusted_vertical_layer_dimension_for_radiation)kind_physoutFalse
gasvmr_cfc22volume_mixing_ratio_cfc22CFC22 volume mixing ratiokg kg-1real(horizontal_dimension, adjusted_vertical_layer_dimension_for_radiation)kind_physoutFalse
gasvmr_ccl4volume_mixing_ratio_ccl4CCL4 volume mixing ratiokg kg-1real(horizontal_dimension, adjusted_vertical_layer_dimension_for_radiation)kind_physoutFalse
gasvmr_cfc113volume_mixing_ratio_cfc113CFC113 volume mixing ratiokg kg-1real(horizontal_dimension, adjusted_vertical_layer_dimension_for_radiation)kind_physoutFalse
faersw1aerosol_optical_depth_for_shortwave_bands_01_16aerosol optical depth for shortwave bands 01-16nonereal(horizontal_dimension, adjusted_vertical_layer_dimension_for_radiation, number_of_aerosol_bands_for_shortwave_radiation)kind_physoutFalse
faersw2aerosol_single_scattering_albedo_for_shortwave_bands_01_16aerosol single scattering albedo for shortwave bands 01-16fracreal(horizontal_dimension, adjusted_vertical_layer_dimension_for_radiation, number_of_aerosol_bands_for_shortwave_radiation)kind_physoutFalse
faersw3aerosol_asymmetry_parameter_for_shortwave_bands_01_16aerosol asymmetry parameter for shortwave bands 01-16nonereal(horizontal_dimension, adjusted_vertical_layer_dimension_for_radiation, number_of_aerosol_bands_for_shortwave_radiation)kind_physoutFalse
faerlw1aerosol_optical_depth_for_longwave_bands_01_16aerosol optical depth for longwave bands 01-16nonereal(horizontal_dimension, adjusted_vertical_layer_dimension_for_radiation, number_of_aerosol_bands_for_longwave_radiation)kind_physoutFalse
faerlw2aerosol_single_scattering_albedo_for_longwave_bands_01_16aerosol single scattering albedo for longwave bands 01-16fracreal(horizontal_dimension, adjusted_vertical_layer_dimension_for_radiation, number_of_aerosol_bands_for_longwave_radiation)kind_physoutFalse
faerlw3aerosol_asymmetry_parameter_for_longwave_bands_01_16aerosol asymmetry parameter for longwave bands 01-16nonereal(horizontal_dimension, adjusted_vertical_layer_dimension_for_radiation, number_of_aerosol_bands_for_longwave_radiation)kind_physoutFalse
aerodpatmosphere_optical_thickness_due_to_ambient_aerosol_particlesvertical integrated optical depth for various aerosol speciesnonereal(horizontal_dimension, number_of_species_for_aerosol_optical_depth)kind_physoutFalse
clouds1total_cloud_fractionlayer total cloud fractionfracreal(horizontal_dimension, vertical_dimension)kind_physinoutFalse
clouds2cloud_liquid_water_pathlayer cloud liquid water pathg m-2real(horizontal_dimension, vertical_dimension)kind_physinoutFalse
clouds3mean_effective_radius_for_liquid_cloudmean effective radius for liquid cloudmicronreal(horizontal_dimension, vertical_dimension)kind_physinoutFalse
clouds4cloud_ice_water_pathlayer cloud ice water pathg m-2real(horizontal_dimension, vertical_dimension)kind_physinoutFalse
clouds5mean_effective_radius_for_ice_cloudmean effective radius for ice cloudmicronreal(horizontal_dimension, vertical_dimension)kind_physinoutFalse
clouds6cloud_rain_water_pathcloud rain water pathg m-2real(horizontal_dimension, vertical_dimension)kind_physoutFalse
clouds7mean_effective_radius_for_rain_dropmean effective radius for rain dropmicronreal(horizontal_dimension, vertical_dimension)kind_physoutFalse
clouds8cloud_snow_water_pathcloud snow water pathg m-2real(horizontal_dimension, vertical_dimension)kind_physoutFalse
clouds9mean_effective_radius_for_snow_flakemean effective radius for snow flakemicronreal(horizontal_dimension, vertical_dimension)kind_physoutFalse
cldsacloud_area_fraction_for_radiationfraction of clouds for low, middle,high, total and BLfracreal(horizontal_dimension, 5)kind_physoutFalse
cldfrainstantaneous_3d_cloud_fractioninstantaneous 3D cloud fraction for all MPsfracreal(horizontal_dimension, vertical_dimension)kind_physoutFalse
mtopamodel_layer_number_at_cloud_topvertical indices for low, middle and high cloud topsindexinteger(horizontal_dimension, 3)outFalse
mbotamodel_layer_number_at_cloud_basevertical indices for low, middle and high cloud basesindexinteger(horizontal_dimension, 3)outFalse
de_lgthcloud_decorrelation_lengthcloud decorrelation lengthkmreal(horizontal_dimension)kind_physoutFalse
alb1dsurface_albedo_perturbationsurface albedo perturbationfracreal(horizontal_dimension)kind_physoutFalse
errmsgccpp_error_messageerror message for error handling in CCPPnonecharacter()len=*outFalse
errflgccpp_error_flagerror flag for error handling in CCPPflaginteger()outFalse
  1. Setup surface ground temperature and ground/air skin temperature if required.
  2. Prepare atmospheric profiles for radiation input.

References module_mp_thompson::calc_effectrad(), physcons::con_eps, physcons::con_epsm1, physcons::con_fvirt, physcons::con_rd, physcons::con_rocp, physcons::con_rog, module_radiation_astronomy::coszmn(), radcons::epsq, funcphys::fpvs(), module_radiation_gases::getgases(), module_radiation_gases::getozn(), radcons::itsfc, physparam::ivflip, radcons::lextop, radcons::ltp, module_mp_thompson_make_number_concentrations::make_dropletnumber(), module_mp_thompson_make_number_concentrations::make_icenumber(), module_mp_thompson_make_number_concentrations::make_rainnumber(), module_radlw_parameters::nbdlw, module_radsw_parameters::nbdsw, module_radiation_aerosols::nf_aelw, module_radiation_aerosols::nf_aesw, module_radiation_clouds::nf_clds, module_radiation_gases::nf_vgas, module_mp_thompson::nt_c, radcons::prsmin, radcons::qme5, radcons::qme6, radcons::qmin, and module_radiation_aerosols::setaer().

Here is the call graph for this function: