CCPP SciDoc for Idealized Regional TC Capability  SRW v3.0.0
Common Community Physics Package Developed at DTC
 
Loading...
Searching...
No Matches

◆ gfs_rrtmg_pre_run()

subroutine, public gfs_rrtmg_pre::gfs_rrtmg_pre_run ( integer, intent(in) im,
integer, intent(in) levs,
integer, intent(in) lm,
integer, intent(in) lmk,
integer, intent(in) lmp,
integer, intent(in) n_var_lndp,
logical, intent(in) lextop,
integer, intent(in) ltp,
integer, intent(in) imfdeepcnv,
integer, intent(in) imfdeepcnv_gf,
integer, intent(in) imfdeepcnv_c3,
integer, intent(in) me,
integer, intent(in) ncnd,
integer, intent(in) ntrac,
integer, intent(in) num_p3d,
integer, intent(in) npdf3d,
logical, intent(in) xr_cnvcld,
integer, intent(in) ncnvcld3d,
integer, intent(in) ntqv,
integer, intent(in) ntcw,
integer, intent(in) ntiw,
integer, intent(in) ntlnc,
integer, intent(in) ntinc,
integer, intent(in) ntrnc,
integer, intent(in) ntsnc,
integer, intent(in) ntccn,
logical, intent(in) top_at_1,
integer, intent(in) ntrw,
integer, intent(in) ntsw,
integer, intent(in) ntgl,
integer, intent(in) nthl,
integer, intent(in) ntwa,
integer, intent(in) ntoz,
integer, intent(in) ntsmoke,
integer, intent(in) ntdust,
integer, intent(in) ntcoarsepm,
integer, intent(in) ntclamt,
integer, intent(in) nleffr,
integer, intent(in) nieffr,
integer, intent(in) nseffr,
integer, intent(in) lndp_type,
integer, intent(in) kdt,
integer, intent(in) ntdu1,
integer, intent(in) ntdu2,
integer, intent(in) ntdu3,
integer, intent(in) ntdu4,
integer, intent(in) ntdu5,
integer, intent(in) ntss1,
integer, intent(in) ntss2,
integer, intent(in) ntss3,
integer, intent(in) ntss4,
integer, intent(in) ntss5,
integer, intent(in) ntsu,
integer, intent(in) ntbcb,
integer, intent(in) ntbcl,
integer, intent(in) ntocb,
integer, intent(in) ntocl,
integer, intent(in) ntchm,
integer, intent(in) imp_physics,
integer, intent(in) imp_physics_nssl,
logical, intent(in) nssl_ccn_on,
logical, intent(in) nssl_invertccn,
integer, intent(in) imp_physics_thompson,
integer, intent(in) imp_physics_gfdl,
integer, intent(in) imp_physics_zhao_carr,
integer, intent(in) imp_physics_zhao_carr_pdf,
integer, intent(in) imp_physics_mg,
integer, intent(in) imp_physics_wsm6,
integer, intent(in) imp_physics_fer_hires,
integer, intent(in) iovr,
integer, intent(in) iovr_rand,
integer, intent(in) iovr_maxrand,
integer, intent(in) iovr_max,
integer, intent(in) iovr_dcorr,
integer, intent(in) iovr_exp,
integer, intent(in) iovr_exprand,
integer, intent(in) idcor,
integer, intent(in) idcor_con,
integer, intent(in) idcor_hogan,
integer, intent(in) idcor_oreopoulos,
real(kind=kind_phys), intent(in) dcorr_con,
real(kind=kind_phys), intent(in) julian,
integer, intent(in) yearlen,
character(len=3), dimension(:), intent(in), optional lndp_var_list,
logical, intent(in) lsswr,
logical, intent(in) lslwr,
logical, intent(in) ltaerosol,
logical, intent(in) mraerosol,
logical, intent(in) lgfdlmprad,
logical, intent(in) uni_cld,
logical, intent(in) effr_in,
logical, intent(in) do_mynnedmf,
logical, intent(in) lmfshal,
logical, intent(in) lcnorm,
logical, intent(in) lmfdeep2,
logical, intent(in) lcrick,
real(kind=kind_phys), intent(in) fhswr,
real(kind=kind_phys), intent(in) fhlwr,
real(kind=kind_phys), intent(in) solhr,
real(kind=kind_phys), intent(in) sup,
real(kind=kind_phys), intent(in) con_eps,
real(kind=kind_phys), intent(in) epsm1,
real(kind=kind_phys), intent(in) fvirt,
real(kind=kind_phys), intent(in) rog,
real(kind=kind_phys), intent(in) rocp,
real(kind=kind_phys), intent(in) con_rd,
real(kind=kind_phys), dimension(:), intent(in) xlat_d,
real(kind=kind_phys), dimension(:), intent(in) xlat,
real(kind=kind_phys), dimension(:), intent(in) xlon,
real(kind=kind_phys), dimension(:), intent(in) coslat,
real(kind=kind_phys), dimension(:), intent(in) sinlat,
real(kind=kind_phys), dimension(:), intent(in) tsfc,
real(kind=kind_phys), dimension(:), intent(in) slmsk,
real(kind=kind_phys), dimension(:,:), intent(in) prsi,
real(kind=kind_phys), dimension(:,:), intent(in) prsl,
real(kind=kind_phys), dimension(:,:), intent(in) prslk,
real(kind=kind_phys), dimension(:,:), intent(in) tgrs,
real(kind=kind_phys), dimension(:,:), intent(in), optional sfc_wts,
real(kind=kind_phys), dimension(:,:), intent(in), optional mg_cld,
real(kind=kind_phys), dimension(:,:), intent(in), optional effrr_in,
logical, intent(in) pert_clds,
real(kind=kind_phys), dimension(:,:), intent(in), optional sppt_wts,
real(kind=kind_phys), intent(in) sppt_amp,
real(kind=kind_phys), dimension(:,:), intent(in), optional cnvw_in,
real(kind=kind_phys), dimension(:,:), intent(in), optional cnvc_in,
real(kind=kind_phys), dimension(:,:,:), intent(in) qgrs,
real(kind=kind_phys), dimension(:,:,:), intent(inout) aer_nm,
real(kind=kind_phys), dimension(:), intent(in) dx,
integer, intent(in) icloud,
integer, intent(in) iaermdl,
integer, intent(in) iaerflg,
real(kind=kind_phys), intent(in) con_pi,
real(kind=kind_phys), intent(in) con_g,
real(kind=kind_phys), intent(in) con_ttp,
real(kind=kind_phys), intent(in) con_thgni,
real(kind=kind_phys), dimension(:), intent(in) si,
real(kind=kind_phys), dimension(:), intent(inout) coszen,
real(kind=kind_phys), dimension(:), intent(inout) coszdg,
real(kind=kind_phys), dimension(:,:), intent(inout), optional effrl_inout,
real(kind=kind_phys), dimension(:,:), intent(inout), optional effri_inout,
real(kind=kind_phys), dimension(:,:), intent(inout), optional effrs_inout,
real(kind=kind_phys), dimension(:,:), intent(inout) clouds1,
real(kind=kind_phys), dimension(:,:), intent(inout) clouds2,
real(kind=kind_phys), dimension(:,:), intent(inout) clouds3,
real(kind=kind_phys), dimension(:,:), intent(inout) clouds4,
real(kind=kind_phys), dimension(:,:), intent(inout) clouds5,
real(kind=kind_phys), dimension(:,:), intent(in), optional qci_conv,
integer, intent(out) kd,
integer, intent(out) kt,
integer, intent(out) kb,
integer, dimension(:,:), intent(out) mtopa,
integer, dimension(:,:), intent(out) mbota,
real(kind=kind_phys), intent(out) raddt,
real(kind=kind_phys), dimension(:), intent(out) tsfg,
real(kind=kind_phys), dimension(:), intent(out) tsfa,
real(kind=kind_phys), dimension(:), intent(out) de_lgth,
real(kind=kind_phys), dimension(:), intent(out) alb1d,
real(kind=kind_phys), dimension(:,:), intent(out) delp,
real(kind=kind_phys), dimension(:,:), intent(out) dz,
real(kind=kind_phys), dimension(:,:), intent(out) plvl,
real(kind=kind_phys), dimension(:,:), intent(out) plyr,
real(kind=kind_phys), dimension(:,:), intent(out) tlvl,
real(kind=kind_phys), dimension(:,:), intent(out) tlyr,
real(kind=kind_phys), dimension(:,:), intent(out) qlyr,
real(kind=kind_phys), dimension(:,:), intent(out) olyr,
real(kind=kind_phys), dimension(:,:), intent(out) gasvmr_co2,
real(kind=kind_phys), dimension(:,:), intent(out) gasvmr_n2o,
real(kind=kind_phys), dimension(:,:), intent(out) gasvmr_ch4,
real(kind=kind_phys), dimension(:,:), intent(out) gasvmr_o2,
real(kind=kind_phys), dimension(:,:), intent(out) gasvmr_co,
real(kind=kind_phys), dimension(:,:), intent(out) gasvmr_cfc11,
real(kind=kind_phys), dimension(:,:), intent(out) gasvmr_cfc12,
real(kind=kind_phys), dimension(:,:), intent(out) gasvmr_cfc22,
real(kind=kind_phys), dimension(:,:), intent(out) gasvmr_ccl4,
real(kind=kind_phys), dimension(:,:), intent(out) gasvmr_cfc113,
real(kind=kind_phys), dimension(:,:), intent(out) aerodp,
real(kind=kind_phys), dimension(:,:), intent(out) ext550,
real(kind=kind_phys), dimension(:,:), intent(out) clouds6,
real(kind=kind_phys), dimension(:,:), intent(out) clouds7,
real(kind=kind_phys), dimension(:,:), intent(out) clouds8,
real(kind=kind_phys), dimension(:,:), intent(out) clouds9,
real(kind=kind_phys), dimension(:,:), intent(out) cldsa,
real(kind=kind_phys), dimension(:,:), intent(out) cldfra,
real(kind=kind_phys), dimension(:), intent(out) cldfra2d,
real(kind=kind_phys), dimension(:), intent(out) lwp_ex,
real(kind=kind_phys), dimension(:), intent(out) iwp_ex,
real(kind=kind_phys), dimension(:), intent(out) lwp_fc,
real(kind=kind_phys), dimension(:), intent(out) iwp_fc,
real(kind=kind_phys), dimension(:,:,:), intent(out) faersw1,
real(kind=kind_phys), dimension(:,:,:), intent(out) faersw2,
real(kind=kind_phys), dimension(:,:,:), intent(out) faersw3,
real(kind=kind_phys), dimension(:,:,:), intent(out) faerlw1,
real(kind=kind_phys), dimension(:,:,:), intent(out) faerlw2,
real(kind=kind_phys), dimension(:,:,:), intent(out) faerlw3,
real(kind=kind_phys), dimension(:,:), intent(out), optional alpha,
logical, intent(in) rrfs_sd,
logical, intent(in) aero_dir_fdb,
real(kind=kind_phys), dimension(:), intent(in) fdb_coef,
real(kind_phys), dimension(:,:), intent(in), optional spp_wts_rad,
integer, intent(in) spp_rad,
integer, intent(in) ico2,
type(ty_ozphys), intent(in) ozphys,
character(len=*), intent(out) errmsg,
integer, intent(out) errflg )

