Radiation Scheme in CCPP
|
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).
Functions/Subroutines | |
subroutine, public | gas_init |
This subroutine sets up ozone, co2, etc. parameters. if climatology ozone then read in monthly ozone data. More... | |
subroutine, public | gas_update |
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 | getgases |
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 | getozn |
This subroutine sets up climatological ozone profile for radiation calculation this code is originally written by Shrinivas Moorthi. More... | |
Variables | |
character(40), parameter | vtaggas ='NCEP-Radiation_gases v5.1 Nov 2012 ' |
integer, parameter, public | nf_vgas = 10 |
number of gas species More... | |
integer, parameter | imxco2 = 24 |
input co2 dat lon points More... | |
integer, parameter | jmxco2 = 12 |
input co2 data lat points More... | |
integer, parameter | minyear = 1957 |
earlist year 2-d co2 data available More... | |
real(kind=kind_phys), parameter | resco2 =15.0 |
real(kind=kind_phys), parameter | raddeg =180.0/con_pi |
real(kind=kind_phys), parameter | prsco2 =788.0 |
real(kind=kind_phys), parameter | hfpi =0.5*con_pi |
real(kind=kind_phys), parameter | co2vmr_def = 350.0e-6 |
real(kind=kind_phys), parameter | n2ovmr_def = 0.31e-6 |
real(kind=kind_phys), parameter | ch4vmr_def = 1.50e-6 |
real(kind=kind_phys), parameter | o2vmr_def = 0.209 |
real(kind=kind_phys), parameter | covmr_def = 1.50e-8 |
real(kind=kind_phys), parameter | f11vmr_def = 3.520e-10 |
real(kind=kind_phys), parameter | f12vmr_def = 6.358e-10 |
real(kind=kind_phys), parameter | f22vmr_def = 1.500e-10 |
real(kind=kind_phys), parameter | cl4vmr_def = 1.397e-10 |
real(kind=kind_phys), parameter | f113vmr_def = 8.2000e-11 |
real(kind=kind_phys), dimension(:), allocatable | pkstr |
real(kind=kind_phys), dimension(:,:,:), allocatable | o3r |
integer | k1oz = 0 |
integer | k2oz = 0 |
real(kind=kind_phys) | facoz = 0.0 |
real(kind=kind_phys), dimension(:,:,:), allocatable | co2vmr_sav |
real(kind=kind_phys), dimension(:,:,:), allocatable | co2cyc_sav |
real(kind=kind_phys) | co2_glb = co2vmr_def |
real(kind=kind_phys), dimension(12) | gco2cyc |
integer | kyrsav = 0 |
integer | kmonsav = 1 |
subroutine, public module_radiation_gases::gas_init | ( | ) |
[in] | me | integer, 1, print message control flag |
[out] | NONE |
physparam::ico2flg - co2 data source control flag
=0: use prescribed co2 global mean value
=1: use input global mean co2 value (co2_glb)
=2: use input 2-d monthly co2 value (co2vmr_sav)
physparam::ictmflg - =yyyy#, data ic time/date control flag
= -2: same as 0, but superimpose seasonal cycle from climatology data set.
= -1: use user provided external data for the fcst time, no extrapolation.
= 0: use data at initial condition time, if not existed then use latest, without extrapolation.
= 1: use data at the forecast time, if not existed then use latest and extrapolate to fcst time.
=yyyy0: use yyyy data for the forecast time, no further data extrapolation.
=yyyy1: use yyyy data for the fcst. if needed, do extrapolation to match the fcst time.
physparam::ioznflg - ozone data control flag
=0: use climatological ozone profile
>0: use interactive ozone profile
physparam::ivflip - vertical profile indexing flag
physparam::co2usr_file - external co2 user defined data table
physparam::co2cyc_file - external co2 climotology monthly cycle data table
Definition at line 217 of file radiation_gases.f.
References co2_glb, physparam::co2cyc_file, co2cyc_sav, physparam::co2usr_file, co2vmr_def, co2vmr_sav, gco2cyc, physparam::ico2flg, physparam::ictmflg, imxco2, physparam::ioznflg, jmxco2, kmonsav, kyrsav, o3r, pkstr, and vtaggas.
Referenced by module_radiation_driver::radinit().
subroutine, public module_radiation_gases::gas_update | ( | ) |
Definition at line 535 of file radiation_gases.f.
References co2_glb, co2cyc_sav, physparam::co2dat_file, physparam::co2gbl_file, co2vmr_sav, facoz, gco2cyc, physparam::ico2flg, physparam::ictmflg, imxco2, physparam::ioznflg, jmxco2, k1oz, k2oz, kmonsav, kyrsav, and minyear.
Referenced by module_radiation_driver::radupdate().
subroutine, public module_radiation_gases::getgases | ( | ) |
[in] | plvl | real, (IMAX,LMAX+1), pressure at model layer interfaces (mb) |
[in] | xlon | real, (IMAX), grid longitude in radians, ok both 0->2pi or -pi -> +pi arrangements |
[in] | xlat | real, (IMAX), grid latitude in radians, default range to pi/2 -> -pi/2, otherwise see in-line comment |
[in] | IMAX,LMAX | integer, horiz/vert dimensions for output data |
[out] | gasdat | real, (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 |
physparam::ico2flg - co2 data source control flag
=0: use prescribed co2 global mean value
=1: use input global mean co2 value (co2_glb)
=2: use input 2-d monthly co2 value (co2vmr_sav)
physparam::ivflip - vertical profile indexing flag
Definition at line 933 of file radiation_gases.f.
References ch4vmr_def, cl4vmr_def, co2_glb, co2vmr_def, co2vmr_sav, physcons::con_pi, covmr_def, f113vmr_def, f11vmr_def, f12vmr_def, f22vmr_def, gco2cyc, hfpi, physparam::ico2flg, imxco2, physparam::ivflip, jmxco2, kmonsav, n2ovmr_def, o2vmr_def, prsco2, raddeg, and resco2.
Referenced by module_radiation_driver::grrad().
subroutine, public module_radiation_gases::getozn | ( | ) |
[in] | prslk | real, (IMAX,LM), exner function = \((p/p0)^{rocp}\) |
[in] | xlat | real, (IMAX), latitude in radians, default to pi/2 -> -pi/2 range, otherwise see in-line comment |
[in] | IMAX,LM | integer, horizontal and vertical dimensions |
[out] | o3mmr | real, (IMAX,LM), output ozone profile in mass mixing ratio (g/g) |
Definition at line 1086 of file radiation_gases.f.
References facoz, physparam::ivflip, k1oz, k2oz, o3r, pkstr, and raddeg.
Referenced by module_radiation_driver::grrad().
|
private |
Definition at line 148 of file radiation_gases.f.
Referenced by getgases().
|
private |
Definition at line 154 of file radiation_gases.f.
Referenced by getgases().
|
private |
Definition at line 176 of file radiation_gases.f.
Referenced by gas_init(), gas_update(), and getgases().
|
private |
Definition at line 174 of file radiation_gases.f.
Referenced by gas_init(), and gas_update().
|
private |
Definition at line 146 of file radiation_gases.f.
Referenced by gas_init(), and getgases().
|
private |
Definition at line 173 of file radiation_gases.f.
Referenced by gas_init(), gas_update(), and getgases().
|
private |
Definition at line 150 of file radiation_gases.f.
Referenced by getgases().
|
private |
Definition at line 155 of file radiation_gases.f.
Referenced by getgases().
|
private |
Definition at line 151 of file radiation_gases.f.
Referenced by getgases().
|
private |
Definition at line 152 of file radiation_gases.f.
Referenced by getgases().
|
private |
Definition at line 153 of file radiation_gases.f.
Referenced by getgases().
|
private |
Definition at line 170 of file radiation_gases.f.
Referenced by gas_update(), and getozn().
|
private |
Definition at line 177 of file radiation_gases.f.
Referenced by gas_init(), gas_update(), and getgases().
|
private |
Definition at line 143 of file radiation_gases.f.
Referenced by getgases().
|
private |
Definition at line 133 of file radiation_gases.f.
Referenced by gas_init(), gas_update(), and getgases().
|
private |
Definition at line 135 of file radiation_gases.f.
Referenced by gas_init(), gas_update(), and getgases().
|
private |
Definition at line 169 of file radiation_gases.f.
Referenced by gas_update(), and getozn().
|
private |
Definition at line 169 of file radiation_gases.f.
Referenced by gas_update(), and getozn().
|
private |
Definition at line 181 of file radiation_gases.f.
Referenced by gas_init(), gas_update(), and getgases().
|
private |
Definition at line 180 of file radiation_gases.f.
Referenced by gas_init(), and gas_update().
|
private |
Definition at line 137 of file radiation_gases.f.
Referenced by gas_update().
|
private |
Definition at line 147 of file radiation_gases.f.
Referenced by getgases().
integer, parameter, public module_radiation_gases::nf_vgas = 10 |
Definition at line 131 of file radiation_gases.f.
|
private |
Definition at line 149 of file radiation_gases.f.
Referenced by getgases().
|
private |
Definition at line 168 of file radiation_gases.f.
Referenced by gas_init(), and getozn().
|
private |
Definition at line 168 of file radiation_gases.f.
Referenced by gas_init(), and getozn().
|
private |
Definition at line 142 of file radiation_gases.f.
Referenced by getgases().
|
private |
Definition at line 141 of file radiation_gases.f.
Referenced by getgases(), and getozn().
|
private |
Definition at line 140 of file radiation_gases.f.
Referenced by getgases().
|
private |
Definition at line 125 of file radiation_gases.f.
Referenced by gas_init().