CAM
mo_photo Module Reference

Functions/Subroutines

subroutine, public photo_register
 
subroutine, public photo_inti (xs_coef_file, xs_short_file, xs_long_file, rsf_file, euvacdat_file, photon_file, electron_file, exo_coldens_file, tuv_xsect_file, o2_xsect_file, xactive_prates, is_waccm)
 
subroutine, public table_photo (photos, pmid, pdel, temper, zmid, zint, col_dens, zen_angle, srf_alb, lwc, clouds, esfact, vmr, invariants, ncol, lchnk, pbuf)
 
subroutine, public xactive_photo (photos, vmr, temper, cwat, cldfr, pmid, zmid, col_dens, zen_angle, srf_alb, tdens, ps, ts, esfact, relhum, dust_vmr, dt_diag, fracday, ncol, lchnk)
 
subroutine cloud_mod (zen_angle, clouds, lwc, delp, srf_alb, eff_alb, cld_mult)
 
subroutine, public set_ub_col (col_delta, vmr, invariants, ptop, pdel, ncol, lchnk)
 
subroutine p_interp (lchnk, ncol, ptop, o2_exo_col, o3_exo_col)
 
subroutine, public setcol (col_delta, col_dens, vmr, pdel, ncol)
 
subroutine, public photo_timestep_init (calday)
 
subroutine set_xnox_photo (photos, ncol)
 

Variables

real(r8), parameter kg2g = 1.e3_r8
 
integer, parameter pverm = pver - 1
 
integer jno_ndx
 
integer jonitr_ndx
 
integer jho2no2_ndx
 
integer jch3cho_a_ndx
 
integer jch3cho_b_ndx
 
integer jch3cho_c_ndx
 
integer jo2_a_ndx
 
integer jo2_b_ndx
 
integer ox_ndx
 
integer o3_ndx
 
integer o3_inv_ndx
 
integer o3rad_ndx
 
integer oc1_ndx
 
integer oc2_ndx
 
integer cb1_ndx
 
integer cb2_ndx
 
integer soa_ndx
 
integer ant_ndx
 
integer so4_ndx
 
integer sa1_ndx
 
integer sa2_ndx
 
integer sa3_ndx
 
integer sa4_ndx
 
integer n2_ndx
 
integer no_ndx
 
integer o2_ndx
 
integer o_ndx
 
integer, dimension(:), allocatable lng_indexer
 
integer, dimension(:), allocatable sht_indexer
 
integer, dimension(:), allocatable euv_indexer
 
integer ki
 
integer last
 
integer next
 
integer n_exo_levs
 
real(r8) delp
 
real(r8) dels
 
real(r8), dimension(:), allocatable days
 
real(r8), dimension(:), allocatable levs
 
real(r8), dimension(:,:,:,:), allocatable o2_exo_coldens
 
real(r8), dimension(:,:,:,:), allocatable o3_exo_coldens
 
logical o_is_inv
 
logical o2_is_inv
 
logical n2_is_inv
 
logical o3_is_inv
 
logical no_is_inv
 
logical has_o2_col
 
logical has_o3_col
 
logical has_fixed_press
 
logical waccm
 
real(r8) max_zen_angle
 
integer jo1d_ndx
 
integer jo3p_ndx
 
integer jno2_ndx
 
integer jn2o5_ndx
 
integer jhno3_ndx
 
integer jno3_ndx
 
integer jpan_ndx
 
integer jmpan_ndx
 
integer jo1da_ndx
 
integer jo3pa_ndx
 
integer jno2a_ndx
 
integer jn2o5a_ndx
 
integer jn2o5b_ndx
 
integer jhno3a_ndx
 
integer jno3a_ndx
 
integer jpana_ndx
 
integer jmpana_ndx
 
integer jho2no2a_ndx
 
integer jonitra_ndx
 
logical do_jshort = .false.
 
logical do_diag = .false.
 
integer ion_rates_idx = -1
 

Function/Subroutine Documentation

◆ cloud_mod()

subroutine mo_photo::cloud_mod ( real(r8), intent(in)  zen_angle,
real(r8), dimension(pver), intent(in)  clouds,
real(r8), dimension(pver), intent(in)  lwc,
real(r8), dimension(pver), intent(in)  delp,
real(r8), intent(in)  srf_alb,
real(r8), dimension(pver), intent(out)  eff_alb,
real(r8), dimension(pver), intent(out)  cld_mult 
)
Here is the caller graph for this function:

◆ p_interp()

subroutine mo_photo::p_interp ( integer, intent(in)  lchnk,
integer, intent(in)  ncol,
real(r8), dimension(pcols)  ptop,
real(r8), dimension(ncol), intent(out)  o2_exo_col,
real(r8), dimension(ncol), intent(out)  o3_exo_col 
)
Here is the caller graph for this function:

◆ photo_inti()

