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