Argument Table

General Algorithm

  • Setup surface ground temperature and ground/air skin temperature if required.
  • Prepare atmospheric profiles for radiation input.
  • Compute relative humidity.
  • Recast remaining all tracers (except sphum) forcing them all to be positive.
  • Get layer ozone mass mixing ratio (if use ozone climatology data,
  • Call coszmn(), to compute cosine of zenith angle (only when SW is called)
  • Call getgases(), to set up non-prognostic gas volume mixing ratioes (gasvmr).
  • Get temperature at layer interface, and layer moisture.
  • Initialize mass mixing ratio of aerosols from NASA GOCART or NASA MERRA-2

— add smoke and dust —

  • Obtain cloud information for radiation calculations (clouds,cldsa,mtopa,mbota)
  • Call Thompson's subroutine calc_effectRad() to compute effective radii
  • Call radiation_clouds_prop() to calculate cloud properties.
  • Call ppfbet() to perturb cld cover.
  • Call cdfnor() to pert surface albedo.

References module_radiation_clouds::adjust_cloudfinal(), module_radiation_clouds::adjust_cloudh2o(), module_radiation_clouds::adjust_cloudice(), module_radiation_clouds::cal_cldfra3(), module_mp_thompson::calc_effectrad(), surface_perturbation::cdfnor(), module_radiation_astronomy::coszmn(), module_radiation_clouds::find_cloudlayers(), module_radiation_gases::getgases(), 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_radiation_clouds::nf_clds, module_radiation_gases::nf_vgas, surface_perturbation::ppfbet(), and module_radiation_clouds::radiation_clouds_prop().

Here is the call graph for this function: