GFS Operational Physics Documentation  gsm/branches/DTC/phys-doc-all phys-doc-all R82971

This module sets up ozone climatological profiles and other constant gas profiles, such as co2, ch4, n2o, o2, and those of cfc gases. All data are entered as mixing ratio by volume, except ozone which is mass mixing ratio (g/g). More...

Detailed Description

This module sets up ozone climatological profiles and other constant gas profiles, such as co2, ch4, n2o, o2, and those of cfc gases. All data are entered as mixing ratio by volume, except ozone which is mass mixing ratio (g/g).

Version
NCEP-Radiation_gases v5.1 Nov 2012
Collaboration diagram for module_radiation_gases:

parameter constants

integer, parameter, public module_radiation_gases::nf_vgas = 10
 number of gas species
 
integer, parameter module_radiation_gases::imxco2 = 24
 input co2 dat lon points
 
integer, parameter module_radiation_gases::jmxco2 = 12
 input co2 data lat points
 
integer, parameter module_radiation_gases::minyear = 1957
 earlist year 2-d co2 data available
 
real(kind=kind_phys), parameter module_radiation_gases::resco2 =15.0
 horizontal resolution in degree
 
real(kind=kind_phys), parameter module_radiation_gases::raddeg =180.0/con_pi
 rad->deg conversion
 
real(kind=kind_phys), parameter module_radiation_gases::prsco2 =788.0
 pressure limitation for 2-d co2 (mb)
 
real(kind=kind_phys), parameter module_radiation_gases::hfpi =0.5*con_pi
 half of pi
 

parameter constants for gas volume mixing ratioes

real(kind=kind_phys), parameter module_radiation_gases::co2vmr_def = 350.0e-6
 
real(kind=kind_phys), parameter module_radiation_gases::n2ovmr_def = 0.31e-6
 
real(kind=kind_phys), parameter module_radiation_gases::ch4vmr_def = 1.50e-6
 
real(kind=kind_phys), parameter module_radiation_gases::o2vmr_def = 0.209
 
real(kind=kind_phys), parameter module_radiation_gases::covmr_def = 1.50e-8
 
real(kind=kind_phys), parameter module_radiation_gases::f11vmr_def = 3.520e-10
 aer 2003 value
 
real(kind=kind_phys), parameter module_radiation_gases::f12vmr_def = 6.358e-10
 aer 2003 value
 
real(kind=kind_phys), parameter module_radiation_gases::f22vmr_def = 1.500e-10
 aer 2003 value
 
real(kind=kind_phys), parameter module_radiation_gases::cl4vmr_def = 1.397e-10
 aer 2003 value
 
real(kind=kind_phys), parameter module_radiation_gases::f113vmr_def = 8.2000e-11
 gfdl 1999 value
 

variables for climatology ozone (ioznflg = 0)

real(kind=kind_phys), dimension(:), allocatable module_radiation_gases::pkstr
 
real(kind=kind_phys), dimension(:,:,:), allocatable module_radiation_gases::o3r
 
integer module_radiation_gases::k1oz = 0
 
integer module_radiation_gases::k2oz = 0
 
real(kind=kind_phys) module_radiation_gases::facoz = 0.0
 

arrays for co2 2-d monthly data and global mean values from observed data

real(kind=kind_phys), dimension(:,:,:), allocatable module_radiation_gases::co2vmr_sav
 
real(kind=kind_phys), dimension(:,:,:), allocatable module_radiation_gases::co2cyc_sav
 
real(kind=kind_phys) module_radiation_gases::co2_glb = co2vmr_def
 
real(kind=kind_phys), dimension(12) module_radiation_gases::gco2cyc
 
integer module_radiation_gases::kyrsav = 0
 
integer module_radiation_gases::kmonsav = 1
 
subroutine, public module_radiation_gases::gas_init (me)
 This subroutine sets up ozone, co2, etc. parameters. If climatology ozone then read in monthly ozone data. More...
 
subroutine, public module_radiation_gases::gas_update (iyear, imon, iday, ihour, loz1st, ldoco2, me)
 This subroutine reads in 2-d monthly co2 data set for a specified year. Data are in a 15 degree lat/lon horizontal resolution. More...
 
subroutine, public module_radiation_gases::getgases (plvl, xlon, xlat, IMAX, LMAX, gasdat )
 This subroutine sets up global distribution of radiation absorbing gases in volume mixing ratio. Currently only co2 has the options from observed values, all other gases are asigned to the climatological values. More...
 
subroutine, public module_radiation_gases::getozn (prslk, xlat, IMAX, LM, o3mmr )
 This subroutine sets up climatological ozone profile for radiation calculation. This code is originally written by Shrinivas Moorthi. More...
 

Function/Subroutine Documentation

subroutine, public module_radiation_gases::gas_init ( integer, intent(in)  me)

This subroutine sets up ozone, co2, etc. parameters. If climatology ozone then read in monthly ozone data.

Parameters
meprint message control flag

Definition at line 220 of file radiation_gases.f.

References physparam::co2cyc_file, physparam::co2usr_file, physparam::ico2flg, physparam::ictmflg, imxco2, physparam::ioznflg, and jmxco2.

Referenced by module_radiation_driver::radinit().

Here is the caller graph for this function:

subroutine, public module_radiation_gases::gas_update ( integer, intent(in)  iyear,
integer, intent(in)  imon,
integer, intent(in)  iday,
integer, intent(in)  ihour,
logical, intent(in)  loz1st,
logical, intent(in)  ldoco2,
integer, intent(in)  me 
)

This subroutine reads in 2-d monthly co2 data set for a specified year. Data are in a 15 degree lat/lon horizontal resolution.

Parameters
iyearyear of the requested data for fcst
imonmonth of the year
idayday of the month
ihourhour of the day
loz1stclim ozone 1st time update control flag
ldoco2co2 update control flag
meprint message control flag

General Algorithm

  • Ozone data section
  • co2 data section

Definition at line 517 of file radiation_gases.f.

References physparam::co2dat_file, physparam::co2gbl_file, physparam::ico2flg, physparam::ictmflg, imxco2, physparam::ioznflg, jmxco2, and minyear.

Referenced by module_radiation_driver::radupdate().

Here is the caller graph for this function:

subroutine, public module_radiation_gases::getgases ( real (kind=kind_phys), dimension(:,:), intent(in)  plvl,
real (kind=kind_phys), dimension(:), intent(in)  xlon,
real (kind=kind_phys), dimension(:), intent(in)  xlat,
integer, intent(in)  IMAX,
integer, intent(in)  LMAX,
real (kind=kind_phys), dimension(:,:,:), intent(out)  gasdat 
)

This subroutine sets up global distribution of radiation absorbing gases in volume mixing ratio. Currently only co2 has the options from observed values, all other gases are asigned to the climatological values.

Parameters
plvl(IMAX,LMAX+1), pressure at model layer interfaces (mb)
xlon(IMAX), grid longitude in radians, ok both 0->2pi or -pi -> +pi arrangements
xlat(IMAX), grid latitude in radians, default range to pi/2 -> -pi/2, otherwise see in-line comment
IMAX,LMAXhorizontal/vertical dimensions for output data
gasdat(IMAX,LMAX,NF_VGAS) - gases volume mixing ratioes
(:,:,1) - co2
(:,:,2) - n2o
(:,:,3) - ch4
(:,:,4) - o2
(:,:,5) - co
(:,:,6) - cfc11
(:,:,7) - cfc12
(:,:,8) - cfc22
(:,:,9) - ccl4
(:,:,10) - cfc113

Definition at line 913 of file radiation_gases.f.

References cl4vmr_def, physcons::con_pi, f113vmr_def, f11vmr_def, f12vmr_def, f22vmr_def, hfpi, physparam::ico2flg, imxco2, physparam::ivflip, jmxco2, prsco2, raddeg, and resco2.

Referenced by module_radiation_driver::grrad().

Here is the caller graph for this function:

subroutine, public module_radiation_gases::getozn ( real (kind=kind_phys), dimension(:,:), intent(in)  prslk,
real (kind=kind_phys), dimension(:), intent(in)  xlat,
integer, intent(in)  IMAX,
integer, intent(in)  LM,
real (kind=kind_phys), dimension(:,:), intent(out)  o3mmr 
)

This subroutine sets up climatological ozone profile for radiation calculation. This code is originally written by Shrinivas Moorthi.

Parameters
prslk(IMAX,LM), exner function = \((p/p0)^{rocp}\)
xlat(IMAX), latitude in radians, default to pi/2 -> -pi/2 range, otherwise see in-line comment
IMAX,LMhorizontal and vertical dimensions
o3mmr(IMAX,LM), output ozone profile in mass mixing ratio (g/g)

Definition at line 1064 of file radiation_gases.f.

References physparam::ivflip, and raddeg.

Referenced by module_radiation_driver::grrad().

Here is the caller graph for this function: