GFS Operational Physics Documentation  gsm/branches/DTC/phys-doc-all phys-doc-all R82971
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 
65 !========================================!
67 !........................................!
68 
69  use physparam, only : kind_phys
70 
71  implicit none
72 !
73  public
74 !
76  type :: topfsw_type
78  real (kind=kind_phys) :: upfxc
80  real (kind=kind_phys) :: dnfxc
82  real (kind=kind_phys) :: upfx0
83  end type
84 !
86  type :: sfcfsw_type
88  real (kind=kind_phys) :: upfxc
90  real (kind=kind_phys) :: dnfxc
92  real (kind=kind_phys) :: upfx0
94  real (kind=kind_phys) :: dnfx0
95  end type
96 !
98  type :: profsw_type
100  real (kind=kind_phys) :: upfxc
102  real (kind=kind_phys) :: dnfxc
104  real (kind=kind_phys) :: upfx0
106  real (kind=kind_phys) :: dnfx0
107  end type
108 !
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
143  integer, parameter :: nswstr = 1
144 ! integer, parameter :: NSWEND = NBANDS
145  integer, parameter :: nbdsw = nbands
146 
148  integer :: ng16, ng17, ng18, ng19, ng20, ng21, ng22,
149  & ng23, ng24, ng25, ng26, ng27, ng28, ng29
150  parameter( ng16=06, ng17=12, ng18=08, ng19=08, ng20=10,
151  & ng21=10, ng22=02, ng23=10, ng24=08, ng25=06,
152  & ng26=06, ng27=08, ng28=06, ng29=12)
153 
154  integer, dimension(NBLOW:NBHGH) :: ng
155  data ng / ng16, ng17, ng18, ng19, ng20, ng21, ng22,
156  & ng23, ng24, ng25, ng26, ng27, ng28, ng29 /
157 
159  integer :: ns16, ns17, ns18, ns19, ns20, ns21, ns22,
160  & ns23, ns24, ns25, ns26, ns27, ns28, ns29
161  parameter( ns16=00, ns17=ns16+ng16, ns18=ns17+ng17,
162  & ns19=ns18+ng18, ns20=ns19+ng19, ns21=ns20+ng20,
163  & ns22=ns21+ng21, ns23=ns22+ng22, ns24=ns23+ng23,
164  & ns25=ns24+ng24, ns26=ns25+ng25, ns27=ns26+ng26,
165  & ns28=ns27+ng27, ns29=ns28+ng28 )
166 
168  integer, dimension(NBLOW:NBHGH) :: ngs
169  data ngs / ns16, ns17, ns18, ns19, ns20, ns21, ns22, &
170  & ns23, ns24, ns25, ns26, ns27, ns28, ns29 /
171 
173  integer, dimension(NGPTSW) :: ngb
174  data ngb(:) / 16,16,16,16,16,16, & ! band 16
175  & 17,17,17,17,17,17,17,17,17,17,17,17, & ! band 17
176  & 18,18,18,18,18,18,18,18, & ! band 18
177  & 19,19,19,19,19,19,19,19, & ! band 19
178  & 20,20,20,20,20,20,20,20,20,20, & ! band 20
179  & 21,21,21,21,21,21,21,21,21,21, & ! band 21
180  & 22,22, & ! band 22
181  & 23,23,23,23,23,23,23,23,23,23, & ! band 23
182  & 24,24,24,24,24,24,24,24, & ! band 24
183  & 25,25,25,25,25,25, & ! band 25
184  & 26,26,26,26,26,26, & ! band 26
185  & 27,27,27,27,27,27,27,27, & ! band 27
186  & 28,28,28,28,28,28, & ! band 28
187  & 29,29,29,29,29,29,29,29,29,29,29,29 / ! band 29
188 
190  real (kind=kind_phys), dimension(NBANDS):: wvnum1, wvnum2
191  data wvnum1(:) / &
192  & 2600.0, 3251.0, 4001.0, 4651.0, 5151.0, 6151.0, 7701.0, &
193  & 8051.0,12851.0,16001.0,22651.0,29001.0,38001.0, 820.0 /
194  data wvnum2(:) / &
195  & 3250.0, 4000.0, 4650.0, 5150.0, 6150.0, 7700.0, 8050.0, &
196  & 12850.0,16000.0,22650.0,29000.0,38000.0,50000.0, 2600.0 /
197 
198 !
199 !........................................!
200  end module module_radsw_parameters !
201 !========================================!
202 !! @}
integer, parameter nbands
total number of SW bands (14)
Definition: radsw_param.f:132
derived type for special components of surface SW fluxes
Definition: radsw_param.f:110
integer, parameter nbhgh
band range upper index
Definition: radsw_param.f:130
integer, parameter ntbmx
index upper limit of optical depth and transmittance tables
Definition: radsw_param.f:140
integer, parameter ngptsw
total number of g-point in all bands
Definition: radsw_param.f:134
derived type for SW fluxes' column profiles (at layer interfaces)
Definition: radsw_param.f:98
integer, parameter nswstr
SW bands counter starting index (for compatibility with previous SW radiation schemes) ...
Definition: radsw_param.f:143
This module is for specifying the band structures and program parameters used by the RRTMG-SW scheme...
Definition: radsw_param.f:66
integer, parameter nblow
band range lower index
Definition: radsw_param.f:128
integer, dimension(nblow:nbhgh) ngs
array contains values of NS16-NS29
Definition: radsw_param.f:168
derived type for SW fluxes at TOA
Definition: radsw_param.f:76
integer, dimension(ngptsw) ngb
reverse checking of band index for each g-point
Definition: radsw_param.f:173
integer, parameter maxgas
maximum number of absorbing gases
Definition: radsw_param.f:138
derived type for SW fluxes at surface
Definition: radsw_param.f:86
integer, parameter ngmax
maximum number of g-point in one band
Definition: radsw_param.f:136