GFS Operational Physics Documentation  Revision: 81451
radsw_param.f
Go to the documentation of this file.
1 
3 
6 
7 !!!!! ============================================================== !!!!!
8 !!!!! sw-rrtm3 radiation package description !!!!!
9 !!!!! ============================================================== !!!!!
10 ! !
11 ! this package includes ncep's modifications of the rrtm-sw radiation !
12 ! code from aer inc. !
13 ! !
14 ! the sw-rrtm3 package includes these parts: !
15 ! !
16 ! 'radsw_rrtm3_param.f' !
17 ! 'radsw_rrtm3_datatb.f' !
18 ! 'radsw_rrtm3_main.f' !
19 ! !
20 ! the 'radsw_rrtm3_param.f' contains: !
21 ! !
22 ! 'module_radsw_parameters' -- band parameters set up !
23 ! !
24 ! the 'radsw_rrtm3_datatb.f' contains: !
25 ! !
26 ! 'module_radsw_ref' -- reference temperature and pressure !
27 ! 'module_radsw_cldprtb' -- cloud property coefficients table !
28 ! 'module_radsw_sflux' -- spectral distribution of solar flux !
29 ! 'module_radsw_kgbnn' -- absorption coeffients for 14 !
30 ! bands, where nn = 16-29 !
31 ! !
32 ! the 'radsw_rrtm3_main.f' contains: !
33 ! !
34 ! 'module_radsw_main' -- main sw radiation transfer !
35 ! !
36 ! in the main module 'module_radsw_main' there are only two !
37 ! externally callable subroutines: !
38 ! !
39 ! 'swrad' -- main rrtm3 sw radiation routine !
40 ! 'rswinit' -- initialization routine !
41 ! !
42 ! all the sw radiation subprograms become contained subprograms !
43 ! in module 'module_radsw_main' and many of them are not directly !
44 ! accessable from places outside the module. !
45 ! !
46 ! compilation sequence is: !
47 ! !
48 ! 'radsw_rrtm3_param.f' !
49 ! 'radsw_rrtm3_datatb.f' !
50 ! 'radsw_rrtm3_main.f' !
51 ! !
52 ! and all should be put in front of routines that use sw modules !
53 ! !
54 ! ncep modifications history log: !
55 ! !
56 ! see list in program "radsw_rrtm3_main.f" !
57 ! !
58 !!!!! ============================================================== !!!!!
59 !!!!! end descriptions !!!!!
60 !!!!! ============================================================== !!!!!
61 
62 
64 !========================================!
66 !........................................!
67 
68  use physparam, only : kind_phys
69 
70  implicit none
71 !
72  public
73 !
75  type :: topfsw_type
77  real (kind=kind_phys) :: upfxc
79  real (kind=kind_phys) :: dnfxc
81  real (kind=kind_phys) :: upfx0
82  end type
83 !
85  type :: sfcfsw_type
87  real (kind=kind_phys) :: upfxc
89  real (kind=kind_phys) :: dnfxc
91  real (kind=kind_phys) :: upfx0
93  real (kind=kind_phys) :: dnfx0
94  end type
95 !
97  type :: profsw_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 !
110  type :: cmpfsw_type
112  real (kind=kind_phys) :: uvbfc
114  real (kind=kind_phys) :: uvbf0
116  real (kind=kind_phys) :: nirbm
118  real (kind=kind_phys) :: nirdf
120  real (kind=kind_phys) :: visbm
122  real (kind=kind_phys) :: visdf
123  end type
124 !
125 !! \name Parameter constants for SW band structures
126 
128  integer, parameter :: nblow = 16
130  integer, parameter :: nbhgh = 29
132  integer, parameter :: nbands = nbhgh-nblow+1
134  integer, parameter :: ngptsw = 112
136  integer, parameter :: ngmax = 16
138  integer, parameter :: maxgas = 7
140  integer, parameter :: ntbmx = 10000
141 
142  integer, parameter :: nswstr = 1
143 ! integer, parameter :: NSWEND = NBANDS
144  integer, parameter :: nbdsw = nbands
145 
147  integer :: ng16, ng17, ng18, ng19, ng20, ng21, ng22,
148  & ng23, ng24, ng25, ng26, ng27, ng28, ng29
149  parameter( ng16=06, ng17=12, ng18=08, ng19=08, ng20=10,
150  & ng21=10, ng22=02, ng23=10, ng24=08, ng25=06,
151  & ng26=06, ng27=08, ng28=06, ng29=12)
152 
153  integer, dimension(NBLOW:NBHGH) :: ng
154  data ng / ng16, ng17, ng18, ng19, ng20, ng21, ng22,
155  & ng23, ng24, ng25, ng26, ng27, ng28, ng29 /
156 
158  integer :: ns16, ns17, ns18, ns19, ns20, ns21, ns22,
159  & ns23, ns24, ns25, ns26, ns27, ns28, ns29
160  parameter( ns16=00, ns17=ns16+ng16, ns18=ns17+ng17,
161  & ns19=ns18+ng18, ns20=ns19+ng19, ns21=ns20+ng20,
162  & ns22=ns21+ng21, ns23=ns22+ng22, ns24=ns23+ng23,
163  & ns25=ns24+ng24, ns26=ns25+ng25, ns27=ns26+ng26,
164  & ns28=ns27+ng27, ns29=ns28+ng28 )
165 
166  integer, dimension(NBLOW:NBHGH) :: ngs
167  data ngs / ns16, ns17, ns18, ns19, ns20, ns21, ns22, &
168  & ns23, ns24, ns25, ns26, ns27, ns28, ns29 /
169 
171  integer, dimension(NGPTSW) :: ngb
172  data ngb(:) / 16,16,16,16,16,16, & ! band 16
173  & 17,17,17,17,17,17,17,17,17,17,17,17, & ! band 17
174  & 18,18,18,18,18,18,18,18, & ! band 18
175  & 19,19,19,19,19,19,19,19, & ! band 19
176  & 20,20,20,20,20,20,20,20,20,20, & ! band 20
177  & 21,21,21,21,21,21,21,21,21,21, & ! band 21
178  & 22,22, & ! band 22
179  & 23,23,23,23,23,23,23,23,23,23, & ! band 23
180  & 24,24,24,24,24,24,24,24, & ! band 24
181  & 25,25,25,25,25,25, & ! band 25
182  & 26,26,26,26,26,26, & ! band 26
183  & 27,27,27,27,27,27,27,27, & ! band 27
184  & 28,28,28,28,28,28, & ! band 28
185  & 29,29,29,29,29,29,29,29,29,29,29,29 / ! band 29
186 
188  real (kind=kind_phys), dimension(NBANDS):: wvnum1, wvnum2
189  data wvnum1(:) / &
190  & 2600.0, 3251.0, 4001.0, 4651.0, 5151.0, 6151.0, 7701.0, &
191  & 8051.0,12851.0,16001.0,22651.0,29001.0,38001.0, 820.0 /
192  data wvnum2(:) / &
193  & 3250.0, 4000.0, 4650.0, 5150.0, 6150.0, 7700.0, 8050.0, &
194  & 12850.0,16000.0,22650.0,29000.0,38000.0,50000.0, 2600.0 /
195 
196 !
197 !........................................!
198  end module module_radsw_parameters !
199 !========================================!
200 !! @}
integer, parameter nbands
number of spectral bands
Definition: radsw_param.f:132
Define type construct for optional component downward fluxes at surface.
Definition: radsw_param.f:110
integer, parameter nbhgh
band range upper limit
Definition: radsw_param.f:130
integer, parameter ntbmx
index upper limit of trans table
Definition: radsw_param.f:140
integer, parameter ngptsw
total number of g-point in all bands
Definition: radsw_param.f:134
Define type construct for optional radiation flux profiles.
Definition: radsw_param.f:97
This module contains SW band parameters set up.
Definition: radsw_param.f:65
integer, parameter nblow
band range lower limit
Definition: radsw_param.f:128
Define type construct for radiation fluxes at toa.
Definition: radsw_param.f:75
integer, dimension(ngptsw) ngb
band index for each g-point
Definition: radsw_param.f:171
integer, parameter maxgas
max num of absorbing gases
Definition: radsw_param.f:138
Define type construct for radiation fluxes at surface.
Definition: radsw_param.f:85
integer, parameter ngmax
max num of g-point in one band
Definition: radsw_param.f:136