Radiation Scheme in CCPP
radlw_param.f
Go to the documentation of this file.
1 !!!!! ============================================================== !!!!!
2 !!!!! lw-rrtm3 radiation package description !!!!!
3 !!!!! ============================================================== !!!!!
4 ! !
5 ! this package includes ncep's modifications of the rrtm-lw radiation !
6 ! code from aer inc. !
7 ! !
8 ! the rrtm3 package includes these parts: !
9 ! !
10 ! 'radlw_rrtm3_param.f' !
11 ! 'radlw_rrtm3_datatb.f' !
12 ! 'radlw_rrtm3_main.f' !
13 ! !
14 ! the 'radlw_rrtm3_param.f' contains: !
15 ! !
16 ! 'module_radlw_parameters' -- band parameters set up !
17 ! !
18 ! the 'radlw_rrtm3_datatb.f' contains: !
19 ! !
20 ! 'module_radlw_avplank' -- plank flux data !
21 ! 'module_radlw_ref' -- reference temperature and pressure !
22 ! 'module_radlw_cldprlw' -- cloud property coefficients !
23 ! 'module_radlw_kgbnn' -- absorption coeffients for 16 !
24 ! bands, where nn = 01-16 !
25 ! !
26 ! the 'radlw_rrtm3_main.f' contains: !
27 ! !
28 ! 'module_radlw_main' -- main lw radiation transfer !
29 ! !
30 ! in the main module 'module_radlw_main' there are only two !
31 ! externally callable subroutines: !
32 ! !
33 ! 'lwrad' -- main rrtm3 lw radiation routine !
34 ! 'rlwinit' -- to initialize rrtm3 lw radiation !
35 ! !
36 ! all the lw radiation subprograms become contained subprograms !
37 ! in module 'module_radlw_rrtm' and many of them are not directly !
38 ! accessable from places outside the module. !
39 ! !
40 ! compilation sequence is: !
41 ! !
42 ! 'radlw_rrtm3_param.f' !
43 ! 'radlw_rrtm3_datatb.f' !
44 ! 'radlw_rrtm3_main.f' !
45 ! !
46 ! and all should be put in front of routines that use lw modules !
47 ! !
48 ! ncep modifications history log: !
49 ! !
50 ! see list in program "radlw_rrtm3_main.f" !
51 ! !
52 !!!!! ============================================================== !!!!!
53 !!!!! end descriptions !!!!!
54 !!!!! ============================================================== !!!!!
55 
57 !========================================!
59 !........................................!
60 
61  use physparam, only : kind_phys
62 
63  implicit none
64 !
65  public
66 !
67 ! --- define type construct for radiation fluxes at toa
68 !
70  type :: topflw_type
72  real (kind=kind_phys) :: upfxc ! total sky upward flux at toa
74  real (kind=kind_phys) :: upfx0 ! clear sky upward flux at toa
75  end type
76 !
77 ! --- define type construct for radiation fluxes at surface
78 !
80  type :: sfcflw_type
82  real (kind=kind_phys) :: upfxc ! total sky upward flux at sfc
84  real (kind=kind_phys) :: upfx0 ! clear sky upward flux at sfc
86  real (kind=kind_phys) :: dnfxc ! total sky downward flux at sfc
88  real (kind=kind_phys) :: dnfx0 ! clear sky downward flux at sfc
89  end type
90 !
91 ! --- define type construct for optional radiation flux profiles
92 !
94  type :: proflw_type
96  real (kind=kind_phys) :: upfxc ! level up flux for total sky
98  real (kind=kind_phys) :: dnfxc ! level dn flux for total sky
100  real (kind=kind_phys) :: upfx0 ! level up flux for clear sky
102  real (kind=kind_phys) :: dnfx0 ! level dn flux for clear sky
103  end type
104 !
105 ! --- parameter constants for lw band structures
106 !
108  integer, parameter :: nbands = 16 ! num of total spectral bands
110  integer, parameter :: ngptlw = 140 ! num of total g-points
112  integer, parameter :: ntbl = 10000 ! lookup table dimension
114  integer, parameter :: maxgas = 7 ! max num of absorbing gases
116  integer, parameter :: maxxsec= 4 ! num of halocarbon gases
118  integer, parameter :: nrates = 6 ! num of ref rates of binary species
120  integer, parameter :: nplnk = 181 ! dim for plank function table
121 
122  integer, parameter :: nbdlw = nbands
123 
124 ! --- number of g-point in each band
125  integer :: ng01, ng02, ng03, ng04, ng05, ng06, ng07, ng08, &
126  & NG09, NG10, NG11, NG12, NG13, NG14, NG15, NG16
127  parameter (ng01=10, ng02=12, ng03=16, ng04=14, ng05=16, ng06=08, &
128  & ng07=12, ng08=08, ng09=12, ng10=06, ng11=08, ng12=08, &
129  & ng13=04, ng14=02, ng15=02, ng16=02)
130 
131 ! --- begining index of each band
132  integer :: ns01, ns02, ns03, ns04, ns05, ns06, ns07, ns08, &
133  & NS09, NS10, NS11, NS12, NS13, NS14, NS15, NS16
134  parameter (ns01=00, ns02=10, ns03=22, ns04=38, ns05=52, ns06=68, &
135  & ns07=76, ns08=88, ns09=96, ns10=108, ns11=114, &
136  & ns12=122, ns13=130, ns14=134, ns15=136, ns16=138)
137 
138 ! --- band indices for each g-point
139  integer, dimension(NGPTLW) :: ngb
140  data ngb(:) / 10*1, 12*2, 16*3, 14*4, 16*5, 8*6, 12*7, 8*8, & ! band 1- 8
141  & 12*9, 6*10, 8*11, 8*12, 4*13, 2*14, 2*15, 2*16 / ! band 9-16
142 
143 ! --- band spectrum structures (wavenumber in cm**-1)
144  real (kind=kind_phys) :: wvnlw1(nbands), wvnlw2(nbands)
145  data wvnlw1 / &
146  & 10., 351., 501., 631., 701., 821., 981., 1081., &
147  & 1181., 1391., 1481., 1801., 2081., 2251., 2381., 2601. /
148  data wvnlw2 / &
149  & 350., 500., 630., 700., 820., 980., 1080., 1180., &
150  & 1390., 1480., 1800., 2080., 2250., 2380., 2600., 3250. /
151 
152  real (kind=kind_phys) :: delwave(nbands)
153  data delwave / 340., 150., 130., 70., 120., 160., 100., 100., &
154  & 210., 90., 320., 280., 170., 130., 220., 650. /
155 
156 !........................................!
157  end module module_radlw_parameters !
158 !========================================!
integer, parameter ngptlw
num of total g-points
Definition: radlw_param.f:110
real(kind=kind_phys), dimension(nbands) delwave
Definition: radlw_param.f:152
integer, parameter maxxsec
num of halocarbon gasees
Definition: radlw_param.f:116
define type construct for optional radiation flux profiles
Definition: radlw_param.f:94
integer, parameter nplnk
dim for plank function table
Definition: radlw_param.f:120
integer, parameter nbdlw
Definition: radlw_param.f:122
real(kind=kind_phys), dimension(nbands) wvnlw2
Definition: radlw_param.f:144
This module defines commonly used control variables/parameters in physics related programs...
Definition: physparam.f:27
integer, parameter ntbl
lookup table dimension
Definition: radlw_param.f:112
real(kind=kind_phys), dimension(nbands) wvnlw1
Definition: radlw_param.f:144
define type construct for radiation fluxes at surface
Definition: radlw_param.f:80
This module contains LW band parameters set up.
Definition: radlw_param.f:58
integer, parameter nrates
num of ref rates of binary species
Definition: radlw_param.f:118
define type construct for radiation fluxes at toa
Definition: radlw_param.f:70
integer, parameter maxgas
max num of absorbing gases
Definition: radlw_param.f:114
integer, parameter nbands
num of total spectral bands
Definition: radlw_param.f:108
integer, dimension(ngptlw) ngb
Definition: radlw_param.f:139