subroutine, public mo_photo::photo_inti ( character(len=*), intent(in)  xs_coef_file,
character(len=*), intent(in)  xs_short_file,
character(len=*), intent(in)  xs_long_file,
character(len=*), intent(in)  rsf_file,
character(len=*), intent(in)  euvacdat_file,
character(len=*), intent(in)  photon_file,
character(len=*), intent(in)  electron_file,
character(len=*), intent(in)  exo_coldens_file,
character(len=*), intent(in)  tuv_xsect_file,
character(len=*), intent(in)  o2_xsect_file,
logical, intent(in)  xactive_prates,
logical, intent(in), optional  is_waccm 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ photo_register()

subroutine, public mo_photo::photo_register ( )
Here is the caller graph for this function:

◆ photo_timestep_init()

subroutine, public mo_photo::photo_timestep_init ( real(r8), intent(in)  calday)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_ub_col()

subroutine, public mo_photo::set_ub_col ( real(r8), dimension(ncol,0:pver,max(1,nabscol)), intent(out)  col_delta,
real(r8), dimension(ncol,pver,gas_pcnst), intent(in)  vmr,
real(r8), dimension(ncol,pver,nfs), intent(in)  invariants,
real(r8), dimension(pcols), intent(in)  ptop,
real(r8), dimension(pcols,pver), intent(in)  pdel,
integer, intent(in)  ncol,
integer, intent(in)  lchnk 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_xnox_photo()

subroutine mo_photo::set_xnox_photo ( real(r8), dimension(ncol,pver,phtcnt), intent(inout)  photos,
integer, intent(in)  ncol 
)
Here is the caller graph for this function:

◆ setcol()

subroutine, public mo_photo::setcol ( real(r8), dimension(:,0:,:), intent(in)  col_delta,
real(r8), dimension(:,:,:), intent(out)  col_dens,
real(r8), dimension(ncol,pver,gas_pcnst), intent(in)  vmr,
real(r8), dimension(pcols,pver), intent(in)  pdel,
integer, intent(in)  ncol 
)
Here is the caller graph for this function:

◆ table_photo()

subroutine, public mo_photo::table_photo ( real(r8), dimension(ncol,pver,phtcnt), intent(inout)  photos,
real(r8), dimension(pcols,pver), intent(in)  pmid,
real(r8), dimension(pcols,pver), intent(in)  pdel,
real(r8), dimension(pcols,pver), intent(in)  temper,
real(r8), dimension(ncol,pver), intent(in)  zmid,
real(r8), dimension(ncol,pver), intent(in)  zint,
real(r8), dimension(ncol,pver,ncol_abs), intent(in)  col_dens,
real(r8), dimension(ncol), intent(in)  zen_angle,
real(r8), dimension(pcols), intent(in)  srf_alb,
real(r8), dimension(ncol,pver), intent(in)  lwc,
real(r8), dimension(ncol,pver), intent(in)  clouds,
real(r8), intent(in)  esfact,
real(r8), dimension(ncol,pver,max(1,gas_pcnst)), intent(in)  vmr,
real(r8), dimension(ncol,pver,max(1,nfs)), intent(in)  invariants,
integer, intent(in)  ncol,
integer, intent(in)  lchnk,
type(physics_buffer_desc), dimension(:), pointer  pbuf 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xactive_photo()

subroutine, public mo_photo::xactive_photo ( real(r8), dimension(ncol,pver,phtcnt), intent(inout)  photos,
real(r8), dimension(ncol,pver,pcnstm1), intent(in)  vmr,
real(r8), dimension(pcols,pver), intent(in)  temper,
real(r8), dimension(ncol,pver), intent(in)  cwat,
real(r8), dimension(ncol,pver), intent(in)  cldfr,
real(r8), dimension(pcols,pver), intent(in)  pmid,
real(r8), dimension(ncol,pver), intent(in)  zmid,
real(r8), dimension(ncol,pver,ncol_abs), intent(in)  col_dens,
real(r8), dimension(ncol), intent(in)  zen_angle,
real(r8), dimension(pcols), intent(in)  srf_alb,
real(r8), dimension(ncol,pver), intent(in)  tdens,
real(r8), dimension(pcols), intent(in)  ps,
real(r8), dimension(ncol), intent(in)  ts,
real(r8), intent(in)  esfact,
real(r8), dimension(ncol,pver), intent(in)  relhum,
real(r8), dimension(ncol,pver,ndst), intent(in)  dust_vmr,
real(r8), dimension(pcols,8), intent(out)  dt_diag,
real(r8), dimension(pcols), intent(out)  fracday,
integer, intent(in)  ncol,
integer, intent(in)  lchnk 
)
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ ant_ndx

integer mo_photo::ant_ndx
private

◆ cb1_ndx

integer mo_photo::cb1_ndx
private

◆ cb2_ndx

integer mo_photo::cb2_ndx
private

◆ days

real(r8), dimension(:), allocatable mo_photo::days
private

◆ delp

real(r8) mo_photo::delp
private

◆ dels

real(r8) mo_photo::dels
private

◆ do_diag

logical mo_photo::do_diag = .false.
private

◆ do_jshort

logical mo_photo::do_jshort = .false.
private

◆ euv_indexer

integer, dimension(:), allocatable mo_photo::euv_indexer
private

◆ has_fixed_press

logical mo_photo::has_fixed_press
private

◆ has_o2_col

logical mo_photo::has_o2_col
private

◆ has_o3_col

logical mo_photo::has_o3_col
private

◆ ion_rates_idx

integer mo_photo::ion_rates_idx = -1
private

◆ jch3cho_a_ndx

integer mo_photo::jch3cho_a_ndx
private

◆ jch3cho_b_ndx

integer mo_photo::jch3cho_b_ndx
private

◆ jch3cho_c_ndx

integer mo_photo::jch3cho_c_ndx
private

◆ jhno3_ndx

integer mo_photo::jhno3_ndx
private

◆ jhno3a_ndx

integer mo_photo::jhno3a_ndx
private

◆ jho2no2_ndx

integer mo_photo::jho2no2_ndx
private

◆ jho2no2a_ndx

integer mo_photo::jho2no2a_ndx
private

◆ jmpan_ndx

integer mo_photo::jmpan_ndx
private

◆ jmpana_ndx

integer mo_photo::jmpana_ndx
private

◆ jn2o5_ndx

integer mo_photo::jn2o5_ndx
private

◆ jn2o5a_ndx

integer mo_photo::jn2o5a_ndx
private

◆ jn2o5b_ndx

integer mo_photo::jn2o5b_ndx
private

◆ jno2_ndx

integer mo_photo::jno2_ndx
private

◆ jno2a_ndx

integer mo_photo::jno2a_ndx
private

◆ jno3_ndx

integer mo_photo::jno3_ndx
private

◆ jno3a_ndx

integer mo_photo::jno3a_ndx
private

◆ jno_ndx

integer mo_photo::jno_ndx
private

◆ jo1d_ndx

integer mo_photo::jo1d_ndx
private

◆ jo1da_ndx

integer mo_photo::jo1da_ndx
private

◆ jo2_a_ndx

integer mo_photo::jo2_a_ndx
private

◆ jo2_b_ndx

integer mo_photo::jo2_b_ndx
private

◆ jo3p_ndx

integer mo_photo::jo3p_ndx
private

◆ jo3pa_ndx

integer mo_photo::jo3pa_ndx
private

◆ jonitr_ndx

integer mo_photo::jonitr_ndx
private

◆ jonitra_ndx

integer mo_photo::jonitra_ndx
private

◆ jpan_ndx

integer mo_photo::jpan_ndx
private

◆ jpana_ndx

integer mo_photo::jpana_ndx
private

◆ kg2g

real(r8), parameter mo_photo::kg2g = 1.e3_r8
private

◆ ki

integer mo_photo::ki
private

◆ last

integer mo_photo::last
private

◆ levs

real(r8), dimension(:), allocatable mo_photo::levs
private

◆ lng_indexer

integer, dimension(:), allocatable mo_photo::lng_indexer
private

◆ max_zen_angle

real(r8) mo_photo::max_zen_angle
private

◆ n2_is_inv

logical mo_photo::n2_is_inv
private

◆ n2_ndx

integer mo_photo::n2_ndx
private

◆ n_exo_levs

integer mo_photo::n_exo_levs
private

◆ next

integer mo_photo::next
private

◆ no_is_inv

logical mo_photo::no_is_inv
private

◆ no_ndx

integer mo_photo::no_ndx
private

◆ o2_exo_coldens

real(r8), dimension(:,:,:,:), allocatable mo_photo::o2_exo_coldens
private

◆ o2_is_inv

logical mo_photo::o2_is_inv
private

◆ o2_ndx

integer mo_photo::o2_ndx
private

◆ o3_exo_coldens

real(r8), dimension(:,:,:,:), allocatable mo_photo::o3_exo_coldens
private

◆ o3_inv_ndx

integer mo_photo::o3_inv_ndx
private

◆ o3_is_inv

logical mo_photo::o3_is_inv
private

◆ o3_ndx

integer mo_photo::o3_ndx
private

◆ o3rad_ndx

integer mo_photo::o3rad_ndx
private

◆ o_is_inv

logical mo_photo::o_is_inv
private

◆ o_ndx

integer mo_photo::o_ndx
private

◆ oc1_ndx

integer mo_photo::oc1_ndx
private

◆ oc2_ndx

integer mo_photo::oc2_ndx
private

◆ ox_ndx

integer mo_photo::ox_ndx
private

◆ pverm

integer, parameter mo_photo::pverm = pver - 1
private

◆ sa1_ndx

integer mo_photo::sa1_ndx
private

◆ sa2_ndx

integer mo_photo::sa2_ndx
private

◆ sa3_ndx

integer mo_photo::sa3_ndx
private

◆ sa4_ndx

integer mo_photo::sa4_ndx
private

◆ sht_indexer

integer, dimension(:), allocatable mo_photo::sht_indexer
private

◆ so4_ndx

integer mo_photo::so4_ndx
private

◆ soa_ndx

integer mo_photo::soa_ndx
private

◆ waccm

logical mo_photo::waccm
private