module_ra_rrtm.F

References to this file elsewhere.
1 
2 MODULE module_ra_rrtm
3 
4 ! Parameters
5 
6       INTEGER, PRIVATE :: IDATA
7       INTEGER, PARAMETER :: MG=16 
8       INTEGER, PARAMETER :: NBANDS=16
9       INTEGER, PARAMETER :: NGPT=140
10       INTEGER, PARAMETER :: NG1=8
11       INTEGER, PARAMETER :: NG2=14
12       INTEGER, PARAMETER :: NG3=16
13       INTEGER, PARAMETER :: NG4=14
14       INTEGER, PARAMETER :: NG5=16 
15       INTEGER, PARAMETER :: NG6=8
16       INTEGER, PARAMETER :: NG7=12
17       INTEGER, PARAMETER :: NG8=8
18       INTEGER, PARAMETER :: NG9=12
19       INTEGER, PARAMETER :: NG10=6 
20       INTEGER, PARAMETER :: NG11=8
21       INTEGER, PARAMETER :: NG12=8
22       INTEGER, PARAMETER :: NG13=4
23       INTEGER, PARAMETER :: NG14=2
24       INTEGER, PARAMETER :: NG15=2
25       INTEGER, PARAMETER :: NG16=2
26       INTEGER, PARAMETER :: MAXINPX=35
27       INTEGER, PARAMETER :: MAXXSEC=4
28 
29       INTEGER, PARAMETER :: NMOL = 6
30       REAL, PARAMETER :: ONEMINUS = 1. - 1.E-6
31 
32 ! var
33 
34       REAL    , SAVE    :: FLUXFAC
35       INTEGER , SAVE    :: NLAYERS
36 !
37 ! data 1
38 !
39       REAL,SAVE ::  abscoefL1(5,13,MG),    abscoefH1(5,13:59,MG),   &
40                     SELFREF1(10,MG)
41       REAL,SAVE ::  abscoefL2(5,13,MG),    abscoefH2(5,13:59,MG),   &
42                     SELFREF2(10,MG)
43       REAL,SAVE ::  abscoefL3(10,5,13,MG), abscoefH3(5,5,13:59,MG), &
44                     SELFREF3(10,MG)
45       REAL,SAVE ::  abscoefL4(9,5,13,MG),  abscoefH4(6,5,13:59,MG), &
46                     SELFREF4(10,MG)
47       REAL,SAVE ::  abscoefL5(9,5,13,MG),  abscoefH5(5,5,13:59,MG), &
48                     SELFREF5(10,MG)
49       REAL,SAVE ::  abscoefL6(5,13,MG),    SELFREF6(10,MG)
50       REAL,SAVE ::  abscoefL7(9,5,13,MG),  abscoefH7(5,13:59,MG),   &
51                     SELFREF7(10,MG)
52       REAL,SAVE ::  abscoefL8(5,7,MG),     abscoefH8(5,7:59,MG),    &
53                     SELFREF8(10,MG)
54       REAL,SAVE ::  abscoefL9(11,5,13,MG), abscoefH9(5,13:59,MG),   &
55                     SELFREF9(10,MG)
56       REAL,SAVE ::  abscoefL10(5,13,MG),   abscoefH10(5,13:59,MG)  
57       REAL,SAVE ::  abscoefL11(5,13,MG),   abscoefH11(5,13:59,MG),  &
58                     SELFREF11(10,MG)
59       REAL,SAVE ::  abscoefL12(9,5,13,MG), SELFREF12(10,MG)
60       REAL,SAVE ::  abscoefL13(9,5,13,MG), SELFREF13(10,MG)
61       REAL,SAVE ::  abscoefL14(5,13,MG),   abscoefH14(5,13:59,MG),  &
62                     SELFREF14(10,MG)
63       REAL,SAVE ::  abscoefL15(9,5,13,MG), SELFREF15(10,MG)
64       REAL,SAVE ::  abscoefL16(9,5,13,MG), SELFREF16(10,MG)
65 
66 !
67 ! data 2
68 !
69       INTEGER,SAVE ::  NGM(MG*NBANDS), NGC(NBANDS), NGS(NBANDS),       &
70                     NGN(NGPT), NGB(NGPT)
71       REAL,SAVE ::  WT(MG)
72 !
73 ! data 3
74 !
75       REAL,SAVE ::  FRACREFA1(MG), FRACREFB1(MG), FORREF1(MG)   
76       REAL,SAVE ::  FRACREFA2(MG,13), FRACREFB2(MG), FORREF2(MG)
77       REAL,SAVE ::  FRACREFA3(MG,10), FRACREFB3(MG,5)        
78       REAL,SAVE ::  FORREF3(MG), ABSN2OA3(MG), ABSN2OB3(MG)   
79       REAL,SAVE ::  FRACREFA4(MG,9), FRACREFB4(MG,6)        
80       REAL,SAVE ::  FRACREFA5(MG,9), FRACREFB5(MG,5), CCL45(MG) 
81       REAL,SAVE ::  FRACREFA6(MG), ABSCO26(MG), CFC11ADJ6(MG), CFC126(MG)    
82       REAL,SAVE ::  FRACREFA7(MG,9), FRACREFB7(MG), ABSCO27(MG)        
83       REAL,SAVE ::  FRACREFA8(MG), FRACREFB8(MG), ABSCO2A8(MG), ABSCO2B8(MG)
84       REAL,SAVE ::  ABSN2OA8(MG), ABSN2OB8(MG), CFC128(MG), CFC22ADJ8(MG)  
85       REAL,SAVE ::  FRACREFA9(MG,9), FRACREFB9(MG), ABSN2O9(3*MG)
86       REAL,SAVE ::  FRACREFA10(MG), FRACREFB10(MG)        
87       REAL,SAVE ::  FRACREFA11(MG), FRACREFB11(MG)        
88       REAL,SAVE ::  FRACREFA12(MG,9)        
89       REAL,SAVE ::  FRACREFA13(MG,9)        
90       REAL,SAVE ::  FRACREFA14(MG), FRACREFB14(MG)
91       REAL,SAVE ::  FRACREFA15(MG,9)
92       REAL,SAVE ::  FRACREFA16(MG,9)
93 !
94 ! data 4
95 !
96       INTEGER,SAVE :: NXMOL, IXINDX(MAXINPX)
97 
98 ! data 5 
99 
100       REAL,SAVE    :: WAVENUM1(NBANDS),WAVENUM2(NBANDS),DELWAVE(NBANDS)
101 
102 ! data 6
103 
104       INTEGER,SAVE :: NG(NBANDS),NSPA(NBANDS),NSPB(NBANDS)
105       REAL,   SAVE :: HEATFAC
106       REAL,   SAVE :: PREF(59),PREFLOG(59),TREF(59)
107 
108 ! data 7 
109 
110       REAL,   SAVE :: TOTPLNK(181,NBANDS), TOTPLK16(181)
111 
112 ! data
113 
114       REAL,    SAVE :: TAU(0:5000),TF(0:5000),TRANS(0:5000)
115 !
116       REAL,    SAVE :: ABSA1(5*13,NG1), ABSB1(5*(59-13+1),NG1),         &
117                        SELFREFC1(10,NG1), FORREFC1(NG1)
118       REAL,    SAVE :: ABSA2(5*13,NG2), ABSB2(5*(59-13+1),NG2),         &
119                        SELFREFC2(10,NG2), FORREFC2(NG2)
120       REAL,    SAVE :: ABSA3(10*5*13,NG3), ABSB3(5*5*(59-13+1),NG3),    &     
121                        SELFREFC3(10,NG3), FORREFC3(NG3),                &
122                        ABSN2OAC3(NG3), ABSN2OBC3(NG3)        
123       REAL,    SAVE :: ABSA4(9*5*13,NG4), ABSB4(6*5*(59-13+1),NG4),     &
124                        SELFREFC4(10,NG4)        
125       REAL,    SAVE :: ABSA5(9*5*13,NG5), ABSB5(5*5*(59-13+1),NG5),     &
126                        SELFREFC5(10,NG5), CCL4C5(NG5)        
127       REAL,    SAVE :: ABSA6(5*13,NG6), SELFREFC6(10,NG6),              &        
128                        ABSCO2C6(NG6), CFC11ADJC6(NG6), CFC12C6(NG6)  
129       REAL,    SAVE :: ABSA7(9*5*13,NG7), ABSB7(5*(59-13+1),NG7),       &  
130                        SELFREFC7(10,NG7), ABSCO2C7(NG7)        
131       REAL,    SAVE :: ABSA8(5*7,NG8), ABSB8(5*(59-7+1),NG8),           &
132                        SELFREFC8(10,NG8),                               &
133                        ABSCO2AC8(NG8), ABSCO2BC8(NG8),                  &
134                        ABSN2OAC8(NG8), ABSN2OBC8(NG8),                  &       
135                        CFC12C8(NG8), CFC22ADJC8(NG8)      
136       REAL,    SAVE :: ABSA9(11*5*13,NG9), ABSB9(5*(59-13+1),NG9),      &
137                        SELFREFC9(10,NG9), ABSN2OC9(3*NG9)
138       REAL,    SAVE :: ABSA10(5*13,NG10), ABSB10(5*(59-13+1),NG10)
139       REAL,    SAVE :: ABSA11(5*13,NG11), ABSB11(5*(59-13+1),NG11),     &
140                        SELFREFC11(10,NG11)
141       REAL,    SAVE :: ABSA12(9*5*13,NG12), SELFREFC12(10,NG12)
142       REAL,    SAVE :: ABSA13(9*5*13,NG13), SELFREFC13(10,NG13)
143       REAL,    SAVE :: ABSA14(5*13,NG14), ABSB14(5*(59-13+1),NG14),    &
144                        SELFREFC14(10,NG14)
145       REAL,    SAVE :: ABSA15(9*5*13,NG15), SELFREFC15(10,NG15)
146       REAL,    SAVE :: ABSA16(9*5*13,NG16), SELFREFC16(10,NG16)
147 
148       REAL,    SAVE :: FRACREFAC1(NG1), FRACREFBC1(NG1)
149       REAL,    SAVE :: FRACREFAC2(NG2,13), FRACREFBC2(NG2)
150       REAL,    SAVE :: FRACREFAC3(NG3,10), FRACREFBC3(NG3,5)
151       REAL,    SAVE :: FRACREFAC4(NG4,9), FRACREFBC4(NG4,6)
152       REAL,    SAVE :: FRACREFAC5(NG5,9), FRACREFBC5(NG5,5)      
153       REAL,    SAVE :: FRACREFAC6(NG6)                              
154       REAL,    SAVE :: FRACREFAC7(NG7,9), FRACREFBC7(NG7)    
155       REAL,    SAVE :: FRACREFAC8(NG8), FRACREFBC8(NG8)  
156       REAL,    SAVE :: FRACREFAC9(NG9,9), FRACREFBC9(NG9)      
157       REAL,    SAVE :: FRACREFAC10(NG10), FRACREFBC10(NG10)       
158       REAL,    SAVE :: FRACREFAC11(NG11), FRACREFBC11(NG11)  
159       REAL,    SAVE :: FRACREFAC12(NG12,9)                     
160       REAL,    SAVE :: FRACREFAC13(NG13,9)           
161       REAL,    SAVE :: FRACREFAC14(NG14), FRACREFBC14(NG14)    
162       REAL,    SAVE :: FRACREFAC15(NG15,9)                      
163       REAL,    SAVE :: FRACREFAC16(NG16,9)                 
164       
165       REAL,    SAVE :: CORR1(0:200),CORR2(0:200)
166       REAL,    SAVE :: BPADE
167       REAL,    SAVE :: RWGT(MG*NBANDS)
168 
169 !----------------------------------------------------------------------------
170 !
171 ! start data 2
172                                                                                  
173 !     Arrays for the g-point reduction from 256 to 140 for the 16 LW bands:      
174 !     This mapping from 256 to 140 points has been carefully selected to         
175 !     minimize the effect on the resulting fluxes and cooling rates, and         
176 !     caution should be used if the mapping is modified.                         
177 !                                                                                
178 !     NGPT    The total number of new g-points                                   
179 !     NGC     The number of new g-points in each band                            
180 !     NGM     The index of each new g-point relative to the original             
181 !             16 g-points for each band.                                         
182 !     NGN     The number of original g-points that are combined to make          
183 !             each new g-point in each band.                                     
184 !     NGB     The band index for each new g-point.                               
185 !     WT      RRTM weights for 16 g-points.                                      
186                                                                                  
187 ! Data Statements                                                                
188       DATA NGC  /8,14,16,14,16,8,12,8,12,6,8,8,4,2,2,2/                          
189       DATA NGS  /8,22,38,52,68,76,88,96,108,114,122,130,134,136,138,140/         
190       DATA NGM  /1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8, &             ! Band 1            
191                  1,2,3,4,5,6,7,8,9,10,11,12,13,13,14,14, &      ! Band 2            
192                  1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, &      ! Band 3            
193                  1,2,3,4,5,6,7,8,9,10,11,12,13,14,14,14, &      ! Band 4            
194                  1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, &      ! Band 5            
195                  1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8, &             ! Band 6            
196                  1,1,2,2,3,4,5,6,7,8,9,10,11,11,12,12, &        ! Band 7            
197                  1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8, &             ! Band 8            
198                  1,2,3,4,5,6,7,8,9,9,10,10,11,11,12,12, &       ! Band 9            
199                  1,1,2,2,3,3,4,4,5,5,5,5,6,6,6,6, &             ! Band 10           
200                  1,2,3,3,4,4,5,5,6,6,7,7,7,8,8,8, &             ! Band 11           
201                  1,2,3,4,5,5,6,6,7,7,7,7,8,8,8,8, &             ! Band 12           
202                  1,1,1,2,2,2,3,3,3,3,4,4,4,4,4,4, &             ! Band 13           
203                  1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2, &             ! Band 14           
204                  1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2, &             ! Band 15           
205                  1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2/               ! Band 16           
206       DATA NGN  /2,2,2,2,2,2,2,2, &                             ! Band 1            
207                  1,1,1,1,1,1,1,1,1,1,1,1,2,2, &                 ! Band 2            
208                  16*1, &                                        ! Band 3            
209                  1,1,1,1,1,1,1,1,1,1,1,1,1,3, &                 ! Band 4            
210                  16*1, &                                        ! Band 5            
211                  2,2,2,2,2,2,2,2, &                             ! Band 6            
212                  2,2,1,1,1,1,1,1,1,1,2,2, &                     ! Band 7            
213                  2,2,2,2,2,2,2,2, &                             ! Band 8            
214                  1,1,1,1,1,1,1,1,2,2,2,2, &                     ! Band 9            
215                  2,2,2,2,4,4, &                                 ! Band 10           
216                  1,1,2,2,2,2,3,3, &                             ! Band 11           
217                  1,1,1,1,2,2,4,4, &                             ! Band 12           
218                  3,3,4,6, &                                     ! Band 13           
219                  8,8, &                                         ! Band 14           
220                  8,8, &                                         ! Band 15           
221                  8,8/                                           ! Band 16           
222       DATA NGB  /8*1, &                                         ! Band 1            
223                  14*2, &                                        ! Band 2            
224                  16*3, &                                        ! Band 3            
225                  14*4, &                                        ! Band 4            
226                  16*5, &                                        ! Band 5            
227                  8*6, &                                         ! Band 6            
228                  12*7, &                                        ! Band 7            
229                  8*8, &                                         ! Band 8            
230                  12*9, &                                        ! Band 9            
231                  6*10, &                                        ! Band 10           
232                  8*11, &                                        ! Band 11           
233                  8*12, &                                        ! Band 12           
234                  4*13, &                                        ! Band 13           
235                  2*14, &                                        ! Band 14           
236                  2*15, &                                        ! Band 15           
237                  2*16/                                       ! Band 16           
238       DATA WT/ &                                                                  
239            0.1527534276,0.1491729617,0.1420961469,0.1316886544, &                   
240            0.1181945205,0.1019300893,0.0832767040,0.0626720116, &                   
241            0.0424925,0.0046269894,0.0038279891,0.0030260086, &                      
242            0.0022199750,0.0014140010,0.000533,0.000075/                          
243 
244 !
245 ! end of data 2
246 !
247 !-----------------------------------------------------------------------
248 
249 ! start data 3
250 
251                                                                                  
252 ! Data
253 
254       DATA FRACREFA1/ &                                                            
255           0.08452097,0.17952873,0.16214369,0.13602182, &                            
256           0.12760490,0.10302561,0.08392423,0.06337652, &                            
257           0.04206551,0.00487497,0.00410743,0.00344421, &                            
258           0.00285731,0.00157327,0.00080648,0.00012406/                           
259       DATA FRACREFB1/ &                                                            
260           0.15492001,0.17384727,0.15165100,0.12675308, &                            
261           0.10986247,0.09006091,0.07584465,0.05990077, &                            
262           0.04113461,0.00438638,0.00374754,0.00313924, &                            
263           0.00234381,0.00167167,0.00062744,0.00010889/                           
264                                                                                  
265       DATA FORREF1/   &                                                            
266          -4.50470E-02,-1.18908E-01,-7.21730E-02,-2.83862E-02, &                     
267          -3.01961E-02,-1.56877E-02,-1.53684E-02,-1.29135E-02, &                     
268          -1.27963E-02,-1.81742E-03, 4.40008E-05, 1.05260E-02, &                     
269           2.17290E-02, 1.65571E-02, 7.60751E-02, 1.47405E-01/                    
270 
271                                                                                  
272 ! Data                                                                           
273                                                                                  
274 !     The ith set of reference fractions are from the ith reference              
275 !     pressure level.                                                            
276 
277       DATA FRACREFA2/ &
278           0.18068060,0.16803175,0.15140158,0.12221480, 0.10240850,0.09330297,0.07518960,0.05611294, &
279           0.03781487,0.00387192,0.00321285,0.00244440, 0.00179546,0.00107704,0.00038798,0.00005060, &
280           0.17927621,0.16731168,0.15129538,0.12328085, 0.10243484,0.09354796,0.07538418,0.05633071, &
281           0.03810832,0.00398347,0.00320262,0.00250029, 0.00178666,0.00111127,0.00039438,0.00005169, &
282           0.17762886,0.16638555,0.15115446,0.12470623, 0.10253213,0.09383459,0.07560240,0.05646568, &
283           0.03844077,0.00409142,0.00322521,0.00254918, 0.00179296,0.00113652,0.00040169,0.00005259, &
284           0.17566043,0.16539773,0.15092199,0.12571971, 0.10340609,0.09426189,0.07559051,0.05678188, &
285           0.03881499,0.00414102,0.00328551,0.00258795, 0.00181648,0.00115145,0.00040969,0.00005357, &
286           0.17335825,0.16442548,0.15070701,0.12667464, 0.10452303,0.09450833,0.07599410,0.05706393, &
287           0.03910370,0.00417880,0.00335256,0.00261708, 0.00185491,0.00116627,0.00041759,0.00005464, &
288           0.17082544,0.16321516,0.15044247,0.12797612, 0.10574646,0.09470057,0.07647423,0.05738756, &
289           0.03935621,0.00423789,0.00342651,0.00264549, 0.00190188,0.00118281,0.00042592,0.00005583, &
290           0.16809277,0.16193336,0.15013184,0.12937409, 0.10720784,0.09485368,0.07692636,0.05771774, &
291           0.03966988,0.00427754,0.00349696,0.00268946, 0.00193536,0.00120222,0.00043462,0.00005712, &
292           0.16517997,0.16059248,0.14984852,0.13079269, 0.10865030,0.09492947,0.07759736,0.05812201, &
293           0.03997169,0.00432356,0.00355308,0.00274031, 0.00197243,0.00122401,0.00044359,0.00005849, &
294           0.16209179,0.15912023,0.14938223,0.13198245, 0.11077233,0.09487948,0.07831636,0.05863440, &
295           0.04028239,0.00436804,0.00360407,0.00279885, 0.00200364,0.00124861,0.00045521,0.00005996, &
296           0.15962425,0.15789343,0.14898103,0.13275230, 0.11253940,0.09503502,0.07884382,0.05908009, &
297           0.04053524,0.00439971,0.00364269,0.00284965, 0.00202758,0.00127076,0.00046408,0.00006114, &
298           0.15926200,0.15770932,0.14891729,0.13283882, 0.11276010,0.09507311,0.07892222,0.05919230, &
299           0.04054824,0.00440833,0.00365575,0.00286459, 0.00203786,0.00128405,0.00046504,0.00006146, &
300           0.15926351,0.15770483,0.14891177,0.13279966, 0.11268171,0.09515216,0.07890341,0.05924807, &
301           0.04052851,0.00440870,0.00365425,0.00286878, 0.00205747,0.00128916,0.00046589,0.00006221, &
302           0.15937765,0.15775780,0.14892603,0.13273248, 0.11252731,0.09521657,0.07885858,0.05927679, &
303           0.04050184,0.00440285,0.00365748,0.00286791, 0.00207507,0.00129193,0.00046679,0.00006308/
304 !     From P = 0.432 mb.                                                         
305       DATA FRACREFB2/ &                                                             
306           0.17444289,0.16467269,0.15021490,0.12460902, &                         
307           0.10400643,0.09481928,0.07590704,0.05752856, &                         
308           0.03931715,0.00428572,0.00349352,0.00278938, &                         
309           0.00203448,0.00130037,0.00051560,0.00006255/                           
310                                                                                  
311       DATA FORREF2/ &                                                               
312          -2.34550E-03,-8.42698E-03,-2.01816E-02,-5.66701E-02, &                  
313          -8.93189E-02,-6.37487E-02,-4.56455E-02,-4.41417E-02, &                  
314          -4.48605E-02,-4.74696E-02,-5.16648E-02,-5.63099E-02, &                  
315          -4.74781E-02,-3.84704E-02,-2.49905E-02, 2.02114E-03/                    
316                                                                                  
317 ! Data                                                                           
318                                                                                  
319       DATA FRACREFA3/ &                                                             
320 !     From P = 1053.6 mb.                                                        
321           0.15116400,0.14875700,0.14232300,0.13234501, 0.11881600,0.10224100,0.08345580,0.06267490, &                         
322           0.04250650,0.00462650,0.00382259,0.00302600, 0.00222004,0.00141397,0.00053379,0.00007421, &                         
323           0.15266000,0.14888400,0.14195900,0.13179500, 0.11842700,0.10209000,0.08336130,0.06264370, &                         
324           0.04247660,0.00461946,0.00381536,0.00302601, 0.00222004,0.00141397,0.00053302,0.00007498, &                         
325           0.15282799,0.14903000,0.14192399,0.13174300, 0.11835300,0.10202700,0.08329830,0.06264830, &                         
326           0.04246910,0.00460242,0.00381904,0.00301573, 0.00222004,0.00141397,0.00053379,0.00007421, &                         
327           0.15298399,0.14902800,0.14193401,0.13173500, 0.11833300,0.10195800,0.08324730,0.06264770, &                         
328           0.04246490,0.00460489,0.00381123,0.00301893, 0.00221093,0.00141397,0.00053379,0.00007421, &                         
329           0.15307599,0.14907201,0.14198899,0.13169800, 0.11827300,0.10192300,0.08321600,0.06263490, &                         
330           0.04245600,0.00460846,0.00380836,0.00301663, 0.00221402,0.00141167,0.00052807,0.00007376, &                         
331           0.15311401,0.14915401,0.14207301,0.13167299, 0.11819300,0.10188900,0.08318760,0.06261960, &                         
332           0.04243890,0.00461584,0.00380929,0.00300815, 0.00221736,0.00140588,0.00052776,0.00007376, &                         
333           0.15316001,0.14925499,0.14213000,0.13170999, 0.11807700,0.10181400,0.08317400,0.06260300, &                         
334           0.04242720,0.00461520,0.00381381,0.00301285, 0.00220275,0.00140371,0.00052776,0.00007376, &                         
335           0.15321200,0.14940999,0.14222500,0.13164200, 0.11798200,0.10174500,0.08317500,0.06253640, &                         
336           0.04243130,0.00461724,0.00381534,0.00300320, 0.00220091,0.00140364,0.00052852,0.00007300, &                         
337           0.15312800,0.14973100,0.14234400,0.13168900, 0.11795200,0.10156100,0.08302990,0.06252240, &                         
338           0.04240980,0.00461035,0.00381381,0.00300176, 0.00220160,0.00140284,0.00052774,0.00007376, &                         
339           0.15292500,0.14978001,0.14242400,0.13172600, 0.11798800,0.10156400,0.08303050,0.06251670, &                         
340           0.04240970,0.00461302,0.00381452,0.00300250, 0.00220126,0.00140324,0.00052850,0.00007300/                           
341       DATA FRACREFB3/ &                                                             
342 !     From P = 64.1 mb.                                                          
343           0.16340201,0.15607700,0.14601400,0.13182700, &                         
344           0.11524700,0.09666570,0.07825360,0.05849780, &                         
345           0.03949650,0.00427980,0.00353719,0.00279303, &                         
346           0.00204788,0.00130139,0.00049055,0.00006904, &                         
347           0.15762900,0.15494700,0.14659800,0.13267800, &                         
348           0.11562700,0.09838360,0.07930420,0.05962700, &                         
349           0.04036360,0.00438053,0.00361463,0.00285723, &                         
350           0.00208345,0.00132135,0.00050528,0.00008003, &                         
351           0.15641500,0.15394500,0.14633600,0.13180400, &                         
352           0.11617100,0.09924170,0.08000510,0.06021420, &                         
353           0.04082730,0.00441694,0.00365364,0.00287723, &                         
354           0.00210914,0.00135784,0.00054651,0.00008003, &                         
355           0.15482700,0.15286300,0.14392500,0.13244100, &                         
356           0.11712000,0.09994920,0.08119200,0.06104360, &                         
357           0.04135600,0.00446685,0.00368377,0.00290767, &                         
358           0.00215445,0.00142865,0.00056142,0.00008003, &                         
359           0.15975100,0.15653500,0.14214399,0.12892200, &                         
360           0.11508400,0.09906020,0.08087940,0.06078190, &                         
361           0.04140530,0.00452724,0.00374558,0.00295328, &                         
362           0.00218509,0.00138644,0.00056018,0.00008003/                           
363                                                                                  
364       DATA ABSN2OA3/ &                                                              
365           1.50387E-01,2.91407E-01,6.28803E-01,9.65619E-01, &                     
366           1.15054E-00,2.23424E-00,1.83392E-00,1.39033E-00, &                     
367           4.28457E-01,2.73502E-01,1.84307E-01,1.61325E-01, &                     
368           7.66314E-02,1.33862E-01,6.71196E-07,1.59293E-06/                       
369       DATA ABSN2OB3/ &                                                              
370           9.37044E-05,1.23318E-03,7.91720E-03,5.33005E-02, &                     
371           1.72343E-01,4.29571E-01,1.01288E+00,3.83863E+00, &                     
372           1.15312E+01,1.08383E+00,2.24847E+00,1.51268E+00, &                     
373           3.33177E-01,7.82102E-01,3.44631E-01,1.61039E-03/                       
374       DATA FORREF3/ &                                                               
375           1.76842E-04, 1.77913E-04, 1.25186E-04, 1.07912E-04, &                  
376           1.05217E-04, 7.48726E-05, 1.11701E-04, 7.68921E-05, &                  
377           9.87242E-05, 9.85711E-05, 6.16557E-05,-1.61291E-05, &                  
378          -1.26794E-04,-1.19011E-04,-2.67814E-04, 6.95005E-05/                    
379                                                                                  
380 ! Data                                                                           
381                                                                                  
382       DATA FRACREFA4/ &                                                             
383 !     From P =                                                                   
384           0.15579100,0.14918099,0.14113800,0.13127001, &                         
385           0.11796300,0.10174300,0.08282370,0.06238150, &                         
386           0.04213440,0.00458968,0.00377949,0.00298736, &                         
387           0.00220743,0.00140644,0.00053024,0.00007459, &                         
388           0.15292799,0.15004000,0.14211500,0.13176700, &                         
389           0.11821100,0.10186300,0.08288040,0.06241390, &                         
390           0.04220720,0.00459006,0.00377919,0.00298743, &                         
391           0.00220743,0.00140644,0.00053024,0.00007459, &                         
392           0.14386199,0.15125300,0.14650001,0.13377000, &                         
393           0.11895900,0.10229400,0.08312110,0.06239520, &                         
394           0.04225560,0.00459428,0.00378865,0.00298860, &                         
395           0.00220743,0.00140644,0.00053024,0.00007459, &                         
396           0.14359100,0.14561599,0.14479300,0.13740200, &                         
397           0.12150100,0.10315400,0.08355480,0.06247240, &                         
398           0.04230980,0.00459916,0.00378373,0.00300063, &                         
399           0.00221111,0.00140644,0.00053024,0.00007459, &                         
400           0.14337599,0.14451601,0.14238000,0.13520500, &                         
401           0.12354200,0.10581200,0.08451810,0.06262440, &                         
402           0.04239590,0.00460297,0.00378701,0.00300466, &                         
403           0.00221899,0.00141020,0.00053024,0.00007459, &                         
404           0.14322001,0.14397401,0.14117201,0.13401900, &                         
405           0.12255500,0.10774100,0.08617650,0.06296420, &                         
406           0.04249590,0.00463406,0.00378241,0.00302037, &                         
407           0.00221583,0.00141103,0.00053814,0.00007991, &                         
408           0.14309500,0.14364301,0.14043900,0.13348100, &                         
409           0.12211600,0.10684700,0.08820590,0.06374610, &                         
410           0.04264730,0.00464231,0.00384022,0.00303427, &                         
411           0.00221825,0.00140943,0.00055564,0.00007991, &                         
412           0.15579100,0.14918099,0.14113800,0.13127001, &                         
413           0.11796300,0.10174300,0.08282370,0.06238150, &                         
414           0.04213440,0.00458968,0.00377949,0.00298736, &                         
415           0.00220743,0.00140644,0.00053024,0.00007459, &                         
416           0.15937001,0.15159500,0.14242800,0.13078900, &                         
417           0.11671300,0.10035700,0.08143450,0.06093850, &                         
418           0.04105320,0.00446233,0.00369844,0.00293784, &                         
419           0.00216425,0.00143403,0.00054571,0.00007991/                           
420       DATA FRACREFB4/ &                                                             
421 !     From P = 1.17 mb.                                                          
422           0.15558299,0.14930600,0.14104301,0.13124099, &                         
423           0.11792900,0.10159200,0.08314130,0.06240450, &                         
424           0.04217020,0.00459313,0.00379798,0.00299835, &                         
425           0.00218950,0.00140615,0.00053010,0.00007457, &                         
426           0.15592700,0.14918999,0.14095700,0.13115700, &                         
427           0.11788900,0.10158000,0.08313780,0.06240240, &                         
428           0.04217000,0.00459313,0.00379798,0.00299835, &                         
429           0.00218950,0.00140615,0.00053010,0.00007457, &                         
430           0.15949000,0.15014900,0.14162201,0.13080800, &                         
431           0.11713500,0.10057100,0.08170080,0.06128110, &                         
432           0.04165600,0.00459202,0.00379835,0.00299717, &                         
433           0.00218958,0.00140616,0.00053010,0.00007457, &                         
434           0.15967900,0.15038200,0.14196999,0.13074800, &                         
435           0.11701700,0.10053000,0.08160790,0.06122690, &                         
436           0.04128310,0.00456598,0.00379486,0.00299457, &                         
437           0.00219016,0.00140619,0.00053011,0.00007456, &                         
438           0.15989800,0.15057300,0.14207700,0.13068600, &                         
439           0.11682900,0.10053900,0.08163610,0.06121870, &                         
440           0.04121690,0.00449061,0.00371235,0.00294207, &                         
441           0.00217778,0.00139877,0.00053011,0.00007455, &                         
442           0.15950100,0.15112500,0.14199100,0.13071300, &                         
443           0.11680800,0.10054600,0.08179050,0.06120910, &                         
444           0.04126050,0.00444324,0.00366843,0.00289369, &                         
445           0.00211550,0.00134746,0.00050874,0.00007863/                           
446                                                                                  
447 ! Data                                                                           
448                                                                                  
449       DATA FRACREFA5/ &                                                             
450 !     From P = 387.6 mb.                                                         
451           0.13966499,0.14138900,0.13763399,0.13076700, &                         
452           0.12299100,0.10747700,0.08942000,0.06769200, &                         
453           0.04587610,0.00501173,0.00415809,0.00328398, &                         
454           0.00240015,0.00156222,0.00059104,0.00008323, &                         
455           0.13958199,0.14332899,0.13785399,0.13205400, &                         
456           0.12199700,0.10679600,0.08861080,0.06712320, &                         
457           0.04556030,0.00500863,0.00416315,0.00328629, &                         
458           0.00240023,0.00156220,0.00059104,0.00008323, &                         
459           0.13907100,0.14250501,0.13889600,0.13297300, &                         
460           0.12218700,0.10683800,0.08839260,0.06677310, &                         
461           0.04538570,0.00495402,0.00409863,0.00328219, &                         
462           0.00240805,0.00156266,0.00059104,0.00008323, &                         
463           0.13867700,0.14190100,0.13932300,0.13327099, &                         
464           0.12280800,0.10692500,0.08844510,0.06658510, &                         
465           0.04519340,0.00492276,0.00408832,0.00323856, &                         
466           0.00239289,0.00155698,0.00059104,0.00008323, &                         
467           0.13845000,0.14158800,0.13929300,0.13295600, &                         
468           0.12348300,0.10736700,0.08859480,0.06650610, &                         
469           0.04498230,0.00491335,0.00406968,0.00322901, &                         
470           0.00234666,0.00155235,0.00058813,0.00008323, &                         
471           0.13837101,0.14113200,0.13930500,0.13283101, &                         
472           0.12349200,0.10796400,0.08890490,0.06646480, &                         
473           0.04485990,0.00489554,0.00405264,0.00320313, &                         
474           0.00234742,0.00151159,0.00058438,0.00008253, &                         
475           0.13834500,0.14093500,0.13896500,0.13262001, &                         
476           0.12326900,0.10828900,0.08950050,0.06674610, &                         
477           0.04476560,0.00489624,0.00400962,0.00317423, &                         
478           0.00233479,0.00148249,0.00058590,0.00008253, &                         
479           0.13831300,0.14069000,0.13871400,0.13247600, &                         
480           0.12251400,0.10831300,0.08977090,0.06776920, &                         
481           0.04498390,0.00484111,0.00398948,0.00316069, &                         
482           0.00229741,0.00150104,0.00058608,0.00008253, &                         
483           0.14027201,0.14420401,0.14215700,0.13446601, &                         
484           0.12303700,0.10596100,0.08650370,0.06409570, &                         
485           0.04312310,0.00471110,0.00393954,0.00310850, &                         
486           0.00229588,0.00146366,0.00058194,0.00008253/                           
487       DATA FRACREFB5/ &                                                             
488 !     From P = 1.17 mb.                                                          
489           0.14339100,0.14358699,0.13935301,0.13306700, &                         
490           0.12135700,0.10590600,0.08688240,0.06553220, &                         
491           0.04446740,0.00483580,0.00399413,0.00316225, &                         
492           0.00233007,0.00149135,0.00056246,0.00008059, &                         
493           0.14330500,0.14430299,0.14053699,0.13355300, &                         
494           0.12151200,0.10529100,0.08627630,0.06505230, &                         
495           0.04385850,0.00476555,0.00395010,0.00313878, &                         
496           0.00232273,0.00149354,0.00056246,0.00008059, &                         
497           0.14328399,0.14442700,0.14078601,0.13390100, &                         
498           0.12132600,0.10510600,0.08613660,0.06494630, &                         
499           0.04381310,0.00475378,0.00394166,0.00313076, &                         
500           0.00231235,0.00149159,0.00056301,0.00008059, &                         
501           0.14326900,0.14453100,0.14114200,0.13397101, &                         
502           0.12127200,0.10493400,0.08601380,0.06483360, &                         
503           0.04378900,0.00474655,0.00393549,0.00312583, &                         
504           0.00230686,0.00148433,0.00056502,0.00008059, &                         
505           0.14328900,0.14532700,0.14179000,0.13384600, &                         
506           0.12093700,0.10461500,0.08573010,0.06461340, &                         
507           0.04366570,0.00473087,0.00392539,0.00311238, &                         
508           0.00229865,0.00147572,0.00056517,0.00007939/                           
509                                                                                  
510       DATA CCL45/ &                                                                 
511            26.1407,  53.9776,  63.8085,  36.1701, &                              
512            15.4099, 10.23116,  4.82948,  5.03836, &                              
513            1.75558,0.,0.,0., &                                                   
514            0.,0.,0.,0./                                                          
515                                                                                  
516 ! Data                                                                           
517                                                                                  
518       DATA FRACREFA6/ &                                                             
519 !     From P = 706 mb.                                                           
520           0.13739009,0.14259538,0.14033118,0.13547136, &                         
521           0.12569460,0.11028396,0.08626066,0.06245148, &                         
522           0.04309394,0.00473551,0.00403920,0.00321695, &                         
523           0.00232470,0.00147662,0.00056095,0.00007373/                           
524                                                                                  
525       DATA CFC11ADJ6/ &                                                             
526            0.,  0., 36.7627,  150.757,   &                                      
527            81.4109, 74.9112, 56.9325, 49.3226, &                                 
528            57.1074, 66.1202, 109.557, 89.0562, &                                 
529            149.865, 196.140, 258.393, 80.9923/                                   
530       DATA CFC126/ &                                                                
531            62.8368, 43.2626, 26.7549, 22.2487, &                                 
532            23.5029, 34.8323, 26.2335, 23.2306, &                                 
533            18.4062, 13.9534, 22.6268, 24.2604, &                                 
534            30.0088, 26.3634, 15.8237, 57.5050/                                   
535       DATA ABSCO26/ &                                                               
536            7.44852E-05, 6.29208E-05, 7.34031E-05, 6.65218E-05, &                 
537            7.87511E-05, 1.22489E-04, 3.39785E-04, 9.33040E-04, &                 
538            1.54323E-03, 4.07220E-04, 4.34332E-04, 8.76418E-05, &                 
539            9.80381E-05, 3.51680E-05, 5.31766E-05, 1.01542E-05/                   
540                                                                                  
541 ! Data                                                                           
542                                                                                  
543       DATA FRACREFA7/ &                                                             
544           0.16461779, 0.14889984, 0.14233345, 0.13156526, &                      
545           0.11679733, 0.09988949, 0.08078653, 0.06006384, &                      
546           0.04028391, 0.00435899, 0.00359173, 0.00281707, &                      
547           0.00206767, 0.00135012, 0.00050720, 0.00007146, &                      
548           0.16442357, 0.14944240, 0.14245804, 0.13111183, &                      
549           0.11688625, 0.09983791, 0.08085148, 0.05993948, &                      
550           0.04028057, 0.00435939, 0.00358708, 0.00284036, &                      
551           0.00208869, 0.00133256, 0.00049260, 0.00006931, &                      
552           0.16368519, 0.15018989, 0.14262174, 0.13084342, &                      
553           0.11682195, 0.09996257, 0.08074036, 0.05985692, &                      
554           0.04045362, 0.00436208, 0.00358257, 0.00287122, &                      
555           0.00211004, 0.00133804, 0.00049260, 0.00006931, &                      
556           0.16274056, 0.15133780, 0.14228874, 0.13081114, &                      
557           0.11688486, 0.09979610, 0.08073687, 0.05996741, &                      
558           0.04040616, 0.00439869, 0.00368910, 0.00293041, &                      
559           0.00211604, 0.00133536, 0.00049260, 0.00006931, &                      
560           0.16176532, 0.15207882, 0.14226955, 0.13079646, &                      
561           0.11688191, 0.09966998, 0.08066384, 0.06020275, &                      
562           0.04047901, 0.00446696, 0.00377456, 0.00294410, &                      
563           0.00211082, 0.00133536, 0.00049260, 0.00006931, &                      
564           0.15993737, 0.15305527, 0.14259829, 0.13078023, &                      
565           0.11686983, 0.09980131, 0.08058286, 0.06031430, &                      
566           0.04082833, 0.00450509, 0.00377574, 0.00294823, &                      
567           0.00210977, 0.00133302, 0.00049260, 0.00006931, &                      
568           0.15371189, 0.15592396, 0.14430280, 0.13076764, &                      
569           0.11720382, 0.10023471, 0.08066396, 0.06073554, &                      
570           0.04121581, 0.00451202, 0.00377832, 0.00294609, &                      
571           0.00210943, 0.00133336, 0.00049260, 0.00006931, &                      
572           0.14262275, 0.14572631, 0.14560597, 0.13736825, &                      
573           0.12271351, 0.10419556, 0.08294533, 0.06199794, &                      
574           0.04157615, 0.00452842, 0.00377704, 0.00293852, &                      
575           0.00211034, 0.00133278, 0.00049259, 0.00006931, &                      
576           0.14500433, 0.14590444, 0.14430299, 0.13770708, &                      
577           0.12288283, 0.10350952, 0.08269450, 0.06130579, &                      
578           0.04144571, 0.00452096, 0.00377382, 0.00294532, &                      
579           0.00210943, 0.00133228, 0.00049260, 0.00006931/                        
580       DATA FRACREFB7/ &                                                             
581           0.15355594,0.15310939,0.14274909,0.13129812, &                         
582           0.11736792,0.10118213,0.08215259,0.06165591, &                         
583           0.04164486,0.00451141,0.00372837,0.00294095, &                         
584           0.00215259,0.00136792,0.00051233,0.00007075/                           
585                                                                                  
586       DATA ABSCO27/ &                                                               
587           9.30038E-05, 1.74061E-04, 2.09293E-04, 2.52360E-04, &                  
588           3.13404E-04, 4.16619E-04, 6.27394E-04, 1.29386E-03, &                  
589           4.05192E-03, 3.97050E-03, 7.00634E-04, 6.06617E-04, &                  
590           7.66978E-04, 6.70661E-04, 7.89971E-04, 7.55709E-04/                    
591                                                                                  
592 ! Data                                                                           
593                                                                                  
594       DATA FRACREFA8/ &                                                             
595 !     From P = 1053.6 mb.                                                        
596           0.15309700,0.15450300,0.14458799,0.13098200, &                         
597           0.11817900,0.09953490,0.08132080,0.06139960, &                         
598           0.04132010,0.00446788,0.00372533,0.00294053, &                         
599           0.00211371,0.00128122,0.00048050,0.00006759/                           
600       DATA FRACREFB8/ &                                                             
601 !     From P = 28.9 mb.                                                          
602           0.14105400,0.14728899,0.14264800,0.13331699, &                         
603           0.12034100,0.10467000,0.08574980,0.06469390, &                         
604           0.04394640,0.00481284,0.00397375,0.00315006, &                         
605           0.00228636,0.00144606,0.00054604,0.00007697/                           
606                                                                                  
607       DATA CFC128/ &                                                                
608            85.4027, 89.4696, 74.0959, 67.7480, &                                 
609            61.2444, 59.9073, 60.8296, 63.0998, &                                 
610            59.6110, 64.0735, 57.2622, 58.9721, &                                 
611            43.5505, 26.1192, 32.7023, 32.8667/                                   
612       DATA CFC22ADJ8/ &                                                             
613 !     Original CFC22 is multiplied by 1.485 to account for the 780-850 cm-1      
614 !     and 1290-1335 cm-1 bands.                                                  
615            135.335, 89.6642, 76.2375, 65.9748, &                                 
616            63.1164, 60.2935, 64.0299, 75.4264, &                                 
617            51.3018, 7.07911, 5.86928, 0.398693, &                                
618            2.82885, 9.12751, 6.28271, 0./                                        
619       DATA ABSCO2A8/ &                                                              
620            1.11233E-05, 3.92400E-05, 6.62059E-05, 8.51687E-05, &                 
621            7.79035E-05, 1.34058E-04, 2.82553E-04, 5.41741E-04, &                 
622            1.47029E-05, 2.34982E-05, 6.91094E-08, 8.48917E-08, &                 
623            6.58783E-08, 4.64849E-08, 3.62742E-08, 3.62742E-08/                   
624       DATA ABSCO2B8/ &                                                              
625            4.10977E-09, 5.65200E-08, 1.70800E-07, 4.16840E-07, &                 
626            9.53684E-07, 2.36468E-06, 7.29502E-06, 4.93883E-05, &                 
627            5.10440E-04, 9.75248E-04, 1.36495E-03, 2.40451E-03, &                 
628            4.50277E-03, 2.24486E-02, 4.06756E-02, 2.17447E-10/                   
629       DATA ABSN2OA8/ &                                                              
630            1.28527E-02,5.28651E-02,1.01668E-01,1.57224E-01, &                    
631            2.76947E-01,4.93048E-01,6.71387E-01,3.48809E-01, &                    
632            4.19840E-01,3.13558E-01,2.44432E-01,2.05108E-01, &                    
633            1.21423E-01,1.22158E-01,1.49702E-01,1.47799E-01/                      
634       DATA ABSN2OB8/ &                                                              
635            3.15864E-03,4.87347E-03,8.63235E-03,2.16053E-02, &                    
636            3.63699E-02,7.89149E-02,3.53807E-01,1.27140E-00, &                    
637            2.31464E-00,7.75834E-02,5.15063E-02,4.07059E-02, &                    
638            5.91947E-02,5.83546E-02,3.12716E-01,1.47456E-01/                      
639                                                                                  
640 !  Data                                                                          
641                                                                                  
642       DATA FRACREFA9/ &                                                             
643 !     From P = 1053.6 mb.                                                        
644           0.16898900,0.15898301,0.13575301,0.12600900, &                         
645           0.11545800,0.09879170,0.08106830,0.06063440, &                         
646           0.03988780,0.00421760,0.00346635,0.00278779, &                         
647           0.00206225,0.00132324,0.00050033,0.00007038, &                         
648           0.18209399,0.15315101,0.13571000,0.12504999, &                         
649           0.11379100,0.09680810,0.08008570,0.05970280, &                         
650           0.03942860,0.00413383,0.00343186,0.00275558, &                         
651           0.00204657,0.00130219,0.00045454,0.00005664, &                         
652           0.18459500,0.15512000,0.13395500,0.12576801, &                         
653           0.11276800,0.09645190,0.07956650,0.05903340, &                         
654           0.03887050,0.00412226,0.00339453,0.00273518, &                         
655           0.00196922,0.00119411,0.00040263,0.00005664, &                         
656           0.18458800,0.15859900,0.13278100,0.12589300, &                         
657           0.11272700,0.09599660,0.07903030,0.05843600, &                         
658           0.03843400,0.00405181,0.00337980,0.00263818, &                         
659           0.00186869,0.00111807,0.00040263,0.00005664, &                         
660           0.18459301,0.16176100,0.13235000,0.12528200, &                         
661           0.11237100,0.09618840,0.07833760,0.05800770, &                         
662           0.03787610,0.00408253,0.00330363,0.00250445, &                         
663           0.00176725,0.00111753,0.00040263,0.00005664, &                         
664           0.18454400,0.16505300,0.13221300,0.12476600, &                         
665           0.11158300,0.09618120,0.07797340,0.05740380, &                         
666           0.03742820,0.00392691,0.00312208,0.00246306, &                         
667           0.00176735,0.00111721,0.00040263,0.00005664, &                         
668           0.18452001,0.16697501,0.13445500,0.12391300, &                         
669           0.11059100,0.09596890,0.07761050,0.05643200, &                         
670           0.03686520,0.00377086,0.00309351,0.00246297, &                         
671           0.00176765,0.00111700,0.00040263,0.00005664, &                         
672           0.18460999,0.16854499,0.13922299,0.12266400, &                         
673           0.10962200,0.09452030,0.07653800,0.05551340, &                         
674           0.03609660,0.00377043,0.00309367,0.00246304, &                         
675           0.00176749,0.00111689,0.00040263,0.00005664, &                         
676           0.18312500,0.16787501,0.14720701,0.12766500, &                         
677           0.10890900,0.08935530,0.07310870,0.05443140, &                         
678           0.03566380,0.00376446,0.00309521,0.00246510, &                         
679           0.00176139,0.00111543,0.00040263,0.00005664/                           
680       DATA FRACREFB9/ &                                                             
681 !     From P = 0.071 mb.                                                         
682           0.20148601,0.15252700,0.13376500,0.12184600, &                         
683           0.10767800,0.09307410,0.07674570,0.05876940, &                         
684           0.04001480,0.00424612,0.00346896,0.00269954, &                         
685           0.00196864,0.00122562,0.00043628,0.00004892/                           
686                                                                                  
687       DATA ABSN2O9/ &                                                               
688 !     From P = 952 mb.                                                           
689            3.26267E-01,2.42869E-00,1.15455E+01,7.39478E-00, &                    
690            5.16550E-00,2.54474E-00,3.53082E-00,3.82278E-00, &                    
691            1.81297E-00,6.65313E-01,1.23652E-01,1.83895E-03, &                    
692            1.70592E-03,2.68434E-09,0.,0., &                                      
693 !     From P = 620 mb.                                                           
694            2.08632E-01,1.11865E+00,4.95975E+00,8.10907E+00, &                    
695            1.10408E+01,5.45460E+00,4.18611E+00,3.53422E+00, &                    
696            2.54164E+00,3.65093E-01,5.84480E-01,2.26918E-01, &                    
697            1.36230E-03,5.54400E-10,6.83703E-10,0., &                             
698 !     From P = 313 mb.                                                           
699            6.20022E-02,2.69521E-01,9.81928E-01,1.65004E-00, &                    
700            3.08089E-00,5.38696E-00,1.14600E+01,2.41211E+01, &                    
701            1.69655E+01,1.37556E-00,5.43254E-01,3.52079E-01, &                    
702            4.31888E-01,4.82523E-06,5.74747E-11,0./                               
703                                                                                  
704 ! Data                                                                           
705                                                                                  
706       DATA FRACREFA10/ &                                                             
707 !     From P = 473 mb.                                                           
708           0.16271301,0.15141940,0.14065412,0.12899506, &                         
709           0.11607002,0.10142808,0.08116794,0.06104711, &                         
710           0.04146209,0.00447386,0.00372902,0.00287258, &                         
711           0.00206028,0.00134634,0.00049232,0.00006927/                           
712       DATA FRACREFB10/ &                                                             
713 !     From P = 1.17 mb.                                                          
714           0.16571465,0.15262246,0.14036226,0.12620729, &                         
715           0.11477834,0.09967982,0.08155201,0.06159503, &                         
716           0.04196607,0.00453940,0.00376881,0.00300437, &                         
717           0.00223034,0.00139432,0.00051516,0.00007095/                           
718                                                                                  
719 ! Data                                                                           
720                                                                                  
721       DATA FRACREFA11/ &                                                             
722 !     From P = 473 mb.                                                           
723           0.14152819,0.13811260,0.14312185,0.13705885, &                         
724           0.11944738,0.10570189,0.08866373,0.06565409, &                         
725           0.04428961,0.00481540,0.00387058,0.00329187, &                         
726           0.00238294,0.00150971,0.00049287,0.00005980/                           
727       DATA FRACREFB11/ &                                                             
728 !     From P = 1.17 mb.                                                          
729           0.10874039,0.15164889,0.15149839,0.14515044, &                         
730           0.12486220,0.10725017,0.08715712,0.06463144, &                         
731           0.04332319,0.00441193,0.00393819,0.00305960, &                         
732           0.00224221,0.00145100,0.00055586,0.00007934/                           
733                                                                                  
734 ! Data                                                                           
735                                                                                  
736       DATA FRACREFA12/ &                                                             
737 !     From P = 706.3 mb.                                                         
738           0.21245100,0.15164700,0.14486700,0.13075501, &                         
739           0.11629600,0.09266050,0.06579930,0.04524000, &                         
740           0.03072870,0.00284297,0.00234660,0.00185208, &                         
741           0.00133978,0.00082214,0.00031016,0.00004363, &                         
742           0.14703900,0.16937999,0.15605700,0.14159000, &                         
743           0.12088500,0.10058500,0.06809110,0.05131470, &                         
744           0.03487040,0.00327281,0.00250183,0.00190024, &                         
745           0.00133978,0.00082214,0.00031016,0.00004363, &                         
746           0.13689300,0.16610400,0.15723500,0.14299500, &                         
747           0.12399400,0.09907820,0.07169690,0.05367370, &                         
748           0.03671630,0.00378148,0.00290510,0.00221076, &                         
749           0.00142810,0.00093527,0.00031016,0.00004363, &                         
750           0.13054299,0.16273800,0.15874299,0.14279599, &                         
751           0.12674300,0.09664900,0.07462200,0.05620080, &                         
752           0.03789090,0.00411690,0.00322920,0.00245036, &                         
753           0.00178303,0.00098595,0.00040802,0.00010150, &                         
754           0.12828299,0.15824600,0.15688400,0.14449100, &                         
755           0.12787800,0.09517830,0.07679350,0.05890820, &                         
756           0.03883570,0.00442304,0.00346796,0.00255333, &                         
757           0.00212519,0.00116168,0.00067065,0.00010150, &                         
758           0.12649800,0.15195100,0.15646499,0.14569700, &                         
759           0.12669300,0.09653520,0.07887920,0.06106920, &                         
760           0.04043910,0.00430390,0.00364453,0.00314360, &                         
761           0.00203206,0.00187787,0.00067075,0.00010150, &                         
762           0.12500300,0.14460599,0.15672199,0.14724600, &                         
763           0.11978900,0.10190200,0.08196710,0.06315770, &                         
764           0.04240100,0.00433645,0.00404097,0.00329466, &                         
765           0.00288491,0.00187803,0.00067093,0.00010150, &                         
766           0.12317200,0.14118700,0.15242000,0.13794300, &                         
767           0.12119200,0.10655400,0.08808350,0.06521370, &                         
768           0.04505680,0.00485949,0.00477105,0.00401468, &                         
769           0.00288491,0.00187786,0.00067110,0.00010150, &                         
770           0.10193600,0.11693000,0.13236099,0.14053200, &                         
771           0.13749801,0.12193100,0.10221000,0.07448910, &                         
772           0.05205320,0.00572312,0.00476882,0.00403380, &                         
773           0.00288871,0.00187396,0.00067218,0.00010150/                           
774                                                                                  
775 ! Data                                                                           
776                                                                                  
777       DATA FRACREFA13/ &                                                             
778 !     From P = 706.3 mb.                                                         
779           0.17683899,0.17319500,0.15712699,0.13604601, &                         
780           0.10776200,0.08750010,0.06808820,0.04905150, &                         
781           0.03280360,0.00350836,0.00281864,0.00219862, &                         
782           0.00160943,0.00101885,0.00038147,0.00005348, &                         
783           0.17535400,0.16999300,0.15610200,0.13589200, &                         
784           0.10842100,0.08988550,0.06943920,0.04974900, &                         
785           0.03323400,0.00352752,0.00289402,0.00231003, &                         
786           0.00174659,0.00101884,0.00038147,0.00005348, &                         
787           0.17409500,0.16846400,0.15641899,0.13503000, &                         
788           0.10838600,0.08985800,0.07092720,0.05075710, &                         
789           0.03364180,0.00354241,0.00303507,0.00243391, &                         
790           0.00177502,0.00114638,0.00043585,0.00005348, &                         
791           0.17248300,0.16778600,0.15543500,0.13496999, &                         
792           0.10826300,0.09028740,0.07156720,0.05187120, &                         
793           0.03424890,0.00363933,0.00324715,0.00255030, &                         
794           0.00187380,0.00116978,0.00051229,0.00009768, &                         
795           0.17061099,0.16715799,0.15405200,0.13471501, &                         
796           0.10896400,0.09069460,0.07229760,0.05218280, &                         
797           0.03555340,0.00379576,0.00330240,0.00274693, &                         
798           0.00201587,0.00119598,0.00061885,0.00009768, &                         
799           0.16789700,0.16629100,0.15270300,0.13360199, &                         
800           0.11047200,0.09151080,0.07325000,0.05261450, &                         
801           0.03657990,0.00450092,0.00349537,0.00283321, &                         
802           0.00208396,0.00140354,0.00066587,0.00009768, &                         
803           0.16412200,0.16387400,0.15211500,0.13062200, &                         
804           0.11325100,0.09348130,0.07381380,0.05434740, &                         
805           0.03803160,0.00481346,0.00393592,0.00296633, &                         
806           0.00222532,0.00163762,0.00066648,0.00009768, &                         
807           0.15513401,0.15768200,0.14850400,0.13330200, &                         
808           0.11446500,0.09868230,0.07642050,0.05624170, &                         
809           0.04197810,0.00502288,0.00429452,0.00315347, &                         
810           0.00263559,0.00171772,0.00066860,0.00009768, &                         
811           0.15732600,0.15223300,0.14271900,0.13563600, &                         
812           0.11859600,0.10274200,0.07934560,0.05763410, &                         
813           0.03921740,0.00437741,0.00337921,0.00280212, &                         
814           0.00200156,0.00124812,0.00064664,0.00009768/                           
815                                                                                  
816 ! Data                                                                           
817                                                                                  
818       DATA FRACREFA14/ &                                                             
819 !     From P = 1053.6 mb.                                                        
820           0.18446200,0.16795200,0.14949700,0.12036000, &                         
821           0.10440100,0.09024280,0.07435880,0.05629380, &                         
822           0.03825420,0.00417276,0.00345278,0.00272949, &                         
823           0.00200378,0.00127404,0.00050721,0.00004141/                           
824       DATA FRACREFB14/ &                                                             
825 !     From P = 0.64 mb.                                                          
826           0.19128500,0.16495700,0.14146100,0.11904500, &                         
827           0.10350200,0.09151190,0.07604270,0.05806020, &                         
828           0.03979950,0.00423959,0.00357439,0.00287559, &                         
829           0.00198860,0.00116529,0.00043616,0.00005987/                           
830                                                                                  
831 ! Data                                                                           
832                                                                                  
833       DATA FRACREFA15/ &                                                             
834 !     From P = 1053.6 mb.                                                        
835           0.11287100,0.12070200,0.12729000,0.12858100, &                         
836           0.12743001,0.11961800,0.10290400,0.07888980, &                         
837           0.05900120,0.00667979,0.00552926,0.00436993, &                         
838           0.00320611,0.00204765,0.00077371,0.00010894, &                         
839           0.13918801,0.16353001,0.16155800,0.14090499, &                         
840           0.11322300,0.08757720,0.07225720,0.05173390, &                         
841           0.04731360,0.00667979,0.00552926,0.00436993, &                         
842           0.00320611,0.00204765,0.00077371,0.00010894, &                         
843           0.14687300,0.17853101,0.15664500,0.13351700, &                         
844           0.10791200,0.08684320,0.07158090,0.05198410, &                         
845           0.04340110,0.00667979,0.00552926,0.00436993, &                         
846           0.00320611,0.00204765,0.00077371,0.00010894, &                         
847           0.15760700,0.17759100,0.15158001,0.13193300, &                         
848           0.10742800,0.08693760,0.07159490,0.05196250, &                         
849           0.04065270,0.00667979,0.00552926,0.00436993, &                         
850           0.00320611,0.00204765,0.00077371,0.00010894, &                         
851           0.16646700,0.17299300,0.15018500,0.13138700, &                         
852           0.10735900,0.08713110,0.07130330,0.05279420, &                         
853           0.03766730,0.00667979,0.00552926,0.00436993, &                         
854           0.00320611,0.00204765,0.00077371,0.00010894, &                         
855           0.17546000,0.16666500,0.14969499,0.13105400, &                         
856           0.10782500,0.08718610,0.07156770,0.05308320, &                         
857           0.03753960,0.00432465,0.00509623,0.00436993, &                         
858           0.00320611,0.00204765,0.00077371,0.00010894, &                         
859           0.18378501,0.16064601,0.14940400,0.13146400, &                         
860           0.10810300,0.08775740,0.07115360,0.05400040, &                         
861           0.03689970,0.00388333,0.00323610,0.00353414, &                         
862           0.00320611,0.00204765,0.00077371,0.00010894, &                         
863           0.18966800,0.15744300,0.14993000,0.13152599, &                         
864           0.10899200,0.08858690,0.07142920,0.05399600, &                         
865           0.03433460,0.00374886,0.00302066,0.00240653, &                         
866           0.00199205,0.00204765,0.00077371,0.00010894, &                         
867           0.11887100,0.12479600,0.12569501,0.12839900, &                         
868           0.12473500,0.12012800,0.11086700,0.08493590, &                         
869           0.05063770,0.00328723,0.00266849,0.00210232, &                         
870           0.00152114,0.00095635,0.00035374,0.00004980/                           
871                                                                                  
872 ! Data                                                                           
873                                                                                  
874       DATA FRACREFA16/ &                                                             
875 !     From P = 862.6 mb.                                                         
876           0.17356300,0.18880001,0.17704099,0.13661300, &                         
877           0.10691600,0.08222480,0.05939860,0.04230810, &                         
878           0.02526330,0.00244532,0.00193541,0.00150415, &                         
879           0.00103528,0.00067068,0.00024951,0.00003348, &                         
880           0.17779499,0.19837400,0.16557600,0.13470000, &                         
881           0.11013600,0.08342720,0.05987030,0.03938700, &                         
882           0.02293650,0.00238849,0.00192400,0.00149921, &                         
883           0.00103539,0.00067150,0.00024822,0.00003348, &                         
884           0.18535601,0.19407199,0.16053200,0.13300700, &                         
885           0.10779000,0.08408500,0.06480450,0.04070160, &                         
886           0.02203590,0.00227779,0.00189074,0.00146888, &                         
887           0.00103147,0.00066770,0.00024751,0.00003348, &                         
888           0.19139200,0.18917400,0.15748601,0.13240699, &                         
889           0.10557300,0.08383260,0.06724060,0.04364450, &                         
890           0.02175820,0.00225436,0.00184421,0.00143153, &                         
891           0.00103027,0.00066066,0.00024222,0.00003148, &                         
892           0.19547801,0.18539500,0.15442000,0.13114899, &                         
893           0.10515600,0.08350350,0.06909780,0.04671630, &                         
894           0.02168820,0.00224400,0.00182009,0.00139098, &                         
895           0.00102582,0.00065367,0.00023202,0.00003148, &                         
896           0.19757500,0.18266800,0.15208900,0.12897800, &                         
897           0.10637200,0.08391220,0.06989830,0.04964120, &                         
898           0.02155800,0.00224310,0.00177358,0.00138184, &                         
899           0.00101538,0.00063370,0.00023227,0.00003148, &                         
900           0.20145500,0.17692900,0.14940600,0.12690400, &                         
901           0.10828800,0.08553720,0.07004940,0.05153430, &                         
902           0.02268740,0.00216943,0.00178603,0.00137754, &                         
903           0.00098344,0.00063165,0.00023218,0.00003148, &                         
904           0.20383500,0.17047501,0.14570600,0.12679300, &                         
905           0.11043100,0.08719150,0.07045440,0.05345420, &                         
906           0.02448340,0.00215839,0.00175893,0.00138296, &                         
907           0.00098318,0.00063188,0.00023199,0.00003148, &                         
908           0.18680701,0.15961801,0.15092900,0.13049100, &                         
909           0.11418400,0.09380540,0.07093450,0.05664280, &                         
910           0.02938410,0.00217751,0.00176766,0.00138275, &                         
911           0.00098377,0.00063181,0.00023193,0.00003148/                           
912                
913 
914 !
915 ! end of data 3
916 !
917 
918 !-----------------------------------------------------------------------
919 
920 ! start data 4
921 
922       DATA NXMOL  /2/
923       DATA IXINDX /0,2,3,0,31*0/
924                                                                   
925 !
926 ! end of data 4
927 !
928 !-----------------------------------------------------------------------
929 
930 ! start data 5
931                                                                   
932 !     
933 !  Longwave spectral band data                                                   
934 
935       DATA WAVENUM1(1) /10./, WAVENUM2(1) /250./, DELWAVE(1) /240./              
936       DATA WAVENUM1(2) /250./, WAVENUM2(2) /500./, DELWAVE(2) /250./             
937       DATA WAVENUM1(3) /500./, WAVENUM2(3) /630./, DELWAVE(3) /130./             
938       DATA WAVENUM1(4) /630./, WAVENUM2(4) /700./, DELWAVE(4) /70./              
939       DATA WAVENUM1(5) /700./, WAVENUM2(5) /820./, DELWAVE(5) /120./             
940       DATA WAVENUM1(6) /820./, WAVENUM2(6) /980./, DELWAVE(6) /160./             
941       DATA WAVENUM1(7) /980./, WAVENUM2(7) /1080./, DELWAVE(7) /100./            
942       DATA WAVENUM1(8) /1080./, WAVENUM2(8) /1180./, DELWAVE(8) /100./           
943       DATA WAVENUM1(9) /1180./, WAVENUM2(9) /1390./, DELWAVE(9) /210./           
944       DATA WAVENUM1(10) /1390./,WAVENUM2(10) /1480./,DELWAVE(10) /90./           
945       DATA WAVENUM1(11) /1480./,WAVENUM2(11) /1800./,DELWAVE(11) /320./          
946       DATA WAVENUM1(12) /1800./,WAVENUM2(12) /2080./,DELWAVE(12) /280./          
947       DATA WAVENUM1(13) /2080./,WAVENUM2(13) /2250./,DELWAVE(13) /170./          
948       DATA WAVENUM1(14) /2250./,WAVENUM2(14) /2380./,DELWAVE(14) /130./          
949       DATA WAVENUM1(15) /2380./,WAVENUM2(15) /2600./,DELWAVE(15) /220./          
950       DATA WAVENUM1(16) /2600./,WAVENUM2(16) /3000./,DELWAVE(16) /400./          
951                                                                                  
952 !
953 ! end of data 5
954 !
955 !-----------------------------------------------------------------------
956 
957 ! start data 6
958 
959               
960       DATA NG  /16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16/                 
961       DATA NSPA /1, 1,10, 9, 9, 1, 9, 1,11, 1, 1, 9, 9, 1, 9, 9/                 
962       DATA NSPB /1, 1, 5, 6, 5, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0/                 
963                                                                                  
964 !     HEATFAC is the factor by which one must multiply delta-flux/               
965 !     delta-pressure, with flux in w/m-2 and pressure in mbar, to get            
966 !     the heating rate in units of degrees/day.  It is equal to                  
967 !           (g)x(#sec/day)x(1e-5)/(specific heat of air at const. p)             
968 !        =  (9.8066)(3600)(1e-5)/(1.004)                                         
969 
970       DATA HEATFAC /8.4391/                                                      
971                                                                            
972 !     These pressures are chosen such that the ln of the first pressure          
973 !     has only a few non-zero digits (i.e. ln(PREF(1)) = 6.96000) and            
974 !     each subsequent ln(pressure) differs from the previous one by 0.2.         
975 
976       DATA PREF / &                                                                 
977           1.05363E+03,8.62642E+02,7.06272E+02,5.78246E+02,4.73428E+02, & 
978           3.87610E+02,3.17348E+02,2.59823E+02,2.12725E+02,1.74164E+02, & 
979           1.42594E+02,1.16746E+02,9.55835E+01,7.82571E+01,6.40715E+01, & 
980           5.24573E+01,4.29484E+01,3.51632E+01,2.87892E+01,2.35706E+01, & 
981           1.92980E+01,1.57998E+01,1.29358E+01,1.05910E+01,8.67114E+00, & 
982           7.09933E+00,5.81244E+00,4.75882E+00,3.89619E+00,3.18993E+00, & 
983           2.61170E+00,2.13828E+00,1.75067E+00,1.43333E+00,1.17351E+00, & 
984           9.60789E-01,7.86628E-01,6.44036E-01,5.27292E-01,4.31710E-01, & 
985           3.53455E-01,2.89384E-01,2.36928E-01,1.93980E-01,1.58817E-01, & 
986           1.30029E-01,1.06458E-01,8.71608E-02,7.13612E-02,5.84256E-02, & 
987           4.78349E-02,3.91639E-02,3.20647E-02,2.62523E-02,2.14936E-02, & 
988           1.75975E-02,1.44076E-02,1.17959E-02,9.65769E-03/                       
989       DATA PREFLOG / &                                                              
990            6.9600E+00, 6.7600E+00, 6.5600E+00, 6.3600E+00, 6.1600E+00, & 
991            5.9600E+00, 5.7600E+00, 5.5600E+00, 5.3600E+00, 5.1600E+00, & 
992            4.9600E+00, 4.7600E+00, 4.5600E+00, 4.3600E+00, 4.1600E+00, & 
993            3.9600E+00, 3.7600E+00, 3.5600E+00, 3.3600E+00, 3.1600E+00, & 
994            2.9600E+00, 2.7600E+00, 2.5600E+00, 2.3600E+00, 2.1600E+00, & 
995            1.9600E+00, 1.7600E+00, 1.5600E+00, 1.3600E+00, 1.1600E+00, & 
996            9.6000E-01, 7.6000E-01, 5.6000E-01, 3.6000E-01, 1.6000E-01, & 
997           -4.0000E-02,-2.4000E-01,-4.4000E-01,-6.4000E-01,-8.4000E-01, & 
998           -1.0400E+00,-1.2400E+00,-1.4400E+00,-1.6400E+00,-1.8400E+00, & 
999           -2.0400E+00,-2.2400E+00,-2.4400E+00,-2.6400E+00,-2.8400E+00, & 
1000           -3.0400E+00,-3.2400E+00,-3.4400E+00,-3.6400E+00,-3.8400E+00, & 
1001           -4.0400E+00,-4.2400E+00,-4.4400E+00,-4.6400E+00/                       
1002 !     These are the temperatures associated with the respective                  
1003 !     pressures for the MLS standard atmosphere.                                 
1004       DATA TREF / &                                                                 
1005            2.9420E+02, 2.8799E+02, 2.7894E+02, 2.6925E+02, 2.5983E+02, & 
1006            2.5017E+02, 2.4077E+02, 2.3179E+02, 2.2306E+02, 2.1578E+02, & 
1007            2.1570E+02, 2.1570E+02, 2.1570E+02, 2.1706E+02, 2.1858E+02, & 
1008            2.2018E+02, 2.2174E+02, 2.2328E+02, 2.2479E+02, 2.2655E+02, & 
1009            2.2834E+02, 2.3113E+02, 2.3401E+02, 2.3703E+02, 2.4022E+02, & 
1010            2.4371E+02, 2.4726E+02, 2.5085E+02, 2.5457E+02, 2.5832E+02, & 
1011            2.6216E+02, 2.6606E+02, 2.6999E+02, 2.7340E+02, 2.7536E+02, & 
1012            2.7568E+02, 2.7372E+02, 2.7163E+02, 2.6955E+02, 2.6593E+02, & 
1013            2.6211E+02, 2.5828E+02, 2.5360E+02, 2.4854E+02, 2.4348E+02, & 
1014            2.3809E+02, 2.3206E+02, 2.2603E+02, 2.2000E+02, 2.1435E+02, & 
1015            2.0887E+02, 2.0340E+02, 1.9792E+02, 1.9290E+02, 1.8809E+02, & 
1016            1.8329E+02, 1.7849E+02, 1.7394E+02, 1.7212E+02/                       
1017                                                                                  
1018 !
1019 ! end of data 6
1020 !
1021 !-----------------------------------------------------------------------
1022 
1023 ! start data 7
1024 
1025       DATA (TOTPLNK(IDATA, 1),IDATA=1,50)/ &                                                
1026       1.13735E-06,1.15150E-06,1.16569E-06,1.17992E-06,1.19419E-06, & 
1027       1.20850E-06,1.22285E-06,1.23723E-06,1.25164E-06,1.26610E-06, & 
1028       1.28059E-06,1.29511E-06,1.30967E-06,1.32426E-06,1.33889E-06, & 
1029       1.35355E-06,1.36824E-06,1.38296E-06,1.39772E-06,1.41250E-06, & 
1030       1.42732E-06,1.44217E-06,1.45704E-06,1.47195E-06,1.48689E-06, & 
1031       1.50185E-06,1.51684E-06,1.53186E-06,1.54691E-06,1.56198E-06, & 
1032       1.57709E-06,1.59222E-06,1.60737E-06,1.62255E-06,1.63776E-06, & 
1033       1.65299E-06,1.66825E-06,1.68352E-06,1.69883E-06,1.71416E-06, & 
1034       1.72951E-06,1.74488E-06,1.76028E-06,1.77570E-06,1.79114E-06, & 
1035       1.80661E-06,1.82210E-06,1.83760E-06,1.85313E-06,1.86868E-06/               
1036       DATA (TOTPLNK(IDATA, 1),IDATA=51,100)/ &                                              
1037       1.88425E-06,1.89985E-06,1.91546E-06,1.93109E-06,1.94674E-06, & 
1038       1.96241E-06,1.97811E-06,1.99381E-06,2.00954E-06,2.02529E-06, & 
1039       2.04105E-06,2.05684E-06,2.07264E-06,2.08846E-06,2.10429E-06, & 
1040       2.12015E-06,2.13602E-06,2.15190E-06,2.16781E-06,2.18373E-06, & 
1041       2.19966E-06,2.21562E-06,2.23159E-06,2.24758E-06,2.26358E-06, & 
1042       2.27959E-06,2.29562E-06,2.31167E-06,2.32773E-06,2.34381E-06, & 
1043       2.35990E-06,2.37601E-06,2.39212E-06,2.40825E-06,2.42440E-06, & 
1044       2.44056E-06,2.45673E-06,2.47292E-06,2.48912E-06,2.50533E-06, & 
1045       2.52157E-06,2.53781E-06,2.55406E-06,2.57032E-06,2.58660E-06, & 
1046       2.60289E-06,2.61919E-06,2.63550E-06,2.65183E-06,2.66817E-06/               
1047       DATA (TOTPLNK(IDATA, 1),IDATA=101,150)/ &                                             
1048       2.68452E-06,2.70088E-06,2.71726E-06,2.73364E-06,2.75003E-06, & 
1049       2.76644E-06,2.78286E-06,2.79929E-06,2.81572E-06,2.83218E-06, & 
1050       2.84864E-06,2.86510E-06,2.88159E-06,2.89807E-06,2.91458E-06, & 
1051       2.93109E-06,2.94762E-06,2.96415E-06,2.98068E-06,2.99724E-06, & 
1052       3.01379E-06,3.03036E-06,3.04693E-06,3.06353E-06,3.08013E-06, & 
1053       3.09674E-06,3.11335E-06,3.12998E-06,3.14661E-06,3.16324E-06, & 
1054       3.17989E-06,3.19656E-06,3.21323E-06,3.22991E-06,3.24658E-06, & 
1055       3.26328E-06,3.27998E-06,3.29669E-06,3.31341E-06,3.33013E-06, & 
1056       3.34686E-06,3.36360E-06,3.38034E-06,3.39709E-06,3.41387E-06, & 
1057       3.43063E-06,3.44742E-06,3.46420E-06,3.48099E-06,3.49779E-06/               
1058       DATA (TOTPLNK(IDATA, 1),IDATA=151,181)/ &                                             
1059       3.51461E-06,3.53141E-06,3.54824E-06,3.56506E-06,3.58191E-06, & 
1060       3.59875E-06,3.61559E-06,3.63244E-06,3.64931E-06,3.66617E-06, & 
1061       3.68305E-06,3.69992E-06,3.71682E-06,3.73372E-06,3.75061E-06, & 
1062       3.76753E-06,3.78443E-06,3.80136E-06,3.81829E-06,3.83522E-06, & 
1063       3.85215E-06,3.86910E-06,3.88605E-06,3.90301E-06,3.91997E-06, & 
1064       3.93694E-06,3.95390E-06,3.97087E-06,3.98788E-06,4.00485E-06, & 
1065       4.02187E-06/                                                               
1066       DATA (TOTPLNK(IDATA, 2),IDATA=1,50)/ &                                                
1067       2.13441E-06,2.18076E-06,2.22758E-06,2.27489E-06,2.32268E-06, & 
1068       2.37093E-06,2.41966E-06,2.46886E-06,2.51852E-06,2.56864E-06, & 
1069       2.61922E-06,2.67026E-06,2.72175E-06,2.77370E-06,2.82609E-06, & 
1070       2.87893E-06,2.93221E-06,2.98593E-06,3.04008E-06,3.09468E-06, & 
1071       3.14970E-06,3.20515E-06,3.26103E-06,3.31732E-06,3.37404E-06, & 
1072       3.43118E-06,3.48873E-06,3.54669E-06,3.60506E-06,3.66383E-06, & 
1073       3.72301E-06,3.78259E-06,3.84256E-06,3.90293E-06,3.96368E-06, & 
1074       4.02483E-06,4.08636E-06,4.14828E-06,4.21057E-06,4.27324E-06, & 
1075       4.33629E-06,4.39971E-06,4.46350E-06,4.52765E-06,4.59217E-06, & 
1076       4.65705E-06,4.72228E-06,4.78787E-06,4.85382E-06,4.92011E-06/               
1077       DATA (TOTPLNK(IDATA, 2),IDATA=51,100)/ &                                              
1078       4.98675E-06,5.05374E-06,5.12106E-06,5.18873E-06,5.25674E-06, & 
1079       5.32507E-06,5.39374E-06,5.46274E-06,5.53207E-06,5.60172E-06, & 
1080       5.67169E-06,5.74198E-06,5.81259E-06,5.88352E-06,5.95475E-06, & 
1081       6.02629E-06,6.09815E-06,6.17030E-06,6.24276E-06,6.31552E-06, & 
1082       6.38858E-06,6.46192E-06,6.53557E-06,6.60950E-06,6.68373E-06, & 
1083       6.75824E-06,6.83303E-06,6.90810E-06,6.98346E-06,7.05909E-06, & 
1084       7.13500E-06,7.21117E-06,7.28763E-06,7.36435E-06,7.44134E-06, & 
1085       7.51859E-06,7.59611E-06,7.67388E-06,7.75192E-06,7.83021E-06, & 
1086       7.90875E-06,7.98755E-06,8.06660E-06,8.14589E-06,8.22544E-06, & 
1087       8.30522E-06,8.38526E-06,8.46553E-06,8.54604E-06,8.62679E-06/               
1088       DATA (TOTPLNK(IDATA, 2),IDATA=101,150)/ &                                             
1089       8.70777E-06,8.78899E-06,8.87043E-06,8.95211E-06,9.03402E-06, & 
1090       9.11616E-06,9.19852E-06,9.28109E-06,9.36390E-06,9.44692E-06, & 
1091       9.53015E-06,9.61361E-06,9.69729E-06,9.78117E-06,9.86526E-06, & 
1092       9.94957E-06,1.00341E-05,1.01188E-05,1.02037E-05,1.02888E-05, & 
1093       1.03742E-05,1.04597E-05,1.05454E-05,1.06313E-05,1.07175E-05, & 
1094       1.08038E-05,1.08903E-05,1.09770E-05,1.10639E-05,1.11509E-05, & 
1095       1.12382E-05,1.13257E-05,1.14133E-05,1.15011E-05,1.15891E-05, & 
1096       1.16773E-05,1.17656E-05,1.18542E-05,1.19429E-05,1.20317E-05, & 
1097       1.21208E-05,1.22100E-05,1.22994E-05,1.23890E-05,1.24787E-05, & 
1098       1.25686E-05,1.26587E-05,1.27489E-05,1.28393E-05,1.29299E-05/               
1099       DATA (TOTPLNK(IDATA, 2),IDATA=151,181)/ &                                             
1100       1.30206E-05,1.31115E-05,1.32025E-05,1.32937E-05,1.33850E-05, & 
1101       1.34765E-05,1.35682E-05,1.36600E-05,1.37520E-05,1.38441E-05, & 
1102       1.39364E-05,1.40288E-05,1.41213E-05,1.42140E-05,1.43069E-05, & 
1103       1.43999E-05,1.44930E-05,1.45863E-05,1.46797E-05,1.47733E-05, & 
1104       1.48670E-05,1.49608E-05,1.50548E-05,1.51489E-05,1.52431E-05, & 
1105       1.53375E-05,1.54320E-05,1.55267E-05,1.56214E-05,1.57164E-05, & 
1106       1.58114E-05/                                                               
1107       DATA (TOTPLNK(IDATA, 3),IDATA=1,50)/ &                                                
1108       1.34822E-06,1.39134E-06,1.43530E-06,1.48010E-06,1.52574E-06, & 
1109       1.57222E-06,1.61956E-06,1.66774E-06,1.71678E-06,1.76666E-06, & 
1110       1.81741E-06,1.86901E-06,1.92147E-06,1.97479E-06,2.02898E-06, & 
1111       2.08402E-06,2.13993E-06,2.19671E-06,2.25435E-06,2.31285E-06, & 
1112       2.37222E-06,2.43246E-06,2.49356E-06,2.55553E-06,2.61837E-06, & 
1113       2.68207E-06,2.74664E-06,2.81207E-06,2.87837E-06,2.94554E-06, & 
1114       3.01356E-06,3.08245E-06,3.15221E-06,3.22282E-06,3.29429E-06, & 
1115       3.36662E-06,3.43982E-06,3.51386E-06,3.58876E-06,3.66451E-06, & 
1116       3.74112E-06,3.81857E-06,3.89688E-06,3.97602E-06,4.05601E-06, & 
1117       4.13685E-06,4.21852E-06,4.30104E-06,4.38438E-06,4.46857E-06/               
1118       DATA (TOTPLNK(IDATA, 3),IDATA=51,100)/ &                                              
1119       4.55358E-06,4.63943E-06,4.72610E-06,4.81359E-06,4.90191E-06, & 
1120       4.99105E-06,5.08100E-06,5.17176E-06,5.26335E-06,5.35573E-06, & 
1121       5.44892E-06,5.54292E-06,5.63772E-06,5.73331E-06,5.82970E-06, & 
1122       5.92688E-06,6.02485E-06,6.12360E-06,6.22314E-06,6.32346E-06, & 
1123       6.42455E-06,6.52641E-06,6.62906E-06,6.73247E-06,6.83664E-06, & 
1124       6.94156E-06,7.04725E-06,7.15370E-06,7.26089E-06,7.36883E-06, & 
1125       7.47752E-06,7.58695E-06,7.69712E-06,7.80801E-06,7.91965E-06, & 
1126       8.03201E-06,8.14510E-06,8.25891E-06,8.37343E-06,8.48867E-06, & 
1127       8.60463E-06,8.72128E-06,8.83865E-06,8.95672E-06,9.07548E-06, & 
1128       9.19495E-06,9.31510E-06,9.43594E-06,9.55745E-06,9.67966E-06/               
1129       DATA (TOTPLNK(IDATA, 3),IDATA=101,150)/ &                                             
1130       9.80254E-06,9.92609E-06,1.00503E-05,1.01752E-05,1.03008E-05, & 
1131       1.04270E-05,1.05539E-05,1.06814E-05,1.08096E-05,1.09384E-05, & 
1132       1.10679E-05,1.11980E-05,1.13288E-05,1.14601E-05,1.15922E-05, & 
1133       1.17248E-05,1.18581E-05,1.19920E-05,1.21265E-05,1.22616E-05, & 
1134       1.23973E-05,1.25337E-05,1.26706E-05,1.28081E-05,1.29463E-05, & 
1135       1.30850E-05,1.32243E-05,1.33642E-05,1.35047E-05,1.36458E-05, & 
1136       1.37875E-05,1.39297E-05,1.40725E-05,1.42159E-05,1.43598E-05, & 
1137       1.45044E-05,1.46494E-05,1.47950E-05,1.49412E-05,1.50879E-05, & 
1138       1.52352E-05,1.53830E-05,1.55314E-05,1.56803E-05,1.58297E-05, & 
1139       1.59797E-05,1.61302E-05,1.62812E-05,1.64327E-05,1.65848E-05/               
1140       DATA (TOTPLNK(IDATA, 3),IDATA=151,181)/ &                                             
1141       1.67374E-05,1.68904E-05,1.70441E-05,1.71982E-05,1.73528E-05, & 
1142       1.75079E-05,1.76635E-05,1.78197E-05,1.79763E-05,1.81334E-05, & 
1143       1.82910E-05,1.84491E-05,1.86076E-05,1.87667E-05,1.89262E-05, & 
1144       1.90862E-05,1.92467E-05,1.94076E-05,1.95690E-05,1.97309E-05, & 
1145       1.98932E-05,2.00560E-05,2.02193E-05,2.03830E-05,2.05472E-05, & 
1146       2.07118E-05,2.08768E-05,2.10423E-05,2.12083E-05,2.13747E-05, & 
1147       2.15414E-05/                                                               
1148       DATA (TOTPLNK(IDATA, 4),IDATA=1,50)/ &                                                
1149       8.90528E-07,9.24222E-07,9.58757E-07,9.94141E-07,1.03038E-06, & 
1150       1.06748E-06,1.10545E-06,1.14430E-06,1.18403E-06,1.22465E-06, & 
1151       1.26618E-06,1.30860E-06,1.35193E-06,1.39619E-06,1.44136E-06, & 
1152       1.48746E-06,1.53449E-06,1.58246E-06,1.63138E-06,1.68124E-06, & 
1153       1.73206E-06,1.78383E-06,1.83657E-06,1.89028E-06,1.94495E-06, & 
1154       2.00060E-06,2.05724E-06,2.11485E-06,2.17344E-06,2.23303E-06, & 
1155       2.29361E-06,2.35519E-06,2.41777E-06,2.48134E-06,2.54592E-06, & 
1156       2.61151E-06,2.67810E-06,2.74571E-06,2.81433E-06,2.88396E-06, & 
1157       2.95461E-06,3.02628E-06,3.09896E-06,3.17267E-06,3.24741E-06, & 
1158       3.32316E-06,3.39994E-06,3.47774E-06,3.55657E-06,3.63642E-06/               
1159       DATA (TOTPLNK(IDATA, 4),IDATA=51,100)/ &                                              
1160       3.71731E-06,3.79922E-06,3.88216E-06,3.96612E-06,4.05112E-06, & 
1161       4.13714E-06,4.22419E-06,4.31227E-06,4.40137E-06,4.49151E-06, & 
1162       4.58266E-06,4.67485E-06,4.76806E-06,4.86229E-06,4.95754E-06, & 
1163       5.05383E-06,5.15113E-06,5.24946E-06,5.34879E-06,5.44916E-06, & 
1164       5.55053E-06,5.65292E-06,5.75632E-06,5.86073E-06,5.96616E-06, & 
1165       6.07260E-06,6.18003E-06,6.28848E-06,6.39794E-06,6.50838E-06, & 
1166       6.61983E-06,6.73229E-06,6.84573E-06,6.96016E-06,7.07559E-06, & 
1167       7.19200E-06,7.30940E-06,7.42779E-06,7.54715E-06,7.66749E-06, & 
1168       7.78882E-06,7.91110E-06,8.03436E-06,8.15859E-06,8.28379E-06, & 
1169       8.40994E-06,8.53706E-06,8.66515E-06,8.79418E-06,8.92416E-06/               
1170       DATA (TOTPLNK(IDATA, 4),IDATA=101,150)/ &                                             
1171       9.05510E-06,9.18697E-06,9.31979E-06,9.45356E-06,9.58826E-06, & 
1172       9.72389E-06,9.86046E-06,9.99793E-06,1.01364E-05,1.02757E-05, & 
1173       1.04159E-05,1.05571E-05,1.06992E-05,1.08422E-05,1.09861E-05, & 
1174       1.11309E-05,1.12766E-05,1.14232E-05,1.15707E-05,1.17190E-05, & 
1175       1.18683E-05,1.20184E-05,1.21695E-05,1.23214E-05,1.24741E-05, & 
1176       1.26277E-05,1.27822E-05,1.29376E-05,1.30939E-05,1.32509E-05, & 
1177       1.34088E-05,1.35676E-05,1.37273E-05,1.38877E-05,1.40490E-05, & 
1178       1.42112E-05,1.43742E-05,1.45380E-05,1.47026E-05,1.48680E-05, & 
1179       1.50343E-05,1.52014E-05,1.53692E-05,1.55379E-05,1.57074E-05, & 
1180       1.58778E-05,1.60488E-05,1.62207E-05,1.63934E-05,1.65669E-05/               
1181       DATA (TOTPLNK(IDATA, 4),IDATA=151,181)/ &                                             
1182       1.67411E-05,1.69162E-05,1.70920E-05,1.72685E-05,1.74459E-05, & 
1183       1.76240E-05,1.78029E-05,1.79825E-05,1.81629E-05,1.83440E-05, & 
1184       1.85259E-05,1.87086E-05,1.88919E-05,1.90760E-05,1.92609E-05, & 
1185       1.94465E-05,1.96327E-05,1.98199E-05,2.00076E-05,2.01961E-05, & 
1186       2.03853E-05,2.05752E-05,2.07658E-05,2.09571E-05,2.11491E-05, & 
1187       2.13418E-05,2.15352E-05,2.17294E-05,2.19241E-05,2.21196E-05, & 
1188       2.23158E-05/                                                               
1189       DATA (TOTPLNK(IDATA, 5),IDATA=1,50)/ &                                                
1190       5.70230E-07,5.94788E-07,6.20085E-07,6.46130E-07,6.72936E-07, & 
1191       7.00512E-07,7.28869E-07,7.58019E-07,7.87971E-07,8.18734E-07, & 
1192       8.50320E-07,8.82738E-07,9.15999E-07,9.50110E-07,9.85084E-07, & 
1193       1.02093E-06,1.05765E-06,1.09527E-06,1.13378E-06,1.17320E-06, & 
1194       1.21353E-06,1.25479E-06,1.29698E-06,1.34011E-06,1.38419E-06, & 
1195       1.42923E-06,1.47523E-06,1.52221E-06,1.57016E-06,1.61910E-06, & 
1196       1.66904E-06,1.71997E-06,1.77192E-06,1.82488E-06,1.87886E-06, & 
1197       1.93387E-06,1.98991E-06,2.04699E-06,2.10512E-06,2.16430E-06, & 
1198       2.22454E-06,2.28584E-06,2.34821E-06,2.41166E-06,2.47618E-06, & 
1199       2.54178E-06,2.60847E-06,2.67626E-06,2.74514E-06,2.81512E-06/               
1200       DATA (TOTPLNK(IDATA, 5),IDATA=51,100)/ &                                              
1201       2.88621E-06,2.95841E-06,3.03172E-06,3.10615E-06,3.18170E-06, & 
1202       3.25838E-06,3.33618E-06,3.41511E-06,3.49518E-06,3.57639E-06, & 
1203       3.65873E-06,3.74221E-06,3.82684E-06,3.91262E-06,3.99955E-06, & 
1204       4.08763E-06,4.17686E-06,4.26725E-06,4.35880E-06,4.45150E-06, & 
1205       4.54537E-06,4.64039E-06,4.73659E-06,4.83394E-06,4.93246E-06, & 
1206       5.03215E-06,5.13301E-06,5.23504E-06,5.33823E-06,5.44260E-06, & 
1207       5.54814E-06,5.65484E-06,5.76272E-06,5.87177E-06,5.98199E-06, & 
1208       6.09339E-06,6.20596E-06,6.31969E-06,6.43460E-06,6.55068E-06, & 
1209       6.66793E-06,6.78636E-06,6.90595E-06,7.02670E-06,7.14863E-06, & 
1210       7.27173E-06,7.39599E-06,7.52142E-06,7.64802E-06,7.77577E-06/               
1211       DATA (TOTPLNK(IDATA, 5),IDATA=101,150)/ &                                             
1212       7.90469E-06,8.03477E-06,8.16601E-06,8.29841E-06,8.43198E-06, & 
1213       8.56669E-06,8.70256E-06,8.83957E-06,8.97775E-06,9.11706E-06, & 
1214       9.25753E-06,9.39915E-06,9.54190E-06,9.68580E-06,9.83085E-06, & 
1215       9.97704E-06,1.01243E-05,1.02728E-05,1.04224E-05,1.05731E-05, & 
1216       1.07249E-05,1.08779E-05,1.10320E-05,1.11872E-05,1.13435E-05, & 
1217       1.15009E-05,1.16595E-05,1.18191E-05,1.19799E-05,1.21418E-05, & 
1218       1.23048E-05,1.24688E-05,1.26340E-05,1.28003E-05,1.29676E-05, & 
1219       1.31361E-05,1.33056E-05,1.34762E-05,1.36479E-05,1.38207E-05, & 
1220       1.39945E-05,1.41694E-05,1.43454E-05,1.45225E-05,1.47006E-05, & 
1221       1.48797E-05,1.50600E-05,1.52413E-05,1.54236E-05,1.56070E-05/               
1222       DATA (TOTPLNK(IDATA, 5),IDATA=151,181)/ &                                             
1223       1.57914E-05,1.59768E-05,1.61633E-05,1.63509E-05,1.65394E-05, & 
1224       1.67290E-05,1.69197E-05,1.71113E-05,1.73040E-05,1.74976E-05, & 
1225       1.76923E-05,1.78880E-05,1.80847E-05,1.82824E-05,1.84811E-05, & 
1226       1.86808E-05,1.88814E-05,1.90831E-05,1.92857E-05,1.94894E-05, & 
1227       1.96940E-05,1.98996E-05,2.01061E-05,2.03136E-05,2.05221E-05, & 
1228       2.07316E-05,2.09420E-05,2.11533E-05,2.13657E-05,2.15789E-05, & 
1229       2.17931E-05/                                                               
1230       DATA (TOTPLNK(IDATA, 6),IDATA=1,50)/ &                                                
1231       2.73493E-07,2.87408E-07,3.01848E-07,3.16825E-07,3.32352E-07, & 
1232       3.48439E-07,3.65100E-07,3.82346E-07,4.00189E-07,4.18641E-07, & 
1233       4.37715E-07,4.57422E-07,4.77774E-07,4.98784E-07,5.20464E-07, & 
1234       5.42824E-07,5.65879E-07,5.89638E-07,6.14115E-07,6.39320E-07, & 
1235       6.65266E-07,6.91965E-07,7.19427E-07,7.47666E-07,7.76691E-07, & 
1236       8.06516E-07,8.37151E-07,8.68607E-07,9.00896E-07,9.34029E-07, & 
1237       9.68018E-07,1.00287E-06,1.03860E-06,1.07522E-06,1.11274E-06, & 
1238       1.15117E-06,1.19052E-06,1.23079E-06,1.27201E-06,1.31418E-06, & 
1239       1.35731E-06,1.40141E-06,1.44650E-06,1.49257E-06,1.53965E-06, & 
1240       1.58773E-06,1.63684E-06,1.68697E-06,1.73815E-06,1.79037E-06/               
1241       DATA (TOTPLNK(IDATA, 6),IDATA=51,100)/ &                                              
1242       1.84365E-06,1.89799E-06,1.95341E-06,2.00991E-06,2.06750E-06, & 
1243       2.12619E-06,2.18599E-06,2.24691E-06,2.30895E-06,2.37212E-06, & 
1244       2.43643E-06,2.50189E-06,2.56851E-06,2.63628E-06,2.70523E-06, & 
1245       2.77536E-06,2.84666E-06,2.91916E-06,2.99286E-06,3.06776E-06, & 
1246       3.14387E-06,3.22120E-06,3.29975E-06,3.37953E-06,3.46054E-06, & 
1247       3.54280E-06,3.62630E-06,3.71105E-06,3.79707E-06,3.88434E-06, & 
1248       3.97288E-06,4.06270E-06,4.15380E-06,4.24617E-06,4.33984E-06, & 
1249       4.43479E-06,4.53104E-06,4.62860E-06,4.72746E-06,4.82763E-06, & 
1250       4.92911E-06,5.03191E-06,5.13603E-06,5.24147E-06,5.34824E-06, & 
1251       5.45634E-06,5.56578E-06,5.67656E-06,5.78867E-06,5.90213E-06/               
1252       DATA (TOTPLNK(IDATA, 6),IDATA=101,150)/ &                                             
1253       6.01694E-06,6.13309E-06,6.25060E-06,6.36947E-06,6.48968E-06, & 
1254       6.61126E-06,6.73420E-06,6.85850E-06,6.98417E-06,7.11120E-06, & 
1255       7.23961E-06,7.36938E-06,7.50053E-06,7.63305E-06,7.76694E-06, & 
1256       7.90221E-06,8.03887E-06,8.17690E-06,8.31632E-06,8.45710E-06, & 
1257       8.59928E-06,8.74282E-06,8.88776E-06,9.03409E-06,9.18179E-06, & 
1258       9.33088E-06,9.48136E-06,9.63323E-06,9.78648E-06,9.94111E-06, & 
1259       1.00971E-05,1.02545E-05,1.04133E-05,1.05735E-05,1.07351E-05, & 
1260       1.08980E-05,1.10624E-05,1.12281E-05,1.13952E-05,1.15637E-05, & 
1261       1.17335E-05,1.19048E-05,1.20774E-05,1.22514E-05,1.24268E-05, & 
1262       1.26036E-05,1.27817E-05,1.29612E-05,1.31421E-05,1.33244E-05/               
1263       DATA (TOTPLNK(IDATA, 6),IDATA=151,181)/ &                                             
1264       1.35080E-05,1.36930E-05,1.38794E-05,1.40672E-05,1.42563E-05, & 
1265       1.44468E-05,1.46386E-05,1.48318E-05,1.50264E-05,1.52223E-05, & 
1266       1.54196E-05,1.56182E-05,1.58182E-05,1.60196E-05,1.62223E-05, & 
1267       1.64263E-05,1.66317E-05,1.68384E-05,1.70465E-05,1.72559E-05, & 
1268       1.74666E-05,1.76787E-05,1.78921E-05,1.81069E-05,1.83230E-05, & 
1269       1.85404E-05,1.87591E-05,1.89791E-05,1.92005E-05,1.94232E-05, & 
1270       1.96471E-05/                                                               
1271       DATA (TOTPLNK(IDATA, 7),IDATA=1,50)/ &                                                
1272       1.25349E-07,1.32735E-07,1.40458E-07,1.48527E-07,1.56954E-07, & 
1273       1.65748E-07,1.74920E-07,1.84481E-07,1.94443E-07,2.04814E-07, & 
1274       2.15608E-07,2.26835E-07,2.38507E-07,2.50634E-07,2.63229E-07, & 
1275       2.76301E-07,2.89864E-07,3.03930E-07,3.18508E-07,3.33612E-07, & 
1276       3.49253E-07,3.65443E-07,3.82195E-07,3.99519E-07,4.17428E-07, & 
1277       4.35934E-07,4.55050E-07,4.74785E-07,4.95155E-07,5.16170E-07, & 
1278       5.37844E-07,5.60186E-07,5.83211E-07,6.06929E-07,6.31355E-07, & 
1279       6.56498E-07,6.82373E-07,7.08990E-07,7.36362E-07,7.64501E-07, & 
1280       7.93420E-07,8.23130E-07,8.53643E-07,8.84971E-07,9.17128E-07, & 
1281       9.50123E-07,9.83969E-07,1.01868E-06,1.05426E-06,1.09073E-06/               
1282       DATA (TOTPLNK(IDATA, 7),IDATA=51,100)/ &                                              
1283       1.12810E-06,1.16638E-06,1.20558E-06,1.24572E-06,1.28680E-06, & 
1284       1.32883E-06,1.37183E-06,1.41581E-06,1.46078E-06,1.50675E-06, & 
1285       1.55374E-06,1.60174E-06,1.65078E-06,1.70087E-06,1.75200E-06, & 
1286       1.80421E-06,1.85749E-06,1.91186E-06,1.96732E-06,2.02389E-06, & 
1287       2.08159E-06,2.14040E-06,2.20035E-06,2.26146E-06,2.32372E-06, & 
1288       2.38714E-06,2.45174E-06,2.51753E-06,2.58451E-06,2.65270E-06, & 
1289       2.72210E-06,2.79272E-06,2.86457E-06,2.93767E-06,3.01201E-06, & 
1290       3.08761E-06,3.16448E-06,3.24261E-06,3.32204E-06,3.40275E-06, & 
1291       3.48476E-06,3.56808E-06,3.65271E-06,3.73866E-06,3.82595E-06, & 
1292       3.91456E-06,4.00453E-06,4.09584E-06,4.18851E-06,4.28254E-06/               
1293       DATA (TOTPLNK(IDATA, 7),IDATA=101,150)/ &                                             
1294       4.37796E-06,4.47475E-06,4.57293E-06,4.67249E-06,4.77346E-06, & 
1295       4.87583E-06,4.97961E-06,5.08481E-06,5.19143E-06,5.29948E-06, & 
1296       5.40896E-06,5.51989E-06,5.63226E-06,5.74608E-06,5.86136E-06, & 
1297       5.97810E-06,6.09631E-06,6.21597E-06,6.33713E-06,6.45976E-06, & 
1298       6.58388E-06,6.70950E-06,6.83661E-06,6.96521E-06,7.09531E-06, & 
1299       7.22692E-06,7.36005E-06,7.49468E-06,7.63084E-06,7.76851E-06, & 
1300       7.90773E-06,8.04846E-06,8.19072E-06,8.33452E-06,8.47985E-06, & 
1301       8.62674E-06,8.77517E-06,8.92514E-06,9.07666E-06,9.22975E-06, & 
1302       9.38437E-06,9.54057E-06,9.69832E-06,9.85762E-06,1.00185E-05, & 
1303       1.01810E-05,1.03450E-05,1.05106E-05,1.06777E-05,1.08465E-05/               
1304       DATA (TOTPLNK(IDATA, 7),IDATA=151,181)/ &                                             
1305       1.10168E-05,1.11887E-05,1.13621E-05,1.15372E-05,1.17138E-05, & 
1306       1.18920E-05,1.20718E-05,1.22532E-05,1.24362E-05,1.26207E-05, & 
1307       1.28069E-05,1.29946E-05,1.31839E-05,1.33749E-05,1.35674E-05, & 
1308       1.37615E-05,1.39572E-05,1.41544E-05,1.43533E-05,1.45538E-05, & 
1309       1.47558E-05,1.49595E-05,1.51647E-05,1.53716E-05,1.55800E-05, & 
1310       1.57900E-05,1.60017E-05,1.62149E-05,1.64296E-05,1.66460E-05, & 
1311       1.68640E-05/                                                               
1312       DATA (TOTPLNK(IDATA, 8),IDATA=1,50)/ &                                                
1313       6.74445E-08,7.18176E-08,7.64153E-08,8.12456E-08,8.63170E-08, & 
1314       9.16378E-08,9.72168E-08,1.03063E-07,1.09184E-07,1.15591E-07, & 
1315       1.22292E-07,1.29296E-07,1.36613E-07,1.44253E-07,1.52226E-07, & 
1316       1.60540E-07,1.69207E-07,1.78236E-07,1.87637E-07,1.97421E-07, & 
1317       2.07599E-07,2.18181E-07,2.29177E-07,2.40598E-07,2.52456E-07, & 
1318       2.64761E-07,2.77523E-07,2.90755E-07,3.04468E-07,3.18673E-07, & 
1319       3.33381E-07,3.48603E-07,3.64352E-07,3.80638E-07,3.97474E-07, & 
1320       4.14871E-07,4.32841E-07,4.51395E-07,4.70547E-07,4.90306E-07, & 
1321       5.10687E-07,5.31699E-07,5.53357E-07,5.75670E-07,5.98652E-07, & 
1322       6.22315E-07,6.46672E-07,6.71731E-07,6.97511E-07,7.24018E-07/               
1323       DATA (TOTPLNK(IDATA, 8),IDATA=51,100)/ &                                              
1324       7.51266E-07,7.79269E-07,8.08038E-07,8.37584E-07,8.67922E-07, & 
1325       8.99061E-07,9.31016E-07,9.63797E-07,9.97417E-07,1.03189E-06, & 
1326       1.06722E-06,1.10343E-06,1.14053E-06,1.17853E-06,1.21743E-06, & 
1327       1.25726E-06,1.29803E-06,1.33974E-06,1.38241E-06,1.42606E-06, & 
1328       1.47068E-06,1.51630E-06,1.56293E-06,1.61056E-06,1.65924E-06, & 
1329       1.70894E-06,1.75971E-06,1.81153E-06,1.86443E-06,1.91841E-06, & 
1330       1.97350E-06,2.02968E-06,2.08699E-06,2.14543E-06,2.20500E-06, & 
1331       2.26573E-06,2.32762E-06,2.39068E-06,2.45492E-06,2.52036E-06, & 
1332       2.58700E-06,2.65485E-06,2.72393E-06,2.79424E-06,2.86580E-06, & 
1333       2.93861E-06,3.01269E-06,3.08803E-06,3.16467E-06,3.24259E-06/               
1334       DATA (TOTPLNK(IDATA, 8),IDATA=101,150)/ &                                             
1335       3.32181E-06,3.40235E-06,3.48420E-06,3.56739E-06,3.65192E-06, & 
1336       3.73779E-06,3.82502E-06,3.91362E-06,4.00359E-06,4.09494E-06, & 
1337       4.18768E-06,4.28182E-06,4.37737E-06,4.47434E-06,4.57273E-06, & 
1338       4.67254E-06,4.77380E-06,4.87651E-06,4.98067E-06,5.08630E-06, & 
1339       5.19339E-06,5.30196E-06,5.41201E-06,5.52356E-06,5.63660E-06, & 
1340       5.75116E-06,5.86722E-06,5.98479E-06,6.10390E-06,6.22453E-06, & 
1341       6.34669E-06,6.47042E-06,6.59569E-06,6.72252E-06,6.85090E-06, & 
1342       6.98085E-06,7.11238E-06,7.24549E-06,7.38019E-06,7.51646E-06, & 
1343       7.65434E-06,7.79382E-06,7.93490E-06,8.07760E-06,8.22192E-06, & 
1344       8.36784E-06,8.51540E-06,8.66459E-06,8.81542E-06,8.96786E-06/               
1345       DATA (TOTPLNK(IDATA, 8),IDATA=151,181)/ &                                             
1346       9.12197E-06,9.27772E-06,9.43513E-06,9.59419E-06,9.75490E-06, & 
1347       9.91728E-06,1.00813E-05,1.02471E-05,1.04144E-05,1.05835E-05, & 
1348       1.07543E-05,1.09267E-05,1.11008E-05,1.12766E-05,1.14541E-05, & 
1349       1.16333E-05,1.18142E-05,1.19969E-05,1.21812E-05,1.23672E-05, & 
1350       1.25549E-05,1.27443E-05,1.29355E-05,1.31284E-05,1.33229E-05, & 
1351       1.35193E-05,1.37173E-05,1.39170E-05,1.41185E-05,1.43217E-05, & 
1352       1.45267E-05/                                                               
1353       DATA (TOTPLNK(IDATA, 9),IDATA=1,50)/ &                                                
1354       2.61522E-08,2.80613E-08,3.00838E-08,3.22250E-08,3.44899E-08, & 
1355       3.68841E-08,3.94129E-08,4.20820E-08,4.48973E-08,4.78646E-08, & 
1356       5.09901E-08,5.42799E-08,5.77405E-08,6.13784E-08,6.52001E-08, & 
1357       6.92126E-08,7.34227E-08,7.78375E-08,8.24643E-08,8.73103E-08, & 
1358       9.23832E-08,9.76905E-08,1.03240E-07,1.09039E-07,1.15097E-07, & 
1359       1.21421E-07,1.28020E-07,1.34902E-07,1.42075E-07,1.49548E-07, & 
1360       1.57331E-07,1.65432E-07,1.73860E-07,1.82624E-07,1.91734E-07, & 
1361       2.01198E-07,2.11028E-07,2.21231E-07,2.31818E-07,2.42799E-07, & 
1362       2.54184E-07,2.65983E-07,2.78205E-07,2.90862E-07,3.03963E-07, & 
1363       3.17519E-07,3.31541E-07,3.46039E-07,3.61024E-07,3.76507E-07/               
1364       DATA (TOTPLNK(IDATA, 9),IDATA=51,100)/ &                                              
1365       3.92498E-07,4.09008E-07,4.26050E-07,4.43633E-07,4.61769E-07, & 
1366       4.80469E-07,4.99744E-07,5.19606E-07,5.40067E-07,5.61136E-07, & 
1367       5.82828E-07,6.05152E-07,6.28120E-07,6.51745E-07,6.76038E-07, & 
1368       7.01010E-07,7.26674E-07,7.53041E-07,7.80124E-07,8.07933E-07, & 
1369       8.36482E-07,8.65781E-07,8.95845E-07,9.26683E-07,9.58308E-07, & 
1370       9.90732E-07,1.02397E-06,1.05803E-06,1.09292E-06,1.12866E-06, & 
1371       1.16526E-06,1.20274E-06,1.24109E-06,1.28034E-06,1.32050E-06, & 
1372       1.36158E-06,1.40359E-06,1.44655E-06,1.49046E-06,1.53534E-06, & 
1373       1.58120E-06,1.62805E-06,1.67591E-06,1.72478E-06,1.77468E-06, & 
1374       1.82561E-06,1.87760E-06,1.93066E-06,1.98479E-06,2.04000E-06/               
1375       DATA (TOTPLNK(IDATA, 9),IDATA=101,150)/ &                                             
1376       2.09631E-06,2.15373E-06,2.21228E-06,2.27196E-06,2.33278E-06, & 
1377       2.39475E-06,2.45790E-06,2.52222E-06,2.58773E-06,2.65445E-06, & 
1378       2.72238E-06,2.79152E-06,2.86191E-06,2.93354E-06,3.00643E-06, & 
1379       3.08058E-06,3.15601E-06,3.23273E-06,3.31075E-06,3.39009E-06, & 
1380       3.47074E-06,3.55272E-06,3.63605E-06,3.72072E-06,3.80676E-06, & 
1381       3.89417E-06,3.98297E-06,4.07315E-06,4.16474E-06,4.25774E-06, & 
1382       4.35217E-06,4.44802E-06,4.54532E-06,4.64406E-06,4.74428E-06, & 
1383       4.84595E-06,4.94911E-06,5.05376E-06,5.15990E-06,5.26755E-06, & 
1384       5.37671E-06,5.48741E-06,5.59963E-06,5.71340E-06,5.82871E-06, & 
1385       5.94559E-06,6.06403E-06,6.18404E-06,6.30565E-06,6.42885E-06/               
1386       DATA (TOTPLNK(IDATA, 9),IDATA=151,181)/ &                                             
1387       6.55364E-06,6.68004E-06,6.80806E-06,6.93771E-06,7.06898E-06, & 
1388       7.20190E-06,7.33646E-06,7.47267E-06,7.61056E-06,7.75010E-06, & 
1389       7.89133E-06,8.03423E-06,8.17884E-06,8.32514E-06,8.47314E-06, & 
1390       8.62284E-06,8.77427E-06,8.92743E-06,9.08231E-06,9.23893E-06, & 
1391       9.39729E-06,9.55741E-06,9.71927E-06,9.88291E-06,1.00483E-05, & 
1392       1.02155E-05,1.03844E-05,1.05552E-05,1.07277E-05,1.09020E-05, & 
1393       1.10781E-05/                                                               
1394       DATA (TOTPLNK(IDATA,10),IDATA=1,50)/ &                                                
1395       8.89300E-09,9.63263E-09,1.04235E-08,1.12685E-08,1.21703E-08, & 
1396       1.31321E-08,1.41570E-08,1.52482E-08,1.64090E-08,1.76428E-08, & 
1397       1.89533E-08,2.03441E-08,2.18190E-08,2.33820E-08,2.50370E-08, & 
1398       2.67884E-08,2.86402E-08,3.05969E-08,3.26632E-08,3.48436E-08, & 
1399       3.71429E-08,3.95660E-08,4.21179E-08,4.48040E-08,4.76294E-08, & 
1400       5.05996E-08,5.37201E-08,5.69966E-08,6.04349E-08,6.40411E-08, & 
1401       6.78211E-08,7.17812E-08,7.59276E-08,8.02670E-08,8.48059E-08, & 
1402       8.95508E-08,9.45090E-08,9.96873E-08,1.05093E-07,1.10733E-07, & 
1403       1.16614E-07,1.22745E-07,1.29133E-07,1.35786E-07,1.42711E-07, & 
1404       1.49916E-07,1.57410E-07,1.65202E-07,1.73298E-07,1.81709E-07/               
1405       DATA (TOTPLNK(IDATA,10),IDATA=51,100)/ &                                              
1406       1.90441E-07,1.99505E-07,2.08908E-07,2.18660E-07,2.28770E-07, & 
1407       2.39247E-07,2.50101E-07,2.61340E-07,2.72974E-07,2.85013E-07, & 
1408       2.97467E-07,3.10345E-07,3.23657E-07,3.37413E-07,3.51623E-07, & 
1409       3.66298E-07,3.81448E-07,3.97082E-07,4.13212E-07,4.29848E-07, & 
1410       4.47000E-07,4.64680E-07,4.82898E-07,5.01664E-07,5.20991E-07, & 
1411       5.40888E-07,5.61369E-07,5.82440E-07,6.04118E-07,6.26410E-07, & 
1412       6.49329E-07,6.72887E-07,6.97095E-07,7.21964E-07,7.47506E-07, & 
1413       7.73732E-07,8.00655E-07,8.28287E-07,8.56635E-07,8.85717E-07, & 
1414       9.15542E-07,9.46122E-07,9.77469E-07,1.00960E-06,1.04251E-06, & 
1415       1.07623E-06,1.11077E-06,1.14613E-06,1.18233E-06,1.21939E-06/               
1416       DATA (TOTPLNK(IDATA,10),IDATA=101,150)/ &                                             
1417       1.25730E-06,1.29610E-06,1.33578E-06,1.37636E-06,1.41785E-06, & 
1418       1.46027E-06,1.50362E-06,1.54792E-06,1.59319E-06,1.63942E-06, & 
1419       1.68665E-06,1.73487E-06,1.78410E-06,1.83435E-06,1.88564E-06, & 
1420       1.93797E-06,1.99136E-06,2.04582E-06,2.10137E-06,2.15801E-06, & 
1421       2.21576E-06,2.27463E-06,2.33462E-06,2.39577E-06,2.45806E-06, & 
1422       2.52153E-06,2.58617E-06,2.65201E-06,2.71905E-06,2.78730E-06, & 
1423       2.85678E-06,2.92749E-06,2.99946E-06,3.07269E-06,3.14720E-06, & 
1424       3.22299E-06,3.30007E-06,3.37847E-06,3.45818E-06,3.53923E-06, & 
1425       3.62161E-06,3.70535E-06,3.79046E-06,3.87695E-06,3.96481E-06, & 
1426       4.05409E-06,4.14477E-06,4.23687E-06,4.33040E-06,4.42538E-06/               
1427       DATA (TOTPLNK(IDATA,10),IDATA=151,181)/ &                                             
1428       4.52180E-06,4.61969E-06,4.71905E-06,4.81991E-06,4.92226E-06, & 
1429       5.02611E-06,5.13148E-06,5.23839E-06,5.34681E-06,5.45681E-06, & 
1430       5.56835E-06,5.68146E-06,5.79614E-06,5.91242E-06,6.03030E-06, & 
1431       6.14978E-06,6.27088E-06,6.39360E-06,6.51798E-06,6.64398E-06, & 
1432       6.77165E-06,6.90099E-06,7.03198E-06,7.16468E-06,7.29906E-06, & 
1433       7.43514E-06,7.57294E-06,7.71244E-06,7.85369E-06,7.99666E-06, & 
1434       8.14138E-06/                                                               
1435       DATA (TOTPLNK(IDATA,11),IDATA=1,50)/ &                                                
1436       2.53767E-09,2.77242E-09,3.02564E-09,3.29851E-09,3.59228E-09, & 
1437       3.90825E-09,4.24777E-09,4.61227E-09,5.00322E-09,5.42219E-09, & 
1438       5.87080E-09,6.35072E-09,6.86370E-09,7.41159E-09,7.99628E-09, & 
1439       8.61974E-09,9.28404E-09,9.99130E-09,1.07437E-08,1.15436E-08, & 
1440       1.23933E-08,1.32953E-08,1.42522E-08,1.52665E-08,1.63410E-08, & 
1441       1.74786E-08,1.86820E-08,1.99542E-08,2.12985E-08,2.27179E-08, & 
1442       2.42158E-08,2.57954E-08,2.74604E-08,2.92141E-08,3.10604E-08, & 
1443       3.30029E-08,3.50457E-08,3.71925E-08,3.94476E-08,4.18149E-08, & 
1444       4.42991E-08,4.69043E-08,4.96352E-08,5.24961E-08,5.54921E-08, & 
1445       5.86277E-08,6.19081E-08,6.53381E-08,6.89231E-08,7.26681E-08/               
1446       DATA (TOTPLNK(IDATA,11),IDATA=51,100)/ &                                              
1447       7.65788E-08,8.06604E-08,8.49187E-08,8.93591E-08,9.39879E-08, & 
1448       9.88106E-08,1.03834E-07,1.09063E-07,1.14504E-07,1.20165E-07, & 
1449       1.26051E-07,1.32169E-07,1.38525E-07,1.45128E-07,1.51982E-07, & 
1450       1.59096E-07,1.66477E-07,1.74132E-07,1.82068E-07,1.90292E-07, & 
1451       1.98813E-07,2.07638E-07,2.16775E-07,2.26231E-07,2.36015E-07, & 
1452       2.46135E-07,2.56599E-07,2.67415E-07,2.78592E-07,2.90137E-07, & 
1453       3.02061E-07,3.14371E-07,3.27077E-07,3.40186E-07,3.53710E-07, & 
1454       3.67655E-07,3.82031E-07,3.96848E-07,4.12116E-07,4.27842E-07, & 
1455       4.44039E-07,4.60713E-07,4.77876E-07,4.95537E-07,5.13706E-07, & 
1456       5.32392E-07,5.51608E-07,5.71360E-07,5.91662E-07,6.12521E-07/               
1457       DATA (TOTPLNK(IDATA,11),IDATA=101,150)/ &                                             
1458       6.33950E-07,6.55958E-07,6.78556E-07,7.01753E-07,7.25562E-07, & 
1459       7.49992E-07,7.75055E-07,8.00760E-07,8.27120E-07,8.54145E-07, & 
1460       8.81845E-07,9.10233E-07,9.39318E-07,9.69113E-07,9.99627E-07, & 
1461       1.03087E-06,1.06286E-06,1.09561E-06,1.12912E-06,1.16340E-06, & 
1462       1.19848E-06,1.23435E-06,1.27104E-06,1.30855E-06,1.34690E-06, & 
1463       1.38609E-06,1.42614E-06,1.46706E-06,1.50886E-06,1.55155E-06, & 
1464       1.59515E-06,1.63967E-06,1.68512E-06,1.73150E-06,1.77884E-06, & 
1465       1.82715E-06,1.87643E-06,1.92670E-06,1.97797E-06,2.03026E-06, & 
1466       2.08356E-06,2.13791E-06,2.19330E-06,2.24975E-06,2.30728E-06, & 
1467       2.36589E-06,2.42560E-06,2.48641E-06,2.54835E-06,2.61142E-06/               
1468       DATA (TOTPLNK(IDATA,11),IDATA=151,181)/ &                                             
1469       2.67563E-06,2.74100E-06,2.80754E-06,2.87526E-06,2.94417E-06, & 
1470       3.01429E-06,3.08562E-06,3.15819E-06,3.23199E-06,3.30704E-06, & 
1471       3.38336E-06,3.46096E-06,3.53984E-06,3.62002E-06,3.70151E-06, & 
1472       3.78433E-06,3.86848E-06,3.95399E-06,4.04084E-06,4.12907E-06, & 
1473       4.21868E-06,4.30968E-06,4.40209E-06,4.49592E-06,4.59117E-06, & 
1474       4.68786E-06,4.78600E-06,4.88561E-06,4.98669E-06,5.08926E-06, & 
1475       5.19332E-06/                                                               
1476       DATA (TOTPLNK(IDATA,12),IDATA=1,50)/ &                                                
1477       2.73921E-10,3.04500E-10,3.38056E-10,3.74835E-10,4.15099E-10, & 
1478       4.59126E-10,5.07214E-10,5.59679E-10,6.16857E-10,6.79103E-10, & 
1479       7.46796E-10,8.20335E-10,9.00144E-10,9.86671E-10,1.08039E-09, & 
1480       1.18180E-09,1.29142E-09,1.40982E-09,1.53757E-09,1.67529E-09, & 
1481       1.82363E-09,1.98327E-09,2.15492E-09,2.33932E-09,2.53726E-09, & 
1482       2.74957E-09,2.97710E-09,3.22075E-09,3.48145E-09,3.76020E-09, & 
1483       4.05801E-09,4.37595E-09,4.71513E-09,5.07672E-09,5.46193E-09, & 
1484       5.87201E-09,6.30827E-09,6.77205E-09,7.26480E-09,7.78794E-09, & 
1485       8.34304E-09,8.93163E-09,9.55537E-09,1.02159E-08,1.09151E-08, & 
1486       1.16547E-08,1.24365E-08,1.32625E-08,1.41348E-08,1.50554E-08/               
1487       DATA (TOTPLNK(IDATA,12),IDATA=51,100)/ &                                              
1488       1.60264E-08,1.70500E-08,1.81285E-08,1.92642E-08,2.04596E-08, & 
1489       2.17171E-08,2.30394E-08,2.44289E-08,2.58885E-08,2.74209E-08, & 
1490       2.90290E-08,3.07157E-08,3.24841E-08,3.43371E-08,3.62782E-08, & 
1491       3.83103E-08,4.04371E-08,4.26617E-08,4.49878E-08,4.74190E-08, & 
1492       4.99589E-08,5.26113E-08,5.53801E-08,5.82692E-08,6.12826E-08, & 
1493       6.44245E-08,6.76991E-08,7.11105E-08,7.46634E-08,7.83621E-08, & 
1494       8.22112E-08,8.62154E-08,9.03795E-08,9.47081E-08,9.92066E-08, & 
1495       1.03879E-07,1.08732E-07,1.13770E-07,1.18998E-07,1.24422E-07, & 
1496       1.30048E-07,1.35880E-07,1.41924E-07,1.48187E-07,1.54675E-07, & 
1497       1.61392E-07,1.68346E-07,1.75543E-07,1.82988E-07,1.90688E-07/               
1498       DATA (TOTPLNK(IDATA,12),IDATA=101,150)/ &                                             
1499       1.98650E-07,2.06880E-07,2.15385E-07,2.24172E-07,2.33247E-07, & 
1500       2.42617E-07,2.52289E-07,2.62272E-07,2.72571E-07,2.83193E-07, & 
1501       2.94147E-07,3.05440E-07,3.17080E-07,3.29074E-07,3.41430E-07, & 
1502       3.54155E-07,3.67259E-07,3.80747E-07,3.94631E-07,4.08916E-07, & 
1503       4.23611E-07,4.38725E-07,4.54267E-07,4.70245E-07,4.86666E-07, & 
1504       5.03541E-07,5.20879E-07,5.38687E-07,5.56975E-07,5.75751E-07, & 
1505       5.95026E-07,6.14808E-07,6.35107E-07,6.55932E-07,6.77293E-07, & 
1506       6.99197E-07,7.21656E-07,7.44681E-07,7.68278E-07,7.92460E-07, & 
1507       8.17235E-07,8.42614E-07,8.68606E-07,8.95223E-07,9.22473E-07, & 
1508       9.50366E-07,9.78915E-07,1.00813E-06,1.03802E-06,1.06859E-06/               
1509       DATA (TOTPLNK(IDATA,12),IDATA=151,181)/ &                                             
1510       1.09986E-06,1.13184E-06,1.16453E-06,1.19796E-06,1.23212E-06, & 
1511       1.26703E-06,1.30270E-06,1.33915E-06,1.37637E-06,1.41440E-06, & 
1512       1.45322E-06,1.49286E-06,1.53333E-06,1.57464E-06,1.61679E-06, & 
1513       1.65981E-06,1.70370E-06,1.74847E-06,1.79414E-06,1.84071E-06, & 
1514       1.88821E-06,1.93663E-06,1.98599E-06,2.03631E-06,2.08759E-06, & 
1515       2.13985E-06,2.19310E-06,2.24734E-06,2.30260E-06,2.35888E-06, & 
1516       2.41619E-06/                                                               
1517       DATA (TOTPLNK(IDATA,13),IDATA=1,50)/ &                                                
1518       4.53634E-11,5.11435E-11,5.75754E-11,6.47222E-11,7.26531E-11, & 
1519       8.14420E-11,9.11690E-11,1.01921E-10,1.13790E-10,1.26877E-10, & 
1520       1.41288E-10,1.57140E-10,1.74555E-10,1.93665E-10,2.14613E-10, & 
1521       2.37548E-10,2.62633E-10,2.90039E-10,3.19948E-10,3.52558E-10, & 
1522       3.88073E-10,4.26716E-10,4.68719E-10,5.14331E-10,5.63815E-10, & 
1523       6.17448E-10,6.75526E-10,7.38358E-10,8.06277E-10,8.79625E-10, & 
1524       9.58770E-10,1.04410E-09,1.13602E-09,1.23495E-09,1.34135E-09, & 
1525       1.45568E-09,1.57845E-09,1.71017E-09,1.85139E-09,2.00268E-09, & 
1526       2.16464E-09,2.33789E-09,2.52309E-09,2.72093E-09,2.93212E-09, & 
1527       3.15740E-09,3.39757E-09,3.65341E-09,3.92579E-09,4.21559E-09/               
1528       DATA (TOTPLNK(IDATA,13),IDATA=51,100)/ &                                              
1529       4.52372E-09,4.85115E-09,5.19886E-09,5.56788E-09,5.95928E-09, & 
1530       6.37419E-09,6.81375E-09,7.27917E-09,7.77168E-09,8.29256E-09, & 
1531       8.84317E-09,9.42487E-09,1.00391E-08,1.06873E-08,1.13710E-08, & 
1532       1.20919E-08,1.28515E-08,1.36514E-08,1.44935E-08,1.53796E-08, & 
1533       1.63114E-08,1.72909E-08,1.83201E-08,1.94008E-08,2.05354E-08, & 
1534       2.17258E-08,2.29742E-08,2.42830E-08,2.56545E-08,2.70910E-08, & 
1535       2.85950E-08,3.01689E-08,3.18155E-08,3.35373E-08,3.53372E-08, & 
1536       3.72177E-08,3.91818E-08,4.12325E-08,4.33727E-08,4.56056E-08, & 
1537       4.79342E-08,5.03617E-08,5.28915E-08,5.55270E-08,5.82715E-08, & 
1538       6.11286E-08,6.41019E-08,6.71951E-08,7.04119E-08,7.37560E-08/               
1539       DATA (TOTPLNK(IDATA,13),IDATA=101,150)/ &                                             
1540       7.72315E-08,8.08424E-08,8.45927E-08,8.84866E-08,9.25281E-08, & 
1541       9.67218E-08,1.01072E-07,1.05583E-07,1.10260E-07,1.15107E-07, & 
1542       1.20128E-07,1.25330E-07,1.30716E-07,1.36291E-07,1.42061E-07, & 
1543       1.48031E-07,1.54206E-07,1.60592E-07,1.67192E-07,1.74015E-07, & 
1544       1.81064E-07,1.88345E-07,1.95865E-07,2.03628E-07,2.11643E-07, & 
1545       2.19912E-07,2.28443E-07,2.37244E-07,2.46318E-07,2.55673E-07, & 
1546       2.65316E-07,2.75252E-07,2.85489E-07,2.96033E-07,3.06891E-07, & 
1547       3.18070E-07,3.29576E-07,3.41417E-07,3.53600E-07,3.66133E-07, & 
1548       3.79021E-07,3.92274E-07,4.05897E-07,4.19899E-07,4.34288E-07, & 
1549       4.49071E-07,4.64255E-07,4.79850E-07,4.95863E-07,5.12300E-07/               
1550       DATA (TOTPLNK(IDATA,13),IDATA=151,181)/ &                                             
1551       5.29172E-07,5.46486E-07,5.64250E-07,5.82473E-07,6.01164E-07, & 
1552       6.20329E-07,6.39979E-07,6.60122E-07,6.80767E-07,7.01922E-07, & 
1553       7.23596E-07,7.45800E-07,7.68539E-07,7.91826E-07,8.15669E-07, & 
1554       8.40076E-07,8.65058E-07,8.90623E-07,9.16783E-07,9.43544E-07, & 
1555       9.70917E-07,9.98912E-07,1.02754E-06,1.05681E-06,1.08673E-06, & 
1556       1.11731E-06,1.14856E-06,1.18050E-06,1.21312E-06,1.24645E-06, & 
1557       1.28049E-06/                                                               
1558       DATA (TOTPLNK(IDATA,14),IDATA=1,50)/ &                                                
1559       1.40113E-11,1.59358E-11,1.80960E-11,2.05171E-11,2.32266E-11, & 
1560       2.62546E-11,2.96335E-11,3.33990E-11,3.75896E-11,4.22469E-11, & 
1561       4.74164E-11,5.31466E-11,5.94905E-11,6.65054E-11,7.42522E-11, & 
1562       8.27975E-11,9.22122E-11,1.02573E-10,1.13961E-10,1.26466E-10, & 
1563       1.40181E-10,1.55206E-10,1.71651E-10,1.89630E-10,2.09265E-10, & 
1564       2.30689E-10,2.54040E-10,2.79467E-10,3.07128E-10,3.37190E-10, & 
1565       3.69833E-10,4.05243E-10,4.43623E-10,4.85183E-10,5.30149E-10, & 
1566       5.78755E-10,6.31255E-10,6.87910E-10,7.49002E-10,8.14824E-10, & 
1567       8.85687E-10,9.61914E-10,1.04385E-09,1.13186E-09,1.22631E-09, & 
1568       1.32761E-09,1.43617E-09,1.55243E-09,1.67686E-09,1.80992E-09/               
1569       DATA (TOTPLNK(IDATA,14),IDATA=51,100)/ &                                              
1570       1.95212E-09,2.10399E-09,2.26607E-09,2.43895E-09,2.62321E-09, & 
1571       2.81949E-09,3.02844E-09,3.25073E-09,3.48707E-09,3.73820E-09, & 
1572       4.00490E-09,4.28794E-09,4.58819E-09,4.90647E-09,5.24371E-09, & 
1573       5.60081E-09,5.97875E-09,6.37854E-09,6.80120E-09,7.24782E-09, & 
1574       7.71950E-09,8.21740E-09,8.74271E-09,9.29666E-09,9.88054E-09, & 
1575       1.04956E-08,1.11434E-08,1.18251E-08,1.25422E-08,1.32964E-08, & 
1576       1.40890E-08,1.49217E-08,1.57961E-08,1.67140E-08,1.76771E-08, & 
1577       1.86870E-08,1.97458E-08,2.08553E-08,2.20175E-08,2.32342E-08, & 
1578       2.45077E-08,2.58401E-08,2.72334E-08,2.86900E-08,3.02122E-08, & 
1579       3.18021E-08,3.34624E-08,3.51954E-08,3.70037E-08,3.88899E-08/               
1580       DATA (TOTPLNK(IDATA,14),IDATA=101,150)/ &                                             
1581       4.08568E-08,4.29068E-08,4.50429E-08,4.72678E-08,4.95847E-08, & 
1582       5.19963E-08,5.45058E-08,5.71161E-08,5.98309E-08,6.26529E-08, & 
1583       6.55857E-08,6.86327E-08,7.17971E-08,7.50829E-08,7.84933E-08, & 
1584       8.20323E-08,8.57035E-08,8.95105E-08,9.34579E-08,9.75488E-08, & 
1585       1.01788E-07,1.06179E-07,1.10727E-07,1.15434E-07,1.20307E-07, & 
1586       1.25350E-07,1.30566E-07,1.35961E-07,1.41539E-07,1.47304E-07, & 
1587       1.53263E-07,1.59419E-07,1.65778E-07,1.72345E-07,1.79124E-07, & 
1588       1.86122E-07,1.93343E-07,2.00792E-07,2.08476E-07,2.16400E-07, & 
1589       2.24568E-07,2.32988E-07,2.41666E-07,2.50605E-07,2.59813E-07, & 
1590       2.69297E-07,2.79060E-07,2.89111E-07,2.99455E-07,3.10099E-07/               
1591       DATA (TOTPLNK(IDATA,14),IDATA=151,181)/ &                                             
1592       3.21049E-07,3.32311E-07,3.43893E-07,3.55801E-07,3.68041E-07, & 
1593       3.80621E-07,3.93547E-07,4.06826E-07,4.20465E-07,4.34473E-07, & 
1594       4.48856E-07,4.63620E-07,4.78774E-07,4.94325E-07,5.10280E-07, & 
1595       5.26648E-07,5.43436E-07,5.60652E-07,5.78302E-07,5.96397E-07, & 
1596       6.14943E-07,6.33949E-07,6.53421E-07,6.73370E-07,6.93803E-07, & 
1597       7.14731E-07,7.36157E-07,7.58095E-07,7.80549E-07,8.03533E-07, & 
1598       8.27050E-07/                                                               
1599       DATA (TOTPLNK(IDATA,15),IDATA=1,50)/ &                                                
1600       3.90483E-12,4.47999E-12,5.13122E-12,5.86739E-12,6.69829E-12, & 
1601       7.63467E-12,8.68833E-12,9.87221E-12,1.12005E-11,1.26885E-11, & 
1602       1.43534E-11,1.62134E-11,1.82888E-11,2.06012E-11,2.31745E-11, & 
1603       2.60343E-11,2.92087E-11,3.27277E-11,3.66242E-11,4.09334E-11, & 
1604       4.56935E-11,5.09455E-11,5.67338E-11,6.31057E-11,7.01127E-11, & 
1605       7.78096E-11,8.62554E-11,9.55130E-11,1.05651E-10,1.16740E-10, & 
1606       1.28858E-10,1.42089E-10,1.56519E-10,1.72243E-10,1.89361E-10, & 
1607       2.07978E-10,2.28209E-10,2.50173E-10,2.73999E-10,2.99820E-10, & 
1608       3.27782E-10,3.58034E-10,3.90739E-10,4.26067E-10,4.64196E-10, & 
1609       5.05317E-10,5.49631E-10,5.97347E-10,6.48689E-10,7.03891E-10/               
1610       DATA (TOTPLNK(IDATA,15),IDATA=51,100)/ &                                              
1611       7.63201E-10,8.26876E-10,8.95192E-10,9.68430E-10,1.04690E-09, & 
1612       1.13091E-09,1.22079E-09,1.31689E-09,1.41957E-09,1.52922E-09, & 
1613       1.64623E-09,1.77101E-09,1.90401E-09,2.04567E-09,2.19647E-09, & 
1614       2.35690E-09,2.52749E-09,2.70875E-09,2.90127E-09,3.10560E-09, & 
1615       3.32238E-09,3.55222E-09,3.79578E-09,4.05375E-09,4.32682E-09, & 
1616       4.61574E-09,4.92128E-09,5.24420E-09,5.58536E-09,5.94558E-09, & 
1617       6.32575E-09,6.72678E-09,7.14964E-09,7.59526E-09,8.06470E-09, & 
1618       8.55897E-09,9.07916E-09,9.62638E-09,1.02018E-08,1.08066E-08, & 
1619       1.14420E-08,1.21092E-08,1.28097E-08,1.35446E-08,1.43155E-08, & 
1620       1.51237E-08,1.59708E-08,1.68581E-08,1.77873E-08,1.87599E-08/               
1621       DATA (TOTPLNK(IDATA,15),IDATA=101,150)/ &                                             
1622       1.97777E-08,2.08423E-08,2.19555E-08,2.31190E-08,2.43348E-08, & 
1623       2.56045E-08,2.69302E-08,2.83140E-08,2.97578E-08,3.12636E-08, & 
1624       3.28337E-08,3.44702E-08,3.61755E-08,3.79516E-08,3.98012E-08, & 
1625       4.17265E-08,4.37300E-08,4.58143E-08,4.79819E-08,5.02355E-08, & 
1626       5.25777E-08,5.50114E-08,5.75393E-08,6.01644E-08,6.28896E-08, & 
1627       6.57177E-08,6.86521E-08,7.16959E-08,7.48520E-08,7.81239E-08, & 
1628       8.15148E-08,8.50282E-08,8.86675E-08,9.24362E-08,9.63380E-08, & 
1629       1.00376E-07,1.04555E-07,1.08878E-07,1.13349E-07,1.17972E-07, & 
1630       1.22751E-07,1.27690E-07,1.32793E-07,1.38064E-07,1.43508E-07, & 
1631       1.49129E-07,1.54931E-07,1.60920E-07,1.67099E-07,1.73473E-07/               
1632       DATA (TOTPLNK(IDATA,15),IDATA=151,181)/ &                                             
1633       1.80046E-07,1.86825E-07,1.93812E-07,2.01014E-07,2.08436E-07, & 
1634       2.16082E-07,2.23957E-07,2.32067E-07,2.40418E-07,2.49013E-07, & 
1635       2.57860E-07,2.66963E-07,2.76328E-07,2.85961E-07,2.95868E-07, & 
1636       3.06053E-07,3.16524E-07,3.27286E-07,3.38345E-07,3.49707E-07, & 
1637       3.61379E-07,3.73367E-07,3.85676E-07,3.98315E-07,4.11287E-07, & 
1638       4.24602E-07,4.38265E-07,4.52283E-07,4.66662E-07,4.81410E-07, & 
1639       4.96535E-07/                                                               
1640       DATA (TOTPLNK(IDATA,16),IDATA=1,50)/ &                                                
1641       4.65378E-13,5.41927E-13,6.29913E-13,7.30869E-13,8.46510E-13, & 
1642       9.78750E-13,1.12972E-12,1.30181E-12,1.49764E-12,1.72016E-12, & 
1643       1.97260E-12,2.25858E-12,2.58206E-12,2.94744E-12,3.35955E-12, & 
1644       3.82372E-12,4.34581E-12,4.93225E-12,5.59010E-12,6.32711E-12, & 
1645       7.15171E-12,8.07317E-12,9.10159E-12,1.02480E-11,1.15244E-11, & 
1646       1.29438E-11,1.45204E-11,1.62697E-11,1.82084E-11,2.03545E-11, & 
1647       2.27278E-11,2.53494E-11,2.82424E-11,3.14313E-11,3.49431E-11, & 
1648       3.88064E-11,4.30522E-11,4.77139E-11,5.28273E-11,5.84308E-11, & 
1649       6.45658E-11,7.12764E-11,7.86103E-11,8.66176E-11,9.53534E-11, & 
1650       1.04875E-10,1.15245E-10,1.26528E-10,1.38796E-10,1.52123E-10/               
1651       DATA (TOTPLNK(IDATA,16),IDATA=51,100)/ &                                              
1652       1.66590E-10,1.82281E-10,1.99287E-10,2.17704E-10,2.37632E-10, & 
1653       2.59182E-10,2.82468E-10,3.07610E-10,3.34738E-10,3.63988E-10, & 
1654       3.95504E-10,4.29438E-10,4.65951E-10,5.05212E-10,5.47402E-10, & 
1655       5.92707E-10,6.41329E-10,6.93477E-10,7.49371E-10,8.09242E-10, & 
1656       8.73338E-10,9.41911E-10,1.01524E-09,1.09359E-09,1.17728E-09, & 
1657       1.26660E-09,1.36190E-09,1.46350E-09,1.57177E-09,1.68709E-09, & 
1658       1.80984E-09,1.94044E-09,2.07932E-09,2.22693E-09,2.38373E-09, & 
1659       2.55021E-09,2.72689E-09,2.91429E-09,3.11298E-09,3.32353E-09, & 
1660       3.54655E-09,3.78265E-09,4.03251E-09,4.29679E-09,4.57620E-09, & 
1661       4.87148E-09,5.18341E-09,5.51276E-09,5.86037E-09,6.22708E-09/               
1662       DATA (TOTPLNK(IDATA,16),IDATA=101,150)/ &                                             
1663       6.61381E-09,7.02145E-09,7.45097E-09,7.90336E-09,8.37967E-09, & 
1664       8.88092E-09,9.40827E-09,9.96280E-09,1.05457E-08,1.11583E-08, & 
1665       1.18017E-08,1.24773E-08,1.31865E-08,1.39306E-08,1.47111E-08, & 
1666       1.55295E-08,1.63872E-08,1.72860E-08,1.82274E-08,1.92132E-08, & 
1667       2.02450E-08,2.13247E-08,2.24541E-08,2.36352E-08,2.48699E-08, & 
1668       2.61602E-08,2.75082E-08,2.89161E-08,3.03860E-08,3.19203E-08, & 
1669       3.35213E-08,3.51913E-08,3.69330E-08,3.87486E-08,4.06411E-08, & 
1670       4.26129E-08,4.46668E-08,4.68058E-08,4.90325E-08,5.13502E-08, & 
1671       5.37617E-08,5.62703E-08,5.88791E-08,6.15915E-08,6.44107E-08, & 
1672       6.73404E-08,7.03841E-08,7.35453E-08,7.68278E-08,8.02355E-08/               
1673       DATA (TOTPLNK(IDATA,16),IDATA=151,181)/ &                                             
1674       8.37721E-08,8.74419E-08,9.12486E-08,9.51968E-08,9.92905E-08, & 
1675       1.03534E-07,1.07932E-07,1.12490E-07,1.17211E-07,1.22100E-07, & 
1676       1.27163E-07,1.32404E-07,1.37829E-07,1.43443E-07,1.49250E-07, & 
1677       1.55257E-07,1.61470E-07,1.67893E-07,1.74532E-07,1.81394E-07, & 
1678       1.88485E-07,1.95810E-07,2.03375E-07,2.11189E-07,2.19256E-07, & 
1679       2.27583E-07,2.36177E-07,2.45046E-07,2.54196E-07,2.63634E-07, & 
1680       2.73367E-07/                                                               
1681                                                                                  
1682       DATA (TOTPLK16(IDATA),IDATA=1,50)/ &                                                  
1683       4.46128E-13,5.19008E-13,6.02681E-13,6.98580E-13,8.08302E-13, & 
1684       9.33629E-13,1.07654E-12,1.23925E-12,1.42419E-12,1.63407E-12, & 
1685       1.87190E-12,2.14099E-12,2.44498E-12,2.78793E-12,3.17424E-12, & 
1686       3.60881E-12,4.09698E-12,4.64461E-12,5.25813E-12,5.94456E-12, & 
1687       6.71156E-12,7.56752E-12,8.52154E-12,9.58357E-12,1.07644E-11, & 
1688       1.20758E-11,1.35304E-11,1.51420E-11,1.69256E-11,1.88973E-11, & 
1689       2.10746E-11,2.34762E-11,2.61227E-11,2.90356E-11,3.22388E-11, & 
1690       3.57574E-11,3.96187E-11,4.38519E-11,4.84883E-11,5.35616E-11, & 
1691       5.91075E-11,6.51647E-11,7.17743E-11,7.89797E-11,8.68284E-11, & 
1692       9.53697E-11,1.04658E-10,1.14748E-10,1.25701E-10,1.37582E-10/               
1693       DATA (TOTPLK16(IDATA),IDATA=51,100)/ &                                                
1694       1.50457E-10,1.64400E-10,1.79487E-10,1.95799E-10,2.13422E-10, & 
1695       2.32446E-10,2.52970E-10,2.75094E-10,2.98925E-10,3.24578E-10, & 
1696       3.52172E-10,3.81833E-10,4.13695E-10,4.47897E-10,4.84588E-10, & 
1697       5.23922E-10,5.66063E-10,6.11182E-10,6.59459E-10,7.11081E-10, & 
1698       7.66251E-10,8.25172E-10,8.88065E-10,9.55155E-10,1.02668E-09, & 
1699       1.10290E-09,1.18406E-09,1.27044E-09,1.36233E-09,1.46002E-09, & 
1700       1.56382E-09,1.67406E-09,1.79108E-09,1.91522E-09,2.04686E-09, & 
1701       2.18637E-09,2.33416E-09,2.49063E-09,2.65622E-09,2.83136E-09, & 
1702       3.01653E-09,3.21221E-09,3.41890E-09,3.63712E-09,3.86740E-09, & 
1703       4.11030E-09,4.36641E-09,4.63631E-09,4.92064E-09,5.22003E-09/               
1704       DATA (TOTPLK16(IDATA),IDATA=101,150)/ &                                               
1705       5.53516E-09,5.86670E-09,6.21538E-09,6.58191E-09,6.96708E-09, & 
1706       7.37165E-09,7.79645E-09,8.24229E-09,8.71007E-09,9.20066E-09, & 
1707       9.71498E-09,1.02540E-08,1.08186E-08,1.14100E-08,1.20290E-08, & 
1708       1.26767E-08,1.33544E-08,1.40630E-08,1.48038E-08,1.55780E-08, & 
1709       1.63867E-08,1.72313E-08,1.81130E-08,1.90332E-08,1.99932E-08, & 
1710       2.09945E-08,2.20385E-08,2.31267E-08,2.42605E-08,2.54416E-08, & 
1711       2.66716E-08,2.79520E-08,2.92846E-08,3.06711E-08,3.21133E-08, & 
1712       3.36128E-08,3.51717E-08,3.67918E-08,3.84749E-08,4.02232E-08, & 
1713       4.20386E-08,4.39231E-08,4.58790E-08,4.79083E-08,5.00132E-08, & 
1714       5.21961E-08,5.44592E-08,5.68049E-08,5.92356E-08,6.17537E-08/               
1715       DATA (TOTPLK16(IDATA),IDATA=151,181)/ &                                               
1716       6.43617E-08,6.70622E-08,6.98578E-08,7.27511E-08,7.57449E-08, & 
1717       7.88419E-08,8.20449E-08,8.53568E-08,8.87805E-08,9.23190E-08, & 
1718       9.59753E-08,9.97526E-08,1.03654E-07,1.07682E-07,1.11841E-07, & 
1719       1.16134E-07,1.20564E-07,1.25135E-07,1.29850E-07,1.34712E-07, & 
1720       1.39726E-07,1.44894E-07,1.50221E-07,1.55711E-07,1.61367E-07, & 
1721       1.67193E-07,1.73193E-07,1.79371E-07,1.85732E-07,1.92279E-07, & 
1722       1.99016E-07/                                                               
1723 
1724                                                             
1725                 
1726 
1727 CONTAINS
1728 
1729 !------------------------------------------------------------------
1730    SUBROUTINE RRTMLWRAD(rthraten,glw,olr,emiss                    &
1731                        ,p8w,p3d,pi3d                              &
1732                        ,dz8w,t3d,t8w,rho3d,r,g                    &
1733                        ,icloud, warm_rain                         &
1734                        ,ids,ide, jds,jde, kds,kde                 & 
1735                        ,ims,ime, jms,jme, kms,kme                 &
1736                        ,its,ite, jts,jte, kts,kte                 &
1737                        ,qv3d,qc3d,qr3d                            &
1738                        ,qi3d,qs3d,qg3d,cldfra3d                   &
1739                        ,f_qv,f_qc,f_qr,f_qi,f_qs,f_qg             &
1740                                                                   )
1741 !------------------------------------------------------------------
1742    IMPLICIT NONE
1743 !------------------------------------------------------------------
1744    LOGICAL, INTENT(IN )      ::        warm_rain
1745 !
1746    INTEGER, INTENT(IN )      ::        ids,ide, jds,jde, kds,kde, &
1747                                        ims,ime, jms,jme, kms,kme, &
1748                                        its,ite, jts,jte, kts,kte
1749 
1750    INTEGER, INTENT(IN )      ::        ICLOUD
1751 !
1752    REAL, DIMENSION( ims:ime, kms:kme, jms:jme )                 , &
1753          INTENT(IN   ) ::                                   dz8w, &
1754                                                              T3D, &
1755                                                              t8w, &
1756                                                              p8w, &
1757                                                              P3D, &
1758                                                             pi3D, &
1759                                                            rho3D
1760 !
1761    REAL, DIMENSION( ims:ime, kms:kme, jms:jme )                 , &
1762          INTENT(INOUT)  ::                              RTHRATEN
1763 !
1764    REAL, DIMENSION( ims:ime, jms:jme )                          , &
1765          INTENT(IN   )  ::                                 EMISS
1766 !
1767    REAL, DIMENSION( ims:ime, jms:jme )                          , &
1768          INTENT(INOUT)  ::                                   GLW, &
1769                                                              OLR
1770 !
1771    REAL, INTENT(IN  )   ::                                   R,G
1772 !
1773 ! Optional
1774 !
1775    REAL, DIMENSION( ims:ime, kms:kme, jms:jme )                 , &
1776          OPTIONAL                                               , &
1777          INTENT(IN   ) ::                                         &
1778                                                         CLDFRA3D, &
1779                                                             QV3D, &
1780                                                             QC3D, &
1781                                                             QR3D, &
1782                                                             QI3D, &
1783                                                             QS3D, &
1784                                                             QG3D
1785 
1786    LOGICAL, OPTIONAL, INTENT(IN )      ::        F_QV,F_QC,F_QR,F_QI,F_QS,F_QG
1787 
1788 !  LOCAL VARS
1789  
1790    REAL, DIMENSION( kts:kte+1 ) ::                          Pw1D, &
1791                                                             Tw1D, &
1792                                                             PHYD
1793 
1794    REAL, DIMENSION( kts:kte ) ::                          TTEN1D, &
1795                                                         CLDFRA1D, &
1796                                                             DZ1D, &
1797                                                              P1D, &
1798                                                          PHYDMID, &
1799                                                              T1D, &
1800                                                             QV1D, &
1801                                                             QC1D, &
1802                                                             QR1D, &
1803                                                             QI1D, &
1804                                                             QS1D, &
1805                                                             QG1D
1806 !
1807     REAL   ::                              TSFC,GLW0,OLR0,EMISS0,FP
1808 !
1809     INTEGER:: i,j,K,NK
1810     LOGICAL :: predicate
1811 
1812 !------------------------------------------------------------------
1813 
1814 !-----CALCULATE LONG WAVE RADIATION
1815 !                                                              
1816    j_loop: DO J=jts,jte
1817    i_loop: DO I=its,ite
1818 
1819 ! reverse vars 
1820 ! p1D pw1D are in mb
1821 
1822 ! NEED HYDROSTATIC PRESSURE HERE (MONOTONIC CHANGE WITH HEIGHT)
1823 ! PHYD REPLACES P8W, PHYDMID REPLACES P3D
1824          PHYD(kts) = p8w(I,kts,J)
1825 ! first guess
1826          DO K = KTS,KTE
1827             PHYD(K+1) = PHYD(K) - G*RHO3D(I,K,J)*DZ8W(I,K,J)
1828          ENDDO
1829 ! correction factor FP to match p8w(I,kts,J)-p8w(I,kte,J)
1830          FP = (p8w(I,kts,J)-p8w(I,kte,J))/(PHYD(KTS)-PHYD(KTE))
1831 ! final pass
1832          DO K = KTS,KTE
1833             PHYD(K+1) = PHYD(K) - G*RHO3D(I,K,J)*DZ8W(I,K,J)*FP
1834             PHYDMID(K)= 0.5*(PHYD(K)+PHYD(K+1))
1835          ENDDO
1836 
1837          do k=kts,kte+1
1838             NK=kme-k+kms
1839 !           Pw1D(K) = p8w(I,NK,J)/100.
1840             Pw1D(K) = PHYD(NK)/100.
1841             Tw1D(K) = t8w(I,NK,J)
1842          enddo
1843 
1844          DO K=kts,kte
1845             QV1D(K)=0.
1846             QC1D(K)=0.
1847             QR1D(K)=0.
1848             QI1D(K)=0.
1849             QS1D(K)=0.
1850             CLDFRA1D(k)=0.
1851          ENDDO
1852 
1853          DO K=kts,kte
1854             NK=kme-1-K+kms
1855             QV1D(K)=QV3D(I,NK,J)
1856             QV1D(K)=max(0.,QV1D(K))
1857          ENDDO
1858 
1859          DO K=kts,kte
1860             NK=kme-1-K+kms
1861             TTEN1D(K)=0.
1862             T1D(K)=T3D(I,NK,J)
1863 !           P1D(K)=P3D(I,NK,J)/100.
1864             P1D(K)=PHYDMID(NK)/100.
1865             DZ1D(K)=dz8w(I,NK,J)
1866          ENDDO
1867 
1868          IF (ICLOUD .ne. 0) THEN
1869             IF ( PRESENT( CLDFRA3D ) ) THEN
1870               DO K=kts,kte
1871                  NK=kme-1-K+kms
1872                  CLDFRA1D(k)=CLDFRA3D(I,NK,J)
1873               ENDDO
1874             ENDIF
1875 
1876             IF (PRESENT(F_QC) .AND. PRESENT(QC3D)) THEN
1877               IF ( F_QC) THEN
1878                  DO K=kts,kte
1879                     NK=kme-1-K+kms
1880                     QC1D(K)=QC3D(I,NK,J)
1881                     QC1D(K)=max(0.,QC1D(K))
1882                  ENDDO
1883               ENDIF
1884             ENDIF
1885 
1886             IF (PRESENT(F_QR) .AND. PRESENT(QR3D)) THEN
1887               IF ( F_QR) THEN
1888                  DO K=kts,kte
1889                     NK=kme-1-K+kms
1890                     QR1D(K)=QR3D(I,NK,J)
1891                     QR1D(K)=max(0.,QR1D(K))
1892                  ENDDO
1893               ENDIF
1894             ENDIF
1895 
1896 ! This logic is tortured because cannot test F_QI unless
1897 ! it is present, and order of evaluation of expressions
1898 ! is not specified in Fortran
1899 
1900             IF ( PRESENT ( F_QI ) ) THEN
1901               predicate = F_QI
1902             ELSE
1903               predicate = .FALSE.
1904             ENDIF
1905 
1906             IF (.NOT. predicate .and. .not. warm_rain) THEN
1907                DO K=kts,kte
1908                   IF (T1D(K) .lt. 273.15) THEN
1909                   QI1D(K)=QC1D(K)
1910                   QS1D(K)=QR1D(K)
1911                   QC1D(K)=0.
1912                   QR1D(K)=0.
1913                   ENDIF
1914                ENDDO
1915             ENDIF
1916 
1917             IF (PRESENT(F_QI) .AND. PRESENT(QI3D)) THEN
1918                DO K=kts,kte
1919                   NK=kme-1-K+kms
1920                   QI1D(K)=QI3D(I,NK,J)
1921                   QI1D(K)=max(0.,QI1D(K))
1922                ENDDO
1923             ENDIF
1924 
1925             IF (PRESENT(F_QS) .AND. PRESENT(QS3D)) THEN
1926                IF (F_QS) THEN
1927                   DO K=kts,kte
1928                      NK=kme-1-K+kms
1929                      QS1D(K)=QS3D(I,NK,J)
1930                      QS1D(K)=max(0.,QS1D(K))
1931                   ENDDO
1932                ENDIF
1933             ENDIF
1934 
1935             IF (PRESENT(F_QG) .AND. PRESENT(QG3D)) THEN
1936                IF (F_QG) THEN
1937                   DO K=kts,kte
1938                      NK=kme-1-K+kms
1939                      QG1D(K)=QG3D(I,NK,J)
1940                      QG1D(K)=max(0.,QG1D(K))
1941                   ENDDO
1942                ENDIF
1943             ENDIF
1944 
1945          ENDIF
1946 
1947          EMISS0=EMISS(I,J)
1948          GLW0=0. 
1949          OLR0=0. 
1950          TSFC=Tw1D(kme)
1951 
1952          CALL RRTM(tten1d,glw0,olr0,tsfc,cldfra1d,t1d,tw1d,qv1d,qc1d,   &
1953                    qr1d,qi1d,qs1d,qg1d,p1d,pW1d,dz1d,              &
1954                    emiss0,r,g,                                     &
1955                    kts,kte                                         )
1956  
1957          GLW(I,J)=GLW0
1958          OLR(I,J)=OLR0
1959 
1960          DO K=kts,kte
1961             nk=kme-1-k+kms
1962             rthraten(i,k,j)=rthraten(i,k,j)+tten1d(nk)/pi3d(i,k,j)
1963          ENDDO
1964 
1965       END DO i_loop
1966    END DO j_loop                                           
1967 
1968 !-------------------------------------------------------------------
1969 
1970    END SUBROUTINE RRTMLWRAD
1971 
1972 
1973 !****************************************************************************    
1974 !*                                                                          *    
1975 !*                               RRTM                                       *    
1976 !*                                                                          *    
1977 !*                                                                          *    
1978 !*                                                                          *    
1979 !*                   RAPID RADIATIVE TRANSFER MODEL                         *    
1980 !*                                                                          *    
1981 !*                                                                          *    
1982 !*            ATMOSPHERIC AND ENVIRONMENTAL RESEARCH, INC.                  *    
1983 !*                        840 MEMORIAL DRIVE                                *    
1984 !*                        CAMBRIDGE, MA 02139                               *    
1985 !*                                                                          *    
1986 !*                                                                          *    
1987 !*                           ELI J. MLAWER                                  *    
1988 !*                         STEVEN J. TAUBMAN~                               *    
1989 !*                         SHEPARD A. CLOUGH                                *    
1990 !*                                                                          *    
1991 !*                                                                          *    
1992 !*                         ~currently at GFDL                               *    
1993 !*                                                                          *    
1994 !*                                                                          *    
1995 !*                                                                          *    
1996 !*                       email:  mlawer@aer.com                             *    
1997 !*                                                                          *    
1998 !*        The authors wish to acknowledge the contributions of the          *    
1999 !*        following people:  Patrick D. Brown, Michael J. Iacono,           *    
2000 !*        Ronald E. Farren, Luke Chen, Robert Bergstrom.                    *    
2001 !*                                                                          *    
2002 !****************************************************************************    
2003                                                                                  
2004 ! *** This version of RRTM has been altered to interface with the                
2005 ! *** NCAR MM5 mesoscale model for the calculation of longwave radiative         
2006 ! *** transfer (based on a code for interface with CCM model by M. J. Iacono)    
2007 ! *** J. Dudhia ; March, 1999                                                    
2008 !---------------------------------------------------------------------
2009    SUBROUTINE RRTM(TTEN,GLW,OLR,TSFC,CLDFRA,T,Tw,QV,QC,              &
2010                    QR,QI,QS,QG,P,Pw,DZ,                              &
2011                    EMISS,R,G,                                        &
2012                    kts,kte                                           )
2013 !---------------------------------------------------------------------
2014 ! *** This program is the driver for RRTM, the AER LW radiation model.           
2015 !     This routine:                                                              
2016 !     Calls MM5ATM to provide atmosphere in column and boundary values           
2017 !     a) calls GASABS to calculate gaseous optical depths                        
2018 !     b) calls SETCOEF to calculate various quantities needed for                
2019 !        the radiative transfer algorithm                                        
2020 !     c) calls RTRN (for both clear and cloudy columns) to do the                
2021 !        radiative transfer calculation                                          
2022 !     d) passes the necessary flux and cooling rate back to MM5                  
2023 !---------------------------------------------------------------------
2024       IMPLICIT NONE
2025 !---------------------------------------------------------------------
2026 
2027       INTEGER, INTENT(IN ) ::      kts, kte
2028 !
2029       REAL, DIMENSION( kts:kte+1 ), INTENT(IN   ) ::             Pw, &
2030                                                                  Tw
2031 
2032       REAL, DIMENSION( kts:kte ), INTENT(IN   ) ::           CLDFRA, &
2033                                                                   T, &
2034                                                                   P, &
2035                                                                  DZ
2036 !
2037       REAL, DIMENSION( kts:kte ), INTENT(INOUT) ::                   &
2038                                                                  QV
2039       REAL, DIMENSION( kts:kte ), INTENT(IN   ) ::                   &
2040                                                                  QC, &
2041                                                                  QR, &
2042                                                                  QI, &
2043                                                                  QS, &
2044                                                                  QG
2045 !
2046       REAL, DIMENSION( kts:kte ), INTENT(INOUT)::              TTEN
2047 !   
2048       REAL, INTENT(IN  )   ::                           R, G, EMISS
2049 !
2050       REAL, INTENT(INOUT)  ::                          TSFC,GLW,OLR
2051 
2052 ! LOCAL VAR
2053 
2054       INTEGER, DIMENSION( NGPT,kts:kte+1 ) ::                   ITR
2055 
2056       REAL,    DIMENSION( NGPT,kts:kte+1 ) ::                  PFRAC, &
2057                                                                TAUG
2058 
2059       REAL,    DIMENSION( 35,kts:kte+1 )       ::               WKL
2060 
2061       REAL,    DIMENSION( MAXXSEC,kts:kte+1 )  ::                WX
2062 
2063       REAL, DIMENSION( kts:kte )  ::                         O3PROF
2064 
2065       REAL, DIMENSION( kts:kte+1 )  ::                        PAVEL, &
2066                                                               TAVEL, &
2067                                                             CLDFRAC, &
2068                                                            TAUCLOUD, &   
2069                                                              COLDRY, & 
2070                                                              COLH2O, &
2071                                                              COLCO2, &
2072                                                               COLO3, &
2073                                                              COLN2O, &
2074                                                              COLCH4, &
2075                                                               COLO2, &
2076                                                             CO2MULT, &
2077                                                               FAC00, &
2078                                                               FAC01, &
2079                                                               FAC10, &
2080                                                               FAC11, &
2081                                                              FORFAC, &
2082                                                             SELFFAC, &
2083                                                            SELFFRAC
2084                                                 
2085 !                       
2086       INTEGER, DIMENSION( kts:kte+1 ) ::                    ICLDLYR, &
2087                                                                  JP, &
2088                                                                  JT, &
2089                                                                 JT1, &
2090                                                             INDSELF
2091 
2092       REAL, DIMENSION(   0:kte+1 )  ::                           PZ, &
2093                                                                  TZ, &
2094                                                            TOTDFLUX, &
2095                                                            TOTUFLUX, &
2096                                                                 HTR
2097 !     
2098       INTEGER ::  I,K,ktep1
2099       INTEGER ::  LAYTROP,LAYSWTCH,LAYLOW
2100       REAL    ::  TBOUND
2101       REAL, DIMENSION(NBANDS) ::  SEMISS
2102 
2103 
2104 !---------------------------------------------------------------------------
2105 ! RRTM Definitions                                                               
2106 !    NGPT                         ! Total number of g-point subintervals         
2107 !    MXLAY                        ! Maximum number of model layers               
2108 !    NBANDS                       ! Number of longwave spectral bands            
2109 !    PI                           ! Geometric constant                           
2110 !    FLUXFAC                      ! Radiance to flux conversion factor           
2111 !    HEATFAC                      ! Heating rate conversion factor               
2112 !    NG(NBANDS)                   ! Number of g-points per band for input        
2113 !                                   absorption coefficient data                  
2114 !    NSPA(NBANDS),NSPB(NBANDS)    ! Number of reference atmospheres per band     
2115 !    WAVENUM1(NBANDS)             ! Longwave band lower limit (wavenumbers)      
2116 !    WAVENUM2(NBANDS)             ! Longwave band upper limit (wavenumbers)      
2117 !    DELWAVE                      ! Longwave band width (wavenumbers)            
2118 !    NLAYERS                      ! Number of model layers (mkx+1)               
2119 !    PAVEL(MXLAY)                 ! Layer pressures (mb)                         
2120 !    PZ(0:MXLAY)                  ! Level (interface) pressures (mb)             
2121 !    TAVEL(MXLAY)                 ! Layer temperatures (K)                       
2122 !    TZ(0:MXLAY)                  ! Level (interface) temperatures(mb)           
2123 !    TBOUND                       ! Surface temperature (K)                      
2124 !    CLDFRAC(MXLAY)               ! Layer cloud fraction                         
2125 !    TAUCLOUD(MXLAY)              ! Layer cloud optical depth                    
2126 !    ITR(NGPT,MXLAY)              ! Integer look-up table index                  
2127 !    PFRAC(NGPT,MXLAY)            ! Planck fractions                             
2128 !    ICLDLYR(MXLAY)               ! Flag for cloudy layers                       
2129 !    TOTUFLUX(0:MXLAY)            ! Upward longwave flux (W/m2)                  
2130 !    TOTDFLUX(0:MXLAY)            ! Downward longwave flux (W/m2)                
2131 !    FNET(0:MXLAY)                ! Net longwave flux (W/m2)                     
2132 !    HTR(0:MXLAY)                 ! Longwave heating rate (K/day)                
2133 !    CLRNTTOA                     ! Clear-sky TOA outgoing flux (W/m2)           
2134 !    CLRNTSRF                     ! Clear-sky net surface flux (W/m2)            
2135 !    TOTUCLFL(0:MXLAY)            ! Clear-sky upward longwave flux (W/m2)        
2136 !    TOTDCLFL(0:MXLAY)            ! Clear-sky downward longwave flux (W/m2)      
2137 !    FNETC(0:MXLAY)               ! Clear-sky net longwave flux (W/m2)           
2138 !    HTRC(0:MXLAY)                ! Clear-sky longwave heating rate (K/day)      
2139 !                                                                                
2140 ! This compiler directive was added to insure private common block storage       
2141 ! in multi-tasked mode on a CRAY or SGI for all commons except those that        
2142 ! carry constants.                                                               
2143 !---------------------------------------------------------------------------
2144 
2145      ktep1=kte+1
2146 !
2147 !    CLOUD EMISSIVITIES (M^2/G)                                                  
2148 !    THESE ARE CONSISTENT WITH LWRAD (ABCW=0.5*(ABUP+ABDOWN))                    
2149 !     
2150 !     ONEMINUS = 1. - 1.E-6                                                      
2151 !     PI   = 2.*ASIN(1.)                                                           
2152 !     FLUXFAC = PI   * 2.D4                     
2153 !
2154       CALL INIRAD (O3PROF,Pw,kts,kte)
2155                                                                               
2156 !  Prepare atmospheric profile from CCM for use in RRTM, and define              
2157 !  other RRTM input parameters.  Arrays are passed back through the              
2158 !  existing RRTM commons and arrays.                                             
2159          
2160          CALL MM5ATM(CLDFRA,O3PROF,T,Tw,TSFC,QV,QC,QR,QI,QS,QG,    &
2161                      P,Pw,DZ,EMISS,R,G,                            &
2162                      PAVEL,TAVEL,PZ,TZ,CLDFRAC,TAUCLOUD,COLDRY,    &
2163                      WKL,WX,TBOUND,SEMISS,                         &
2164                      kts,kte                                       )
2165 
2166 !  Calculate information needed by the radiative transfer routine                
2167 !  that is specific to this atmosphere, especially some of the                   
2168 !  coefficients and indices needed to compute the optical depths                 
2169 !  by interpolating data from stored reference atmospheres.                      
2170                                                                                  
2171          CALL SETCOEF(kts,ktep1,                                   &
2172                       PAVEL,TAVEL,COLDRY,COLH2O,COLCO2,COLO3,      &
2173                       COLN2O,COLCH4,COLO2,CO2MULT,                 &
2174                       FAC00,FAC01,FAC10,FAC11,                     &
2175                       FORFAC,SELFFAC,SELFFRAC,                     &
2176                       JP,JT,JT1,INDSELF,WKL,LAYTROP,LAYSWTCH,LAYLOW)
2177 
2178          CALL GASABS(kts,ktep1,                                 &
2179                      COLDRY,COLH2O,COLCO2,COLO3,COLN2O,COLCH4,  &
2180                      COLO2,CO2MULT,                             &
2181                      FAC00,FAC01,FAC10,FAC11,                   &
2182                      FORFAC,SELFFAC,SELFFRAC,                   &
2183                      JP,JT,JT1,INDSELF,ITR,WX,PFRAC,TAUG,       &
2184                      LAYTROP,LAYSWTCH,LAYLOW                    )
2185 
2186 !  Check for cloud in column.  Use original CCM LW threshold: if total           
2187 !  clear sky fraction < 0.999, then column is cloudy, otherwise consider         
2188 !  it clear.  Also, set up flag array, icldlyr, for use in radiative             
2189 !  transfer.  Set icldlyr to one for each layer with cloud.  If tclrsf           
2190 !  is not available, icldlyr can be set from cldfrac alone.                      
2191                                                                                  
2192         do 1500 k = 1, nlayers                                                   
2193            if (cldfrac(k).gt.0.) then                                            
2194               icldlyr(k) = 1                                                     
2195            else                                                                  
2196               icldlyr(k) = 0                                                     
2197            endif                                                                 
2198  1500   continue                                                                 
2199                                                                                  
2200 !  Call the radiative transfer routine.                                          
2201                                                                                  
2202            CALL RTRN(kts,ktep1,                                  &
2203                      TAVEL, PZ, TZ, CLDFRAC, TAUCLOUD, TOTDFLUX, &
2204                      TOTUFLUX, HTR, ICLDLYR, ITR, PFRAC, TBOUND,SEMISS     )
2205                                                                                  
2206 !  Pass total sky up and down flux profiles to CCM output arrays and             
2207 !  convert from mks to cgs units for CCM.  Pass clear sky TOA and surface        
2208 !  net fluxes to CCM fields for diagnostics.  Pass total sky heating rate        
2209 !  profile to CCM output arrays and convert units to K/sec.  The vertical        
2210 !  array index (bottom to top in RRTM) is reversed for CCM fields.               
2211                                                                                  
2212 !          flntc(iiplon) = CLRNTTOA*1.e3                                         
2213 !          flnsc(iiplon) = CLRNTSRF*1.e3                                         
2214 !           do 2400 k = 0, NLAYERS-1                                             
2215 !              fulc(k+1) = TOTUCLFL(NLAYERS-1-k)*1.e3                            
2216 !              fdlc(k+1) = TOTDCLFL(NLAYERS-1-k)*1.e3                            
2217 !              ful(k+1) = TOTUFLUX(NLAYERS-1-k)*1.e3                             
2218 !              fdl(k+1) = TOTDFLUX(NLAYERS-1-k)*1.e3                             
2219 ! 2400      continue                                                             
2220            do 2450 k = 1, NLAYERS-1                                              
2221 !              qrlc(k) = HTRC(NLAYERS-1-k)/86400.                                
2222 !              qrl(k) = HTR(NLAYERS-1-k)/86400.                                  
2223               TTEN(K)=HTR(NLAYERS-1-k)/86400. 
2224  2450      continue                                                              
2225            GLW = TOTDFLUX(0)
2226            OLR = TOTUFLUX(NLAYERS)
2227 
2228    END SUBROUTINE RRTM
2229 
2230 
2231 !***************************************************************************     
2232    SUBROUTINE CMBGB1(abscoefL, abscoefH, SELFREF,                       &
2233                      FRACREFA, FRACREFB, FORREF,                        &
2234                      SELFREFC, FORREFC, FRACREFAC, FRACREFBC            )
2235 !***************************************************************************     
2236 !                                                                                
2237 !  Original version:       Michael J. Iacono; July, 1998                         
2238 !  Revision for NCAR CCM:  Michael J. Iacono; September, 1998                    
2239 !                                                                                
2240 !  The subroutines CMBGB1->CMBGB16 input the absorption coefficient              
2241 !  data for each band, which are defined for 16 g-points and 16 spectral         
2242 !  bands. The data are combined with appropriate weighting following the         
2243 !  g-point mapping arrays specified in RRTMINIT.  Plank fraction data            
2244 !  in arrays FRACREFA and FRACREFB are combined without weighting.  All          
2245 !  g-point reduced data are put into new arrays for use in RRTM.                 
2246 !                                                                                
2247 !  BAND 1:  10-250 cm-1 (low - H2O; high - H2O)                                  
2248 !***************************************************************************     
2249                                                                                  
2250 ! Input                                                                          
2251       REAL abscoefL(5,13,MG),abscoefH(5,13:59,MG)
2252       REAL SELFREF(10,MG)              
2253       REAL FRACREFA(MG), FRACREFB(MG), FORREF(MG)
2254 !     REAL RWGT(MG*NBANDS) 
2255 ! Output                                                                         
2256       REAL SELFREFC(10,NG1), FORREFC(NG1)
2257       REAL FRACREFAC(NG1), FRACREFBC(NG1)
2258                                                                                  
2259       DO 2000 JTJT = 1,5                                                           
2260          DO 2200 JPJP = 1,13                                                       
2261             IPRSM = 0                                                            
2262             DO 2400 IGC = 1,NGC(1)                                               
2263                SUMK = 0.                                                         
2264                DO 2600 IPR = 1, NGN(IGC)                                         
2265                   IPRSM = IPRSM + 1                                              
2266                   SUMK = SUMK + abscoefL(JTJT,JPJP,IPRSM)*RWGT(IPRSM)               
2267  2600          CONTINUE                                                          
2268                ABSA1(JTJT+(JPJP-1)*5,IGC) = SUMK
2269  2400       CONTINUE                                                             
2270  2200    CONTINUE                                                                
2271          DO 3200 JPJP = 13,59                                                      
2272             IPRSM = 0                                                            
2273             DO 3400 IGC = 1,NGC(1)                                               
2274                SUMK = 0.                                                         
2275                DO 3600 IPR = 1, NGN(IGC)                                         
2276                   IPRSM = IPRSM + 1                                              
2277                   SUMK = SUMK + abscoefH(JTJT,JPJP,IPRSM)*RWGT(IPRSM)
2278  3600          CONTINUE                                                          
2279                ABSB1(JTJT+(JPJP-13)*5,IGC) = SUMK                                             
2280  3400       CONTINUE                                                             
2281  3200    CONTINUE                                                                
2282  2000 CONTINUE                                                                   
2283                                                                                  
2284       DO 4000 JTJT = 1,10                                                          
2285          IPRSM = 0                                                               
2286          DO 4400 IGC = 1,NGC(1)                                                  
2287             SUMK = 0.                                                            
2288             DO 4600 IPR = 1, NGN(IGC)                                            
2289                IPRSM = IPRSM + 1                                                 
2290                SUMK = SUMK + SELFREF(JTJT,IPRSM)*RWGT(IPRSM)
2291  4600       CONTINUE                                                             
2292             SELFREFC(JTJT,IGC) = SUMK                                              
2293  4400    CONTINUE                                                                
2294  4000 CONTINUE                                                                   
2295                                                                                  
2296       IPRSM = 0                                                                  
2297       DO 5400 IGC = 1,NGC(1)                                                     
2298          SUMK = 0.                                                               
2299          SUMF1 = 0.                                                              
2300          SUMF2 = 0.                                                              
2301          DO 5600 IPR = 1, NGN(IGC)                                               
2302             IPRSM = IPRSM + 1                                                    
2303             SUMK = SUMK + FORREF(IPRSM)*RWGT(IPRSM)                              
2304             SUMF1= SUMF1+ FRACREFA(IPRSM)                                        
2305             SUMF2= SUMF2+ FRACREFB(IPRSM)                                        
2306  5600    CONTINUE                                                                
2307          FORREFC(IGC) = SUMK                                                     
2308          FRACREFAC(IGC) = SUMF1                                                  
2309          FRACREFBC(IGC) = SUMF2                                                  
2310  5400 CONTINUE                                                                   
2311                                                                                  
2312    END SUBROUTINE CMBGB1
2313 
2314 !***************************************************************************
2315   SUBROUTINE CMBGB2(abscoefL, abscoefH, SELFREF,                       &
2316                     FRACREFA, FRACREFB, FORREF,                        &
2317                     SELFREFC, FORREFC, FRACREFAC, FRACREFBC            )
2318 !***************************************************************************     
2319 !                                                                                
2320 !     BAND 2:  250-500 cm-1 (low - H2O; high - H2O)                              
2321 !***************************************************************************     
2322                                                                                  
2323 ! Input                                                                          
2324       REAL abscoefL(5,13,MG),abscoefH(5,13:59,MG)
2325       REAL SELFREF(10,MG)            
2326       REAL FRACREFA(MG,13), FRACREFB(MG), FORREF(MG)
2327 !     REAL RWGT(MG*NBANDS) 
2328 ! Output                                                                         
2329       REAL SELFREFC(10,NG2), FORREFC(NG2)
2330       REAL FRACREFAC(NG2,13), FRACREFBC(NG2)
2331                                                                                  
2332       DO 2000 JTJT = 1,5                                                           
2333          DO 2200 JPJP = 1,13                                                       
2334             IPRSM = 0                                                            
2335             DO 2400 IGC = 1,NGC(2)                                               
2336                SUMK = 0.                                                         
2337                DO 2600 IPR = 1, NGN(NGS(1)+IGC)                                  
2338                   IPRSM = IPRSM + 1                                              
2339                   SUMK = SUMK + abscoefL(JTJT,JPJP,IPRSM)*RWGT(IPRSM+16)
2340  2600          CONTINUE                                                          
2341                ABSA2(JTJT+(JPJP-1)*5,IGC) = SUMK  
2342  2400       CONTINUE                                                             
2343  2200    CONTINUE                                                                
2344          DO 3200 JPJP = 13,59                                                      
2345             IPRSM = 0                                                            
2346             DO 3400 IGC = 1,NGC(2)                                               
2347                SUMK = 0.                                                         
2348                DO 3600 IPR = 1, NGN(NGS(1)+IGC)                                  
2349                   IPRSM = IPRSM + 1                                              
2350                   SUMK = SUMK + abscoefH(JTJT,JPJP,IPRSM)*RWGT(IPRSM+16)
2351  3600          CONTINUE                                                          
2352                ABSB2(JTJT+(JPJP-13)*5,IGC) = SUMK
2353  3400       CONTINUE                                                             
2354  3200    CONTINUE                                                                
2355  2000 CONTINUE                                                                   
2356                                                                                  
2357       DO 4000 JTJT = 1,10                                                          
2358          IPRSM = 0                                                               
2359          DO 4400 IGC = 1,NGC(2)                                                  
2360             SUMK = 0.                                                            
2361             DO 4600 IPR = 1, NGN(NGS(1)+IGC)                                     
2362                IPRSM = IPRSM + 1                                                 
2363                SUMK = SUMK + SELFREF(JTJT,IPRSM)*RWGT(IPRSM+16)
2364  4600       CONTINUE                                                             
2365             SELFREFC(JTJT,IGC) = SUMK                                              
2366  4400    CONTINUE                                                                
2367  4000 CONTINUE                                                                   
2368                                                                                  
2369       DO 5000 JPJP = 1,13                                                          
2370          IPRSM = 0                                                               
2371          DO 5400 IGC = 1,NGC(2)                                                  
2372             SUMF = 0.                                                            
2373             DO 5600 IPR = 1, NGN(NGS(1)+IGC)                                     
2374                IPRSM = IPRSM + 1                                                 
2375                SUMF = SUMF + FRACREFA(IPRSM,JPJP)                                  
2376  5600       CONTINUE                                                             
2377             FRACREFAC(IGC,JPJP) = SUMF                                             
2378  5400    CONTINUE                                                                
2379  5000 CONTINUE                                                                   
2380                                                                                  
2381       IPRSM = 0                                                                  
2382       DO 6400 IGC = 1,NGC(2)                                                     
2383          SUMK = 0.                                                               
2384          SUMF = 0.                                                               
2385          DO 6600 IPR = 1, NGN(NGS(1)+IGC)                                        
2386             IPRSM = IPRSM + 1                                                    
2387             SUMK = SUMK + FORREF(IPRSM)*RWGT(IPRSM+16)                           
2388             SUMF = SUMF + FRACREFB(IPRSM)                                        
2389  6600    CONTINUE                                                                
2390          FORREFC(IGC) = SUMK                                                     
2391          FRACREFBC(IGC) = SUMF                                                   
2392  6400 CONTINUE                                                                   
2393                                                                                  
2394    END SUBROUTINE CMBGB2
2395 
2396 !***************************************************************************
2397    SUBROUTINE CMBGB3(abscoefL, abscoefH, SELFREF,                       &
2398                      FRACREFA, FRACREFB, FORREF, ABSN2OA, ABSN2OB,      &
2399                      SELFREFC, FORREFC,                                 &
2400                      ABSN2OAC, ABSN2OBC, FRACREFAC, FRACREFBC           )
2401 !***************************************************************************     
2402 !                                                                                
2403 !     BAND 3:  500-630 cm-1 (low - H2O,CO2; high - H2O,CO2)                      
2404 !***************************************************************************     
2405                                                                                  
2406 ! Input                                                                          
2407       REAL abscoefL(10,5,13,MG),abscoefH(5,5,13:59,MG)
2408       REAL SELFREF(10,MG)   
2409       REAL FRACREFA(MG,10), FRACREFB(MG,5)
2410       REAL FORREF(MG), ABSN2OA(MG), ABSN2OB(MG)     
2411 !     REAL RWGT(MG*NBANDS) 
2412 ! Output                                                                         
2413       REAL SELFREFC(10,NG3), FORREFC(NG3),  &
2414            ABSN2OAC(NG3), ABSN2OBC(NG3) 
2415       REAL FRACREFAC(NG3,10), FRACREFBC(NG3,5) 
2416                                                                                  
2417       DO 2000 JN = 1,10                                                          
2418          DO 2000 JTJT = 1,5                                                        
2419             DO 2200 JPJP = 1,13                                                    
2420                IPRSM = 0                                                         
2421                DO 2400 IGC = 1,NGC(3)                                            
2422                  SUMK = 0.                                                       
2423                   DO 2600 IPR = 1, NGN(NGS(2)+IGC)                               
2424                      IPRSM = IPRSM + 1                                           
2425                      SUMK = SUMK + abscoefL(JN,JTJT,JPJP,IPRSM)* RWGT(IPRSM+32)
2426  2600             CONTINUE                                                       
2427                   ABSA3(JN+(JTJT-1)*10+(JPJP-1)*50,IGC) = SUMK  
2428  2400          CONTINUE                                                          
2429  2200       CONTINUE                                                             
2430  2000 CONTINUE                                                                   
2431       DO 3000 JN = 1,5                                                           
2432          DO 3000 JTJT = 1,5                                                        
2433             DO 3200 JPJP = 13,59                                                   
2434                IPRSM = 0                                                         
2435                DO 3400 IGC = 1,NGC(3)                                            
2436                   SUMK = 0.                                                      
2437                   DO 3600 IPR = 1, NGN(NGS(2)+IGC)                               
2438                      IPRSM = IPRSM + 1                                           
2439                      SUMK = SUMK + abscoefH(JN,JTJT,JPJP,IPRSM)* RWGT(IPRSM+32)
2440  3600             CONTINUE                                                       
2441                   ABSB3(JN+(JTJT-1)*5+(JPJP-13)*25,IGC) = SUMK
2442  3400          CONTINUE                                                          
2443  3200       CONTINUE                                                             
2444  3000 CONTINUE                                                                   
2445                                                                                  
2446       DO 4000 JTJT = 1,10                                                          
2447          IPRSM = 0                                                               
2448          DO 4400 IGC = 1,NGC(3)                                                  
2449             SUMK = 0.                                                            
2450             SUMF = 0.                                                            
2451             DO 4600 IPR = 1, NGN(NGS(2)+IGC)                                     
2452                IPRSM = IPRSM + 1                                                 
2453                SUMK = SUMK + SELFREF(JTJT,IPRSM)* RWGT(IPRSM+32)
2454                SUMF = SUMF + FRACREFA(IPRSM,JTJT)                                  
2455  4600       CONTINUE                                                             
2456             SELFREFC(JTJT,IGC) = SUMK                                              
2457             FRACREFAC(IGC,JTJT) = SUMF                                             
2458  4400    CONTINUE                                                                
2459  4000 CONTINUE                                                                   
2460                                                                                  
2461       DO 5000 JPJP = 1,5                                                           
2462          IPRSM = 0                                                               
2463          DO 5400 IGC = 1,NGC(3)                                                  
2464             SUMF = 0.                                                            
2465             DO 5600 IPR = 1, NGN(NGS(2)+IGC)                                     
2466                IPRSM = IPRSM + 1                                                 
2467                SUMF = SUMF + FRACREFB(IPRSM,JPJP)                                  
2468  5600       CONTINUE                                                             
2469             FRACREFBC(IGC,JPJP) = SUMF                                             
2470  5400    CONTINUE                                                                
2471  5000 CONTINUE                                                                   
2472                                                                                  
2473       IPRSM = 0                                                                  
2474       DO 6400 IGC = 1,NGC(3)                                                     
2475          SUMK1= 0.                                                               
2476          SUMK2= 0.                                                               
2477          SUMK3= 0.                                                               
2478          DO 6600 IPR = 1, NGN(NGS(2)+IGC)                                        
2479             IPRSM = IPRSM + 1                                                    
2480             SUMK1= SUMK1+ FORREF(IPRSM)*RWGT(IPRSM+32)                           
2481             SUMK2= SUMK2+ ABSN2OA(IPRSM)*RWGT(IPRSM+32)                          
2482             SUMK3= SUMK3+ ABSN2OB(IPRSM)*RWGT(IPRSM+32)                          
2483  6600    CONTINUE                                                                
2484          FORREFC(IGC) = SUMK1                                                    
2485          ABSN2OAC(IGC) = SUMK2                                                   
2486          ABSN2OBC(IGC) = SUMK3                                                   
2487  6400 CONTINUE                                                                   
2488                                                                                  
2489    END SUBROUTINE CMBGB3
2490 
2491 !***************************************************************************
2492    SUBROUTINE CMBGB4(abscoefL, abscoefH, SELFREF,                       &
2493                      FRACREFA, FRACREFB,                                &
2494                      SELFREFC, FRACREFAC, FRACREFBC                     )
2495 !***************************************************************************     
2496 !                                                                                
2497 !     BAND 4:  630-700 cm-1 (low - H2O,CO2; high - O3,CO2)                       
2498 !***************************************************************************     
2499                                                                                  
2500 ! Input                                                                          
2501       REAL abscoefL(9,5,13,MG),abscoefH(6,5,13:59,MG)
2502       REAL SELFREF(10,MG)            
2503       REAL FRACREFA(MG,9), FRACREFB(MG,6)
2504 !     REAL RWGT(MG*NBANDS) 
2505 ! Output                                                                         
2506       REAL SELFREFC(10,NG4)
2507       REAL FRACREFAC(NG4,9), FRACREFBC(NG4,6)
2508                                                                                  
2509       DO 2000 JN = 1,9                                                           
2510          DO 2000 JTJT = 1,5                                                        
2511             DO 2200 JPJP = 1,13                                                    
2512                IPRSM = 0                                                         
2513                DO 2400 IGC = 1,NGC(4)                                            
2514                  SUMK = 0.                                                       
2515                   DO 2600 IPR = 1, NGN(NGS(3)+IGC)                               
2516                      IPRSM = IPRSM + 1                                           
2517                      SUMK = SUMK + abscoefL(JN,JTJT,JPJP,IPRSM)*RWGT(IPRSM+48)
2518  2600             CONTINUE                                                       
2519                   ABSA4(JN+(JTJT-1)*9+(JPJP-1)*45,IGC) = SUMK                                       
2520  2400          CONTINUE                                                          
2521  2200       CONTINUE                                                             
2522  2000 CONTINUE                                                                   
2523       DO 3000 JN = 1,6                                                           
2524          DO 3000 JTJT = 1,5                                                        
2525             DO 3200 JPJP = 13,59                                                   
2526                IPRSM = 0                                                         
2527                DO 3400 IGC = 1,NGC(4)                                            
2528                   SUMK = 0.                                                      
2529                   DO 3600 IPR = 1, NGN(NGS(3)+IGC)                               
2530                      IPRSM = IPRSM + 1                                           
2531                      SUMK = SUMK + abscoefH(JN,JTJT,JPJP,IPRSM)*RWGT(IPRSM+48)
2532  3600             CONTINUE                                                       
2533                   ABSB4(JN+(JTJT-1)*6+(JPJP-13)*30,IGC) = SUMK
2534  3400          CONTINUE                                                          
2535  3200       CONTINUE                                                             
2536  3000 CONTINUE                                                                   
2537                                                                                  
2538       DO 4000 JTJT = 1,10                                                          
2539          IPRSM = 0                                                               
2540          DO 4400 IGC = 1,NGC(4)                                                  
2541             SUMK = 0.                                                            
2542             DO 4600 IPR = 1, NGN(NGS(3)+IGC)                                     
2543                IPRSM = IPRSM + 1                                                 
2544                SUMK = SUMK + SELFREF(JTJT,IPRSM)*RWGT(IPRSM+48)
2545  4600       CONTINUE                                                             
2546             SELFREFC(JTJT,IGC) = SUMK                                              
2547  4400    CONTINUE                                                                
2548  4000 CONTINUE                                                                   
2549                                                                                  
2550       DO 5000 JPJP = 1,9                                                           
2551          IPRSM = 0                                                               
2552          DO 5400 IGC = 1,NGC(4)                                                  
2553             SUMF = 0.                                                            
2554             DO 5600 IPR = 1, NGN(NGS(3)+IGC)                                     
2555                IPRSM = IPRSM + 1                                                 
2556                SUMF = SUMF + FRACREFA(IPRSM,JPJP)                                  
2557  5600       CONTINUE                                                             
2558             FRACREFAC(IGC,JPJP) = SUMF                                             
2559  5400    CONTINUE                                                                
2560  5000 CONTINUE                                                                   
2561                                                                                  
2562       DO 6000 JPJP = 1,6                                                           
2563          IPRSM = 0                                                               
2564          DO 6400 IGC = 1,NGC(4)                                                  
2565             SUMF = 0.                                                            
2566             DO 6600 IPR = 1, NGN(NGS(3)+IGC)                                     
2567                IPRSM = IPRSM + 1                                                 
2568                SUMF = SUMF + FRACREFB(IPRSM,JPJP)                                  
2569  6600       CONTINUE                                                             
2570             FRACREFBC(IGC,JPJP) = SUMF                                             
2571  6400    CONTINUE                                                                
2572  6000 CONTINUE                                                                   
2573                                                                                  
2574    END SUBROUTINE CMBGB4
2575 
2576 !***************************************************************************
2577    SUBROUTINE CMBGB5(abscoefL, abscoefH, SELFREF,                      &
2578                      FRACREFA, FRACREFB, CCL4,                         &
2579                      SELFREFC, CCL4C, FRACREFAC, FRACREFBC             )
2580 !***************************************************************************     
2581 !                                                                                
2582 !     BAND 5:  700-820 cm-1 (low - H2O,CO2; high - O3,CO2)                       
2583 !***************************************************************************     
2584                                                                                  
2585 ! Input                                                                          
2586       REAL abscoefL(9,5,13,MG),abscoefH(5,5,13:59,MG)
2587       REAL SELFREF(10,MG)            
2588       REAL FRACREFA(MG,9), FRACREFB(MG,5), CCL4(MG)
2589 !     REAL RWGT(MG*NBANDS) 
2590 ! Output                                                                         
2591       REAL SELFREFC(10,NG5), CCL4C(NG5) 
2592       REAL FRACREFAC(NG5,9), FRACREFBC(NG5,5)               
2593                                                          
2594       DO 2000 JN = 1,9                                                           
2595          DO 2000 JTJT = 1,5                                                        
2596             DO 2200 JPJP = 1,13                                                    
2597                IPRSM = 0                                                         
2598                DO 2400 IGC = 1,NGC(5)                                            
2599                  SUMK = 0.                                                       
2600                   DO 2600 IPR = 1, NGN(NGS(4)+IGC)                               
2601                      IPRSM = IPRSM + 1                                           
2602                      SUMK = SUMK + abscoefL(JN,JTJT,JPJP,IPRSM)*RWGT(IPRSM+64)
2603  2600             CONTINUE                                                       
2604                   ABSA5(JN+(JTJT-1)*9+(JPJP-1)*45,IGC) = SUMK                                       
2605  2400          CONTINUE                                                          
2606  2200       CONTINUE                                                             
2607  2000 CONTINUE                                                                   
2608       DO 3000 JN = 1,5                                                           
2609          DO 3000 JTJT = 1,5                                                        
2610             DO 3200 JPJP = 13,59                                                   
2611                IPRSM = 0                                                         
2612                DO 3400 IGC = 1,NGC(5)                                            
2613                   SUMK = 0.                                                      
2614                   DO 3600 IPR = 1, NGN(NGS(4)+IGC)                               
2615                      IPRSM = IPRSM + 1                                           
2616                      SUMK = SUMK + abscoefH(JN,JTJT,JPJP,IPRSM)*RWGT(IPRSM+64)
2617  3600             CONTINUE                                                       
2618                   ABSB5(JN+(JTJT-1)*5+(JPJP-13)*25,IGC) = SUMK
2619  3400          CONTINUE                                                          
2620  3200       CONTINUE                                                             
2621  3000 CONTINUE                                                                   
2622                                                                                  
2623       DO 4000 JTJT = 1,10                                                          
2624          IPRSM = 0                                                               
2625          DO 4400 IGC = 1,NGC(5)                                                  
2626             SUMK = 0.                                                            
2627             DO 4600 IPR = 1, NGN(NGS(4)+IGC)                                     
2628                IPRSM = IPRSM + 1                                                 
2629                SUMK = SUMK + SELFREF(JTJT,IPRSM)*RWGT(IPRSM+64)
2630  4600       CONTINUE                                                             
2631             SELFREFC(JTJT,IGC) = SUMK                                              
2632  4400    CONTINUE                                                                
2633  4000 CONTINUE                                                                   
2634                                                                                  
2635       DO 5000 JPJP = 1,9                                                           
2636          IPRSM = 0                                                               
2637          DO 5400 IGC = 1,NGC(5)                                                  
2638             SUMF = 0.                                                            
2639             DO 5600 IPR = 1, NGN(NGS(4)+IGC)                                     
2640                IPRSM = IPRSM + 1                                                 
2641                SUMF = SUMF + FRACREFA(IPRSM,JPJP)                                  
2642  5600       CONTINUE                                                             
2643             FRACREFAC(IGC,JPJP) = SUMF                                             
2644  5400    CONTINUE                                                                
2645  5000 CONTINUE                                                                   
2646                                                                                  
2647       DO 6000 JPJP = 1,5                                                           
2648          IPRSM = 0                                                               
2649          DO 6400 IGC = 1,NGC(5)                                                  
2650             SUMF = 0.                                                            
2651             DO 6600 IPR = 1, NGN(NGS(4)+IGC)                                     
2652                IPRSM = IPRSM + 1                                                 
2653                SUMF = SUMF + FRACREFB(IPRSM,JPJP)                                  
2654  6600       CONTINUE                                                             
2655             FRACREFBC(IGC,JPJP) = SUMF                                             
2656  6400    CONTINUE                                                                
2657  6000 CONTINUE                                                                   
2658                                                                                  
2659       IPRSM = 0                                                                  
2660       DO 7400 IGC = 1,NGC(5)                                                     
2661          SUMK = 0.                                                               
2662          DO 7600 IPR = 1, NGN(NGS(4)+IGC)                                        
2663             IPRSM = IPRSM + 1                                                    
2664             SUMK = SUMK + CCL4(IPRSM)*RWGT(IPRSM+64)                             
2665  7600    CONTINUE                                                                
2666          CCL4C(IGC) = SUMK                                                       
2667  7400 CONTINUE                                                                   
2668                                                                                  
2669    END SUBROUTINE CMBGB5
2670 
2671 !***************************************************************************
2672    SUBROUTINE CMBGB6(abscoefL, SELFREF,                                &
2673                      FRACREFA, ABSCO2, CFC11ADJ, CFC12,                &
2674                      SELFREFC, ABSCO2C, CFC11ADJC, CFC12C,             &
2675                      FRACREFAC                                         )
2676 !***************************************************************************     
2677 !                                                                                
2678 !     BAND 6:  820-980 cm-1 (low - H2O; high - nothing)                          
2679 !***************************************************************************     
2680                                                                                  
2681 ! Input                                                                          
2682       REAL abscoefL(5,13,MG)                                                           
2683       REAL SELFREF(10,MG)  
2684       REAL FRACREFA(MG), ABSCO2(MG), CFC11ADJ(MG), CFC12(MG)
2685 !     REAL RWGT(MG*NBANDS) 
2686 ! Output                                                                         
2687       REAL SELFREFC(10,NG6),  &
2688            ABSCO2C(NG6), CFC11ADJC(NG6), CFC12C(NG6) 
2689       REAL FRACREFAC(NG6)
2690                                                                                  
2691       DO 2000 JTJT = 1,5                                                           
2692          DO 2200 JPJP = 1,13                                                       
2693             IPRSM = 0                                                            
2694             DO 2400 IGC = 1,NGC(6)                                               
2695                SUMK = 0.                                                         
2696                DO 2600 IPR = 1, NGN(NGS(5)+IGC)                                  
2697                   IPRSM = IPRSM + 1                                              
2698                   SUMK = SUMK + abscoefL(JTJT,JPJP,IPRSM)*RWGT(IPRSM+80)
2699  2600          CONTINUE                                                          
2700                ABSA6(JTJT+(JPJP-1)*5,IGC) = SUMK                                             
2701  2400       CONTINUE                                                             
2702  2200    CONTINUE                                                                
2703  2000 CONTINUE                                                                   
2704                                                                                  
2705       DO 4000 JTJT = 1,10                                                          
2706          IPRSM = 0                                                               
2707          DO 4400 IGC = 1,NGC(6)                                                  
2708             SUMK = 0.                                                            
2709             DO 4600 IPR = 1, NGN(NGS(5)+IGC)                                     
2710                IPRSM = IPRSM + 1                                                 
2711                SUMK = SUMK + SELFREF(JTJT,IPRSM)*RWGT(IPRSM+80) 
2712  4600       CONTINUE                                                             
2713             SELFREFC(JTJT,IGC) = SUMK                                              
2714  4400    CONTINUE                                                                
2715  4000 CONTINUE                                                                   
2716                                                                                  
2717       IPRSM = 0                                                                  
2718       DO 7400 IGC = 1,NGC(6)                                                     
2719          SUMF = 0.                                                               
2720          SUMK1= 0.                                                               
2721          SUMK2= 0.                                                               
2722          SUMK3= 0.                                                               
2723          DO 7600 IPR = 1, NGN(NGS(5)+IGC)                                        
2724             IPRSM = IPRSM + 1                                                    
2725             SUMF = SUMF + FRACREFA(IPRSM)                                        
2726             SUMK1= SUMK1+ ABSCO2(IPRSM)*RWGT(IPRSM+80)                           
2727             SUMK2= SUMK2+ CFC11ADJ(IPRSM)*RWGT(IPRSM+80)                         
2728             SUMK3= SUMK3+ CFC12(IPRSM)*RWGT(IPRSM+80)                            
2729  7600    CONTINUE                                                                
2730          FRACREFAC(IGC) = SUMF                                                   
2731          ABSCO2C(IGC) = SUMK1                                                    
2732          CFC11ADJC(IGC) = SUMK2                                                  
2733          CFC12C(IGC) = SUMK3                                                     
2734  7400 CONTINUE                                                                   
2735                                                                                  
2736    END SUBROUTINE CMBGB6
2737 
2738 !***************************************************************************
2739    SUBROUTINE CMBGB7(abscoefL, abscoefH, SELFREF,                      &
2740                      FRACREFA, FRACREFB, ABSCO2,                       &
2741                      SELFREFC, ABSCO2C, FRACREFAC, FRACREFBC           )
2742 !***************************************************************************     
2743 !                                                                                
2744 !     BAND 7:  980-1080 cm-1 (low - H2O,O3; high - O3)                           
2745 !***************************************************************************     
2746                                                                                  
2747 ! Input                                                                          
2748       REAL abscoefL(9,5,13,MG),abscoefH(5,13:59,MG)
2749       REAL SELFREF(10,MG)          
2750       REAL FRACREFA(MG,9), FRACREFB(MG), ABSCO2(MG)
2751 !     REAL RWGT(MG*NBANDS) 
2752 ! Output                                                                         
2753       REAL SELFREFC(10,NG7), ABSCO2C(NG7)
2754       REAL FRACREFAC(NG7,9), FRACREFBC(NG7)  
2755                                                                                  
2756       DO 2000 JN = 1,9                                                           
2757          DO 2000 JTJT = 1,5                                                        
2758             DO 2200 JPJP = 1,13                                                    
2759                IPRSM = 0                                                         
2760                DO 2400 IGC = 1,NGC(7)                                            
2761                  SUMK = 0.                                                       
2762                   DO 2600 IPR = 1, NGN(NGS(6)+IGC)                               
2763                      IPRSM = IPRSM + 1                                           
2764                      SUMK = SUMK + abscoefL(JN,JTJT,JPJP,IPRSM)*RWGT(IPRSM+96)
2765  2600             CONTINUE                                                       
2766                   ABSA7(JN+(JTJT-1)*9+(JPJP-1)*45,IGC) = SUMK                                       
2767  2400          CONTINUE                                                          
2768  2200       CONTINUE                                                             
2769  2000 CONTINUE                                                                   
2770       DO 3000 JTJT = 1,5                                                           
2771          DO 3200 JPJP = 13,59                                                      
2772             IPRSM = 0                                                            
2773             DO 3400 IGC = 1,NGC(7)                                               
2774                SUMK = 0.                                                         
2775                DO 3600 IPR = 1, NGN(NGS(6)+IGC)                                  
2776                   IPRSM = IPRSM + 1                                              
2777                   SUMK = SUMK + abscoefH(JTJT,JPJP,IPRSM)*RWGT(IPRSM+96)
2778  3600          CONTINUE                                                          
2779                ABSB7(JTJT+(JPJP-13)*5,IGC) = SUMK 
2780  3400       CONTINUE                                                             
2781  3200    CONTINUE                                                                
2782  3000 CONTINUE                                                                   
2783                                                                                  
2784       DO 4000 JTJT = 1,10                                                          
2785          IPRSM = 0                                                               
2786          DO 4400 IGC = 1,NGC(7)                                                  
2787             SUMK = 0.                                                            
2788             DO 4600 IPR = 1, NGN(NGS(6)+IGC)                                     
2789                IPRSM = IPRSM + 1                                                 
2790                SUMK = SUMK + SELFREF(JTJT,IPRSM)*RWGT(IPRSM+96)
2791  4600       CONTINUE                                                             
2792             SELFREFC(JTJT,IGC) = SUMK                                              
2793  4400    CONTINUE                                                                
2794  4000 CONTINUE                                                                   
2795                                                                                  
2796       DO 5000 JPJP = 1,9                                                           
2797          IPRSM = 0                                                               
2798          DO 5400 IGC = 1,NGC(7)                                                  
2799             SUMF = 0.                                                            
2800             DO 5600 IPR = 1, NGN(NGS(6)+IGC)                                     
2801                IPRSM = IPRSM + 1                                                 
2802                SUMF = SUMF + FRACREFA(IPRSM,JPJP)                                  
2803  5600       CONTINUE                                                             
2804             FRACREFAC(IGC,JPJP) = SUMF                                             
2805  5400    CONTINUE                                                                
2806  5000 CONTINUE                                                                   
2807                                                                                  
2808       IPRSM = 0                                                                  
2809       DO 7400 IGC = 1,NGC(7)                                                     
2810          SUMF = 0.                                                               
2811          SUMK = 0.                                                               
2812          DO 7600 IPR = 1, NGN(NGS(6)+IGC)                                        
2813             IPRSM = IPRSM + 1                                                    
2814             SUMF = SUMF + FRACREFB(IPRSM)                                        
2815             SUMK = SUMK + ABSCO2(IPRSM)*RWGT(IPRSM+96)                           
2816  7600    CONTINUE                                                                
2817          FRACREFBC(IGC) = SUMF                                                   
2818          ABSCO2C(IGC) = SUMK                                                     
2819  7400 CONTINUE                                                                   
2820                                                                                  
2821    END SUBROUTINE CMBGB7
2822 
2823 !***************************************************************************
2824    SUBROUTINE CMBGB8(abscoefL, abscoefH, SELFREF,                     &
2825                      FRACREFA, FRACREFB, ABSCO2A, ABSCO2B,            &
2826                      ABSN2OA,  ABSN2OB,  CFC12,   CFC22ADJ,           &
2827                      SELFREFC, ABSCO2AC, ABSCO2BC,                    &
2828                      ABSN2OAC, ABSN2OBC, CFC12C, CFC22ADJC,           &
2829                      FRACREFAC, FRACREFBC                             )
2830 !***************************************************************************     
2831 !                                                                                
2832 !     BAND 8:  1080-1180 cm-1 (low (i.e.>~300mb) - H2O; high - O3)               
2833 !***************************************************************************     
2834                                                                                  
2835 ! Input                                                                          
2836       REAL abscoefL(5,7,MG),abscoefH(5,7:59,MG), SELFREF(10,MG)
2837       REAL FRACREFA(MG), FRACREFB(MG), ABSCO2A(MG), ABSCO2B(MG)
2838       REAL ABSN2OA(MG), ABSN2OB(MG), CFC12(MG), CFC22ADJ(MG) 
2839 !     REAL RWGT(MG*NBANDS) 
2840 ! Output                                                                         
2841       REAL SELFREFC(10,NG8),               &
2842            ABSCO2AC(NG8), ABSCO2BC(NG8),   &
2843            ABSN2OAC(NG8), ABSN2OBC(NG8),   &
2844            CFC12C(NG8), CFC22ADJC(NG8)
2845       REAL FRACREFAC(NG8), FRACREFBC(NG8)
2846                                                                                  
2847       DO 2000 JTJT = 1,5                                                           
2848          DO 2200 JPJP = 1,7                                                        
2849             IPRSM = 0                                                            
2850             DO 2400 IGC = 1,NGC(8)                                               
2851               SUMK = 0.                                                          
2852                DO 2600 IPR = 1, NGN(NGS(7)+IGC)                                  
2853                   IPRSM = IPRSM + 1                                              
2854                   SUMK = SUMK + abscoefL(JTJT,JPJP,IPRSM)*RWGT(IPRSM+112)
2855  2600          CONTINUE                                                          
2856                ABSA8(JTJT+(JPJP-1)*5,IGC) = SUMK                                             
2857  2400       CONTINUE                                                             
2858  2200    CONTINUE                                                                
2859  2000 CONTINUE                                                                   
2860       DO 3000 JTJT = 1,5                                                           
2861          DO 3200 JPJP = 7,59                                                       
2862             IPRSM = 0                                                            
2863             DO 3400 IGC = 1,NGC(8)                                               
2864                SUMK = 0.                                                         
2865                DO 3600 IPR = 1, NGN(NGS(7)+IGC)                                  
2866                   IPRSM = IPRSM + 1                                              
2867                   SUMK = SUMK + abscoefH(JTJT,JPJP,IPRSM)*RWGT(IPRSM+112)
2868  3600          CONTINUE                                                          
2869                ABSB8(JTJT+(JPJP-7)*5,IGC) = SUMK 
2870  3400       CONTINUE                                                             
2871  3200    CONTINUE                                                                
2872  3000 CONTINUE                                                                   
2873                                                                                  
2874       DO 4000 JTJT = 1,10                                                          
2875          IPRSM = 0                                                               
2876          DO 4400 IGC = 1,NGC(8)                                                  
2877             SUMK = 0.                                                            
2878             DO 4600 IPR = 1, NGN(NGS(7)+IGC)                                     
2879                IPRSM = IPRSM + 1                                                 
2880                SUMK = SUMK + SELFREF(JTJT,IPRSM)*RWGT(IPRSM+112) 
2881  4600       CONTINUE                                                             
2882             SELFREFC(JTJT,IGC) = SUMK                                              
2883  4400    CONTINUE                                                                
2884  4000 CONTINUE                                                                   
2885                                                                                  
2886       IPRSM = 0                                                                  
2887       DO 7400 IGC = 1,NGC(8)                                                     
2888          SUMF1= 0.                                                               
2889          SUMF2= 0.                                                               
2890          SUMK1= 0.                                                               
2891          SUMK2= 0.                                                               
2892          SUMK3= 0.                                                               
2893          SUMK4= 0.                                                               
2894          SUMK5= 0.                                                               
2895          SUMK6= 0.                                                               
2896          DO 7600 IPR = 1, NGN(NGS(7)+IGC)                                        
2897             IPRSM = IPRSM + 1                                                    
2898             SUMF1= SUMF1+ FRACREFA(IPRSM)                                        
2899             SUMF2= SUMF2+ FRACREFB(IPRSM)                                        
2900             SUMK1= SUMK1+ ABSCO2A(IPRSM)*RWGT(IPRSM+112)                         
2901             SUMK2= SUMK2+ ABSCO2B(IPRSM)*RWGT(IPRSM+112)                         
2902             SUMK3= SUMK3+ ABSN2OA(IPRSM)*RWGT(IPRSM+112)                         
2903             SUMK4= SUMK4+ ABSN2OB(IPRSM)*RWGT(IPRSM+112)                         
2904             SUMK5= SUMK5+ CFC12(IPRSM)*RWGT(IPRSM+112)                           
2905             SUMK6= SUMK6+ CFC22ADJ(IPRSM)*RWGT(IPRSM+112)                        
2906  7600    CONTINUE                                                                
2907          FRACREFAC(IGC) = SUMF1                                                  
2908          FRACREFBC(IGC) = SUMF2                                                  
2909          ABSCO2AC(IGC) = SUMK1                                                   
2910          ABSCO2BC(IGC) = SUMK2                                                   
2911          ABSN2OAC(IGC) = SUMK3                                                   
2912          ABSN2OBC(IGC) = SUMK4                                                   
2913          CFC12C(IGC) = SUMK5                                                     
2914          CFC22ADJC(IGC) = SUMK6                                                  
2915  7400 CONTINUE                                                                   
2916                                                                                  
2917    END SUBROUTINE CMBGB8
2918 
2919 !***************************************************************************
2920    SUBROUTINE CMBGB9(abscoefL, abscoefH, SELFREF,                      &
2921                      FRACREFA, FRACREFB, ABSN2O,                       &
2922                      SELFREFC, ABSN2OC, FRACREFAC, FRACREFBC           )
2923 !***************************************************************************     
2924 !                                                                                
2925 !     BAND 9:  1180-1390 cm-1 (low - H2O,CH4; high - CH4)                        
2926 !***************************************************************************     
2927                                                                                  
2928 ! Input                                                                          
2929       REAL abscoefL(11,5,13,MG), abscoefH(5,13:59,MG)
2930       REAL SELFREF(10,MG)   
2931       REAL FRACREFA(MG,9), FRACREFB(MG), ABSN2O(3*MG)
2932 !     REAL RWGT(MG*NBANDS) 
2933 ! Output                                                                         
2934       REAL SELFREFC(10,NG9), ABSN2OC(3*NG9)
2935       REAL FRACREFAC(NG9,9), FRACREFBC(NG9)
2936                                                                                  
2937       DO 2000 JN = 1,11                                                          
2938          DO 2000 JTJT = 1,5                                                        
2939             DO 2200 JPJP = 1,13                                                    
2940                IPRSM = 0                                                         
2941                DO 2400 IGC = 1,NGC(9)                                            
2942                   SUMK = 0.                                                      
2943                   DO 2600 IPR = 1, NGN(NGS(8)+IGC)                               
2944                      IPRSM = IPRSM + 1                                           
2945                      SUMK = SUMK + abscoefL(JN,JTJT,JPJP,IPRSM)*RWGT(IPRSM+128)
2946  2600             CONTINUE                                                       
2947                   ABSA9(JN+(JTJT-1)*11+(JPJP-1)*55,IGC) = SUMK                                       
2948  2400          CONTINUE                                                          
2949  2200       CONTINUE                                                             
2950  2000 CONTINUE                                                                   
2951                                                                                  
2952       DO 3000 JTJT = 1,5                                                           
2953          DO 3200 JPJP = 13,59                                                      
2954             IPRSM = 0                                                            
2955             DO 3400 IGC = 1,NGC(9)                                               
2956                SUMK = 0.                                                         
2957                DO 3600 IPR = 1, NGN(NGS(8)+IGC)                                  
2958                   IPRSM = IPRSM + 1                                              
2959                   SUMK = SUMK + abscoefH(JTJT,JPJP,IPRSM)*RWGT(IPRSM+128)
2960  3600          CONTINUE                                                          
2961                ABSB9(JTJT+(JPJP-13)*5,IGC) = SUMK
2962  3400       CONTINUE                                                             
2963  3200    CONTINUE                                                                
2964  3000 CONTINUE                                                                   
2965                                                                                  
2966       DO 4000 JTJT = 1,10                                                          
2967          IPRSM = 0                                                               
2968          DO 4400 IGC = 1,NGC(9)                                                  
2969             SUMK = 0.                                                            
2970             DO 4600 IPR = 1, NGN(NGS(8)+IGC)                                     
2971                IPRSM = IPRSM + 1                                                 
2972                SUMK = SUMK + SELFREF(JTJT,IPRSM)*RWGT(IPRSM+128)
2973  4600       CONTINUE                                                             
2974             SELFREFC(JTJT,IGC) = SUMK                                              
2975  4400    CONTINUE                                                                
2976  4000 CONTINUE                                                                   
2977                                                                                  
2978       DO 5000 JN = 1,3                                                           
2979          IPRSM = 0                                                               
2980          DO 5400 IGC = 1,NGC(9)                                                  
2981             SUMK = 0.                                                            
2982             DO 5600 IPR = 1, NGN(NGS(8)+IGC)                                     
2983                IPRSM = IPRSM + 1                                                 
2984                JND = (JN-1)*16                                                   
2985                SUMK = SUMK + ABSN2O(JND+IPRSM)*RWGT(IPRSM+128)                   
2986  5600       CONTINUE                                                             
2987             JNDC = (JN-1)*NGC(9)                                                 
2988             ABSN2OC(JNDC+IGC) = SUMK                                             
2989  5400    CONTINUE                                                                
2990  5000 CONTINUE                                                                   
2991                                                                                  
2992       DO 6000 JPJP = 1,9                                                           
2993          IPRSM = 0                                                               
2994          DO 6400 IGC = 1,NGC(9)                                                  
2995             SUMF = 0.                                                            
2996             DO 6600 IPR = 1, NGN(NGS(8)+IGC)                                     
2997                IPRSM = IPRSM + 1                                                 
2998                SUMF = SUMF + FRACREFA(IPRSM,JPJP)                                  
2999  6600       CONTINUE                                                             
3000             FRACREFAC(IGC,JPJP) = SUMF                                             
3001  6400    CONTINUE                                                                
3002  6000 CONTINUE                                                                   
3003                                                                                  
3004       IPRSM = 0                                                                  
3005       DO 7400 IGC = 1,NGC(9)                                                     
3006          SUMF = 0.                                                               
3007          DO 7600 IPR = 1, NGN(NGS(8)+IGC)                                        
3008             IPRSM = IPRSM + 1                                                    
3009             SUMF = SUMF + FRACREFB(IPRSM)                                        
3010  7600    CONTINUE                                                                
3011          FRACREFBC(IGC) = SUMF                                                   
3012  7400 CONTINUE                                                                   
3013                                                                                  
3014    END SUBROUTINE CMBGB9
3015 
3016 !***************************************************************************
3017    SUBROUTINE CMBGB10(abscoefL, abscoefH,                               &
3018                       FRACREFA, FRACREFB,                               &
3019                       FRACREFAC, FRACREFBC                              )
3020 !***************************************************************************     
3021 !                                                                                
3022 !     BAND 10:  1390-1480 cm-1 (low - H2O; high - H2O)                           
3023 !***************************************************************************     
3024                                                                                  
3025 ! Input                                                                          
3026       REAL abscoefL(5,13,MG),abscoefH(5,13:59,MG)            
3027       REAL FRACREFA(MG), FRACREFB(MG)
3028 !     REAL RWGT(MG*NBANDS) 
3029 ! Output                                                                         
3030       REAL FRACREFAC(NG10), FRACREFBC(NG10)
3031                                                                                  
3032       DO 2000 JTJT = 1,5                                                           
3033          DO 2200 JPJP = 1,13                                                       
3034             IPRSM = 0                                                            
3035             DO 2400 IGC = 1,NGC(10)                                              
3036                SUMK = 0.                                                         
3037                DO 2600 IPR = 1, NGN(NGS(9)+IGC)                                  
3038                   IPRSM = IPRSM + 1                                              
3039                   SUMK = SUMK + abscoefL(JTJT,JPJP,IPRSM)*RWGT(IPRSM+144)
3040  2600          CONTINUE                                                          
3041                ABSA10(JTJT+(JPJP-1)*5,IGC) = SUMK                                             
3042  2400       CONTINUE                                                             
3043  2200    CONTINUE                                                                
3044  2000 CONTINUE                                                                   
3045       DO 3000 JTJT = 1,5                                                           
3046          DO 3200 JPJP = 13,59                                                      
3047             IPRSM = 0                                                            
3048             DO 3400 IGC = 1,NGC(10)                                              
3049                SUMK = 0.                                                         
3050                DO 3600 IPR = 1, NGN(NGS(9)+IGC)                                  
3051                   IPRSM = IPRSM + 1                                              
3052                   SUMK = SUMK + abscoefH(JTJT,JPJP,IPRSM)*RWGT(IPRSM+144)
3053  3600          CONTINUE                                                          
3054                ABSB10(JTJT+(JPJP-13)*5,IGC) = SUMK
3055  3400       CONTINUE                                                             
3056  3200    CONTINUE                                                                
3057  3000 CONTINUE                                                                   
3058                                                                                  
3059       IPRSM = 0                                                                  
3060       DO 7400 IGC = 1,NGC(10)                                                    
3061          SUMF1= 0.                                                               
3062          SUMF2= 0.                                                               
3063          DO 7600 IPR = 1, NGN(NGS(9)+IGC)                                        
3064             IPRSM = IPRSM + 1                                                    
3065             SUMF1= SUMF1+ FRACREFA(IPRSM)                                        
3066             SUMF2= SUMF2+ FRACREFB(IPRSM)                                        
3067  7600    CONTINUE                                                                
3068          FRACREFAC(IGC) = SUMF1                                                  
3069          FRACREFBC(IGC) = SUMF2                                                  
3070  7400 CONTINUE                                                                   
3071                                                                                  
3072    END SUBROUTINE CMBGB10
3073 
3074 !***************************************************************************
3075    SUBROUTINE CMBGB11(abscoefL, abscoefH, SELFREF,                   &
3076                       FRACREFA, FRACREFB,                            &
3077                       SELFREFC,                                      &
3078                       FRACREFAC, FRACREFBC                           )
3079 !***************************************************************************     
3080 !                                                                                
3081 !     BAND 11:  1480-1800 cm-1 (low - H2O; high - H2O)                           
3082 !***************************************************************************     
3083                                                                                  
3084 ! Input                                                                          
3085       REAL abscoefL(5,13,MG),abscoefH(5,13:59,MG)
3086       REAL SELFREF(10,MG)      
3087       REAL FRACREFA(MG), FRACREFB(MG)
3088 !     REAL RWGT(MG*NBANDS) 
3089 ! Output                                                                         
3090       REAL SELFREFC(10,NG11)
3091       REAL FRACREFAC(NG11), FRACREFBC(NG11)
3092                                                                                  
3093       DO 2000 JTJT = 1,5                                                           
3094          DO 2200 JPJP = 1,13                                                       
3095             IPRSM = 0                                                            
3096             DO 2400 IGC = 1,NGC(11)                                              
3097                SUMK = 0.                                                         
3098                DO 2600 IPR = 1, NGN(NGS(10)+IGC)                                 
3099                   IPRSM = IPRSM + 1                                              
3100                   SUMK = SUMK + abscoefL(JTJT,JPJP,IPRSM)*RWGT(IPRSM+160)
3101  2600          CONTINUE                                                          
3102                ABSA11(JTJT+(JPJP-1)*5,IGC) = SUMK                                             
3103  2400       CONTINUE                                                             
3104  2200    CONTINUE                                                                
3105  2000 CONTINUE                                                                   
3106       DO 3000 JTJT = 1,5                                                           
3107          DO 3200 JPJP = 13,59                                                      
3108             IPRSM = 0                                                            
3109             DO 3400 IGC = 1,NGC(11)                                              
3110                SUMK = 0.                                                         
3111                DO 3600 IPR = 1, NGN(NGS(10)+IGC)                                 
3112                   IPRSM = IPRSM + 1                                              
3113                   SUMK = SUMK + abscoefH(JTJT,JPJP,IPRSM)*RWGT(IPRSM+160) 
3114  3600          CONTINUE                                                          
3115                ABSB11(JTJT+(JPJP-13)*5,IGC) = SUMK
3116  3400       CONTINUE                                                             
3117  3200    CONTINUE                                                                
3118  3000 CONTINUE                                                                   
3119                                                                                  
3120       DO 4000 JTJT = 1,10                                                          
3121          IPRSM = 0                                                               
3122          DO 4400 IGC = 1,NGC(11)                                                 
3123             SUMK = 0.                                                            
3124             DO 4600 IPR = 1, NGN(NGS(10)+IGC)                                    
3125                IPRSM = IPRSM + 1                                                 
3126                SUMK = SUMK + SELFREF(JTJT,IPRSM)*RWGT(IPRSM+160) 
3127  4600       CONTINUE                                                             
3128             SELFREFC(JTJT,IGC) = SUMK                                              
3129  4400    CONTINUE                                                                
3130  4000 CONTINUE                                                                   
3131                                                                                  
3132       IPRSM = 0                                                                  
3133       DO 7400 IGC = 1,NGC(11)                                                    
3134          SUMF1= 0.                                                               
3135          SUMF2= 0.                                                               
3136          DO 7600 IPR = 1, NGN(NGS(10)+IGC)                                       
3137             IPRSM = IPRSM + 1                                                    
3138             SUMF1= SUMF1+ FRACREFA(IPRSM)                                        
3139             SUMF2= SUMF2+ FRACREFB(IPRSM)                                        
3140  7600    CONTINUE                                                                
3141          FRACREFAC(IGC) = SUMF1                                                  
3142          FRACREFBC(IGC) = SUMF2                                                  
3143  7400 CONTINUE                                                                   
3144                                                                                  
3145    END SUBROUTINE CMBGB11
3146 
3147 
3148 !***************************************************************************
3149    SUBROUTINE CMBGB12(abscoefL, SELFREF,                          &
3150                       FRACREFA,                                   &
3151                       SELFREFC, FRACREFAC                         )
3152 !***************************************************************************     
3153 !                                                                                
3154 !     BAND 12:  1800-2080 cm-1 (low - H2O,CO2; high - nothing)                   
3155 !***************************************************************************     
3156                                                                                  
3157 ! Input                                                                          
3158       REAL abscoefL(9,5,13,MG)  
3159       REAL SELFREF(10,MG)              
3160       REAL FRACREFA(MG,9)
3161 !     REAL RWGT(MG*NBANDS) 
3162 ! Output                                                                         
3163       REAL SELFREFC(10,NG12) 
3164       REAL FRACREFAC(NG12,9)
3165                                                                                  
3166       DO 2000 JN = 1,9                                                           
3167          DO 2000 JTJT = 1,5                                                        
3168             DO 2200 JPJP = 1,13                                                    
3169                IPRSM = 0                                                         
3170                DO 2400 IGC = 1,NGC(12)                                           
3171                   SUMK = 0.                                                      
3172                   DO 2600 IPR = 1, NGN(NGS(11)+IGC)                              
3173                      IPRSM = IPRSM + 1                                           
3174                      SUMK = SUMK + abscoefL(JN,JTJT,JPJP,IPRSM)*RWGT(IPRSM+176)
3175  2600             CONTINUE                                                       
3176                   ABSA12(JN+(JTJT-1)*9+(JPJP-1)*45,IGC) = SUMK                                       
3177  2400          CONTINUE                                                          
3178  2200       CONTINUE                                                             
3179  2000 CONTINUE                                                                   
3180                                                                                  
3181       DO 4000 JTJT = 1,10                                                          
3182          IPRSM = 0                                                               
3183          DO 4400 IGC = 1,NGC(12)                                                 
3184             SUMK = 0.                                                            
3185             DO 4600 IPR = 1, NGN(NGS(11)+IGC)                                    
3186                IPRSM = IPRSM + 1                                                 
3187                SUMK = SUMK + SELFREF(JTJT,IPRSM)*RWGT(IPRSM+176)
3188  4600       CONTINUE                                                             
3189             SELFREFC(JTJT,IGC) = SUMK                                              
3190  4400    CONTINUE                                                                
3191  4000 CONTINUE                                                                   
3192                                                                                  
3193       DO 7000 JPJP = 1,9                                                           
3194          IPRSM = 0                                                               
3195          DO 7400 IGC = 1,NGC(12)                                                 
3196             SUMF = 0.                                                            
3197             DO 7600 IPR = 1, NGN(NGS(11)+IGC)                                    
3198                IPRSM = IPRSM + 1                                                 
3199                SUMF = SUMF + FRACREFA(IPRSM,JPJP)                                  
3200  7600       CONTINUE                                                             
3201             FRACREFAC(IGC,JPJP) = SUMF                                             
3202  7400    CONTINUE                                                                
3203  7000 CONTINUE                                                                   
3204                                                                                  
3205    END SUBROUTINE CMBGB12
3206 
3207 !***************************************************************************
3208    SUBROUTINE CMBGB13(abscoefL, SELFREF, FRACREFA,               &
3209                       SELFREFC, FRACREFAC                        )
3210 !***************************************************************************     
3211 !                                                                                
3212 !     BAND 13:  2080-2250 cm-1 (low - H2O,N2O; high - nothing)                   
3213 !***************************************************************************     
3214                                                                                  
3215 ! Input                                                                          
3216       REAL abscoefL(9,5,13,MG) 
3217       REAL SELFREF(10,MG)   
3218       REAL FRACREFA(MG,9)
3219 !     REAL RWGT(MG*NBANDS) 
3220 ! Output                                                                         
3221       REAL SELFREFC(10,NG13) 
3222       REAL FRACREFAC(NG13,9)
3223                                                                                  
3224       DO 2000 JN = 1,9                                                           
3225          DO 2000 JTJT = 1,5                                                        
3226             DO 2200 JPJP = 1,13                                                    
3227                IPRSM = 0                                                         
3228                DO 2400 IGC = 1,NGC(13)                                           
3229                   SUMK = 0.                                                      
3230                   DO 2600 IPR = 1, NGN(NGS(12)+IGC)                              
3231                      IPRSM = IPRSM + 1                                           
3232                      SUMK = SUMK + abscoefL(JN,JTJT,JPJP,IPRSM)*RWGT(IPRSM+192)
3233  2600             CONTINUE                                                       
3234                   ABSA13(JN+(JTJT-1)*9+(JPJP-1)*45,IGC) = SUMK 
3235  2400          CONTINUE                                                          
3236  2200       CONTINUE                                                             
3237  2000 CONTINUE                                                                   
3238                                                                                  
3239       DO 4000 JTJT = 1,10                                                          
3240          IPRSM = 0                                                               
3241          DO 4400 IGC = 1,NGC(13)                                                 
3242             SUMK = 0.                                                            
3243             DO 4600 IPR = 1, NGN(NGS(12)+IGC)                                    
3244                IPRSM = IPRSM + 1                                                 
3245                SUMK = SUMK + SELFREF(JTJT,IPRSM)*RWGT(IPRSM+192)
3246  4600       CONTINUE                                                             
3247             SELFREFC(JTJT,IGC) = SUMK                                              
3248  4400    CONTINUE                                                                
3249  4000 CONTINUE                                                                   
3250                                                                                  
3251       DO 7000 JPJP = 1,9                                                           
3252          IPRSM = 0                                                               
3253          DO 7400 IGC = 1,NGC(13)                                                 
3254             SUMF = 0.                                                            
3255             DO 7600 IPR = 1, NGN(NGS(12)+IGC)                                    
3256                IPRSM = IPRSM + 1                                                 
3257                SUMF = SUMF + FRACREFA(IPRSM,JPJP)                                  
3258  7600       CONTINUE                                                             
3259             FRACREFAC(IGC,JPJP) = SUMF                                             
3260  7400    CONTINUE                                                                
3261  7000 CONTINUE                                                                   
3262                                                                                  
3263    END SUBROUTINE CMBGB13
3264 
3265 !***************************************************************************
3266    SUBROUTINE CMBGB14(abscoefL, abscoefH, SELFREF,                     &
3267                       FRACREFA, FRACREFB,                              &
3268                       SELFREFC, FRACREFAC, FRACREFBC                   )
3269 !***************************************************************************     
3270 !                                                                                
3271 !     BAND 14:  2250-2380 cm-1 (low - CO2; high - CO2)                           
3272 !***************************************************************************     
3273                                                                                  
3274 ! Input                                                                          
3275       REAL abscoefL(5,13,MG),abscoefH(5,13:59,MG)
3276       REAL SELFREF(10,MG)  
3277       REAL FRACREFA(MG), FRACREFB(MG)
3278 !     REAL RWGT(MG*NBANDS) 
3279 ! Output                                                                         
3280       REAL SELFREFC(10,NG14)                              
3281       REAL FRACREFAC(NG14), FRACREFBC(NG14) 
3282                                                                                  
3283       DO 2000 JTJT = 1,5                                                           
3284          DO 2200 JPJP = 1,13                                                       
3285             IPRSM = 0                                                            
3286             DO 2400 IGC = 1,NGC(14)                                              
3287                SUMK = 0.                                                         
3288                DO 2600 IPR = 1, NGN(NGS(13)+IGC)                                 
3289                   IPRSM = IPRSM + 1                                              
3290                   SUMK = SUMK + abscoefL(JTJT,JPJP,IPRSM)*RWGT(IPRSM+208)
3291  2600          CONTINUE                                                          
3292                ABSA14(JTJT+(JPJP-1)*5,IGC) = SUMK
3293  2400       CONTINUE                                                             
3294  2200    CONTINUE                                                                
3295  2000 CONTINUE                                                                   
3296                                                                                  
3297       DO 3000 JTJT = 1,5                                                           
3298          DO 3200 JPJP = 13,59                                                      
3299             IPRSM = 0                                                            
3300             DO 3400 IGC = 1,NGC(14)                                              
3301                SUMK = 0.                                                         
3302                DO 3600 IPR = 1, NGN(NGS(13)+IGC)                                 
3303                   IPRSM = IPRSM + 1                                              
3304                   SUMK = SUMK + abscoefH(JTJT,JPJP,IPRSM)*RWGT(IPRSM+208)
3305  3600          CONTINUE                                                          
3306                ABSB14(JTJT+(JPJP-13)*5,IGC) = SUMK
3307  3400       CONTINUE                                                             
3308  3200    CONTINUE                                                                
3309  3000 CONTINUE                                                                   
3310                                                                                  
3311       DO 4000 JTJT = 1,10                                                          
3312          IPRSM = 0                                                               
3313          DO 4400 IGC = 1,NGC(14)                                                 
3314             SUMK = 0.                                                            
3315             DO 4600 IPR = 1, NGN(NGS(13)+IGC)                                    
3316                IPRSM = IPRSM + 1                                                 
3317                SUMK = SUMK + SELFREF(JTJT,IPRSM)*RWGT(IPRSM+208)
3318  4600       CONTINUE                                                             
3319             SELFREFC(JTJT,IGC) = SUMK                                              
3320  4400    CONTINUE                                                                
3321  4000 CONTINUE                                                                   
3322                                                                                  
3323       IPRSM = 0                                                                  
3324       DO 7400 IGC = 1,NGC(14)                                                    
3325          SUMF1= 0.                                                               
3326          SUMF2= 0.                                                               
3327          DO 7600 IPR = 1, NGN(NGS(13)+IGC)                                       
3328             IPRSM = IPRSM + 1                                                    
3329             SUMF1= SUMF1+ FRACREFA(IPRSM)                                        
3330             SUMF2= SUMF2+ FRACREFB(IPRSM)                                        
3331  7600    CONTINUE                                                                
3332          FRACREFAC(IGC) = SUMF1                                                  
3333          FRACREFBC(IGC) = SUMF2                                                  
3334  7400 CONTINUE                                                                   
3335                                                                                  
3336             
3337    END SUBROUTINE CMBGB14
3338 
3339 !***************************************************************************
3340    SUBROUTINE CMBGB15(abscoefL, SELFREF, FRACREFA,                &
3341                       SELFREFC, FRACREFAC                         )
3342 !***************************************************************************
3343 !                                                                                
3344 !     BAND 15:  2380-2600 cm-1 (low - N2O,CO2; high - nothing)                   
3345 !***************************************************************************     
3346                                                                                  
3347 ! Input                                                                          
3348       REAL abscoefL(9,5,13,MG)                                                         
3349       REAL SELFREF(10,MG)  
3350       REAL FRACREFA(MG,9)
3351 !     REAL RWGT(MG*NBANDS) 
3352 ! Output                                                                         
3353       REAL SELFREFC(10,NG15)
3354       REAL FRACREFAC(NG15,9) 
3355                                                                                  
3356       DO 2000 JN = 1,9                                                           
3357          DO 2000 JTJT = 1,5                                                        
3358             DO 2200 JPJP = 1,13                                                    
3359                IPRSM = 0                                                         
3360                DO 2400 IGC = 1,NGC(15)                                           
3361                   SUMK = 0.                                                      
3362                   DO 2600 IPR = 1, NGN(NGS(14)+IGC)                              
3363                      IPRSM = IPRSM + 1                                           
3364                      SUMK = SUMK + abscoefL(JN,JTJT,JPJP,IPRSM)*RWGT(IPRSM+224)
3365  2600             CONTINUE                                                       
3366                   ABSA15(JN+(JTJT-1)*9+(JPJP-1)*45,IGC) = SUMK 
3367  2400          CONTINUE                                                          
3368  2200       CONTINUE                                                             
3369  2000 CONTINUE                                                                   
3370                                                                                  
3371       DO 4000 JTJT = 1,10                                                          
3372          IPRSM = 0                                                               
3373          DO 4400 IGC = 1,NGC(15)                                                 
3374             SUMK = 0.                                                            
3375             DO 4600 IPR = 1, NGN(NGS(14)+IGC)                                    
3376                IPRSM = IPRSM + 1                                                 
3377                SUMK = SUMK + SELFREF(JTJT,IPRSM)*RWGT(IPRSM+224)
3378  4600       CONTINUE                                                             
3379             SELFREFC(JTJT,IGC) = SUMK                                              
3380  4400    CONTINUE                                                                
3381  4000 CONTINUE                                                                   
3382                                                                                  
3383       DO 7000 JPJP = 1,9                                                           
3384          IPRSM = 0                                                               
3385          DO 7400 IGC = 1,NGC(15)                                                 
3386             SUMF = 0.                                                            
3387             DO 7600 IPR = 1, NGN(NGS(14)+IGC)                                    
3388                IPRSM = IPRSM + 1                                                 
3389                SUMF = SUMF + FRACREFA(IPRSM,JPJP)                                  
3390  7600       CONTINUE                                                             
3391             FRACREFAC(IGC,JPJP) = SUMF                                             
3392  7400    CONTINUE                                                                
3393  7000 CONTINUE                                                                   
3394                                                                                  
3395    END SUBROUTINE CMBGB15
3396 
3397 !***************************************************************************
3398    SUBROUTINE CMBGB16(abscoefL, SELFREF, FRACREFA,               &
3399                       SELFREFC, FRACREFAC                        )
3400 !***************************************************************************     
3401 !                                                                                
3402 !     BAND 16:  2600-3000 cm-1 (low - H2O,CH4; high - nothing)                   
3403 !***************************************************************************     
3404                                                                                  
3405 ! Input                                                                          
3406       REAL abscoefL(9,5,13,MG)                                                         
3407       REAL SELFREF(10,MG)     
3408       REAL FRACREFA(MG,9)
3409 !     REAL RWGT(MG*NBANDS) 
3410 ! Output                                                                         
3411       REAL SELFREFC(10,NG16)
3412       REAL FRACREFAC(NG16,9)
3413                                                                                  
3414       DO 2000 JN = 1,9                                                           
3415          DO 2000 JTJT = 1,5                                                        
3416             DO 2200 JPJP = 1,13                                                    
3417                IPRSM = 0                                                         
3418                DO 2400 IGC = 1,NGC(16)                                           
3419                   SUMK = 0.                                                      
3420                   DO 2600 IPR = 1, NGN(NGS(15)+IGC)                              
3421                      IPRSM = IPRSM + 1                                           
3422                      SUMK = SUMK + abscoefL(JN,JTJT,JPJP,IPRSM)*RWGT(IPRSM+240)
3423  2600             CONTINUE                                                       
3424                   ABSA16(JN+(JTJT-1)*9+(JPJP-1)*45,IGC) = SUMK
3425  2400          CONTINUE                                                          
3426  2200       CONTINUE                                                             
3427  2000 CONTINUE                                                                   
3428                                                                                  
3429       DO 4000 JTJT = 1,10                                                          
3430          IPRSM = 0                                                               
3431          DO 4400 IGC = 1,NGC(16)                                                 
3432             SUMK = 0.                                                            
3433             DO 4600 IPR = 1, NGN(NGS(15)+IGC)                                    
3434                IPRSM = IPRSM + 1                                                 
3435                SUMK = SUMK + SELFREF(JTJT,IPRSM)*RWGT(IPRSM+240)
3436  4600       CONTINUE                                                             
3437             SELFREFC(JTJT,IGC) = SUMK                                              
3438  4400    CONTINUE                                                                
3439  4000 CONTINUE                                                                   
3440                                                                                  
3441       DO 7000 JPJP = 1,9                                                           
3442          IPRSM = 0                                                               
3443          DO 7400 IGC = 1,NGC(16)                                                 
3444             SUMF = 0.                                                            
3445             DO 7600 IPR = 1, NGN(NGS(15)+IGC)                                    
3446                IPRSM = IPRSM + 1                                                 
3447                SUMF = SUMF + FRACREFA(IPRSM,JPJP)                                  
3448  7600       CONTINUE                                                             
3449             FRACREFAC(IGC,JPJP) = SUMF                                             
3450  7400    CONTINUE                                                                
3451  7000 CONTINUE                                                                   
3452                                                                                  
3453    END SUBROUTINE CMBGB16
3454  
3455 !-------------------------------------------------------------------------
3456    SUBROUTINE INIRAD (O3PROF,Pw, kts, kte)
3457 !-------------------------------------------------------------------------
3458       IMPLICIT NONE
3459 !-------------------------------------------------------------------------
3460    INTEGER, INTENT(IN   )                        ::    kts,kte
3461 
3462    REAL, DIMENSION( kts:kte ),INTENT(INOUT)      ::    O3PROF
3463 
3464    REAL, DIMENSION( kts:kte+1 ),INTENT(IN   )    ::        Pw
3465 
3466 ! LOCAL VAR
3467   
3468    REAL, DIMENSION( kts:kte+1 ) :: PAVEL, TAVEL 
3469    REAL, DIMENSION(   0:kte+1 ) :: PZ, TZ
3470 
3471    INTEGER :: k
3472 
3473 
3474 !                                                                                
3475 !  COMPUTE OZONE MIXING RATIO DISTRIBUTION                                       
3476 !                                                                                
3477    DO K=kts,kte
3478       O3PROF(K)=0.                                                       
3479    ENDDO
3480                                                                                  
3481    CALL O3DATA(O3PROF, Pw, kts, kte)
3482 !                                                                                
3483    END SUBROUTINE INIRAD
3484                                                                                  
3485 !-------------------------------------------------------------------------
3486    SUBROUTINE O3DATA (O3PROF, Pw, kts, kte)
3487 !-------------------------------------------------------------------------
3488    IMPLICIT NONE
3489 !-------------------------------------------------------------------------
3490 !
3491    INTEGER, INTENT(IN   )   ::       kts, kte
3492 !
3493    REAL, DIMENSION( kts:kte ),INTENT(INOUT)      ::    O3PROF
3494 
3495    REAL, DIMENSION( kts:kte+1 ),INTENT(IN   )    ::        Pw
3496 
3497 ! LOCAL VAR
3498    INTEGER :: K, JJ, NK
3499 
3500    REAL    ::  PRLEVH(kts:kte+1),PPWRKH(32),                       &
3501                O3WRK(31),PPWRK(31),O3SUM(31),PPSUM(31),          &
3502                O3WIN(31),PPWIN(31),O3ANN(31),PPANN(31)                                                       
3503 
3504    REAL    ::  PB1, PB2, PT1, PT2
3505 
3506    DATA O3SUM  /5.297E-8,5.852E-8,6.579E-8,7.505E-8,             &                    
3507         8.577E-8,9.895E-8,1.175E-7,1.399E-7,1.677E-7,2.003E-7,   &                 
3508         2.571E-7,3.325E-7,4.438E-7,6.255E-7,8.168E-7,1.036E-6,   &                 
3509         1.366E-6,1.855E-6,2.514E-6,3.240E-6,4.033E-6,4.854E-6,   &                 
3510         5.517E-6,6.089E-6,6.689E-6,1.106E-5,1.462E-5,1.321E-5,   &                 
3511         9.856E-6,5.960E-6,5.960E-6/                                              
3512 
3513    DATA PPSUM  /955.890,850.532,754.599,667.742,589.841,         &  
3514         519.421,455.480,398.085,347.171,301.735,261.310,225.360, &               
3515         193.419,165.490,141.032,120.125,102.689, 87.829, 75.123, &            
3516          64.306, 55.086, 47.209, 40.535, 34.795, 29.865, 19.122, &               
3517           9.277,  4.660,  2.421,  1.294,  0.647/                                 
3518 !                                                                                
3519    DATA O3WIN  /4.629E-8,4.686E-8,5.017E-8,5.613E-8,             &
3520         6.871E-8,8.751E-8,1.138E-7,1.516E-7,2.161E-7,3.264E-7,   &               
3521         4.968E-7,7.338E-7,1.017E-6,1.308E-6,1.625E-6,2.011E-6,   &               
3522         2.516E-6,3.130E-6,3.840E-6,4.703E-6,5.486E-6,6.289E-6,   &               
3523         6.993E-6,7.494E-6,8.197E-6,9.632E-6,1.113E-5,1.146E-5,   &               
3524         9.389E-6,6.135E-6,6.135E-6/                                              
3525 
3526    DATA PPWIN  /955.747,841.783,740.199,649.538,568.404,         &
3527         495.815,431.069,373.464,322.354,277.190,237.635,203.433, &               
3528         174.070,148.949,127.408,108.915, 93.114, 79.551, 67.940, &               
3529          58.072, 49.593, 42.318, 36.138, 30.907, 26.362, 16.423, &               
3530           7.583,  3.620,  1.807,  0.938,  0.469/                                 
3531 !                                                                                
3532 
3533    DO K=1,31                                                              
3534      PPANN(K)=PPSUM(K)                                                        
3535    ENDDO
3536 !
3537    O3ANN(1)=0.5*(O3SUM(1)+O3WIN(1))                                           
3538 !                                                                                
3539    DO K=2,31                                                              
3540       O3ANN(K)=O3WIN(K-1)+(O3WIN(K)-O3WIN(K-1))/(PPWIN(K)-PPWIN(K-1))* & 
3541                (PPSUM(K)-PPWIN(K-1))                                           
3542    ENDDO
3543 !
3544    DO K=2,31                                                              
3545       O3ANN(K)=0.5*(O3ANN(K)+O3SUM(K))                                         
3546    ENDDO
3547 !
3548    DO K=1,31                                                                
3549       O3WRK(K)=O3ANN(K)                                                        
3550       PPWRK(K)=PPANN(K)                                                        
3551    ENDDO
3552 !                                                                                
3553 !  CALCULATE HALF PRESSURE LEVELS FOR MODEL AND DATA LEVELS                     
3554 !                                                                                
3555 
3556 ! Pw is total P at w level
3557 ! Pw is in mb
3558 
3559    DO K=kts,kte+1
3560       NK=kte+1-K+1
3561       PRLEVH(K)=Pw(NK)
3562    ENDDO
3563 !                                                                                
3564    PPWRKH(1)=1100.                                                        
3565    DO K=2,31                                                           
3566       PPWRKH(K)=(PPWRK(K)+PPWRK(K-1))/2.                                   
3567    ENDDO
3568    PPWRKH(32)=0.                                                          
3569    DO K=kts,kte
3570       DO 25 JJ=1,31                                                        
3571          IF((-(PRLEVH(K)-PPWRKH(JJ))).GE.0.)THEN                            
3572            PB1=0.                                                           
3573          ELSE                                                               
3574            PB1=PRLEVH(K)-PPWRKH(JJ)                                         
3575          ENDIF                                                              
3576          IF((-(PRLEVH(K)-PPWRKH(JJ+1))).GE.0.)THEN                          
3577            PB2=0.                                                           
3578          ELSE                                                               
3579            PB2=PRLEVH(K)-PPWRKH(JJ+1)                                       
3580          ENDIF                                                              
3581          IF((-(PRLEVH(K+1)-PPWRKH(JJ))).GE.0.)THEN                          
3582            PT1=0.                                                           
3583          ELSE                                                               
3584            PT1=PRLEVH(K+1)-PPWRKH(JJ)                                       
3585          ENDIF                                                              
3586          IF((-(PRLEVH(K+1)-PPWRKH(JJ+1))).GE.0.)THEN                        
3587            PT2=0.                                                           
3588          ELSE                                                               
3589            PT2=PRLEVH(K+1)-PPWRKH(JJ+1)                                     
3590          ENDIF                                                              
3591          O3PROF(K)=O3PROF(K)+(PB2-PB1-PT2+PT1)*O3WRK(JJ)                
3592   25  CONTINUE                                                             
3593       O3PROF(K)=O3PROF(K)/(PRLEVH(K)-PRLEVH(K+1))                      
3594 
3595    ENDDO
3596 !                                                                                
3597    END SUBROUTINE O3DATA
3598 
3599 !---------------------------------------------------------------------------
3600    SUBROUTINE MM5ATM(CLDFRA,O3PROF,T,Tw,TSFC,QV,QC,QR,QI,QS,QG,    &
3601                      P,Pw,DELZ,EMISS,R,G,                          &
3602                      PAVEL,TAVEL,PZ,TZ,CLDFRAC,TAUCLOUD,COLDRY,    &
3603                      WKL,WX,TBOUND,SEMISS,                         &
3604                      kts,kte                                       )
3605 !---------------------------------------------------------------------------
3606 !  RRTM Longwave Radiative Transfer Model                                        
3607 !  Atmospheric and Environmental Research, Inc., Cambridge, MA                   
3608 !                                                                                
3609 !  Revision for NCAR MM5:  J. Dudhia (converted from CCM code)                   
3610 !                                                                                
3611 !  Input atmospheric profile from NCAR MM5, and prepare it for use in RRTM.      
3612 !  Set other RRTM input parameters.  Values are passed back through existing     
3613 !  RRTM arrays and commons.                                                      
3614 !---------------------------------------------------------------------------
3615 ! RRTM Definitions                                                               
3616 !    MXLAY = kte+1                ! Maximum number of model layers               
3617 !    MAXXSEC                      ! Maximum number of cross sections             
3618 !    NLAYERS                      ! Number of model layers (kte+1)               
3619 !    PAVEL(MXLAY)                 ! Layer pressures (mb)                         
3620 !    PZ(0:MXLAY)                  ! Level (interface) pressures (mb)             
3621 !    TAVEL(MXLAY)                 ! Layer temperatures (K)                       
3622 !    TZ(0:MXLAY)                  ! Level (interface) temperatures(mb)           
3623 !    TBOUND                       ! Surface temperature (K)                      
3624 !    COLDRY(MXLAY)                ! Dry air column (molecules/cm2)               
3625 !    WKL(35,MXLAY)                ! Molecular amounts (molecules/cm2)            
3626 !    WBRODL(MXLAY)                ! Inactive in this version                     
3627 !    WX(MAXXSEC)                  ! Cross-section amounts (molecules/cm2)        
3628 !    CLDFRAC(MXLAY)               ! Layer cloud fraction                         
3629 !    TAUCLOUD(MXLAY)              ! Layer cloud optical depth                    
3630 !    AMD                          ! Atomic weight of dry air                     
3631 !    AMW                          ! Atomic weight of water                       
3632 !    AMO                          ! Atomic weight of ozone                       
3633 !    AMCH4                        ! Atomic weight of methane                     
3634 !    AMN2O                        ! Atomic weight of nitrous oxide               
3635 !    AMC11                        ! Atomic weight of CFC-11                      
3636 !    AMC12                        ! Atomic weight of CFC-12                      
3637 !    NXMOL                        ! Number of cross-section molecules            
3638 !    IXINDX                       ! Cross-section molecule index (see below)     
3639 !    IXSECT                       ! On/off flag for cross-sections (inactive)    
3640 !    IXMAX                        ! Maximum number of cross-sections (inactive)  
3641 !                                                                                
3642 !-----------------------------------------------------------------------------
3643 ! This compiler directive was added to insure private common block storage       
3644 ! in multi-tasked mode on a CRAY or SGI for all commons except those that        
3645 ! carry constants.                                                               
3646 !----------------------------------------------------------------------------
3647 !     Activate cross section molecules:                                             
3648 !     NXMOL     - number of cross-sections input by user                         
3649 !     IXINDX(I) - index of cross-section molecule corresponding to Ith           
3650 !                 cross-section specified by user                                
3651 !                 = 0 -- not allowed in RRTM                                     
3652 !                 = 1 -- CCL4                                                    
3653 !                 = 2 -- CFC11                                                   
3654 !                 = 3 -- CFC12                                                   
3655 !                 = 4 -- CFC22                                                   
3656 !     DATA NXMOL  /2/                                                            
3657 !     DATA IXINDX /0,2,3,0,31*0/                                                 
3658 !                                                                                 
3659 !    CLOUD EMISSIVITIES (M^2/G)                                                  
3660 !    THESE ARE CONSISTENT WITH LWRAD (ABCW=0.5*(ABUP+ABDOWN))                    
3661 !----------------------------------------------------------------------------
3662 
3663                                                                                  
3664       INTEGER, INTENT(IN ) ::  kts, kte
3665 !
3666       REAL, DIMENSION( 35,kts:kte+1 ),                    &
3667             INTENT(INOUT)        ::                  WKL
3668 
3669       REAL, DIMENSION( MAXXSEC,kts:kte+1 ),               &
3670             INTENT(INOUT)        ::                   WX
3671 
3672       REAL, INTENT(INOUT)        ::               TBOUND
3673       REAL, DIMENSION(NBANDS), INTENT(INOUT) ::   SEMISS
3674 
3675       REAL, DIMENSION( kts:kte+1 ), INTENT(IN   ) ::      &
3676                                                       Tw, &
3677                                                       Pw
3678       REAL, DIMENSION( kts:kte ), INTENT(IN   ) ::        &
3679                                                   CLDFRA, &
3680                                                   O3PROF, &
3681                                                     DELZ, &
3682                                                        T, &
3683                                                        P
3684 
3685       REAL, DIMENSION( kts:kte ), INTENT(INOUT) ::        &
3686                                                       QV
3687 
3688       REAL, DIMENSION( kts:kte ), INTENT(IN   ) ::        &
3689                                                       QC, &
3690                                                       QR, &
3691                                                       QI, &
3692                                                       QS, &
3693                                                       QG
3694 
3695       REAL, DIMENSION( kts:kte+1 ), INTENT(INOUT) ::      &
3696                                                    PAVEL, &
3697                                                    TAVEL, &
3698                                                  CLDFRAC, &    
3699                                                 TAUCLOUD, &
3700                                                   COLDRY 
3701 
3702       REAL, DIMENSION(   0:kte+1 ), INTENT(INOUT) ::      &
3703                                                       PZ, &
3704                                                       TZ
3705 
3706       REAL, INTENT(IN   ) ::   R,G,EMISS,TSFC
3707 
3708       REAL    :: GRAVIT
3709  
3710 !
3711 ! LOCAL
3712 
3713       REAL, DIMENSION( kts:kte ) ::                 CLDFRC, &
3714                                                       PINT, &
3715                                                       TINT, &
3716                                                         O3, &
3717                                                        N2O, &
3718                                                        CH4, &
3719                                                       CLWP, &
3720                                                       CIWP, &
3721                                                       PLWP, &
3722                                                       PIWP
3723                            
3724       real :: amd       ! Effective molecular weight of dry air (g/mol)  
3725       real :: amw       ! Molecular weight of water vapor (g/mol)        
3726       real :: amo       ! Molecular weight of ozone (g/mol)              
3727       real :: amch4     ! Molecular weight of methane (g/mol)            
3728       real :: amn2o     ! Molecular weight of nitrous oxide (g/mol)      
3729       real :: amc11     ! Molecular weight of CFC11 (g/mol) - CFCL3      
3730       real :: amc12     ! Molecular weight of CFC12 (g/mol) - CF2CL2     
3731       real :: avgdro    ! Avogadro's number (molecules/mole)             
3732                                                                                  
3733 ! Atomic weights for conversion from mass to volume mixing ratios                
3734 
3735       data amd   /  28.9644   /                                                  
3736       data amw   /  18.0154   /                                                  
3737       data amo   /  47.9998   /                                                  
3738       data amch4 /  16.0430   /                                                  
3739       data amn2o /  44.0128   /                                                  
3740       data amc11 / 137.3684   /                                                  
3741       data amc12 / 120.9138   /                                                  
3742       data avgdro/ 6.022E23   /                                                  
3743                                                                                  
3744 !     Set molecular weight ratios                                                    
3745 
3746       real :: amdw,  &  ! Molecular weight of dry air / water vapor      
3747               amdc,  &  ! Molecular weight of dry air / methane          
3748               amdn,  &  ! Molecular weight of dry air / nitrous oxide    
3749               amdc1, &  ! Molecular weight of dry air / CFC11            
3750               amdc2     ! Molecular weight of dry air / CFC12            
3751 
3752       data amdw /  1.607758 /                                                    
3753       data amdc /  1.805423 /                                                    
3754       data amdn /  0.658090 /                                                    
3755       data amdc1/  0.210852 /                                                    
3756       data amdc2/  0.239546 /                                                    
3757 
3758 !     Put in CO2 volume mixing ratio here (330 ppmv)                                
3759 
3760       real :: co2vmr
3761       data co2vmr / 330.e-6 /                                                    
3762                                                                                  
3763       REAL :: ABCW,ABICE,ABRN,ABSN
3764 
3765       DATA ABCW /0.144/                                                          
3766       DATA ABICE /0.0735/                                                        
3767       DATA ABRN /0.330E-3/                                                       
3768       DATA ABSN /2.34E-3/                                                        
3769 
3770       GRAVIT = G*100.
3771 
3772 !                                                                                
3773 !  MID-LAYER VALUES                                                              
3774       DO K=kts,kte
3775           RO=P(K)/(R*T(K))*100.                                                  
3776           DZ=DELZ(K)
3777           QV(K)=AMAX1(QV(K),1.E-12) 
3778   
3779           CLDFRC(K)=CLDFRA(K)                                                   
3780                                                                                  
3781 !  PATHS IN G/M^2                                                                
3782 
3783 ! QI=0 if no ice phase
3784 ! QS=0 if no ice phase
3785 
3786             CLWP(K)=RO*QC(K)*DZ*1000.                                            
3787             CIWP(K)=RO*QI(K)*DZ*1000.                                            
3788             PLWP(K)=(RO*QR(K))**0.75*DZ*1000.                                    
3789             PIWP(K)=(RO*QS(K))**0.75*DZ*1000.                                   
3790                                                                                  
3791           O3(K)=O3PROF(K)                                                      
3792           N2O(K)=0.                                                              
3793           CH4(K)=0.                                                              
3794                                                                                  
3795       ENDDO                                                                      
3796                                                                                  
3797 !  Initialize all molecular amounts to zero here, then pass MM5 amounts          
3798 !  into RRTM arrays WKL and WX below.                                            
3799                                                                                  
3800       DO 1000 ILAY = kts,kte+1
3801          DO 1100 ISP = 1,35                                                      
3802  1100       WKL(ISP,ILAY) = 0.0                                                  
3803          DO 1200 ISP = 1,MAXXSEC                                                 
3804  1200       WX(ISP,ILAY) = 0.0                                                   
3805  1000 CONTINUE                                                                   
3806                                                                                  
3807 !  Set parameters needed for RRTM execution:                                     
3808 
3809       IXSECT = 1                                                                 
3810       IXMAX = 4                                                                  
3811                                                                                  
3812 !  Set surface temperature.  The longwave upward surface flux is                 
3813 !  computed in the Land Surface Model based on the surface                       
3814 !  temperature and the emissivity of the surface type for each                   
3815 !  grid point.  The bottom interface temperature, tint(kte+1), is                 
3816 !  ground temperature consistent with this LW upward flux, and                   
3817 !  TBOUND is set to this temperature here.                                       
3818                                                                                  
3819 !     TBOUND = TINT(kte+1)                                                        
3820       TBOUND = Tw(kte+1)                                                        
3821 !     TBOUND = TSFC
3822                                                                                  
3823 !  Install MM5 profiles into RRTM arrays for pressure, temperature,              
3824 !  and molecular amounts.  Pressures are converted from cb                       
3825 !  (CCM) to mb (RRTM).  H2O and trace gas amounts are converted from             
3826 !  mass mixing ratio to volume mixing ratio.  CO2 vmr is constant at all         
3827 !  levels.  The dry air column COLDRY (in molec/cm2) is calculated               
3828 !  from the level pressures PZ (in mb) based on the hydrostatic equation         
3829 !  and includes a correction to account for H2O in the layer.  The               
3830 !  molecular weight of moist air (amm) is calculated for each layer.             
3831                                                                                  
3832 !  RRTM is executed for an additional layer (L=kte+1), which extends              
3833 !  from the model top (ptop) to 0 mb, to calculate the downward                  
3834 !  flux at the model top interface.  H2O, CO2, and O3 vmrs for this              
3835 !  extra layer are set to the values in the model's top layer, though            
3836 !  the O3 value is reduced by a fraction (0.6) based on the US Std Atm.          
3837 !  For GCMs with a model top near 0 mb, this extra layer is not needed, and      
3838 !  NLAYERS should be set to the number of model layers (kte in this case).       
3839 !  Note: RRTM levels count from bottom to top, while MM5 levels count            
3840 !  from the top down and must be reversed here.                                  
3841                                                                                  
3842 !     NMOL = 6                                                                   
3843 !     PZ(0) = pint(kte+1)                                                         
3844 !     TZ(0) = tint(kte+1)                                                         
3845 
3846       PZ(0) = Pw(kte+1)                                                         
3847       TZ(0) = Tw(kte+1)                                                         
3848       DO 2000 L = 1, NLAYERS-1                                                   
3849          PAVEL(L) = p(kte+1-L)                                                   
3850          TAVEL(L) = t(kte+1-L)                                                   
3851 !        PZ(L) = pint(kte+1-L)                                                    
3852 !        TZ(L) = tint(kte+1-L)                                                    
3853          PZ(L) = Pw(kte+1-L)                                                    
3854          TZ(L) = Tw(kte+1-L)                                                    
3855          WKL(1,L) = qv(kte+1-L)*amdw                                             
3856          WKL(2,L) = co2vmr                                                       
3857          WKL(3,L) = o3(kte+1-L)                                                  
3858          WKL(4,L) = n2o(kte+1-L)*amdn                                            
3859          WKL(6,L) = ch4(kte+1-L)*amdc                                            
3860          amm = (1-WKL(1,L))*amd + WKL(1,L)*amw                                   
3861          COLDRY(L) = (PZ(L-1)-PZ(L))*1.E3*avgdro/    & 
3862                                (gravit*amm*(1+WKL(1,L)))                         
3863  2000    CONTINUE                                                                
3864                                                                                  
3865 !  Set cross section molecule amounts from CCM; convert to vmr                   
3866       DO 2100 L=1, NLAYERS-1                                                     
3867 !        WX(2,L) = c11mmr(kte+1-L)*amdc1                                         
3868 !        WX(3,L) = c12mmr(kte+1-L)*amdc2                                         
3869          WX(2,L) = 0.                                                            
3870          WX(3,L) = 0.                                                            
3871  2100 CONTINUE                                                                   
3872                                                                                  
3873 !  *****                                                                         
3874 !  Set up values for extra layer at top of the atmosphere.                       
3875 !  The top layer temperature for all gridpoints is set to the top layer-1        
3876 !  temperature plus a constant (0 K) that represents an isothermal layer         
3877 !  above ptop.  Top layer interface temperatures are                             
3878 !  linearly interpolated from the layer temperatures.                            
3879 !  Note: The top layer temperature and ozone amount are based on a 0-3mb         
3880 !  top layer and must be modified if the layering is changed.                    
3881 !  This section should be commented if the extra layer is not needed.            
3882                                                                                  
3883       PAVEL(NLAYERS) = 0.5*PZ(NLAYERS-1)                                         
3884       TAVEL(NLAYERS) = TAVEL(NLAYERS-1) + 0.0                                    
3885       PZ(NLAYERS) = 0.00                                                         
3886       TZ(NLAYERS-1) = 0.5*(TAVEL(NLAYERS)+TAVEL(NLAYERS-1))                      
3887       TZ(NLAYERS) = TZ(NLAYERS-1)+0.0                                            
3888       WKL(1,NLAYERS) = WKL(1,NLAYERS-1)                                          
3889       WKL(2,NLAYERS) = co2vmr                                                    
3890       WKL(3,NLAYERS) = 0.6*WKL(3,NLAYERS-1)                                      
3891       WKL(4,NLAYERS) = WKL(4,NLAYERS-1)                                          
3892       WKL(6,NLAYERS) = WKL(6,NLAYERS-1)                                          
3893       amm = (1-WKL(1,NLAYERS-1))*amd + WKL(1,NLAYERS-1)*amw                      
3894 !     COLDRY(NLAYERS) = (PZ(NLAYERS-1))*1.E3*avgdro/       & 
3895       COLDRY(NLAYERS) = ((PZ(NLAYERS-1)-PZ(NLAYERS)))*1.E3*avgdro/       & 
3896                                (gravit*amm*(1+WKL(1,NLAYERS-1)))                 
3897       WX(2,NLAYERS) = WX(2,NLAYERS-1)                                            
3898       WX(3,NLAYERS) = WX(3,NLAYERS-1)                                            
3899 !  *****                                                                         
3900                                                                                  
3901 !  Here, all molecules in WKL and WX are in volume mixing ratio; convert to      
3902 !  molec/cm2 based on COLDRY for use in RRTM                                     
3903                                                                                  
3904       DO 5000 L = 1, NLAYERS                                                     
3905          DO 4200 IMOL = 1, NMOL                                                  
3906             WKL(IMOL,L) = COLDRY(L) * WKL(IMOL,L)                                
3907  4200    CONTINUE                                                                
3908          DO 4400 IX = 1,MAXXSEC                                                  
3909             IF (IXINDX(IX) .NE. 0) THEN                                          
3910                WX(IXINDX(IX),L) = COLDRY(L) * WX(IX,L) * 1.E-20                  
3911             ENDIF                                                                
3912  4400    CONTINUE                                                                
3913  5000 CONTINUE                                                                   
3914                                                                                  
3915 !  Set spectral surface emissivity for each longwave band.  The default value    
3916 !  is set here to emiss(i,j) based on land-use (taken to be constant across band 
3917 !  Comment: if land-surface uses skin temperature, emissivity must match that    
3918 !   used in its calculation (e.g. 1.0)                                           
3919       DO 5500 N=1,NBANDS                                                         
3920          SEMISS(N) = EMISS
3921  5500 CONTINUE                                                                   
3922                                                                                  
3923 !  Transfer cloud fraction to RRTM array; compute cloud optical depth, TAUCLOUD, 
3924 !  as the product of clwp and cloud mass absorption coefficient in MM5, which is 
3925 !  a  combination of liquid and ice absorption coefficients.                     
3926 !  Note: RRTM levels count from bottom to top, while CCM levels count from the   
3927 !  top down and must be reversed here.  Values for the extra RRTM level (above   
3928 !  the model top) are set to zero.                                               
3929                                                                                  
3930       DO 7000 L = 1, NLAYERS-1                                                   
3931          TAUCLOUD(L) = ABCW*CLWP(kte+1-L)+ABICE*CIWP(kte+1-L) & 
3932                       +ABRN*PLWP(kte+1-L)+ABSN*PIWP(kte+1-L)                       
3933          IF(TAUCLOUD(L).GT.0.01)CLDFRC(kte+1-L)=1.                                
3934          CLDFRAC(L) = cldfrc(kte+1-L)                                             
3935  7000 CONTINUE                                                                   
3936       CLDFRAC(NLAYERS) = 0.0                                                     
3937       TAUCLOUD(NLAYERS) = 0.0                                                    
3938 
3939    END SUBROUTINE MM5ATM
3940 
3941 !---------------------------------------------------------------------------
3942       SUBROUTINE SETCOEF(kts,ktep1,                                        &
3943                          PAVEL,TAVEL,COLDRY,COLH2O,COLCO2,COLO3,           &
3944                          COLN2O,COLCH4,COLO2,CO2MULT,                      &
3945                          FAC00,FAC01,FAC10,FAC11,                          &
3946                          FORFAC,SELFFAC,SELFFRAC,                          &
3947                          JP,JT,JT1,INDSELF,WKL,LAYTROP,LAYSWTCH,LAYLOW     )
3948 !---------------------------------------------------------------------------
3949       IMPLICIT NONE
3950 !---------------------------------------------------------------------------
3951 !  RRTM Longwave Radiative Transfer Model                                        
3952 !  Atmospheric and Environmental Research, Inc., Cambridge, MA                   
3953 !                                                                                
3954 !  Original version:       E. J. Mlawer, et al.                                  
3955 !  Revision for NCAR CCM:  Michael J. Iacono; September, 1998                    
3956 !                                                                                
3957 !  For a given atmosphere, calculate the indices and fractions related to the    
3958 !  pressure and temperature interpolations.  Also calculate the values of the    
3959 !  integrated Planck functions for each band at the level and layer              
3960 !  temperatures.                                                                 
3961 !---------------------------------------------------------------------------
3962 
3963       INTEGER, INTENT(IN   ) ::          kts, ktep1
3964 
3965       REAL, DIMENSION( 35,kts:ktep1),                    &
3966             INTENT(IN   )        ::                  WKL
3967 
3968       INTEGER, INTENT(INOUT) ::  LAYTROP,LAYSWTCH,LAYLOW
3969 
3970       REAL, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::      &
3971                                                    PAVEL, &
3972                                                    TAVEL, &
3973                                                   COLDRY
3974 
3975       REAL, DIMENSION( kts:ktep1 ), INTENT(INOUT) ::      &
3976                                                   COLH2O, &
3977                                                   COLCO2, &
3978                                                    COLO3, &
3979                                                   COLN2O, &
3980                                                   COLCH4, &
3981                                                    COLO2, &
3982                                                  CO2MULT, &
3983                                                    FAC00, &
3984                                                    FAC01, &
3985                                                    FAC10, &
3986                                                    FAC11, &
3987                                                   FORFAC, &
3988                                                  SELFFAC, &
3989                                                 SELFFRAC
3990 
3991       INTEGER, DIMENSION( kts:ktep1 ), INTENT(INOUT) ::   &
3992                                                       JP, &
3993                                                       JT, &
3994                                                      JT1, &
3995                                                  INDSELF
3996 ! LOCAL 
3997      
3998       INTEGER ::   LAY, JP1 
3999       REAL    ::   STPFAC, PLOG, FP, FT, FT1, WATERS, WATER, &
4000                    CALEFAC, FACTOR, CO2REG, COMPFP, SCALEFAC 
4001 
4002 ! This compiler directive was added to insure private common block storage       
4003 ! in multi-tasked mode on a CRAY or SGI for all commons except those that        
4004 ! carry constants.                                                               
4005                                                                                  
4006       STPFAC = 296./1013.                                                        
4007       
4008       LAYTROP = 0                                                                
4009       LAYSWTCH = 0                                                               
4010       LAYLOW = 0                                                                 
4011       DO 7000 LAY = 1, NLAYERS                                                   
4012 !        Find the two reference pressures on either side of the                  
4013 !        layer pressure.  Store them in JP and JP1.  Store in FP the             
4014 !        fraction of the difference (in ln(pressure)) between these              
4015 !        two values that the layer pressure lies.                                
4016          PLOG = LOG(PAVEL(LAY))                                                  
4017          JP(LAY) = INT(36. - 5*(PLOG+0.04))                                      
4018          IF (JP(LAY) .LT. 1) THEN                                                
4019             JP(LAY) = 1                                                          
4020          ELSEIF (JP(LAY) .GT. 58) THEN                                           
4021             JP(LAY) = 58                                                         
4022          ENDIF                                                                   
4023          JP1 = JP(LAY) + 1                                                       
4024          FP = 5. * (PREFLOG(JP(LAY)) - PLOG)                                     
4025                                                                                  
4026 !        Determine, for each reference pressure (JP and JP1), which              
4027 !        reference temperature (these are different for each                     
4028 !        reference pressure) is nearest the layer temperature but does           
4029 !        not exceed it.  Store these indices in JT and JT1, resp.                
4030 !        Store in FT (resp. FT1) the fraction of the way between JT              
4031 !        (JT1) and the next highest reference temperature that the               
4032 !        layer temperature falls.                                                
4033          JT(LAY) = INT(3. + (TAVEL(LAY)-TREF(JP(LAY)))/15.)                      
4034          IF (JT(LAY) .LT. 1) THEN                                                
4035             JT(LAY) = 1                                                          
4036          ELSEIF (JT(LAY) .GT. 4) THEN                                            
4037             JT(LAY) = 4                                                          
4038          ENDIF                                                                   
4039          FT = ((TAVEL(LAY)-TREF(JP(LAY)))/15.) - FLOAT(JT(LAY)-3)                
4040          JT1(LAY) = INT(3. + (TAVEL(LAY)-TREF(JP1))/15.)                         
4041          IF (JT1(LAY) .LT. 1) THEN                                               
4042             JT1(LAY) = 1                                                         
4043          ELSEIF (JT1(LAY) .GT. 4) THEN                                           
4044             JT1(LAY) = 4                                                         
4045          ENDIF                                                                   
4046          FT1 = ((TAVEL(LAY)-TREF(JP1))/15.) - FLOAT(JT1(LAY)-3)                  
4047                                                                                  
4048          WATER = WKL(1,LAY)/COLDRY(LAY)                                          
4049          SCALEFAC = PAVEL(LAY) * STPFAC / TAVEL(LAY)                             
4050                                                                                  
4051 !        If the pressure is less than ~100mb, perform a different                
4052 !        set of species interpolations.                                          
4053          IF (PLOG .LE. 4.56) GO TO 5300                                          
4054          LAYTROP =  LAYTROP + 1                                                  
4055 !        For one band, the "switch" occurs at ~300 mb.                           
4056 ! JD: changed from (PLOG .GE. 5.76) to avoid out-of-range                        
4057          IF (PLOG .Gt. 5.76) LAYSWTCH = LAYSWTCH + 1                             
4058          IF (PLOG .GE. 6.62) LAYLOW = LAYLOW + 1                                 
4059 !                                                                                
4060          FORFAC(LAY) = SCALEFAC / (1.+WATER)                                     
4061 !        Set up factors needed to separately include the water vapor             
4062 !        self-continuum in the calculation of absorption coefficient.            
4063          SELFFAC(LAY) = WATER * FORFAC(LAY)                                      
4064          FACTOR = (TAVEL(LAY)-188.0)/7.2                                         
4065          INDSELF(LAY) = MIN(9, MAX(1, INT(FACTOR)-7))                            
4066          SELFFRAC(LAY) = FACTOR - FLOAT(INDSELF(LAY) + 7)                        
4067                                                                                  
4068 !        Calculate needed column amounts.                                        
4069          COLH2O(LAY) = 1.E-20 * WKL(1,LAY)                                       
4070          COLCO2(LAY) = 1.E-20 * WKL(2,LAY)                                       
4071          COLO3(LAY) = 1.E-20 * WKL(3,LAY)                                        
4072          COLN2O(LAY) = 1.E-20 * WKL(4,LAY)                                       
4073          COLCH4(LAY) = 1.E-20 * WKL(6,LAY)                                       
4074          COLO2(LAY) = 1.E-20 * WKL(7,LAY)                                        
4075          IF (COLCO2(LAY) .EQ. 0.) COLCO2(LAY) = 1.E-32 * COLDRY(LAY)             
4076          IF (COLN2O(LAY) .EQ. 0.) COLN2O(LAY) = 1.E-32 * COLDRY(LAY)             
4077          IF (COLCH4(LAY) .EQ. 0.) COLCH4(LAY) = 1.E-32 * COLDRY(LAY)             
4078 !        Using E = 1334.2 cm-1.                                                  
4079          CO2REG = 3.55E-24 * COLDRY(LAY)                                         
4080          CO2MULT(LAY)= (COLCO2(LAY) - CO2REG) *    & 
4081               272.63*EXP(-1919.4/TAVEL(LAY))/(8.7604E-4*TAVEL(LAY))              
4082          GO TO 5400                                                              
4083                                                                                  
4084 !        Above LAYTROP.                                                          
4085  5300    CONTINUE                                                                
4086                                                                                  
4087          FORFAC(LAY) = SCALEFAC / (1.+WATER)                                     
4088 !        Calculate needed column amounts.                                        
4089          COLH2O(LAY) = 1.E-20 * WKL(1,LAY)                                       
4090          COLCO2(LAY) = 1.E-20 * WKL(2,LAY)                                       
4091          COLO3(LAY) = 1.E-20 * WKL(3,LAY)                                        
4092          COLN2O(LAY) = 1.E-20 * WKL(4,LAY)                                       
4093          COLCH4(LAY) = 1.E-20 * WKL(6,LAY)                                       
4094          COLO2(LAY) = 1.E-20 * WKL(7,LAY)                                        
4095          IF (COLCO2(LAY) .EQ. 0.) COLCO2(LAY) = 1.E-32 * COLDRY(LAY)             
4096          IF (COLN2O(LAY) .EQ. 0.) COLN2O(LAY) = 1.E-32 * COLDRY(LAY)             
4097          IF (COLCH4(LAY) .EQ. 0.) COLCH4(LAY) = 1.E-32 * COLDRY(LAY)             
4098          CO2REG = 3.55E-24 * COLDRY(LAY)                                         
4099          CO2MULT(LAY)= (COLCO2(LAY) - CO2REG) *   & 
4100               272.63*EXP(-1919.4/TAVEL(LAY))/(8.7604E-4*TAVEL(LAY))              
4101  5400    CONTINUE                                                                
4102                                                                                  
4103 !        We have now isolated the layer ln pressure and temperature,             
4104 !        between two reference pressures and two reference temperatures          
4105 !        (for each reference pressure).  We multiply the pressure                
4106 !        fraction FP with the appropriate temperature fractions to get           
4107 !        the factors that will be needed for the interpolation that yields       
4108 !        the optical depths (performed in routines TAUGBn for band n).           
4109                                                                                  
4110          COMPFP = 1. - FP                                                        
4111          FAC10(LAY) = COMPFP * FT                                                
4112          FAC00(LAY) = COMPFP * (1. - FT)                                         
4113          FAC11(LAY) = FP * FT1                                                   
4114          FAC01(LAY) = FP * (1. - FT1)                                            
4115                                                                                  
4116  7000 CONTINUE                                                                   
4117                                                                                  
4118 !        Set LAYLOW for profiles with surface pressure less than 750mb.          
4119          IF (LAYLOW.EQ.0) LAYLOW=1                                               
4120 !        Sometimes round-off gives wrong LAYSWTCH therefore check here (JD)
4121          IF (JP(LAYSWTCH+1).LE.6) THEN
4122            LAYSWTCH=LAYSWTCH+1
4123          ENDIF
4124 
4125    END SUBROUTINE SETCOEF
4126 
4127 !-------------------------------------------------------------------------------
4128 !*                                                                             * 
4129 !*                  Optical depths developed for the                           * 
4130 !*                                                                             * 
4131 !*                RAPID RADIATIVE TRANSFER MODEL (RRTM)                        * 
4132 !*                                                                             * 
4133 !*                                                                             * 
4134 !*            ATMOSPHERIC AND ENVIRONMENTAL RESEARCH, INC.                     * 
4135 !*                        840 MEMORIAL DRIVE                                   * 
4136 !*                        CAMBRIDGE, MA 02139                                  * 
4137 !*                                                                             * 
4138 !*                                                                             * 
4139 !*                           ELI J. MLAWER                                     * 
4140 !*                         STEVEN J. TAUBMAN                                   * 
4141 !*                         SHEPARD A. CLOUGH                                   * 
4142 !*                                                                             * 
4143 !*                                                                             * 
4144 !*                                                                             * 
4145 !*                                                                             * 
4146 !*                       email:  mlawer@aer.com                                * 
4147 !*                                                                             * 
4148 !*        The authors wish to acknowledge the contributions of the             * 
4149 !*        following people:  Patrick D. Brown, Michael J. Iacono,              * 
4150 !*        Ronald E. Farren, Luke Chen, Robert Bergstrom.                       * 
4151 !*                                                                             * 
4152 !-------------------------------------------------------------------------------
4153 !*                                                                             * 
4154 !*  Revision for NCAR CCM:  Michael J. Iacono; September, 1998                 * 
4155 !*                                                                             * 
4156 !*     TAUMOL                                                                  * 
4157 !*                                                                             * 
4158 !*     This file contains the subroutines TAUGBn (where n goes from            * 
4159 !*     1 to 16).  TAUGBn calculates the optical depths and Planck fractions    * 
4160 !*     per g-value and layer for band n.                                       * 
4161 !*                                                                             * 
4162 !*  Output:  optical depths (unitless)                                         * 
4163 !*           fractions needed to compute Planck functions at every layer       * 
4164 !*               and g-value                                                   * 
4165 !*                                                                             * 
4166 !*     COMMON /TAUGCOM/  TAUG(MXLAY,MG)                                        * 
4167 !*     COMMON /PLANKG/   FRACS(MXLAY,MG)                                       * 
4168 !*                                                                             * 
4169 !*  Input                                                                      * 
4170 !*                                                                             * 
4171 !*     COMMON /FEATURES/ NG(NBANDS),NSPA(NBANDS),NSPB(NBANDS)                  * 
4172 !*     COMMON /PRECISE/  ONEMINUS                                              * 
4173 !*     COMMON /PROFILE/  NLAYERS,PAVEL(MXLAY),TAVEL(MXLAY),                    * 
4174 !*    &                  PZ(0:MXLAY),TZ(0:MXLAY)                               * 
4175 !*     COMMON /PROFDATA/ LAYTROP,LAYSWTCH,LAYLOW,                              * 
4176 !*    &                  COLH2O(MXLAY),COLCO2(MXLAY),                          * 
4177 !*    &                  COLO3(MXLAY),COLN2O(MXLAY),COLCH4(MXLAY),             * 
4178 !*    &                  COLO2(MXLAY),CO2MULT(MXLAY)                           * 
4179 !*     COMMON /INTFAC/   FAC00(MXLAY),FAC01(MXLAY),                            * 
4180 !*    &                  FAC10(MXLAY),FAC11(MXLAY)                             * 
4181 !*     COMMON /INTIND/   JP(MXLAY),JT(MXLAY),JT1(MXLAY)                        * 
4182 !*     COMMON /SELF/     SELFFAC(MXLAY), SELFFRAC(MXLAY), INDSELF(MXLAY)       * 
4183 !*                                                                             * 
4184 !*     Description:                                                            * 
4185 !*     NG(IBAND) - number of g-values in band IBAND                            * 
4186 !*     NSPA(IBAND) - for the lower atmosphere, the number of reference         * 
4187 !*                   atmospheres that are stored for band IBAND per            * 
4188 !*                   pressure level and temperature.  Each of these            * 
4189 !*                   atmospheres has different relative amounts of the         * 
4190 !*                   key species for the band (i.e. different binary           * 
4191 !*                   species parameters).                                      * 
4192 !*     NSPB(IBAND) - same for upper atmosphere                                 * 
4193 !*     ONEMINUS - since problems are caused in some cases by interpolation     * 
4194 !*                parameters equal to or greater than 1, for these cases       * 
4195 !*                these parameters are set to this value, slightly < 1.        * 
4196 !*     PAVEL - layer pressures (mb)                                            * 
4197 !*     TAVEL - layer temperatures (degrees K)                                  * 
4198 !*     PZ - level pressures (mb)                                               * 
4199 !*     TZ - level temperatures (degrees K)                                     * 
4200 !*     LAYTROP - layer at which switch is made from one combination of         * 
4201 !*               key species to another                                        * 
4202 !*     COLH2O, COLCO2, COLO3, COLN2O, COLCH4 - column amounts of water         * 
4203 !*               vapor,carbon dioxide, ozone, nitrous ozide, methane,          * 
4204 !*               respectively (molecules/cm**2)                                * 
4205 !*     CO2MULT - for bands in which carbon dioxide is implemented as a         * 
4206 !*               trace species, this is the factor used to multiply the        * 
4207 !*               band's average CO2 absorption coefficient to get the added    * 
4208 !*               contribution to the optical depth relative to 355 ppm.        * 
4209 !*     FACij(LAY) - for layer LAY, these are factors that are needed to        * 
4210 !*                  compute the interpolation factors that multiply the        * 
4211 !*                  appropriate reference k-values.  A value of 0 (1) for      * 
4212 !*                  i,j indicates that the corresponding factor multiplies     * 
4213 !*                  reference k-value for the lower (higher) of the two        * 
4214 !*                  appropriate temperatures, and altitudes, respectively.     * 
4215 !*     JP - the index of the lower (in altitude) of the two appropriate        * 
4216 !*          reference pressure levels needed for interpolation                 * 
4217 !*     JT, JT1 - the indices of the lower of the two appropriate reference     * 
4218 !*               temperatures needed for interpolation (for pressure           * 
4219 !*               levels JP and JP+1, respectively)                             * 
4220 !*     SELFFAC - scale factor needed to water vapor self-continuum, equals     * 
4221 !*               (water vapor density)/(atmospheric density at 296K and        * 
4222 !*               1013 mb)                                                      * 
4223 !*     SELFFRAC - factor needed for temperature interpolation of reference     * 
4224 !*                water vapor self-continuum data                              * 
4225 !*     INDSELF - index of the lower of the two appropriate reference           * 
4226 !*               temperatures needed for the self-continuum interpolation      * 
4227 !*                                                                             * 
4228 !*  Data input                                                                 * 
4229 !*     COMMON /Kn/ KA(NSPA(n),5,13,MG), KB(NSPB(n),5,13:59,MG), SELFREF(10,MG) * 
4230 !*        (note:  n is the band number)                                        * 
4231 !*                                                                             * 
4232 !*     Description:                                                            * 
4233 !*     KA - k-values for low reference atmospheres (no water vapor             * 
4234 !*          self-continuum) (units: cm**2/molecule)                            * 
4235 !*     KB - k-values for high reference atmospheres (all sources)              * 
4236 !*          (units: cm**2/molecule)                                            * 
4237 !*     SELFREF - k-values for water vapor self-continuum for reference         * 
4238 !*               atmospheres (used below LAYTROP)                              * 
4239 !*               (units: cm**2/molecule)                                       * 
4240 !*                                                                             * 
4241 !*     DIMENSION ABSA(65*NSPA(n),MG), ABSB(235*NSPB(n),MG)                     * 
4242 !*     EQUIVALENCE (KA,ABSA),(KB,ABSB)                                         * 
4243 !*                                                                             * 
4244 !******************************************************************************* 
4245                                                                                  
4246 !---------------------------------------------------------------------------    
4247       SUBROUTINE TAUGB1(kts,ktep1,COLH2O,FAC00,FAC01,FAC10,FAC11,          &
4248                         FORFAC,SELFFAC,SELFFRAC,JP,JT,JT1,INDSELF,         &
4249                         PFRAC,TAUG,LAYTROP                                 )
4250 !---------------------------------------------------------------------------    
4251                                                                                  
4252       INTEGER, INTENT(IN )                      :: kts,ktep1
4253 
4254       INTEGER, INTENT(IN )                      ::  LAYTROP
4255 
4256       REAL, DIMENSION( NGPT,kts:ktep1 ),                    &
4257             INTENT(INOUT)        ::                  PFRAC, &
4258                                                       TAUG
4259 
4260       REAL, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::        &
4261                                                     COLH2O, &
4262                                                      FAC00, &
4263                                                      FAC01, &
4264                                                      FAC10, &
4265                                                      FAC11, &
4266                                                     FORFAC, &
4267                                                    SELFFAC, &
4268                                                   SELFFRAC 
4269  
4270       INTEGER, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::     &
4271                                                         JP, &
4272                                                         JT, &
4273                                                        JT1, &
4274                                                    INDSELF
4275 
4276 !     Written by Eli J. Mlawer, Atmospheric & Environmental Research.            
4277 !     Revised by Michael J. Iacono, Atmospheric & Environmental Research.        
4278                                                                                  
4279 !     BAND 1:  10-250 cm-1 (low - H2O; high - H2O)                               
4280                                                                                  
4281 ! This compiler directive was added to insure private common block storage       
4282 ! in multi-tasked mode on a CRAY or SGI for all commons except those that        
4283 ! carry constants.                                                               
4284                                                                                  
4285 !     Compute the optical depth by interpolating in ln(pressure) and             
4286 !     temperature.  Below LAYTROP, the water vapor self-continuum                
4287 !     is interpolated (in temperature) separately.                               
4288 !cdir novector
4289       DO 2500 LAY = 1, LAYTROP                                                   
4290          IND0 = ((JP(LAY)-1)*5+(JT(LAY)-1))*NSPA(1) + 1                          
4291          IND1 = (JP(LAY)*5+(JT1(LAY)-1))*NSPA(1) + 1                             
4292          INDS = INDSELF(LAY)                                                     
4293          DO 2000 IG = 1, NG1                                                     
4294             TAUG(IG,LAY) = COLH2O(LAY) *                       & 
4295                 (FAC00(LAY) * ABSA1(IND0,IG) +                  &                 
4296                  FAC10(LAY) * ABSA1(IND0+1,IG) +                &                 
4297                  FAC01(LAY) * ABSA1(IND1,IG) +                  &                 
4298                  FAC11(LAY) * ABSA1(IND1+1,IG) +                &                 
4299                  SELFFAC(LAY) * (SELFREFC1(INDS,IG) +            &                 
4300                  SELFFRAC(LAY) *                               &                 
4301                  (SELFREFC1(INDS+1,IG) - SELFREFC1(INDS,IG))) +    &                 
4302                  FORFAC(LAY) * FORREFC1(IG))                                       
4303             PFRAC(IG,LAY) = FRACREFAC1(IG)                                         
4304  2000    CONTINUE                                                                
4305  2500 CONTINUE                                                                   
4306                                                                                  
4307 !cdir novector
4308       DO 3500 LAY = LAYTROP+1, NLAYERS                                           
4309          IND0 = ((JP(LAY)-13)*5+(JT(LAY)-1))*NSPB(1) + 1                         
4310          IND1 = ((JP(LAY)-12)*5+(JT1(LAY)-1))*NSPB(1) + 1                        
4311          DO 3000 IG = 1, NG1                                                     
4312             TAUG(IG,LAY) = COLH2O(LAY) *                      &
4313                 (FAC00(LAY) * ABSB1(IND0,IG) +                 &                  
4314                  FAC10(LAY) * ABSB1(IND0+1,IG) +               &                  
4315                  FAC01(LAY) * ABSB1(IND1,IG) +                 &                  
4316                  FAC11(LAY) * ABSB1(IND1+1,IG) +               &                  
4317                  FORFAC(LAY) * FORREFC1(IG))                                       
4318             PFRAC(IG,LAY) = FRACREFBC1(IG)                                         
4319  3000    CONTINUE                                                                
4320  3500 CONTINUE                                                                   
4321      
4322       END SUBROUTINE TAUGB1                        
4323                                                                                  
4324 !----------------------------------------------------------------------------    
4325       SUBROUTINE TAUGB2(kts,ktep1,COLDRY,COLH2O,FAC00,FAC01,FAC10,FAC11,    &
4326                         FORFAC,SELFFAC,SELFFRAC,JP,JT,JT1,INDSELF,          &
4327                         PFRAC,TAUG,LAYTROP                                  )
4328 !----------------------------------------------------------------------------    
4329                                                                                  
4330 !     BAND 2:  250-500 cm-1 (low - H2O; high - H2O)                              
4331                                                                                  
4332       INTEGER, INTENT(IN )                      :: kts,ktep1
4333 
4334       INTEGER, PARAMETER :: NGS1=8                                       
4335 
4336       INTEGER, INTENT(IN )                      ::  LAYTROP
4337 
4338       REAL, DIMENSION( NGPT,kts:ktep1 ),                    &
4339             INTENT(INOUT)        ::                  PFRAC, &
4340                                                       TAUG
4341 
4342       REAL, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::        &
4343                                                     COLDRY, &   
4344                                                     COLH2O, &
4345                                                      FAC00, &
4346                                                      FAC01, &
4347                                                      FAC10, &
4348                                                      FAC11, &
4349                                                     FORFAC, &
4350                                                    SELFFAC, &
4351                                                   SELFFRAC 
4352  
4353       INTEGER, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::     &
4354                                                         JP, &
4355                                                         JT, &
4356                                                        JT1, &
4357                                                    INDSELF
4358 
4359 ! This compiler directive was added to insure private common block storage       
4360 ! in multi-tasked mode on a CRAY or SGI for all commons except those that        
4361 ! carry constants.                                                               
4362                                                                                  
4363       DIMENSION FC00(kts:ktep1),FC01(kts:ktep1),FC10(kts:ktep1),FC11(kts:ktep1)                  
4364       DIMENSION REFPARAM(13)                                                     
4365                                                                                  
4366 !     These are the mixing ratios for H2O for a MLS atmosphere at the            
4367 !     13 RRTM reference pressure levels:  1.8759999E-02, 1.2223309E-02,          
4368 !     5.8908667E-03, 2.7675382E-03, 1.4065107E-03, 7.5969833E-04,                
4369 !     3.8875898E-04, 1.6542293E-04, 3.7189537E-05, 7.4764857E-06,                
4370 !     4.3081886E-06, 3.3319423E-06, 3.2039343E-06/                               
4371                                                                                  
4372 !     The following are parameters related to the reference water vapor          
4373 !     mixing ratios by REFPARAM(I) = REFH2O(I) / (.002+REFH2O(I)).               
4374 !     These parameters are used for the Planck function interpolation.           
4375       DATA REFPARAM/  &                                                          
4376         0.903661, 0.859386, 0.746542, 0.580496, 0.412889, 0.275283, & 
4377         0.162745, 7.63929E-02, 1.82553E-02, 3.72432E-03,            &            
4378         2.14946E-03, 1.66320E-03, 1.59940E-03/                                   
4379                                                                                  
4380 !     Compute the optical depth by interpolating in ln(pressure) and             
4381 !     temperature.  Below LAYTROP, the water vapor self-continuum is             
4382 !     interpolated (in temperature) separately.                                  
4383 !cdir novector
4384       DO 2500 LAY = 1, LAYTROP                                                   
4385          WATER = 1.E20 * COLH2O(LAY) / COLDRY(LAY)                               
4386          H2OPARAM = WATER/(WATER +.002)                                          
4387          DO 1800 IFRAC = 2, 12                                                   
4388             IF (H2OPARAM .GE. REFPARAM(IFRAC)) GO TO 1900                        
4389  1800    CONTINUE                                                                
4390  1900    CONTINUE                                                                
4391          FRACINT = (H2OPARAM-REFPARAM(IFRAC))/    & 
4392               (REFPARAM(IFRAC-1)-REFPARAM(IFRAC))                                
4393                                                                                  
4394          FP = FAC11(LAY) + FAC01(LAY)                                            
4395          IFP = 2.E2*FP+0.5                                                       
4396          IF (IFP.LE.0) IFP = 0                                                   
4397          FC00(LAY) = FAC00(LAY) * CORR2(IFP)                                     
4398          FC10(LAY) = FAC10(LAY) * CORR2(IFP)                                     
4399          FC01(LAY) = FAC01(LAY) * CORR1(IFP)                                     
4400          FC11(LAY) = FAC11(LAY) * CORR1(IFP)                                     
4401          IND0 = ((JP(LAY)-1)*5+(JT(LAY)-1))*NSPA(2) + 1                          
4402          IND1 = (JP(LAY)*5+(JT1(LAY)-1))*NSPA(2) + 1                             
4403          INDS = INDSELF(LAY)                                                     
4404          DO 2000 IG = 1, NG2                                                     
4405             TAUG(NGS1+IG,LAY) = COLH2O(LAY) *                   &                
4406                 (FC00(LAY) * ABSA2(IND0,IG) +                    &                
4407                  FC10(LAY) * ABSA2(IND0+1,IG) +                  &                
4408                  FC01(LAY) * ABSA2(IND1,IG) +                    &                
4409                  FC11(LAY) * ABSA2(IND1+1,IG) +                  &                
4410                  SELFFAC(LAY) * (SELFREFC2(INDS,IG) +             &                
4411                  SELFFRAC(LAY) *                                &                
4412                  (SELFREFC2(INDS+1,IG) - SELFREFC2(INDS,IG))) +     &                
4413                  FORFAC(LAY) * FORREFC2(IG))                                       
4414             PFRAC(NGS1+IG,LAY) = FRACREFAC2(IG,IFRAC) + FRACINT * &
4415                  (FRACREFAC2(IG,IFRAC-1)-FRACREFAC2(IG,IFRAC))                       
4416  2000    CONTINUE                                                                
4417  2500 CONTINUE                                                                   
4418                                                                                  
4419 !cdir novector
4420       DO 3500 LAY = LAYTROP+1, NLAYERS                                           
4421          FP = FAC11(LAY) + FAC01(LAY)                                            
4422          IFP = 2.E2*FP+0.5                                                       
4423          IF (IFP.LE.0) IFP = 0                                                   
4424          FC00(LAY) = FAC00(LAY) * CORR2(IFP)                                     
4425          FC10(LAY) = FAC10(LAY) * CORR2(IFP)                                     
4426          FC01(LAY) = FAC01(LAY) * CORR1(IFP)                                     
4427          FC11(LAY) = FAC11(LAY) * CORR1(IFP)                                     
4428          IND0 = ((JP(LAY)-13)*5+(JT(LAY)-1))*NSPB(2) + 1                         
4429          IND1 = ((JP(LAY)-12)*5+(JT1(LAY)-1))*NSPB(2) + 1                        
4430          DO 3000 IG = 1, NG2                                                     
4431             TAUG(NGS1+IG,LAY) = COLH2O(LAY) *                  & 
4432                 (FC00(LAY) * ABSB2(IND0,IG) +                   &                  
4433                  FC10(LAY) * ABSB2(IND0+1,IG) +                 &                  
4434                  FC01(LAY) * ABSB2(IND1,IG) +                   &                  
4435                  FC11(LAY) * ABSB2(IND1+1,IG) +                 &                  
4436                  FORFAC(LAY) * FORREFC2(IG))                                       
4437             PFRAC(NGS1+IG,LAY) = FRACREFBC2(IG)                                    
4438  3000    CONTINUE                                                                
4439  3500 CONTINUE                                                                   
4440                                                                                  
4441       END SUBROUTINE TAUGB2
4442                                                                                  
4443 !-----------------------------------------------------------------------------    
4444       SUBROUTINE TAUGB3(kts,ktep1,COLH2O,COLCO2,COLN2O,FAC00,FAC01,FAC10,    &
4445                         FAC11,FORFAC,SELFFAC,SELFFRAC,JP,JT,JT1,INDSELF,     &
4446                         PFRAC,TAUG,LAYTROP                                   )
4447 !-----------------------------------------------------------------------------    
4448                                                                                  
4449 !     BAND 3:  500-630 cm-1 (low - H2O,CO2; high - H2O,CO2)                      
4450                                                                                  
4451       INTEGER, PARAMETER :: NGS2=22                                      
4452                                                                                  
4453       INTEGER, INTENT(IN )                      :: kts,ktep1
4454 
4455       INTEGER, INTENT(IN )                      ::  LAYTROP
4456 
4457       REAL, DIMENSION( NGPT,kts:ktep1 ),                    &
4458             INTENT(INOUT)        ::                  PFRAC, &
4459                                                       TAUG
4460 
4461       REAL, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::        &
4462                                                     COLH2O, &
4463                                                     COLCO2, &
4464                                                     COLN2O, &
4465                                                      FAC00, &
4466                                                      FAC01, &
4467                                                      FAC10, &
4468                                                      FAC11, &
4469                                                     FORFAC, &
4470                                                    SELFFAC, &
4471                                                   SELFFRAC 
4472  
4473       INTEGER, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::     &
4474                                                         JP, &
4475                                                         JT, &
4476                                                        JT1, &
4477                                                    INDSELF
4478 
4479 ! This compiler directive was added to insure private common block storage       
4480 ! in multi-tasked mode on a CRAY or SGI for all commons except those that        
4481 ! carry constants.                                                               
4482                                                                                  
4483       DIMENSION H2OREF(59),CO2REF(59), ETAREF(10)                                
4484       REAL N2OMULT,N2OREF(59)                                              
4485                                                                                  
4486       DATA ETAREF/  &                                                             
4487            0.,0.125,0.25,0.375,0.5,0.625,0.75,0.875,0.9875,1.0/                  
4488       DATA H2OREF/  &                                                             
4489            1.87599E-02,1.22233E-02,5.89086E-03,2.76753E-03,1.40651E-03, &
4490            7.59698E-04,3.88758E-04,1.65422E-04,3.71895E-05,7.47648E-06, &        
4491            4.30818E-06,3.33194E-06,3.20393E-06,3.16186E-06,3.25235E-06, &        
4492            3.42258E-06,3.62884E-06,3.91482E-06,4.14875E-06,4.30810E-06, &        
4493            4.44204E-06,4.57783E-06,4.70865E-06,4.79432E-06,4.86971E-06, &        
4494            4.92603E-06,4.96688E-06,4.99628E-06,5.05266E-06,5.12658E-06, &        
4495            5.25028E-06,5.35708E-06,5.45085E-06,5.48304E-06,5.50000E-06, &        
4496            5.50000E-06,5.45359E-06,5.40468E-06,5.35576E-06,5.25327E-06, &        
4497            5.14362E-06,5.03396E-06,4.87662E-06,4.69787E-06,4.51911E-06, &        
4498            4.33600E-06,4.14416E-06,3.95232E-06,3.76048E-06,3.57217E-06, &        
4499            3.38549E-06,3.19881E-06,3.01212E-06,2.82621E-06,2.64068E-06, &        
4500            2.45515E-06,2.26962E-06,2.08659E-06,1.93029E-06/                      
4501       DATA N2OREF/  & 
4502            3.20000E-07,3.20000E-07,3.20000E-07,3.20000E-07,3.20000E-07, &
4503            3.19652E-07,3.15324E-07,3.03830E-07,2.94221E-07,2.84953E-07, &        
4504            2.76714E-07,2.64709E-07,2.42847E-07,2.09547E-07,1.71945E-07, &        
4505            1.37491E-07,1.13319E-07,1.00354E-07,9.12812E-08,8.54633E-08, &        
4506            8.03631E-08,7.33718E-08,6.59754E-08,5.60386E-08,4.70901E-08, &        
4507            3.99774E-08,3.29786E-08,2.60642E-08,2.10663E-08,1.65918E-08, &        
4508            1.30167E-08,1.00900E-08,7.62490E-09,6.11592E-09,4.66725E-09, &        
4509            3.28574E-09,2.84838E-09,2.46198E-09,2.07557E-09,1.85507E-09, &        
4510            1.65675E-09,1.45843E-09,1.31948E-09,1.20716E-09,1.09485E-09, &        
4511            9.97803E-10,9.31260E-10,8.64721E-10,7.98181E-10,7.51380E-10, &        
4512            7.13670E-10,6.75960E-10,6.38250E-10,6.09811E-10,5.85998E-10, &        
4513            5.62185E-10,5.38371E-10,5.15183E-10,4.98660E-10/                      
4514       DATA CO2REF/ &                                                             
4515            53*3.55E-04, 3.5470873E-04, 3.5427220E-04, 3.5383567E-04,    &
4516            3.5339911E-04, 3.5282588E-04, 3.5079606E-04/                          
4517                         
4518       STRRAT = 1.19268                                                           
4519                                                                                  
4520 !     Compute the optical depth by interpolating in ln(pressure),                
4521 !     temperature, and appropriate species.  Below LAYTROP, the water            
4522 !     vapor self-continuum is interpolated (in temperature) separately.          
4523 
4524 !cdir novector
4525       DO 2500 LAY = 1, LAYTROP                                                   
4526          SPECCOMB = COLH2O(LAY) + STRRAT*COLCO2(LAY)                             
4527          SPECPARM = COLH2O(LAY)/SPECCOMB                                         
4528          IF (SPECPARM .GE. ONEMINUS) SPECPARM = ONEMINUS                         
4529          SPECMULT = 8.*(SPECPARM)                                                
4530          JS = 1 + INT(SPECMULT)                                                  
4531          FS = MOD(SPECMULT,1.0)                                                 
4532          IF (JS .EQ. 8) THEN                                                     
4533             IF (FS .GE. 0.9) THEN                                                
4534                JS = 9                                                            
4535                FS = 10. * (FS - 0.9)                                             
4536             ELSE                                                                 
4537                FS = FS/0.9                                                       
4538             ENDIF                                                                
4539          ENDIF                                                                   
4540          NS = JS + INT(FS + 0.5)                                                 
4541          FP = FAC01(LAY) + FAC11(LAY)                                            
4542          FAC000 = (1. - FS) * FAC00(LAY)                                         
4543          FAC010 = (1. - FS) * FAC10(LAY)                                         
4544          FAC100 = FS * FAC00(LAY)                                                
4545          FAC110 = FS * FAC10(LAY)                                                
4546          FAC001 = (1. - FS) * FAC01(LAY)                                         
4547          FAC011 = (1. - FS) * FAC11(LAY)                                         
4548          FAC101 = FS * FAC01(LAY)                                                
4549          FAC111 = FS * FAC11(LAY)                                                
4550          IND0 = ((JP(LAY)-1)*5+(JT(LAY)-1))*NSPA(3) + JS                         
4551          IND1 = (JP(LAY)*5+(JT1(LAY)-1))*NSPA(3) + JS                            
4552          INDS = INDSELF(LAY)                                                     
4553          COLREF1 = N2OREF(JP(LAY))                                               
4554          COLREF2 = N2OREF(JP(LAY)+1)                                             
4555          IF (NS .EQ. 10) THEN                                                    
4556             WCOMB1 = H2OREF(JP(LAY))                                             
4557             WCOMB2 = H2OREF(JP(LAY)+1)                                           
4558          ELSE                                                                    
4559             WCOMB1 = STRRAT * CO2REF(JP(LAY))/(1.-ETAREF(NS))                    
4560             WCOMB2 = STRRAT * CO2REF(JP(LAY)+1)/(1.-ETAREF(NS))                  
4561          ENDIF                                                                   
4562          RATIO = (COLREF1/WCOMB1)+FP*((COLREF2/WCOMB2)-(COLREF1/WCOMB1))         
4563          CURRN2O = SPECCOMB * RATIO                                              
4564          N2OMULT = COLN2O(LAY) - CURRN2O                                         
4565 !!DIR$ VECTOR                                                                     
4566          DO 2000 IG = 1, NG3                                                     
4567             TAUG(NGS2+IG,LAY) = SPECCOMB *                     & 
4568                 (FAC000 * ABSA3(IND0,IG) +                      &                 
4569                  FAC100 * ABSA3(IND0+1,IG) +                    &                 
4570                  FAC010 * ABSA3(IND0+10,IG) +                   &                 
4571                  FAC110 * ABSA3(IND0+11,IG) +                   &                 
4572                  FAC001 * ABSA3(IND1,IG) +                      &                 
4573                  FAC101 * ABSA3(IND1+1,IG) +                    &                 
4574                  FAC011 * ABSA3(IND1+10,IG) +                   &                 
4575                  FAC111 * ABSA3(IND1+11,IG)) +                  &                 
4576                  COLH2O(LAY) *                                 &                 
4577                  (SELFFAC(LAY) * (SELFREFC3(INDS,IG) +           &                 
4578                  SELFFRAC(LAY) *                               &                 
4579                  (SELFREFC3(INDS+1,IG) - SELFREFC3(INDS,IG))) +    &                 
4580                  FORFAC(LAY) * FORREFC3(IG))                     &                 
4581                  + N2OMULT * ABSN2OAC3(IG)                                         
4582             PFRAC(NGS2+IG,LAY) = FRACREFAC3(IG,JS) + FS *        & 
4583                  (FRACREFAC3(IG,JS+1) - FRACREFAC3(IG,JS))                           
4584  2000    CONTINUE                                                                
4585  2500 CONTINUE                                                                   
4586                                                                                  
4587 !!DIR$ NOVECTOR                                                                   
4588 !cdir novector
4589       DO 3500 LAY = LAYTROP+1, NLAYERS                                           
4590          SPECCOMB = COLH2O(LAY) + STRRAT*COLCO2(LAY)                             
4591          SPECPARM = COLH2O(LAY)/SPECCOMB                                         
4592          IF (SPECPARM .GE. ONEMINUS) SPECPARM = ONEMINUS                         
4593          SPECMULT = 4.*(SPECPARM)                                                
4594          JS = 1 + INT(SPECMULT)                                                  
4595          FS = MOD(SPECMULT,1.0)                                                 
4596          NS = JS + INT(FS + 0.5)                                                 
4597          FP = FAC01(LAY) + FAC11(LAY)                                            
4598          FAC000 = (1. - FS) * FAC00(LAY)                                         
4599          FAC010 = (1. - FS) * FAC10(LAY)                                         
4600          FAC100 = FS * FAC00(LAY)                                                
4601          FAC110 = FS * FAC10(LAY)                                                
4602          FAC001 = (1. - FS) * FAC01(LAY)                                         
4603          FAC011 = (1. - FS) * FAC11(LAY)                                         
4604          FAC101 = FS * FAC01(LAY)                                                
4605          FAC111 = FS * FAC11(LAY)                                                
4606          IND0 = ((JP(LAY)-13)*5+(JT(LAY)-1))*NSPB(3) + JS                        
4607          IND1 = ((JP(LAY)-12)*5+(JT1(LAY)-1))*NSPB(3) + JS                       
4608          COLREF1 = N2OREF(JP(LAY))                                               
4609          COLREF2 = N2OREF(JP(LAY)+1)                                             
4610          IF (NS .EQ. 5) THEN                                                     
4611             WCOMB1 = H2OREF(JP(LAY))                                             
4612             WCOMB2 = H2OREF(JP(LAY)+1)                                           
4613          ELSE                                                                    
4614             WCOMB1 = STRRAT * CO2REF(JP(LAY))/(1.-ETAREF(NS))                    
4615             WCOMB2 = STRRAT * CO2REF(JP(LAY)+1)/(1.-ETAREF(NS))                  
4616          ENDIF                                                                   
4617          RATIO = (COLREF1/WCOMB1)+FP*((COLREF2/WCOMB2)-(COLREF1/WCOMB1))         
4618          CURRN2O = SPECCOMB * RATIO                                              
4619          N2OMULT = COLN2O(LAY) - CURRN2O                                         
4620 !!DIR$ VECTOR                                                                     
4621          DO 3000 IG = 1, NG3                                                     
4622             TAUG(NGS2+IG,LAY) = SPECCOMB *                 &
4623                 (FAC000 * ABSB3(IND0,IG) +                  &                     
4624                  FAC100 * ABSB3(IND0+1,IG) +                &                     
4625                  FAC010 * ABSB3(IND0+5,IG) +                &                     
4626                  FAC110 * ABSB3(IND0+6,IG) +                &                     
4627                  FAC001 * ABSB3(IND1,IG) +                  &                     
4628                  FAC101 * ABSB3(IND1+1,IG) +                &                     
4629                  FAC011 * ABSB3(IND1+5,IG) +                &                     
4630                  FAC111 * ABSB3(IND1+6,IG)) +               &                     
4631                  COLH2O(LAY) * FORFAC(LAY) * FORREFC3(IG)    &                     
4632                  + N2OMULT * ABSN2OBC3(IG)                                         
4633             PFRAC(NGS2+IG,LAY) = FRACREFBC3(IG,JS) + FS *    & 
4634                  (FRACREFBC3(IG,JS+1) - FRACREFBC3(IG,JS))                           
4635  3000    CONTINUE                                                                
4636  3500 CONTINUE                                                                   
4637                                                                                  
4638       END SUBROUTINE TAUGB3
4639                                                                                  
4640 !----------------------------------------------------------------------------    
4641       SUBROUTINE TAUGB4(kts,ktep1,COLH2O,COLCO2,COLO3,FAC00,FAC01,FAC10,    &
4642                         FAC11,SELFFAC,SELFFRAC,JP,JT,JT1,INDSELF,           &
4643                         PFRAC,TAUG,LAYTROP                                  )
4644 !----------------------------------------------------------------------------    
4645                                                                                  
4646 !     BAND 4:  630-700 cm-1 (low - H2O,CO2; high - O3,CO2)                       
4647                                                                                  
4648       INTEGER, PARAMETER :: NGS3=38                                      
4649                                                                                  
4650       INTEGER, INTENT(IN )                      :: kts,ktep1
4651 
4652       INTEGER, INTENT(IN )                      ::  LAYTROP
4653 
4654       REAL, DIMENSION( NGPT,kts:ktep1 ),                    &
4655             INTENT(INOUT)        ::                  PFRAC, &
4656                                                       TAUG
4657 
4658       REAL, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::        &
4659                                                     COLH2O, &
4660                                                     COLCO2, &
4661                                                      COLO3, &
4662                                                      FAC00, &
4663                                                      FAC01, &
4664                                                      FAC10, &
4665                                                      FAC11, &
4666                                                    SELFFAC, &
4667                                                   SELFFRAC 
4668  
4669       INTEGER, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::     &
4670                                                         JP, &
4671                                                         JT, &
4672                                                        JT1, &
4673                                                    INDSELF
4674 
4675 ! This compiler directive was added to insure private common block storage       
4676 ! in multi-tasked mode on a CRAY or SGI for all commons except those that        
4677 ! carry constants.                                                               
4678                                                                                  
4679       STRRAT1 = 850.577                                                          
4680       STRRAT2 = 35.7416                                                          
4681                                                                                  
4682 !     Compute the optical depth by interpolating in ln(pressure),                
4683 !     temperature, and appropriate species.  Below LAYTROP, the water            
4684 !     vapor self-continuum is interpolated (in temperature) separately.          
4685 !!DIR$ NOVECTOR                                                                   
4686 !cdir novector
4687       DO 2500 LAY = 1, LAYTROP                                                   
4688          SPECCOMB = COLH2O(LAY) + STRRAT1*COLCO2(LAY)                            
4689          SPECPARM = COLH2O(LAY)/SPECCOMB                                         
4690          IF (SPECPARM .GE. ONEMINUS) SPECPARM = ONEMINUS                         
4691          SPECMULT = 8.*(SPECPARM)                                                
4692          JS = 1 + INT(SPECMULT)                                                  
4693          FS = MOD(SPECMULT,1.0)                                                 
4694          FAC000 = (1. - FS) * FAC00(LAY)                                         
4695          FAC010 = (1. - FS) * FAC10(LAY)                                         
4696          FAC100 = FS * FAC00(LAY)                                                
4697          FAC110 = FS * FAC10(LAY)                                                
4698          FAC001 = (1. - FS) * FAC01(LAY)                                         
4699          FAC011 = (1. - FS) * FAC11(LAY)                                         
4700          FAC101 = FS * FAC01(LAY)                                                
4701          FAC111 = FS * FAC11(LAY)                                                
4702          IND0 = ((JP(LAY)-1)*5+(JT(LAY)-1))*NSPA(4) + JS                         
4703          IND1 = (JP(LAY)*5+(JT1(LAY)-1))*NSPA(4) + JS                            
4704          INDS = INDSELF(LAY)                                                     
4705 !!DIR$ VECTOR                                                                     
4706          DO 2000 IG = 1, NG4                                                     
4707             TAUG(NGS3+IG,LAY) = SPECCOMB *                    &
4708                 (FAC000 * ABSA4(IND0,IG) +                     &                  
4709                  FAC100 * ABSA4(IND0+1,IG) +                   &                  
4710                  FAC010 * ABSA4(IND0+9,IG) +                   &                  
4711                  FAC110 * ABSA4(IND0+10,IG) +                  &                  
4712                  FAC001 * ABSA4(IND1,IG) +                     &                  
4713                  FAC101 * ABSA4(IND1+1,IG) +                   &                  
4714                  FAC011 * ABSA4(IND1+9,IG) +                   &                  
4715                  FAC111 * ABSA4(IND1+10,IG)) +                 &                  
4716                  COLH2O(LAY) *                                &                  
4717                  SELFFAC(LAY) * (SELFREFC4(INDS,IG) +           &                  
4718                  SELFFRAC(LAY) *                              &                  
4719                  (SELFREFC4(INDS+1,IG) - SELFREFC4(INDS,IG)))                        
4720             PFRAC(NGS3+IG,LAY) = FRACREFAC4(IG,JS) + FS *       &                  
4721                  (FRACREFAC4(IG,JS+1) - FRACREFAC4(IG,JS))                           
4722  2000    CONTINUE                                                                
4723  2500 CONTINUE                                                                   
4724                                                                                  
4725 !!DIR$ NOVECTOR                                                                   
4726 !cdir novector
4727       DO 3500 LAY = LAYTROP+1, NLAYERS                                           
4728          SPECCOMB = COLO3(LAY) + STRRAT2*COLCO2(LAY)                             
4729          SPECPARM = COLO3(LAY)/SPECCOMB                                          
4730          IF (SPECPARM .GE. ONEMINUS) SPECPARM = ONEMINUS                         
4731          SPECMULT = 4.*(SPECPARM)                                                
4732          JS = 1 + INT(SPECMULT)                                                  
4733          FS = MOD(SPECMULT,1.0)                                                 
4734          IF (JS .GT. 1) THEN                                                     
4735             JS = JS + 1                                                          
4736          ELSEIF (FS .GE. 0.0024) THEN                                            
4737             JS = 2                                                               
4738             FS = (FS - 0.0024)/0.9976                                            
4739          ELSE                                                                    
4740             JS = 1                                                               
4741             FS = FS/0.0024                                                       
4742          ENDIF                                                                   
4743          FAC000 = (1. - FS) * FAC00(LAY)                                         
4744          FAC010 = (1. - FS) * FAC10(LAY)                                         
4745          FAC100 = FS * FAC00(LAY)                                                
4746          FAC110 = FS * FAC10(LAY)                                                
4747          FAC001 = (1. - FS) * FAC01(LAY)                                         
4748          FAC011 = (1. - FS) * FAC11(LAY)                                         
4749          FAC101 = FS * FAC01(LAY)                                                
4750          FAC111 = FS * FAC11(LAY)                                                
4751          IND0 = ((JP(LAY)-13)*5+(JT(LAY)-1))*NSPB(4) + JS                        
4752          IND1 = ((JP(LAY)-12)*5+(JT1(LAY)-1))*NSPB(4) + JS                       
4753 !!DIR$ VECTOR                                                                     
4754          DO 3000 IG = 1, NG4                                                     
4755             TAUG(NGS3+IG,LAY) = SPECCOMB *              &                        
4756                 (FAC000 * ABSB4(IND0,IG) +               &                        
4757                  FAC100 * ABSB4(IND0+1,IG) +             &                        
4758                  FAC010 * ABSB4(IND0+6,IG) +             &                        
4759                  FAC110 * ABSB4(IND0+7,IG) +             &                        
4760                  FAC001 * ABSB4(IND1,IG) +               &                        
4761                  FAC101 * ABSB4(IND1+1,IG) +             &                        
4762                  FAC011 * ABSB4(IND1+6,IG) +             &                        
4763                  FAC111 * ABSB4(IND1+7,IG))                                       
4764             PFRAC(NGS3+IG,LAY) = FRACREFBC4(IG,JS) + FS * &
4765                  (FRACREFBC4(IG,JS+1) - FRACREFBC4(IG,JS))                           
4766  3000    CONTINUE                                                                
4767  3500 CONTINUE                                                                   
4768                                                                                  
4769       END SUBROUTINE TAUGB4
4770                                                                                  
4771 !----------------------------------------------------------------------------   
4772       SUBROUTINE TAUGB5(kts,ktep1,COLH2O,COLCO2,COLO3,FAC00,FAC01,FAC10,    &
4773                         FAC11,SELFFAC,SELFFRAC,JP,JT,JT1,INDSELF,WX,        &
4774                         PFRAC,TAUG,LAYTROP                                  )
4775 !----------------------------------------------------------------------------   
4776                                                                                  
4777 !     BAND 5:  700-820 cm-1 (low - H2O,CO2; high - O3,CO2)                       
4778                                                                                  
4779       INTEGER, PARAMETER :: NGS4=52                                      
4780                                                                                  
4781       INTEGER, INTENT(IN )                      :: kts,ktep1
4782 
4783       INTEGER, INTENT(IN )                      ::  LAYTROP
4784 
4785       REAL, DIMENSION( NGPT,kts:ktep1 ),                    &
4786             INTENT(INOUT)        ::                  PFRAC, &
4787                                                       TAUG
4788 
4789       REAL, DIMENSION( MAXXSEC,kts:ktep1 ),                 &
4790             INTENT(IN   )        ::                     WX
4791 
4792       REAL, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::        &
4793                                                     COLH2O, &
4794                                                     COLCO2, &
4795                                                      COLO3, &
4796                                                      FAC00, &
4797                                                      FAC01, &
4798                                                      FAC10, &
4799                                                      FAC11, &
4800                                                    SELFFAC, &
4801                                                   SELFFRAC 
4802  
4803       INTEGER, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::     &
4804                                                         JP, &
4805                                                         JT, &
4806                                                        JT1, &
4807                                                    INDSELF
4808 
4809 ! This compiler directive was added to insure private common block storage       
4810 ! in multi-tasked mode on a CRAY or SGI for all commons except those that        
4811 ! carry constants.                                                               
4812                                                                                  
4813       STRRAT1 = 90.4894                                                          
4814       STRRAT2 = 0.900502                                                         
4815                                                                                  
4816 !     Compute the optical depth by interpolating in ln(pressure),                
4817 !     temperature, and appropriate species.  Below LAYTROP, the water            
4818 !     vapor self-continuum is interpolated (in temperature) separately.          
4819 !!DIR$ NOVECTOR                                                                   
4820 !cdir novector
4821       DO 2500 LAY = 1, LAYTROP                                                   
4822          SPECCOMB = COLH2O(LAY) + STRRAT1*COLCO2(LAY)                            
4823          SPECPARM = COLH2O(LAY)/SPECCOMB                                         
4824          IF (SPECPARM .GE. ONEMINUS) SPECPARM = ONEMINUS                         
4825          SPECMULT = 8.*(SPECPARM)                                                
4826          JS = 1 + INT(SPECMULT)                                                  
4827          FS = MOD(SPECMULT,1.0)                                                 
4828          FAC000 = (1. - FS) * FAC00(LAY)                                         
4829          FAC010 = (1. - FS) * FAC10(LAY)                                         
4830          FAC100 = FS * FAC00(LAY)                                                
4831          FAC110 = FS * FAC10(LAY)                                                
4832          FAC001 = (1. - FS) * FAC01(LAY)                                         
4833          FAC011 = (1. - FS) * FAC11(LAY)                                         
4834          FAC101 = FS * FAC01(LAY)                                                
4835          FAC111 = FS * FAC11(LAY)                                                
4836          IND0 = ((JP(LAY)-1)*5+(JT(LAY)-1))*NSPA(5) + JS                         
4837          IND1 = (JP(LAY)*5+(JT1(LAY)-1))*NSPA(5) + JS                            
4838          INDS = INDSELF(LAY)                                                     
4839 !!DIR$ VECTOR                                                                     
4840          DO 2000 IG = 1, NG5                                                     
4841             TAUG(NGS4+IG,LAY) = SPECCOMB *                    &
4842                 (FAC000 * ABSA5(IND0,IG) +                     &                  
4843                  FAC100 * ABSA5(IND0+1,IG) +                   &                  
4844                  FAC010 * ABSA5(IND0+9,IG) +                   &                  
4845                  FAC110 * ABSA5(IND0+10,IG) +                  &                  
4846                  FAC001 * ABSA5(IND1,IG) +                     &                  
4847                  FAC101 * ABSA5(IND1+1,IG) +                   &                  
4848                  FAC011 * ABSA5(IND1+9,IG) +                   &                  
4849                  FAC111 * ABSA5(IND1+10,IG)) +                 &                  
4850                  COLH2O(LAY) *                                &                  
4851                  SELFFAC(LAY) * (SELFREFC5(INDS,IG) +           &                  
4852                  SELFFRAC(LAY) *                              &                  
4853                  (SELFREFC5(INDS+1,IG) - SELFREFC5(INDS,IG)))     &                  
4854                  + WX(1,LAY) * CCL4C5(IG)                                          
4855             PFRAC(NGS4+IG,LAY) = FRACREFAC5(IG,JS) + FS *       &                  
4856                  (FRACREFAC5(IG,JS+1) - FRACREFAC5(IG,JS))                           
4857  2000    CONTINUE                                                                
4858  2500 CONTINUE                                                                   
4859                                                                                  
4860 !!DIR$ NOVECTOR                                                                   
4861 !cdir novector
4862       DO 3500 LAY = LAYTROP+1, NLAYERS                                           
4863          SPECCOMB = COLO3(LAY) + STRRAT2*COLCO2(LAY)                             
4864          SPECPARM = COLO3(LAY)/SPECCOMB                                          
4865          IF (SPECPARM .GE. ONEMINUS) SPECPARM = ONEMINUS                         
4866          SPECMULT = 4.*(SPECPARM)                                                
4867          JS = 1 + INT(SPECMULT)                                                  
4868          FS = MOD(SPECMULT,1.0)                                                 
4869          FAC000 = (1. - FS) * FAC00(LAY)                                         
4870          FAC010 = (1. - FS) * FAC10(LAY)                                         
4871          FAC100 = FS * FAC00(LAY)                                                
4872          FAC110 = FS * FAC10(LAY)                                                
4873          FAC001 = (1. - FS) * FAC01(LAY)                                         
4874          FAC011 = (1. - FS) * FAC11(LAY)                                         
4875          FAC101 = FS * FAC01(LAY)                                                
4876          FAC111 = FS * FAC11(LAY)                                                
4877          IND0 = ((JP(LAY)-13)*5+(JT(LAY)-1))*NSPB(5) + JS                        
4878          IND1 = ((JP(LAY)-12)*5+(JT1(LAY)-1))*NSPB(5) + JS                       
4879 !!DIR$ VECTOR                                                                     
4880          DO 3000 IG = 1, NG5                                                     
4881             TAUG(NGS4+IG,LAY) = SPECCOMB *          &
4882                 (FAC000 * ABSB5(IND0,IG) +           &                            
4883                  FAC100 * ABSB5(IND0+1,IG) +         &                            
4884                  FAC010 * ABSB5(IND0+5,IG) +         &                            
4885                  FAC110 * ABSB5(IND0+6,IG) +         &                            
4886                  FAC001 * ABSB5(IND1,IG) +           &                            
4887                  FAC101 * ABSB5(IND1+1,IG) +         &                            
4888                  FAC011 * ABSB5(IND1+5,IG) +         &                            
4889                  FAC111 * ABSB5(IND1+6,IG))          &                            
4890                  + WX(1,LAY) * CCL4C5(IG)                                          
4891             PFRAC(NGS4+IG,LAY) = FRACREFBC5(IG,JS) + FS *  &                       
4892                  (FRACREFBC5(IG,JS+1) - FRACREFBC5(IG,JS))                           
4893  3000    CONTINUE                                                                
4894  3500 CONTINUE                                                                   
4895                                                                                  
4896       END SUBROUTINE TAUGB5
4897                                                                                  
4898 !-----------------------------------------------------------------------------    
4899       SUBROUTINE TAUGB6(kts,ktep1,COLH2O,CO2MULT,FAC00,FAC01,FAC10,FAC11,    &
4900                         SELFFAC,SELFFRAC,JP,JT,JT1,INDSELF,WX,PFRAC,TAUG,    &
4901                         LAYTROP                                              )
4902 !-----------------------------------------------------------------------------    
4903                                                                                  
4904 !     BAND 6:  820-980 cm-1 (low - H2O; high - nothing)                          
4905                                                                                  
4906       INTEGER, PARAMETER :: NGS5=68                                       
4907                                                                                  
4908       INTEGER, INTENT(IN )                      :: kts,ktep1
4909 
4910       INTEGER, INTENT(IN )                      ::  LAYTROP
4911 
4912       REAL, DIMENSION( NGPT,kts:ktep1 ),                    &
4913             INTENT(INOUT)        ::                  PFRAC, &
4914                                                       TAUG
4915 
4916       REAL, DIMENSION( MAXXSEC,kts:ktep1 ),                 &
4917             INTENT(IN   )        ::                     WX
4918 
4919       REAL, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::        &
4920                                                     COLH2O, &
4921                                                    CO2MULT, &
4922                                                      FAC00, &
4923                                                      FAC01, &
4924                                                      FAC10, &
4925                                                      FAC11, &
4926                                                    SELFFAC, &
4927                                                   SELFFRAC 
4928  
4929       INTEGER, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::     &
4930                                                         JP, &
4931                                                         JT, &
4932                                                        JT1, &
4933                                                    INDSELF
4934 
4935 ! This compiler directive was added to insure private common block storage       
4936 ! in multi-tasked mode on a CRAY or SGI for all commons except those that        
4937 ! carry constants.                                                               
4938                                                                                  
4939 !     Compute the optical depth by interpolating in ln(pressure) and             
4940 !     temperature. The water vapor self-continuum is interpolated                
4941 !     (in temperature) separately.                                               
4942 !cdir novector
4943       DO 2500 LAY = 1, LAYTROP                                                   
4944          IND0 = ((JP(LAY)-1)*5+(JT(LAY)-1))*NSPA(6) + 1                          
4945          IND1 = (JP(LAY)*5+(JT1(LAY)-1))*NSPA(6) + 1                             
4946          INDS = INDSELF(LAY)                                                     
4947          DO 2000 IG = 1, NG6                                                     
4948             TAUG(NGS5+IG,LAY) = COLH2O(LAY) *              & 
4949                 (FAC00(LAY) * ABSA6(IND0,IG) +              &                     
4950                  FAC10(LAY) * ABSA6(IND0+1,IG) +            &                     
4951                  FAC01(LAY) * ABSA6(IND1,IG) +              &                     
4952                  FAC11(LAY) * ABSA6(IND1+1,IG) +            &                     
4953                  SELFFAC(LAY) * (SELFREFC6(INDS,IG) +        &                     
4954                  SELFFRAC(LAY)*                            &                     
4955                  (SELFREFC6(INDS+1,IG)-SELFREFC6(INDS,IG))))   &                     
4956                  + WX(2,LAY) * CFC11ADJC6(IG)                &                     
4957                  + WX(3,LAY) * CFC12C6(IG)                   &                     
4958                  + CO2MULT(LAY) * ABSCO2C6(IG)                                     
4959             PFRAC(NGS5+IG,LAY) = FRACREFAC6(IG)                                    
4960  2000    CONTINUE                                                                
4961  2500 CONTINUE                                                                   
4962                                                                                  
4963 !     Nothing important goes on above LAYTROP in this band.                      
4964 !cdir novector
4965       DO 3500 LAY = LAYTROP+1, NLAYERS                                           
4966          DO 3000 IG = 1, NG6                                                     
4967             TAUG(NGS5+IG,LAY) = 0.0                        & 
4968                  + WX(2,LAY) * CFC11ADJC6(IG)                &                     
4969                  + WX(3,LAY) * CFC12C6(IG)                                         
4970             PFRAC(NGS5+IG,LAY) = FRACREFAC6(IG)                                    
4971  3000    CONTINUE                                                                
4972  3500 CONTINUE                                                                   
4973                                                                                  
4974       END SUBROUTINE TAUGB6
4975                                                                                  
4976 !-----------------------------------------------------------------------------    
4977       SUBROUTINE TAUGB7(kts,ktep1,COLH2O,COLO3,CO2MULT,FAC00,FAC01,FAC10,    &   
4978                         FAC11,SELFFAC,SELFFRAC,JP,JT,JT1,INDSELF,            &
4979                         PFRAC,TAUG,LAYTROP                                   )
4980 !-----------------------------------------------------------------------------    
4981                                                                                  
4982 !     BAND 7:  980-1080 cm-1 (low - H2O,O3; high - O3)                           
4983                                                                                  
4984       INTEGER, PARAMETER :: NGS6=76                                      
4985                                                                                  
4986       INTEGER, INTENT(IN )                      :: kts,ktep1
4987 
4988       INTEGER, INTENT(IN )                      ::  LAYTROP
4989 
4990       REAL, DIMENSION( NGPT,kts:ktep1 ),                    &
4991             INTENT(INOUT)        ::                  PFRAC, &
4992                                                       TAUG
4993 
4994       REAL, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::        &
4995                                                     COLH2O, &
4996                                                      COLO3, &
4997                                                    CO2MULT, &
4998                                                      FAC00, &
4999                                                      FAC01, &
5000                                                      FAC10, &
5001                                                      FAC11, &
5002                                                    SELFFAC, &
5003                                                   SELFFRAC 
5004  
5005       INTEGER, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::     &
5006                                                         JP, &
5007                                                         JT, &
5008                                                        JT1, &
5009                                                    INDSELF
5010 
5011 ! This compiler directive was added to insure private common block storage       
5012 ! in multi-tasked mode on a CRAY or SGI for all commons except those that        
5013 ! carry constants.                                                               
5014                                                                                  
5015       STRRAT1 = 8.21104E4                                                        
5016                                                                                  
5017 !     Compute the optical depth by interpolating in ln(pressure),                
5018 !     temperature, and appropriate species.  Below LAYTROP, the water            
5019 !     vapor self-continuum is interpolated (in temperature) separately.          
5020 !!DIR$ NOVECTOR                                                                   
5021 !cdir novector
5022       DO 2500 LAY = 1, LAYTROP                                                   
5023          SPECCOMB = COLH2O(LAY) + STRRAT1*COLO3(LAY)                             
5024          SPECPARM = COLH2O(LAY)/SPECCOMB                                         
5025          IF (SPECPARM .GE. ONEMINUS) SPECPARM = ONEMINUS                         
5026          SPECMULT = 8.*SPECPARM                                                  
5027          JS = 1 + INT(SPECMULT)                                                  
5028          FS = MOD(SPECMULT,1.0)                                                 
5029          FAC000 = (1. - FS) * FAC00(LAY)                                         
5030          FAC010 = (1. - FS) * FAC10(LAY)                                         
5031          FAC100 = FS * FAC00(LAY)                                                
5032          FAC110 = FS * FAC10(LAY)                                                
5033          FAC001 = (1. - FS) * FAC01(LAY)                                         
5034          FAC011 = (1. - FS) * FAC11(LAY)                                         
5035          FAC101 = FS * FAC01(LAY)                                                
5036          FAC111 = FS * FAC11(LAY)                                                
5037          IND0 = ((JP(LAY)-1)*5+(JT(LAY)-1))*NSPA(7) + JS                         
5038          IND1 = (JP(LAY)*5+(JT1(LAY)-1))*NSPA(7) + JS                            
5039          INDS = INDSELF(LAY)                                                     
5040 !!DIR$ VECTOR                                                                     
5041          DO 2000 IG = 1, NG7                                                     
5042             TAUG(NGS6+IG,LAY) = SPECCOMB *                   & 
5043                 (FAC000 * ABSA7(IND0,IG) +                   &                    
5044                  FAC100 * ABSA7(IND0+1,IG) +                 &                    
5045                  FAC010 * ABSA7(IND0+9,IG) +                 &                    
5046                  FAC110 * ABSA7(IND0+10,IG) +                &                    
5047                  FAC001 * ABSA7(IND1,IG) +                   &                    
5048                  FAC101 * ABSA7(IND1+1,IG) +                 &                    
5049                  FAC011 * ABSA7(IND1+9,IG) +                 &                    
5050                  FAC111 * ABSA7(IND1+10,IG)) +               &                    
5051                  COLH2O(LAY) *                               &                    
5052                  SELFFAC(LAY) * (SELFREFC7(INDS,IG) +        &                    
5053                  SELFFRAC(LAY) *                             &                    
5054                  (SELFREFC7(INDS+1,IG) - SELFREFC7(INDS,IG)))&
5055                  + CO2MULT(LAY) * ABSCO2C7(IG)                                     
5056          PFRAC(NGS6+IG,LAY) = FRACREFAC7(IG,JS) + FS *        &                    
5057                  (FRACREFAC7(IG,JS+1) - FRACREFAC7(IG,JS))                           
5058  2000    CONTINUE                                                                
5059  2500 CONTINUE                                                                   
5060                                                                                  
5061 !cdir novector
5062       DO 3500 LAY = LAYTROP+1, NLAYERS                                           
5063          IND0 = ((JP(LAY)-13)*5+(JT(LAY)-1))*NSPB(7) + 1                         
5064          IND1 = ((JP(LAY)-12)*5+(JT1(LAY)-1))*NSPB(7) + 1                        
5065          DO 3000 IG = 1, NG7                                                     
5066             TAUG(NGS6+IG,LAY) = COLO3(LAY) *                & 
5067                 (FAC00(LAY) * ABSB7(IND0,IG) +               &                    
5068                  FAC10(LAY) * ABSB7(IND0+1,IG) +             &                    
5069                  FAC01(LAY) * ABSB7(IND1,IG) +               &                    
5070                  FAC11(LAY) * ABSB7(IND1+1,IG))              &                    
5071                  + CO2MULT(LAY) * ABSCO2C7(IG)                                     
5072             PFRAC(NGS6+IG,LAY) = FRACREFBC7(IG)                                    
5073  3000    CONTINUE                                                                
5074  3500 CONTINUE                                                                   
5075                                                                                  
5076       END SUBROUTINE TAUGB7
5077                                                                                  
5078 !----------------------------------------------------------------------------    
5079       SUBROUTINE TAUGB8(kts,ktep1,COLH2O,COLO3,COLN2O,CO2MULT,              &
5080                         FAC00,FAC01,FAC10,FAC11,SELFFAC,SELFFRAC,           &
5081                         JP,JT,JT1,INDSELF,WX,PFRAC,TAUG,LAYSWTCH            )
5082 !----------------------------------------------------------------------------    
5083                                                                                  
5084 !     BAND 8:  1080-1180 cm-1 (low (i.e.>~300mb) - H2O; high - O3)               
5085                                                                                  
5086       INTEGER, PARAMETER :: NGS7=88                                       
5087                                                                                  
5088       INTEGER, INTENT(IN )                      :: kts,ktep1
5089 
5090       INTEGER, INTENT(IN )                      :: LAYSWTCH
5091 
5092       REAL, DIMENSION( NGPT,kts:ktep1 ),                    &
5093             INTENT(INOUT)        ::                  PFRAC, &
5094                                                       TAUG
5095 
5096       REAL, DIMENSION( MAXXSEC,kts:ktep1 ),                 &
5097             INTENT(IN   )        ::                     WX
5098 
5099       REAL, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::        &
5100                                                     COLH2O, &
5101                                                      COLO3, &
5102                                                     COLN2O, &
5103                                                    CO2MULT, &
5104                                                      FAC00, &
5105                                                      FAC01, &
5106                                                      FAC10, &
5107                                                      FAC11, &
5108                                                    SELFFAC, &
5109                                                   SELFFRAC 
5110  
5111       INTEGER, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::     &
5112                                                         JP, &
5113                                                         JT, &
5114                                                        JT1, &
5115                                                    INDSELF
5116 
5117 ! This compiler directive was added to insure private common block storage       
5118 ! in multi-tasked mode on a CRAY or SGI for all commons except those that        
5119 ! carry constants.                                                               
5120                                                                                  
5121       DIMENSION H2OREF(59),O3REF(59)                                             
5122       REAL N2OMULT,N2OREF(59)                                              
5123                                                                                  
5124       DATA H2OREF/ &                                                             
5125            1.87599E-02,1.22233E-02,5.89086E-03,2.76753E-03,1.40651E-03, &        
5126            7.59698E-04,3.88758E-04,1.65422E-04,3.71895E-05,7.47648E-06, &        
5127            4.30818E-06,3.33194E-06,3.20393E-06,3.16186E-06,3.25235E-06, &        
5128            3.42258E-06,3.62884E-06,3.91482E-06,4.14875E-06,4.30810E-06, &        
5129            4.44204E-06,4.57783E-06,4.70865E-06,4.79432E-06,4.86971E-06, &        
5130            4.92603E-06,4.96688E-06,4.99628E-06,5.05266E-06,5.12658E-06, &        
5131            5.25028E-06,5.35708E-06,5.45085E-06,5.48304E-06,5.50000E-06, &        
5132            5.50000E-06,5.45359E-06,5.40468E-06,5.35576E-06,5.25327E-06, &        
5133            5.14362E-06,5.03396E-06,4.87662E-06,4.69787E-06,4.51911E-06, &        
5134            4.33600E-06,4.14416E-06,3.95232E-06,3.76048E-06,3.57217E-06, &        
5135            3.38549E-06,3.19881E-06,3.01212E-06,2.82621E-06,2.64068E-06, &        
5136            2.45515E-06,2.26962E-06,2.08659E-06,1.93029E-06/                      
5137       DATA N2OREF/ &                                                             
5138            3.20000E-07,3.20000E-07,3.20000E-07,3.20000E-07,3.20000E-07, &        
5139            3.19652E-07,3.15324E-07,3.03830E-07,2.94221E-07,2.84953E-07, &        
5140            2.76714E-07,2.64709E-07,2.42847E-07,2.09547E-07,1.71945E-07, &        
5141            1.37491E-07,1.13319E-07,1.00354E-07,9.12812E-08,8.54633E-08, &        
5142            8.03631E-08,7.33718E-08,6.59754E-08,5.60386E-08,4.70901E-08, &        
5143            3.99774E-08,3.29786E-08,2.60642E-08,2.10663E-08,1.65918E-08, &        
5144            1.30167E-08,1.00900E-08,7.62490E-09,6.11592E-09,4.66725E-09, &        
5145            3.28574E-09,2.84838E-09,2.46198E-09,2.07557E-09,1.85507E-09, &        
5146            1.65675E-09,1.45843E-09,1.31948E-09,1.20716E-09,1.09485E-09, &        
5147            9.97803E-10,9.31260E-10,8.64721E-10,7.98181E-10,7.51380E-10, &        
5148            7.13670E-10,6.75960E-10,6.38250E-10,6.09811E-10,5.85998E-10, &        
5149            5.62185E-10,5.38371E-10,5.15183E-10,4.98660E-10/                      
5150       DATA O3REF/  &                                                             
5151            3.01700E-08,3.47254E-08,4.24769E-08,5.27592E-08,6.69439E-08, &        
5152            8.71295E-08,1.13911E-07,1.56771E-07,2.17878E-07,3.24430E-07, &        
5153            4.65942E-07,5.68057E-07,6.96065E-07,1.11863E-06,1.76175E-06, &        
5154            2.32689E-06,2.95769E-06,3.65930E-06,4.59503E-06,5.31891E-06, &        
5155            5.96179E-06,6.51133E-06,7.06350E-06,7.69169E-06,8.25771E-06, &        
5156            8.70824E-06,8.83245E-06,8.71486E-06,8.09434E-06,7.33071E-06, &        
5157            6.31014E-06,5.36717E-06,4.48289E-06,3.83913E-06,3.28270E-06, &        
5158            2.82351E-06,2.49061E-06,2.16453E-06,1.83845E-06,1.66182E-06, &        
5159            1.50517E-06,1.34852E-06,1.19718E-06,1.04822E-06,8.99264E-07, &        
5160            7.63432E-07,6.53806E-07,5.44186E-07,4.34564E-07,3.64210E-07, &        
5161            3.11938E-07,2.59667E-07,2.07395E-07,1.91456E-07,1.93639E-07, &        
5162            1.95821E-07,1.98004E-07,2.06442E-07,2.81546E-07/                      
5163                                                                                  
5164 !     Compute the optical depth by interpolating in ln(pressure) and             
5165 !     temperature.                                                               
5166 !cdir novector
5167       DO 2500 LAY = 1, LAYSWTCH                                                  
5168          FP = FAC01(LAY) + FAC11(LAY)                                            
5169          IND0 = ((JP(LAY)-1)*5+(JT(LAY)-1))*NSPA(8) + 1                          
5170          IND1 = (JP(LAY)*5+(JT1(LAY)-1))*NSPA(8) + 1                             
5171          INDS = INDSELF(LAY)                                                     
5172          COLREF1 = N2OREF(JP(LAY))                                               
5173          COLREF2 = N2OREF(JP(LAY)+1)                                             
5174          WCOMB1 = H2OREF(JP(LAY))                                                
5175          WCOMB2 = H2OREF(JP(LAY)+1)                                              
5176          RATIO = (COLREF1/WCOMB1)+FP*((COLREF2/WCOMB2)-(COLREF1/WCOMB1))         
5177          CURRN2O = COLH2O(LAY) * RATIO                                           
5178          N2OMULT = COLN2O(LAY) - CURRN2O                                         
5179          DO 2000 IG = 1, NG8                                                     
5180             TAUG(NGS7+IG,LAY) = COLH2O(LAY) *                 &
5181                 (FAC00(LAY) * ABSA8(IND0,IG) +                &                   
5182                  FAC10(LAY) * ABSA8(IND0+1,IG) +              &                   
5183                  FAC01(LAY) * ABSA8(IND1,IG) +                &                   
5184                  FAC11(LAY) * ABSA8(IND1+1,IG) +              &                   
5185                  SELFFAC(LAY) * (SELFREFC8(INDS,IG) +         &                   
5186                  SELFFRAC(LAY) *                              &                   
5187                  (SELFREFC8(INDS+1,IG) - SELFREFC8(INDS,IG))))&                   
5188                  + WX(3,LAY) * CFC12C8(IG)                    &                   
5189                  + WX(4,LAY) * CFC22ADJC8(IG)                 &                   
5190                  + CO2MULT(LAY) * ABSCO2AC8(IG)               &                   
5191                  + N2OMULT * ABSN2OAC8(IG)        
5192             PFRAC(NGS7+IG,LAY) = FRACREFAC8(IG)                                    
5193  2000    CONTINUE                                                                
5194  2500 CONTINUE                                                                   
5195                                                                                  
5196 !cdir novector
5197       DO 3500 LAY = LAYSWTCH+1, NLAYERS                                          
5198          FP = FAC01(LAY) + FAC11(LAY)                                            
5199          IND0 = ((JP(LAY)-7)*5+(JT(LAY)-1))*NSPB(8) + 1                          
5200          IND1 = ((JP(LAY)-6)*5+(JT1(LAY)-1))*NSPB(8) + 1                         
5201          COLREF1 = N2OREF(JP(LAY))                                               
5202          COLREF2 = N2OREF(JP(LAY)+1)                                             
5203          WCOMB1 = O3REF(JP(LAY))                                                 
5204          WCOMB2 = O3REF(JP(LAY)+1)                                               
5205          RATIO = (COLREF1/WCOMB1)+FP*((COLREF2/WCOMB2)-(COLREF1/WCOMB1))         
5206          CURRN2O = COLO3(LAY) * RATIO                                            
5207          N2OMULT = COLN2O(LAY) - CURRN2O                                         
5208          DO 3000 IG = 1, NG8                                                     
5209             TAUG(NGS7+IG,LAY) = COLO3(LAY) *        &
5210                 (FAC00(LAY) * ABSB8(IND0,IG) +       &                            
5211                  FAC10(LAY) * ABSB8(IND0+1,IG) +     &                            
5212                  FAC01(LAY) * ABSB8(IND1,IG) +       &                            
5213                  FAC11(LAY) * ABSB8(IND1+1,IG))      &                            
5214                  + WX(3,LAY) * CFC12C8(IG)            &                            
5215                  + WX(4,LAY) * CFC22ADJC8(IG)         &                            
5216                  + CO2MULT(LAY) * ABSCO2BC8(IG)       &                            
5217                  + N2OMULT * ABSN2OBC8(IG)                                         
5218             PFRAC(NGS7+IG,LAY) = FRACREFBC8(IG)                                    
5219  3000    CONTINUE                                                                
5220  3500 CONTINUE                                                                   
5221                                                                                  
5222       END SUBROUTINE TAUGB8
5223                                                                                  
5224 !-----------------------------------------------------------------------------    
5225       SUBROUTINE TAUGB9(kts,ktep1,COLH2O,COLN2O,COLCH4,FAC00,FAC01,FAC10,    &
5226                         FAC11,SELFFAC,SELFFRAC,JP,JT,JT1,INDSELF,            &
5227                         PFRAC,TAUG,LAYTROP,LAYSWTCH,LAYLOW                   )
5228 !-----------------------------------------------------------------------------    
5229                                                                                  
5230 !     BAND 9:  1180-1390 cm-1 (low - H2O,CH4; high - CH4)                        
5231                                                                                  
5232       INTEGER, PARAMETER :: NGS8=96                                      
5233                                                                                  
5234       INTEGER, INTENT(IN )                      :: kts,ktep1
5235 
5236       INTEGER, INTENT(IN )   ::  LAYTROP,LAYSWTCH,LAYLOW
5237 
5238       REAL, DIMENSION( NGPT,kts:ktep1 ),                    &
5239             INTENT(INOUT)        ::                  PFRAC, &
5240                                                       TAUG
5241 
5242       REAL, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::        &
5243                                                     COLH2O, &
5244                                                     COLN2O, &
5245                                                     COLCH4, &
5246                                                      FAC00, &
5247                                                      FAC01, &
5248                                                      FAC10, &
5249                                                      FAC11, &
5250                                                    SELFFAC, &
5251                                                   SELFFRAC 
5252  
5253       INTEGER, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::     &
5254                                                         JP, &
5255                                                         JT, &
5256                                                        JT1, &
5257                                                    INDSELF
5258 
5259 ! This compiler directive was added to insure private common block storage       
5260 ! in multi-tasked mode on a CRAY or SGI for all commons except those that        
5261 ! carry constants.                                                               
5262                                                                                  
5263       DIMENSION H2OREF(13),CH4REF(13),ETAREF(11)                                 
5264       REAL N2OMULT,N2OREF(13)                                              
5265                                                                                  
5266       DATA N2OREF/  &                                                            
5267            3.20000E-07,3.20000E-07,3.20000E-07,3.20000E-07,3.20000E-07,  &
5268            3.19652E-07,3.15324E-07,3.03830E-07,2.94221E-07,2.84953E-07,  &       
5269            2.76714E-07,2.64709E-07,2.42847E-07/                                  
5270       DATA H2OREF/  &                                                            
5271            1.8759999E-02, 1.2223309E-02, 5.8908667E-03, 2.7675382E-03,   &       
5272            1.4065107E-03, 7.5969833E-04, 3.8875898E-04, 1.6542293E-04,   &       
5273            3.7189537E-05, 7.4764857E-06, 4.3081886E-06, 3.3319423E-06,   &       
5274            3.2039343E-06/                                                        
5275       DATA CH4REF/  &                                                            
5276            1.7000001E-06, 1.7000001E-06, 1.6998713E-06, 1.6904165E-06,   &       
5277            1.6671424E-06, 1.6350652E-06, 1.6097551E-06, 1.5590465E-06,   &       
5278            1.5119849E-06, 1.4741138E-06, 1.4384609E-06, 1.4002215E-06,   &       
5279            1.3573376E-06/                                                        
5280       DATA ETAREF/  &                                                            
5281            0.,0.125,0.25,0.375,0.5,0.625,0.75,0.875,0.96,0.99,1.0/               
5282                                                                                  
5283       STRRAT = 21.6282                                                           
5284       IOFF = 0                                                                   
5285                                                                                  
5286 !     Compute the optical depth by interpolating in ln(pressure),                
5287 !     temperature, and appropriate species.  Below LAYTROP, the water            
5288 !     vapor self-continuum is interpolated (in temperature) separately.          
5289 !cdir novector
5290       DO 2500 LAY = 1, LAYTROP                                                   
5291          SPECCOMB = COLH2O(LAY) + STRRAT*COLCH4(LAY)                             
5292          SPECPARM = COLH2O(LAY)/SPECCOMB                                         
5293          IF (SPECPARM .GE. ONEMINUS) SPECPARM = ONEMINUS                         
5294          SPECMULT = 8.*(SPECPARM)                                                
5295          JS = 1 + INT(SPECMULT)                                                  
5296          JFRAC = JS                                                              
5297          FS = MOD(SPECMULT,1.0)                                                 
5298          FFRAC = FS                                                              
5299          IF (JS .EQ. 8) THEN                                                     
5300             IF (FS .LE. 0.68) THEN                                               
5301                FS = FS/0.68                                                      
5302             ELSEIF (FS .LE. 0.92) THEN                                           
5303                JS = JS + 1                                                       
5304                FS = (FS-0.68)/0.24                                               
5305             ELSE                                                                 
5306                JS = JS + 2                                                       
5307                FS = (FS-0.92)/0.08                                               
5308             ENDIF                                                                
5309          ELSEIF (JS .EQ.9) THEN                                                  
5310             JS = 10                                                              
5311             FS = 1.                                                              
5312             JFRAC = 8                                                            
5313             FFRAC = 1.                                                           
5314          ENDIF                                                                   
5315          FP = FAC01(LAY) + FAC11(LAY)                                            
5316          NS = JS + INT(FS + 0.5)                                                 
5317          FAC000 = (1. - FS) * FAC00(LAY)                                         
5318          FAC010 = (1. - FS) * FAC10(LAY)                                         
5319          FAC100 = FS * FAC00(LAY)                                                
5320          FAC110 = FS * FAC10(LAY)                                                
5321          FAC001 = (1. - FS) * FAC01(LAY)                                         
5322          FAC011 = (1. - FS) * FAC11(LAY)                                         
5323          FAC101 = FS * FAC01(LAY)                                                
5324          FAC111 = FS * FAC11(LAY)                                                
5325          IND0 = ((JP(LAY)-1)*5+(JT(LAY)-1))*NSPA(9) + JS                         
5326          IND1 = (JP(LAY)*5+(JT1(LAY)-1))*NSPA(9) + JS                            
5327          INDS = INDSELF(LAY)                                                     
5328          IF (LAY .EQ. LAYLOW) IOFF = NG9                                         
5329          IF (LAY .EQ. LAYSWTCH) IOFF = 2*NG9                                     
5330          COLREF1 = N2OREF(JP(LAY))                                               
5331          COLREF2 = N2OREF(JP(LAY)+1)                                             
5332          IF (NS .EQ. 11) THEN                                                    
5333             WCOMB1 = H2OREF(JP(LAY))                                             
5334             WCOMB2 = H2OREF(JP(LAY)+1)                                           
5335          ELSE                                                                    
5336             WCOMB1 = STRRAT * CH4REF(JP(LAY))/(1.-ETAREF(NS))                    
5337             WCOMB2 = STRRAT * CH4REF(JP(LAY)+1)/(1.-ETAREF(NS))                  
5338          ENDIF                                                                   
5339          RATIO = (COLREF1/WCOMB1)+FP*((COLREF2/WCOMB2)-(COLREF1/WCOMB1))         
5340          CURRN2O = SPECCOMB * RATIO                                              
5341          N2OMULT = COLN2O(LAY) - CURRN2O                                         
5342          DO 2000 IG = 1, NG9                                                     
5343             TAUG(NGS8+IG,LAY) = SPECCOMB *                      &
5344                 (FAC000 * ABSA9(IND0,IG) +                      &                 
5345                  FAC100 * ABSA9(IND0+1,IG) +                    &                 
5346                  FAC010 * ABSA9(IND0+11,IG) +                   &                 
5347                  FAC110 * ABSA9(IND0+12,IG) +                   &                 
5348                  FAC001 * ABSA9(IND1,IG) +                      &                 
5349                  FAC101 * ABSA9(IND1+1,IG) +                    &                 
5350                  FAC011 * ABSA9(IND1+11,IG) +                   &                 
5351                  FAC111 * ABSA9(IND1+12,IG)) +                  &                 
5352                  COLH2O(LAY) *                                  &                 
5353                  SELFFAC(LAY) * (SELFREFC9(INDS,IG) +           &                 
5354                  SELFFRAC(LAY) *                                &                 
5355                  (SELFREFC9(INDS+1,IG) - SELFREFC9(INDS,IG)))   & 
5356                  + N2OMULT * ABSN2OC9(IG+IOFF)                                     
5357             PFRAC(NGS8+IG,LAY) = FRACREFAC9(IG,JFRAC) + FFRAC *  &                 
5358                  (FRACREFAC9(IG,JFRAC+1) - FRACREFAC9(IG,JFRAC))                     
5359  2000    CONTINUE                                                                
5360  2500 CONTINUE                                                                   
5361                                                                                  
5362 !cdir novector
5363       DO 3500 LAY = LAYTROP+1, NLAYERS                                           
5364          IND0 = ((JP(LAY)-13)*5+(JT(LAY)-1))*NSPB(9) + 1                         
5365          IND1 = ((JP(LAY)-12)*5+(JT1(LAY)-1))*NSPB(9) + 1                        
5366          DO 3000 IG = 1, NG9                                                     
5367             TAUG(NGS8+IG,LAY) = COLCH4(LAY) *                  &                 
5368                 (FAC00(LAY) * ABSB9(IND0,IG) +                  &                 
5369                  FAC10(LAY) * ABSB9(IND0+1,IG) +                &                 
5370                  FAC01(LAY) * ABSB9(IND1,IG) +                  &                 
5371                  FAC11(LAY) * ABSB9(IND1+1,IG))                                   
5372             PFRAC(NGS8+IG,LAY) = FRACREFBC9(IG)                                    
5373  3000    CONTINUE                                                                
5374  3500 CONTINUE                                                                   
5375                                                                                  
5376       END SUBROUTINE TAUGB9
5377                                                                                  
5378 !--------------------------------------------------------------------------------    
5379       SUBROUTINE TAUGB10(kts,ktep1,COLH2O,FAC00,FAC01,FAC10,FAC11,JP,JT,JT1,    &
5380                          PFRAC,TAUG,LAYTROP                                     )
5381 !--------------------------------------------------------------------------------    
5382                                                                                  
5383 !     BAND 10:  1390-1480 cm-1 (low - H2O; high - H2O)                           
5384                                                                                  
5385       INTEGER, PARAMETER :: NGS9=108                                     
5386                                                                                  
5387       INTEGER, INTENT(IN )                      :: kts,ktep1
5388 
5389       INTEGER, INTENT(IN )                      ::  LAYTROP
5390 
5391       REAL, DIMENSION( NGPT,kts:ktep1 ),                    &
5392             INTENT(INOUT)        ::                  PFRAC, &
5393                                                       TAUG
5394 
5395       REAL, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::        &
5396                                                     COLH2O, &
5397                                                      FAC00, &
5398                                                      FAC01, &
5399                                                      FAC10, &
5400                                                      FAC11
5401  
5402       INTEGER, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::     &
5403                                                         JP, &
5404                                                         JT, &
5405                                                        JT1
5406 
5407 ! This compiler directive was added to insure private common block storage       
5408 ! in multi-tasked mode on a CRAY or SGI for all commons except those that        
5409 ! carry constants.                                                               
5410                                                                                  
5411 !     Compute the optical depth by interpolating in ln(pressure) and             
5412 !     temperature.                                                               
5413 !cdir novector
5414       DO 2500 LAY = 1, LAYTROP                                                   
5415          IND0 = ((JP(LAY)-1)*5+(JT(LAY)-1))*NSPA(10) + 1                         
5416          IND1 = (JP(LAY)*5+(JT1(LAY)-1))*NSPA(10) + 1                            
5417          DO 2000 IG = 1, NG10                                                    
5418             TAUG(NGS9+IG,LAY) = COLH2O(LAY) *          &
5419                 (FAC00(LAY) * ABSA10(IND0,IG) +        &                           
5420                  FAC10(LAY) * ABSA10(IND0+1,IG) +      &                           
5421                  FAC01(LAY) * ABSA10(IND1,IG) +        &                           
5422                  FAC11(LAY) * ABSA10(IND1+1,IG))                                   
5423             PFRAC(NGS9+IG,LAY) = FRACREFAC10(IG)                                    
5424  2000    CONTINUE                                                                
5425  2500 CONTINUE                                                                   
5426                                                                                  
5427 !cdir novector
5428       DO 3500 LAY = LAYTROP+1, NLAYERS                                           
5429          IND0 = ((JP(LAY)-13)*5+(JT(LAY)-1))*NSPB(10) + 1                        
5430          IND1 = ((JP(LAY)-12)*5+(JT1(LAY)-1))*NSPB(10) + 1                       
5431          DO 3000 IG = 1, NG10                                                    
5432             TAUG(NGS9+IG,LAY) = COLH2O(LAY) *        &
5433                 (FAC00(LAY) * ABSB10(IND0,IG) +        &                           
5434                  FAC10(LAY) * ABSB10(IND0+1,IG) +      &                           
5435                  FAC01(LAY) * ABSB10(IND1,IG) +        &                           
5436                  FAC11(LAY) * ABSB10(IND1+1,IG))                                   
5437             PFRAC(NGS9+IG,LAY) = FRACREFBC10(IG)                                    
5438  3000    CONTINUE                                                                
5439  3500 CONTINUE                                                                   
5440                                                                                  
5441       END SUBROUTINE TAUGB10
5442                                                                                  
5443 !--------------------------------------------------------------------------    
5444       SUBROUTINE TAUGB11(kts,ktep1,COLH2O,FAC00,FAC01,FAC10,FAC11,        &
5445                          SELFFAC,SELFFRAC,JP,JT,JT1,INDSELF,PFRAC,TAUG,   &
5446                          LAYTROP                                          )
5447 !--------------------------------------------------------------------------    
5448                                                                                  
5449 !     BAND 11:  1480-1800 cm-1 (low - H2O; high - H2O)                           
5450                                                                                  
5451       INTEGER, PARAMETER :: NGS10=114                                    
5452                                                                                  
5453       INTEGER, INTENT(IN )                      :: kts,ktep1
5454 
5455       INTEGER, INTENT(IN )                      ::  LAYTROP
5456 
5457       REAL, DIMENSION( NGPT,kts:ktep1 ),                    &
5458             INTENT(INOUT)        ::                  PFRAC, &
5459                                                       TAUG
5460 
5461       REAL, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::        &
5462                                                     COLH2O, &
5463                                                      FAC00, &
5464                                                      FAC01, &
5465                                                      FAC10, &
5466                                                      FAC11, &
5467                                                    SELFFAC, &
5468                                                   SELFFRAC 
5469  
5470       INTEGER, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::     &
5471                                                         JP, &
5472                                                         JT, &
5473                                                        JT1, &
5474                                                    INDSELF
5475 
5476 ! This compiler directive was added to insure private common block storage       
5477 ! in multi-tasked mode on a CRAY or SGI for all commons except those that        
5478 ! carry constants.                                                               
5479                                                                                  
5480 
5481 !     Compute the optical depth by interpolating in ln(pressure) and             
5482 !     temperature.  Below LAYTROP, the water vapor self-continuum                
5483 !     is interpolated (in temperature) separately.                               
5484 !cdir novector
5485       DO 2500 LAY = 1, LAYTROP                                                   
5486          IND0 = ((JP(LAY)-1)*5+(JT(LAY)-1))*NSPA(11) + 1                         
5487          IND1 = (JP(LAY)*5+(JT1(LAY)-1))*NSPA(11) + 1                            
5488          INDS = INDSELF(LAY)                                                     
5489          DO 2000 IG = 1, NG11                                                    
5490             TAUG(NGS10+IG,LAY) = COLH2O(LAY) *                 &                   
5491                 (FAC00(LAY) * ABSA11(IND0,IG) +                &                   
5492                  FAC10(LAY) * ABSA11(IND0+1,IG) +              &                   
5493                  FAC01(LAY) * ABSA11(IND1,IG) +                &                   
5494                  FAC11(LAY) * ABSA11(IND1+1,IG) +              &                   
5495                  SELFFAC(LAY) * (SELFREFC11(INDS,IG) +         & 
5496                  SELFFRAC(LAY) *                               &                   
5497                  (SELFREFC11(INDS+1,IG) - SELFREFC11(INDS,IG))))                       
5498             PFRAC(NGS10+IG,LAY) = FRACREFAC11(IG)                                   
5499  2000    CONTINUE                                                                
5500  2500 CONTINUE                                                                   
5501                                                                                  
5502 !cdir novector
5503       DO 3500 LAY = LAYTROP+1, NLAYERS                                           
5504          IND0 = ((JP(LAY)-13)*5+(JT(LAY)-1))*NSPB(11) + 1                        
5505          IND1 = ((JP(LAY)-12)*5+(JT1(LAY)-1))*NSPB(11) + 1                       
5506          DO 3000 IG = 1, NG11                                                    
5507             TAUG(NGS10+IG,LAY) = COLH2O(LAY) *               &                   
5508                 (FAC00(LAY) * ABSB11(IND0,IG) +                &                   
5509                  FAC10(LAY) * ABSB11(IND0+1,IG) +              &                   
5510                  FAC01(LAY) * ABSB11(IND1,IG) +                &                   
5511                  FAC11(LAY) * ABSB11(IND1+1,IG))                                   
5512             PFRAC(NGS10+IG,LAY) = FRACREFBC11(IG)                                   
5513  3000    CONTINUE                                                                
5514  3500 CONTINUE                                                                   
5515                                                                                  
5516       END SUBROUTINE TAUGB11
5517                                                                                  
5518 !-----------------------------------------------------------------------------    
5519       SUBROUTINE TAUGB12(kts,ktep1,COLH2O,COLCO2,FAC00,FAC01,FAC10,FAC11,    &
5520                          SELFFAC,SELFFRAC,JP,JT,JT1,INDSELF,PFRAC,TAUG,      &
5521                          LAYTROP                                             )
5522 !-----------------------------------------------------------------------------   
5523                                                                                  
5524 !     BAND 12:  1800-2080 cm-1 (low - H2O,CO2; high - nothing)                   
5525                                                                                  
5526       INTEGER, PARAMETER :: NGS11=122                                    
5527                                                                                  
5528       INTEGER, INTENT(IN )                      :: kts,ktep1
5529 
5530       INTEGER, INTENT(IN )                      ::  LAYTROP
5531 
5532       REAL, DIMENSION( NGPT,kts:ktep1 ),                    &
5533             INTENT(INOUT)        ::                  PFRAC, &
5534                                                       TAUG
5535 
5536       REAL, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::        &
5537                                                     COLH2O, &
5538                                                     COLCO2, &
5539                                                      FAC00, &
5540                                                      FAC01, &
5541                                                      FAC10, &
5542                                                      FAC11, &
5543                                                    SELFFAC, &
5544                                                   SELFFRAC 
5545  
5546       INTEGER, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::     &
5547                                                         JP, &
5548                                                         JT, &
5549                                                        JT1, &
5550                                                    INDSELF
5551 
5552 ! This compiler directive was added to insure private common block storage       
5553 ! in multi-tasked mode on a CRAY or SGI for all commons except those that        
5554 ! carry constants.                                                               
5555                                                                                  
5556       STRRAT1 = 0.009736757                                                      
5557                                                                                  
5558 !     Compute the optical depth by interpolating in ln(pressure),                
5559 !     temperature, and appropriate species.  Below LAYTROP, the water            
5560 !     vapor self-continuum is interpolated (in temperature) separately.          
5561 !!DIR$ NOVECTOR                                                                   
5562 !cdir novector
5563       DO 2500 LAY = 1, LAYTROP                                                   
5564          SPECCOMB = COLH2O(LAY) + STRRAT1*COLCO2(LAY)                            
5565          SPECPARM = COLH2O(LAY)/SPECCOMB                                         
5566          IF (SPECPARM .GE. ONEMINUS) SPECPARM = ONEMINUS                         
5567          SPECMULT = 8.*(SPECPARM)                                                
5568          JS = 1 + INT(SPECMULT)                                                  
5569          FS = MOD(SPECMULT,1.0)                                                 
5570          FAC000 = (1. - FS) * FAC00(LAY)                                         
5571          FAC010 = (1. - FS) * FAC10(LAY)                                         
5572          FAC100 = FS * FAC00(LAY)                                                
5573          FAC110 = FS * FAC10(LAY)                                                
5574          FAC001 = (1. - FS) * FAC01(LAY)                                         
5575          FAC011 = (1. - FS) * FAC11(LAY)                                         
5576          FAC101 = FS * FAC01(LAY)                                                
5577          FAC111 = FS * FAC11(LAY)                                                
5578          IND0 = ((JP(LAY)-1)*5+(JT(LAY)-1))*NSPA(12) + JS                        
5579          IND1 = (JP(LAY)*5+(JT1(LAY)-1))*NSPA(12) + JS                           
5580          INDS = INDSELF(LAY)                                                     
5581 !!DIR$ VECTOR                                                                     
5582          DO 2000 IG = 1, NG12                                                    
5583             TAUG(NGS11+IG,LAY) = SPECCOMB *             & 
5584                 (FAC000 * ABSA12(IND0,IG) +             &                          
5585                  FAC100 * ABSA12(IND0+1,IG) +           &                          
5586                  FAC010 * ABSA12(IND0+9,IG) +           &                          
5587                  FAC110 * ABSA12(IND0+10,IG) +          &                          
5588                  FAC001 * ABSA12(IND1,IG) +             &                          
5589                  FAC101 * ABSA12(IND1+1,IG) +           &                          
5590                  FAC011 * ABSA12(IND1+9,IG) +           &                          
5591                  FAC111 * ABSA12(IND1+10,IG)) +         &                          
5592                  COLH2O(LAY) *                          &                          
5593                  SELFFAC(LAY) * (SELFREFC12(INDS,IG) +  &                          
5594                  SELFFRAC(LAY) *                        &                          
5595                  (SELFREFC12(INDS+1,IG) - SELFREFC12(INDS,IG)))                        
5596             PFRAC(NGS11+IG,LAY) = FRACREFAC12(IG,JS) + FS *  & 
5597                  (FRACREFAC12(IG,JS+1) - FRACREFAC12(IG,JS))                           
5598  2000    CONTINUE                                                                
5599  2500 CONTINUE                                                                   
5600                                                                                  
5601 !cdir novector
5602       DO 3500 LAY = LAYTROP+1, NLAYERS                                           
5603          DO 3000 IG = 1, NG12                                                    
5604             TAUG(NGS11+IG,LAY) = 0.0                                             
5605             PFRAC(NGS11+IG,LAY) = 0.0                                            
5606  3000    CONTINUE                                                                
5607  3500 CONTINUE                                                                   
5608                                                                                  
5609       END SUBROUTINE TAUGB12
5610                                                                                  
5611 !-----------------------------------------------------------------------------    
5612       SUBROUTINE TAUGB13(kts,ktep1,COLH2O,COLN2O,FAC00,FAC01,FAC10,FAC11,    &
5613                          SELFFAC,SELFFRAC,JP,JT,JT1,INDSELF,PFRAC,TAUG,      &
5614                          LAYTROP                                             )
5615 !-----------------------------------------------------------------------------    
5616                                                                                  
5617 !     BAND 13:  2080-2250 cm-1 (low - H2O,N2O; high - nothing)                   
5618                                                                                  
5619       INTEGER, PARAMETER :: NGS12=130                                    
5620                                                                                  
5621       INTEGER, INTENT(IN )                      :: kts,ktep1
5622 
5623       INTEGER, INTENT(IN )                      ::  LAYTROP
5624 
5625       REAL, DIMENSION( NGPT,kts:ktep1 ),                    &
5626             INTENT(INOUT)        ::                  PFRAC, &
5627                                                       TAUG
5628 
5629       REAL, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::        &
5630                                                     COLH2O, &
5631                                                     COLN2O, &
5632                                                      FAC00, &
5633                                                      FAC01, &
5634                                                      FAC10, &
5635                                                      FAC11, &
5636                                                    SELFFAC, &
5637                                                   SELFFRAC 
5638  
5639       INTEGER, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::     &
5640                                                         JP, &
5641                                                         JT, &
5642                                                        JT1, &
5643                                                    INDSELF
5644 
5645 ! This compiler directive was added to insure private common block storage       
5646 ! in multi-tasked mode on a CRAY or SGI for all commons except those that        
5647 ! carry constants.                                                               
5648                                                                                  
5649       STRRAT1 = 16658.87                                                         
5650                                                                                  
5651 !     Compute the optical depth by interpolating in ln(pressure),                
5652 !     temperature, and appropriate species.  Below LAYTROP, the water            
5653 !     vapor self-continuum is interpolated (in temperature) separately.          
5654       DO 2500 LAY = 1, LAYTROP                                                   
5655          SPECCOMB = COLH2O(LAY) + STRRAT1*COLN2O(LAY)                            
5656          SPECPARM = COLH2O(LAY)/SPECCOMB                                         
5657          IF (SPECPARM .GE. ONEMINUS) SPECPARM = ONEMINUS                         
5658          SPECMULT = 8.*(SPECPARM)                                                
5659          JS = 1 + INT(SPECMULT)                                                  
5660          FS = MOD(SPECMULT,1.0)                                                 
5661          FAC000 = (1. - FS) * FAC00(LAY)                                         
5662          FAC010 = (1. - FS) * FAC10(LAY)                                         
5663          FAC100 = FS * FAC00(LAY)                                                
5664          FAC110 = FS * FAC10(LAY)                                                
5665          FAC001 = (1. - FS) * FAC01(LAY)                                         
5666          FAC011 = (1. - FS) * FAC11(LAY)                                         
5667          FAC101 = FS * FAC01(LAY)                                                
5668          FAC111 = FS * FAC11(LAY)                                                
5669          IND0 = ((JP(LAY)-1)*5+(JT(LAY)-1))*NSPA(13) + JS                        
5670          IND1 = (JP(LAY)*5+(JT1(LAY)-1))*NSPA(13) + JS                           
5671          INDS = INDSELF(LAY)                                                     
5672          DO 2000 IG = 1, NG13                                                    
5673             TAUG(NGS12+IG,LAY) = SPECCOMB *                &                       
5674                 (FAC000 * ABSA13(IND0,IG) +                &                       
5675                  FAC100 * ABSA13(IND0+1,IG) +              &                       
5676                  FAC010 * ABSA13(IND0+9,IG) +              &                       
5677                  FAC110 * ABSA13(IND0+10,IG) +             &                       
5678                  FAC001 * ABSA13(IND1,IG) +                &                       
5679                  FAC101 * ABSA13(IND1+1,IG) +              &                       
5680                  FAC011 * ABSA13(IND1+9,IG) +              &                       
5681                  FAC111 * ABSA13(IND1+10,IG)) +            &                       
5682                  COLH2O(LAY) *                           &                       
5683                  SELFFAC(LAY) * (SELFREFC13(INDS,IG) +      &                       
5684                  SELFFRAC(LAY) *                         &                       
5685                  (SELFREFC13(INDS+1,IG) - SELFREFC13(INDS,IG)))                        
5686             PFRAC(NGS12+IG,LAY) = FRACREFAC13(IG,JS) + FS * &                       
5687                  (FRACREFAC13(IG,JS+1) - FRACREFAC13(IG,JS))                           
5688  2000    CONTINUE                                                                
5689  2500 CONTINUE                                                                   
5690                                                                                  
5691       DO 3500 LAY = LAYTROP+1, NLAYERS                                           
5692          DO 3000 IG = 1, NG13                                                    
5693             TAUG(NGS12+IG,LAY) = 0.0                                             
5694             PFRAC(NGS12+IG,LAY) = 0.0                                            
5695  3000    CONTINUE                                                                
5696  3500 CONTINUE                                                                   
5697                                                                                  
5698 
5699       END SUBROUTINE TAUGB13
5700                                                                                  
5701 !----------------------------------------------------------------------------    
5702       SUBROUTINE TAUGB14(kts,ktep1,COLCO2,FAC00,FAC01,FAC10,FAC11,          &
5703                          SELFFAC,SELFFRAC,JP,JT,JT1,INDSELF,PFRAC,TAUG,     &
5704                          LAYTROP                                            )
5705 !----------------------------------------------------------------------------    
5706                                                                                  
5707 !     BAND 14:  2250-2380 cm-1 (low - CO2; high - CO2)                           
5708                                                                                  
5709       INTEGER, PARAMETER :: NGS13=134                                    
5710                                                                                  
5711       INTEGER, INTENT(IN )                      :: kts,ktep1
5712 
5713       INTEGER, INTENT(IN )                      ::  LAYTROP
5714 
5715       REAL, DIMENSION( NGPT,kts:ktep1 ),                    &
5716             INTENT(INOUT)        ::                  PFRAC, &
5717                                                       TAUG
5718 
5719       REAL, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::        &
5720                                                     COLCO2, &
5721                                                      FAC00, &
5722                                                      FAC01, &
5723                                                      FAC10, &
5724                                                      FAC11, &
5725                                                    SELFFAC, &
5726                                                   SELFFRAC 
5727  
5728       INTEGER, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::     &
5729                                                         JP, &
5730                                                         JT, &
5731                                                        JT1, &
5732                                                    INDSELF
5733 
5734 ! This compiler directive was added to insure private common block storage       
5735 ! in multi-tasked mode on a CRAY or SGI for all commons except those that        
5736 ! carry constants.                                                               
5737                                                                                  
5738 !     Compute the optical depth by interpolating in ln(pressure) and             
5739 !     temperature.  Below LAYTROP, the water vapor self-continuum                
5740 !     is interpolated (in temperature) separately.                               
5741       DO 2500 LAY = 1, LAYTROP                                                   
5742          IND0 = ((JP(LAY)-1)*5+(JT(LAY)-1))*NSPA(14) + 1                         
5743          IND1 = (JP(LAY)*5+(JT1(LAY)-1))*NSPA(14) + 1                            
5744          INDS = INDSELF(LAY)                                                     
5745          DO 2000 IG = 1, NG14                                                    
5746             TAUG(NGS13+IG,LAY) = COLCO2(LAY) *           &
5747                 (FAC00(LAY) * ABSA14(IND0,IG) +          &                         
5748                  FAC10(LAY) * ABSA14(IND0+1,IG) +        &                         
5749                  FAC01(LAY) * ABSA14(IND1,IG) +          &                         
5750                  FAC11(LAY) * ABSA14(IND1+1,IG) +        &                         
5751                  SELFFAC(LAY) * (SELFREFC14(INDS,IG) +   &                         
5752                  SELFFRAC(LAY) *                         &                         
5753                  (SELFREFC14(INDS+1,IG) - SELFREFC14(INDS,IG))))                       
5754             PFRAC(NGS13+IG,LAY) = FRACREFAC14(IG)                                   
5755  2000    CONTINUE                                                                
5756  2500 CONTINUE                                                                   
5757                                                                                  
5758       DO 3500 LAY = LAYTROP+1, NLAYERS                                           
5759          IND0 = ((JP(LAY)-13)*5+(JT(LAY)-1))*NSPB(14) + 1                        
5760          IND1 = ((JP(LAY)-12)*5+(JT1(LAY)-1))*NSPB(14) + 1                       
5761          DO 3000 IG = 1, NG14                                                    
5762             TAUG(NGS13+IG,LAY) = COLCO2(LAY) *       &                           
5763                 (FAC00(LAY) * ABSB14(IND0,IG) +        &                           
5764                  FAC10(LAY) * ABSB14(IND0+1,IG) +      &                           
5765                  FAC01(LAY) * ABSB14(IND1,IG) +        &                           
5766                  FAC11(LAY) * ABSB14(IND1+1,IG))                                   
5767             PFRAC(NGS13+IG,LAY) = FRACREFBC14(IG)                                   
5768  3000    CONTINUE                                                                
5769  3500 CONTINUE                                                                   
5770                                                                                  
5771       END SUBROUTINE TAUGB14
5772                                                                                  
5773 !------------------------------------------------------------------------------    
5774       SUBROUTINE TAUGB15(kts,ktep1,COLH2O,COLCO2,COLN2O,FAC00,FAC01,FAC10,    &
5775                          FAC11,SELFFAC,SELFFRAC,JP,JT,JT1,INDSELF,            &
5776                          PFRAC,TAUG,LAYTROP                                   )
5777 !------------------------------------------------------------------------------    
5778                                                                                  
5779 !     BAND 15:  2380-2600 cm-1 (low - N2O,CO2; high - nothing)                   
5780                                                                                  
5781       INTEGER, PARAMETER :: NGS14=136                                    
5782                                                                                  
5783       INTEGER, INTENT(IN )                      :: kts,ktep1
5784 
5785       INTEGER, INTENT(IN )                      ::  LAYTROP
5786 
5787       REAL, DIMENSION( NGPT,kts:ktep1 ),                    &
5788             INTENT(INOUT)        ::                  PFRAC, &
5789                                                       TAUG
5790 
5791       REAL, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::        &
5792                                                     COLH2O, &
5793                                                     COLCO2, &
5794                                                     COLN2O, &
5795                                                      FAC00, &
5796                                                      FAC01, &
5797                                                      FAC10, &
5798                                                      FAC11, &
5799                                                    SELFFAC, &
5800                                                   SELFFRAC 
5801  
5802       INTEGER, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::     &
5803                                                         JP, &
5804                                                         JT, &
5805                                                        JT1, &
5806                                                    INDSELF
5807 
5808 ! This compiler directive was added to insure private common block storage       
5809 ! in multi-tasked mode on a CRAY or SGI for all commons except those that        
5810 ! carry constants.                                                               
5811                                                                                  
5812       STRRAT1 = 0.2883201                                                        
5813                                                                                  
5814 !     Compute the optical depth by interpolating in ln(pressure),                
5815 !     temperature, and appropriate species.  Below LAYTROP, the water            
5816 !     vapor self-continuum is interpolated (in temperature) separately.          
5817       DO 2500 LAY = 1, LAYTROP                                                   
5818          SPECCOMB = COLN2O(LAY) + STRRAT1*COLCO2(LAY)                            
5819          SPECPARM = COLN2O(LAY)/SPECCOMB                                         
5820          IF (SPECPARM .GE. ONEMINUS) SPECPARM = ONEMINUS                         
5821          SPECMULT = 8.*(SPECPARM)                                                
5822          JS = 1 + INT(SPECMULT)                                                  
5823          FS = MOD(SPECMULT,1.0)                                                 
5824          FAC000 = (1. - FS) * FAC00(LAY)                                         
5825          FAC010 = (1. - FS) * FAC10(LAY)                                         
5826          FAC100 = FS * FAC00(LAY)                                                
5827          FAC110 = FS * FAC10(LAY)                                                
5828          FAC001 = (1. - FS) * FAC01(LAY)                                         
5829          FAC011 = (1. - FS) * FAC11(LAY)                                         
5830          FAC101 = FS * FAC01(LAY)                                                
5831          FAC111 = FS * FAC11(LAY)                                                
5832          IND0 = ((JP(LAY)-1)*5+(JT(LAY)-1))*NSPA(15) + JS                        
5833          IND1 = (JP(LAY)*5+(JT1(LAY)-1))*NSPA(15) + JS                           
5834          INDS = INDSELF(LAY)                                                     
5835          DO 2000 IG = 1, NG15                                                    
5836             TAUG(NGS14+IG,LAY) = SPECCOMB *                     &                  
5837                 (FAC000 * ABSA15(IND0,IG) +                     &                  
5838                  FAC100 * ABSA15(IND0+1,IG) +                   &                  
5839                  FAC010 * ABSA15(IND0+9,IG) +                   &                  
5840                  FAC110 * ABSA15(IND0+10,IG) +                  &                  
5841                  FAC001 * ABSA15(IND1,IG) +                     &                  
5842                  FAC101 * ABSA15(IND1+1,IG) +                   &                  
5843                  FAC011 * ABSA15(IND1+9,IG) +                   &                  
5844                  FAC111 * ABSA15(IND1+10,IG)) +                 &                  
5845                  COLH2O(LAY) *                                &                  
5846                  SELFFAC(LAY) * (SELFREFC15(INDS,IG) +           &                  
5847                  SELFFRAC(LAY) *                              &                  
5848                  (SELFREFC15(INDS+1,IG) - SELFREFC15(INDS,IG)))                        
5849             PFRAC(NGS14+IG,LAY) = FRACREFAC15(IG,JS) + FS *      &                  
5850                  (FRACREFAC15(IG,JS+1) - FRACREFAC15(IG,JS))                           
5851  2000    CONTINUE                                                                
5852  2500 CONTINUE                                                                   
5853                                                                                  
5854       DO 3500 LAY = LAYTROP+1, NLAYERS                                           
5855          DO 3000 IG = 1, NG15                                                    
5856             TAUG(NGS14+IG,LAY) = 0.0                                             
5857             PFRAC(NGS14+IG,LAY) = 0.0                                            
5858  3000    CONTINUE                                                                
5859  3500 CONTINUE                                                                   
5860                                                                                  
5861       END SUBROUTINE TAUGB15
5862                                                                                  
5863 !-----------------------------------------------------------------------------    
5864       SUBROUTINE TAUGB16(kts,ktep1,COLH2O,COLCH4,FAC00,FAC01,FAC10,FAC11,    &
5865                          SELFFAC,SELFFRAC,JP,JT,JT1,INDSELF,PFRAC,TAUG,      &
5866                          LAYTROP                                             )
5867 !-----------------------------------------------------------------------------    
5868                                                                                  
5869 !     BAND 16:  2600-3000 cm-1 (low - H2O,CH4; high - nothing)                   
5870                                                                                  
5871       INTEGER, PARAMETER :: NGS15=138                                    
5872                                                                                  
5873       INTEGER, INTENT(IN )                      :: kts,ktep1
5874 
5875       INTEGER, INTENT(IN )                      ::  LAYTROP
5876 
5877       REAL, DIMENSION( NGPT,kts:ktep1 ),                    &
5878             INTENT(INOUT)        ::                  PFRAC, &
5879                                                       TAUG
5880 
5881       REAL, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::        &
5882                                                     COLH2O, &
5883                                                     COLCH4, &
5884                                                      FAC00, &
5885                                                      FAC01, &
5886                                                      FAC10, &
5887                                                      FAC11, &
5888                                                    SELFFAC, &
5889                                                   SELFFRAC 
5890  
5891       INTEGER, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::     &
5892                                                         JP, &
5893                                                         JT, &
5894                                                        JT1, &
5895                                                    INDSELF
5896 
5897 ! This compiler directive was added to insure private common block storage       
5898 ! in multi-tasked mode on a CRAY or SGI for all commons except those that        
5899 ! carry constants.                                                               
5900                                                                                  
5901       STRRAT1 = 830.411                                                          
5902                                                                                  
5903 !     Compute the optical depth by interpolating in ln(pressure),                
5904 !     temperature, and appropriate species.  Below LAYTROP, the water            
5905 !     vapor self-continuum is interpolated (in temperature) separately.          
5906       DO 2500 LAY = 1, LAYTROP                                                   
5907          SPECCOMB = COLH2O(LAY) + STRRAT1*COLCH4(LAY)                            
5908          SPECPARM = COLH2O(LAY)/SPECCOMB                                         
5909          IF (SPECPARM .GE. ONEMINUS) SPECPARM = ONEMINUS                         
5910          SPECMULT = 8.*(SPECPARM)                                                
5911          JS = 1 + INT(SPECMULT)                                                  
5912          FS = MOD(SPECMULT,1.0)                                                 
5913          FAC000 = (1. - FS) * FAC00(LAY)                                         
5914          FAC010 = (1. - FS) * FAC10(LAY)                                         
5915          FAC100 = FS * FAC00(LAY)                                                
5916          FAC110 = FS * FAC10(LAY)                                                
5917          FAC001 = (1. - FS) * FAC01(LAY)                                         
5918          FAC011 = (1. - FS) * FAC11(LAY)                                         
5919          FAC101 = FS * FAC01(LAY)                                                
5920          FAC111 = FS * FAC11(LAY)                                                
5921          IND0 = ((JP(LAY)-1)*5+(JT(LAY)-1))*NSPA(16) + JS                        
5922          IND1 = (JP(LAY)*5+(JT1(LAY)-1))*NSPA(16) + JS                           
5923          INDS = INDSELF(LAY)                                                     
5924          DO 2000 IG = 1, NG16                                                    
5925             TAUG(NGS15+IG,LAY) = SPECCOMB *                 &
5926                 (FAC000 * ABSA16(IND0,IG) +                 &                      
5927                  FAC100 * ABSA16(IND0+1,IG) +               &                      
5928                  FAC010 * ABSA16(IND0+9,IG) +               &                      
5929                  FAC110 * ABSA16(IND0+10,IG) +              &                      
5930                  FAC001 * ABSA16(IND1,IG) +                 &                      
5931                  FAC101 * ABSA16(IND1+1,IG) +               &                      
5932                  FAC011 * ABSA16(IND1+9,IG) +               &                      
5933                  FAC111 * ABSA16(IND1+10,IG)) +             &                      
5934                  COLH2O(LAY) *                            &                      
5935                  SELFFAC(LAY) * (SELFREFC16(INDS,IG) +       &                      
5936                  SELFFRAC(LAY) *                          &                      
5937                  (SELFREFC16(INDS+1,IG) - SELFREFC16(INDS,IG)))                        
5938             PFRAC(NGS15+IG,LAY) = FRACREFAC16(IG,JS) + FS *  &                      
5939                  (FRACREFAC16(IG,JS+1) - FRACREFAC16(IG,JS))                           
5940  2000    CONTINUE                                                                
5941  2500 CONTINUE                                                                   
5942                                                                                  
5943       DO 3500 LAY = LAYTROP+1, NLAYERS                                           
5944          DO 3000 IG = 1, NG16                                                    
5945             TAUG(NGS15+IG,LAY) = 0.0                                             
5946             PFRAC(NGS15+IG,LAY) = 0.0                                            
5947  3000    CONTINUE                                                                
5948  3500 CONTINUE                                                                   
5949                                                                                  
5950       END SUBROUTINE TAUGB16
5951                                                                                  
5952 
5953 !-------------------------------------------------------------------------
5954       SUBROUTINE RTRN(kts,ktep1,                                         &
5955                       TAVEL, PZ, TZ, CLDFRAC, TAUCLOUD, TOTDFLUX,        &
5956                       TOTUFLUX, HTR, ICLDLYR, ITR, PFRAC, TBOUND,SEMISS  )
5957 !-------------------------------------------------------------------------
5958 !  RRTM Longwave Radiative Transfer Model                                        
5959 !  Atmospheric and Environmental Research, Inc., Cambridge, MA                   
5960 !                                                                                
5961 !  Original version:       E. J. Mlawer, et al.                                  
5962 !  Revision for NCAR CCM:  Michael J. Iacono; September, 1998                    
5963 !                                                                                
5964 !  This program calculates the upward fluxes, downward fluxes, and               
5965 !  heating rates for an arbitrary clear or cloudy atmosphere.  The input         
5966 !  to this program is the atmospheric profile, all Planck function               
5967 !  information, and the cloud fraction by layer.  The diffusivity angle          
5968 !  (SECANG=1.66) is used for the angle integration for consistency with          
5969 !  the NCAR CCM; the Gaussian weight appropriate to this angle (WTNUM=0.5)       
5970 !  is applied here.  Note that use of the emissivity angle for the flux          
5971 !  integration can cause errors of 1 to 4 W/m2 within cloudy layers.             
5972 !-------------------------------------------------------------------------
5973                                                                                  
5974       INTEGER, INTENT(IN )    ::      kts,ktep1
5975  
5976       INTEGER, DIMENSION( NGPT,kts:ktep1 ),               &
5977                INTENT(IN   )  ::                     ITR
5978 
5979       REAL, DIMENSION( NGPT,kts:ktep1 ),                  &
5980             INTENT(IN   )     ::                   PFRAC
5981 
5982       REAL, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::      &
5983                                                    TAVEL
5984       REAL, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::      &
5985                                                  CLDFRAC, &
5986                                                 TAUCLOUD
5987 
5988       REAL, DIMENSION(   0:ktep1 ),INTENT(INOUT)::        &
5989                                                 TOTDFLUX, &
5990                                                 TOTUFLUX
5991 
5992       REAL, DIMENSION(   0:ktep1 ), INTENT(INOUT) ::        &
5993                                                      HTR  
5994 
5995       REAL, DIMENSION(   0:ktep1 ), INTENT(IN   ) ::      &
5996                                                       PZ, &
5997                                                       TZ
5998       INTEGER, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::   &
5999                                                  ICLDLYR
6000 
6001       REAL, INTENT(IN   )        ::               TBOUND
6002       REAL, DIMENSION(NBANDS), INTENT(IN   ) ::   SEMISS
6003 
6004 ! LOCAL VAR
6005 
6006       REAL, DIMENSION(   0:ktep1 )              ::        &
6007                                                 TOTUCLFL, &
6008                                                 TOTDCLFL
6009 
6010       REAL, DIMENSION(   0:ktep1 )              ::        &
6011                                                     FNET, &
6012                                                    FNETC, &
6013                                                     HTRC
6014 
6015       INTEGER :: kk
6016      
6017       REAL    :: CLRNTTOA,CLRNTSRF 
6018 
6019 ! Parameters                                                                     
6020 
6021 !     INTEGER, PARAMETER :: MXLAY=101                                                      
6022       REAL, PARAMETER :: SECANG=1.66                                                    
6023       REAL, PARAMETER :: WTNUM=0.5                                                      
6024                                                                                  
6025 ! RRTM Definitions                                                               
6026 ! Input                                                                          
6027 !    MXLAY                        ! Maximum number of model layers               
6028 !    NGPT                         ! Total number of g-point subintervals         
6029 !    NBANDS                       ! Number of longwave spectral bands            
6030 !    SECANG                       ! Diffusivity angle                            
6031 !    WTNUM                        ! Weight for radiance to flux conversion       
6032 !    NLAYERS                      ! Number of model layers (plev+1)              
6033 !    PAVEL(MXLAY)                 ! Layer pressures (mb)                         
6034 !    PZ(0:MXLAY)                  ! Level (interface) pressures (mb)             
6035 !    TAVEL(MXLAY)                 ! Layer temperatures (K)                       
6036 !    TZ(0:MXLAY)                  ! Level (interface) temperatures(mb)           
6037 !    TBOUND                       ! Surface temperature (K)                      
6038 !    CLDFRAC(MXLAY)               ! Layer cloud fraction                         
6039 !    TAUCLOUD(MXLAY)              ! Layer cloud optical depth                    
6040 !    ITR(NGPT,MXLAY)              ! Integer look-up table index                  
6041 !    PFRAC(NGPT,MXLAY)               ! Planck fractions                             
6042 !    ICLDLYR(MXLAY)               ! Flag for cloudy layers                       
6043 !    ICLD                         ! Flag for cloudy in column                    
6044 !    SEMISS(NBANDS)               ! Surface emissivities for each band           
6045 !    BPADE                        ! Pade constant                                
6046 !    TAU                          ! Clear sky optical depth look-up table        
6047 !    TF                           ! Tau transition function look-up table        
6048 !    TRANS                        ! Clear sky transmittance look-up table        
6049 ! Local                                                                          
6050 !    ABSS(NGPT*MXLAY)             ! Gaseous absorptivity                         
6051 !    ABSCLD(MXLAY)                ! Cloud absorptivity                           
6052 !    ATOT(NGPT*MXLAY)             ! Combined gaseous and cloud absorptivity      
6053 !    ODCLR(NGPT,MXLAY)            ! Clear sky (gaseous) optical depth            
6054 !    ODCLD(MXLAY)                 ! Cloud optical depth                          
6055 !    EFCLFRAC(MXLAY)              ! Effective cloud fraction                     
6056 !    RADLU(NGPT)                  ! Upward radiance                              
6057 !    URAD                         ! Spectrally summed upward radiance            
6058 !    RADCLRU(NGPT)                ! Clear sky upward radiance                    
6059 !    CLRURAD                      ! Spectrally summed clear sky upward radiance  
6060 !    RADLD(NGPT)                  ! Downward radiance                            
6061 !    DRAD                         ! Spectrally summed downward radiance          
6062 !    RADCLRD(NGPT)                ! Clear sky downward radiance                  
6063 !    CLRDRAD                      ! Spectrally summed clear sky downward radianc 
6064 ! Output                                                                         
6065 !    TOTUFLUX(0:MXLAY)            ! Upward longwave flux (W/m2)                  
6066 !    TOTDFLUX(0:MXLAY)            ! Downward longwave flux (W/m2)                
6067 !    FNET(0:MXLAY)                ! Net longwave flux (W/m2)                     
6068 !    HTR(0:MXLAY)                 ! Longwave heating rate (K/day)                
6069 !    CLRNTTOA                     ! Clear sky TOA outgoing flux (W/m2)           
6070 !    CLRNTSFC                     ! Clear sky net surface flux (W/m2)            
6071 !    TOTUCLFL(0:MXLAY)            ! Clear sky upward longwave flux (W/m2)        
6072 !    TOTDCLFL(0:MXLAY)            ! Clear sky downward longwave flux (W/m2)      
6073 !    FNETC(0:MXLAY)               ! Clear sky net longwave flux (W/m2)           
6074 !    HTRC(0:MXLAY)                ! Clear sky longwave heating rate (K/day)      
6075 !                                                                                
6076                                                                                  
6077 ! This compiler directive was added to insure private common block storage       
6078 ! in multi-tasked mode on a CRAY or SGI for all commons except those that        
6079 ! carry constants.                                                               
6080 
6081       DIMENSION BBU(NGPT*(ktep1-kts+1)),BBUTOT(NGPT*(ktep1-kts)),BGLEV(NGPT)                   
6082       DIMENSION PLANKBND(NBANDS),PLNKEMIT(NBANDS)                                
6083       DIMENSION PLVL(NBANDS,0:ktep1),PLAY(NBANDS,kts:ktep1)                          
6084       DIMENSION INDLAY(kts:ktep1),INDLEV(0:ktep1)                                    
6085       DIMENSION TLAYFRAC(kts:ktep1),TLEVFRAC(0:ktep1)                                
6086       DIMENSION ABSS(NGPT*(ktep1-kts+1)),ABSCLD(kts:ktep1-1),ATOT(NGPT*(ktep1-kts)) 
6087       DIMENSION ODCLR(NGPT,kts:ktep1-1),ODCLD(kts:ktep1-1),EFCLFRAC(kts:ktep1-1)
6088       DIMENSION RADLU(NGPT),RADLD(NGPT)                                          
6089       DIMENSION RADCLRU(NGPT),RADCLRD(NGPT)                                      
6090       DIMENSION SEMIS(NGPT),RADUEMIT(NGPT)                                       
6091                                                                                  
6092       INDBOUND = TBOUND - 159.                                                   
6093       TBNDFRAC = TBOUND - INT(TBOUND)                                            
6094                                                                                  
6095       DO 200 LAY = 0, NLAYERS                                                    
6096          TOTUFLUX(LAY) = 0.0                                                     
6097          TOTDFLUX(LAY) = 0.0                                                     
6098          TOTUCLFL(LAY) = 0.0                                                     
6099          TOTDCLFL(LAY) = 0.0                                                     
6100          INDLEV(LAY) = TZ(LAY) - 159.                                            
6101          TLEVFRAC(LAY) = TZ(LAY) - INT(TZ(LAY))                                  
6102  200  CONTINUE                                                                   
6103                                                                                  
6104       DO 220 LEV = 1, NLAYERS                                                    
6105                                                                                  
6106          IF (ICLDLYR(LEV).EQ.1) THEN                                             
6107             INDLAY(LEV) = TAVEL(LEV) - 159.                                      
6108             TLAYFRAC(LEV) = TAVEL(LEV) - INT(TAVEL(LEV))                         
6109 !  Cloudy sky optical depth and absorptivity.                                    
6110             ODCLD(LEV) = SECANG * TAUCLOUD(LEV)                                  
6111             TRANSCLD = EXP(-ODCLD(LEV))                                          
6112             ABSCLD(LEV) = 1. - TRANSCLD                                          
6113             EFCLFRAC(LEV) = ABSCLD(LEV) * CLDFRAC(LEV)                           
6114 !  Get clear sky optical depth from TAU lookup table                             
6115             DO 250 IPR = 1, NGPT                                                 
6116                IND = ITR(IPR,LEV)                                                
6117                ODCLR(IPR,LEV) = TAU(IND)                                         
6118  250        CONTINUE                                                             
6119          ELSE                                                                    
6120             INDLAY(LEV) = TAVEL(LEV) - 159.                                      
6121             TLAYFRAC(LEV) = TAVEL(LEV) - INT(TAVEL(LEV))                         
6122          ENDIF                                                                   
6123                                                                                  
6124  220  CONTINUE                                                                   
6125                                                                                  
6126 !      SUMPL   = 0.0                                                             
6127 !      SUMPLEM = 0.0                                                             
6128 ! *** Loop over frequency bands.                                                 
6129       DO 600 IBAND = 1, NBANDS                                                   
6130          DBDTLEV = TOTPLNK(INDBOUND+1,IBAND)-TOTPLNK(INDBOUND,IBAND)             
6131          PLANKBND(IBAND) = DELWAVE(IBAND) * (TOTPLNK(INDBOUND,IBAND) +  &
6132               TBNDFRAC * DBDTLEV)                                                
6133          DBDTLEV = TOTPLNK(INDLEV(0)+1,IBAND) -                         &        
6134               TOTPLNK(INDLEV(0),IBAND)                                           
6135          PLVL(IBAND,0) = DELWAVE(IBAND) * (TOTPLNK(INDLEV(0),IBAND) +   &        
6136               TLEVFRAC(0)*DBDTLEV)                                               
6137                                                                                  
6138          PLNKEMIT(IBAND) = SEMISS(IBAND) * PLANKBND(IBAND)                       
6139 !         SUMPLEM  = SUMPLEM + PLNKEMIT(IBAND)                                   
6140 !         SUMPL    = SUMPL   + PLANKBND(IBAND)                                   
6141                                                                                  
6142          DO 300 LEV = 1, NLAYERS                                                 
6143 !     Calculate the integrated Planck functions at the level and                 
6144 !     layer temperatures.                                                        
6145             DBDTLEV = TOTPLNK(INDLEV(LEV)+1,IBAND) -          &
6146                  TOTPLNK(INDLEV(LEV),IBAND)                                      
6147             DBDTLAY = TOTPLNK(INDLAY(LEV)+1,IBAND) -          &                  
6148                  TOTPLNK(INDLAY(LEV),IBAND)                                      
6149             PLAY(IBAND,LEV) = DELWAVE(IBAND) *                &                  
6150                  (TOTPLNK(INDLAY(LEV),IBAND) + TLAYFRAC(LEV) * DBDTLAY)          
6151             PLVL(IBAND,LEV) = DELWAVE(IBAND) *                &                  
6152                  (TOTPLNK(INDLEV(LEV),IBAND) + TLEVFRAC(LEV) * DBDTLEV)          
6153  300     CONTINUE                                                                
6154  600  CONTINUE                                                                   
6155                                                                                  
6156 !      SEMISLW = SUMPLEM / SUMPL                                                 
6157                                                                                  
6158 ! *** Initialize for radiative transfer.                                         
6159       DO 500 IPR = 1, NGPT                                                       
6160          RADCLRD(IPR) = 0.                                                       
6161          RADLD(IPR) = 0.                                                         
6162          SEMIS(IPR) = SEMISS(NGB(IPR))                                           
6163          RADUEMIT(IPR) = PFRAC(IPR,1) * PLNKEMIT(NGB(IPR))                          
6164          BGLEV(IPR) = PFRAC(IPR,NLAYERS) * PLVL(NGB(IPR),NLAYERS)                   
6165  500  CONTINUE                                                                   
6166                                                                                  
6167                                                                                  
6168 ! *** DOWNWARD RADIATIVE TRANSFER                                                
6169 ! *** DRAD holds summed radiance for total sky stream                            
6170 ! *** CLRDRAD holds summed radiance for clear sky stream                         
6171                                                                                  
6172       ICLDDN = 0                                                                 
6173       DO 3000 LEV = NLAYERS, 1, -1                                               
6174          DRAD = 0.0                                                              
6175          CLRDRAD = 0.0                                                           
6176                                                                                  
6177          IF (ICLDLYR(LEV).EQ.1) THEN                                             
6178                                                                                  
6179 ! *** Cloudy layer                                                               
6180          ICLDDN = 1                                                              
6181          IENT = NGPT * (LEV-1)                                                   
6182          DO 2000 IPR = 1, NGPT                                                   
6183             INDEX = IENT + IPR                                                   
6184 !     Get lookup table index                                                     
6185             IND = ITR(IPR,LEV)                                                   
6186 !     Add clear sky and cloud optical depths                                     
6187             ODSM = ODCLR(IPR,LEV) + ODCLD(LEV)                                   
6188             FACTOT = ODSM / (BPADE + ODSM)                                       
6189             BGLAY = PFRAC(IPR,LEV) * PLAY(NGB(IPR),LEV)                             
6190             DELBGUP = BGLEV(IPR) - BGLAY                                         
6191 !     Get TF from lookup table                                                   
6192             TAUF = TF(IND)                                                       
6193             BBU(INDEX) = BGLAY + TAUF * DELBGUP                                  
6194             BBUTOT(INDEX) = BGLAY + FACTOT * DELBGUP                             
6195             BGLEV(IPR) = PFRAC(IPR,LEV) * PLVL(NGB(IPR),LEV-1)                      
6196             DELBGDN = BGLEV(IPR) - BGLAY                                         
6197             BBD = BGLAY + TAUF * DELBGDN                                         
6198             BBDLEVD = BGLAY + FACTOT * DELBGDN                                   
6199 !     Get clear sky transmittance from lookup table                              
6200             ABSS(INDEX) = 1. - TRANS(IND)                                        
6201             ATOT(INDEX) = ABSS(INDEX) + ABSCLD(LEV) -      &
6202                 ABSS(INDEX) * ABSCLD(LEV)                                        
6203             GASSRC = BBD * ABSS(INDEX)                                           
6204 !     Total sky radiance                                                         
6205             RADLD(IPR) = RADLD(IPR) - RADLD(IPR) * (ABSS(INDEX) +  &             
6206                EFCLFRAC(LEV) * (1.-ABSS(INDEX))) + GASSRC +        &             
6207                CLDFRAC(LEV) * (BBDLEVD * ATOT(INDEX) - GASSRC)                   
6208             DRAD = DRAD + RADLD(IPR)                                             
6209 !     Clear sky radiance                                                         
6210             RADCLRD(IPR) = RADCLRD(IPR) + (BBD - RADCLRD(IPR))     & 
6211                          * ABSS(INDEX)                                           
6212             CLRDRAD = CLRDRAD + RADCLRD(IPR)                                     
6213  2000    CONTINUE                                                                
6214                                                                                  
6215          ELSE                                                                    
6216                                                                                  
6217 ! *** Clear layer                                                                
6218          IENT = NGPT * (LEV-1)                                                   
6219          DO 2100 IPR = 1, NGPT                                                   
6220             INDEX = IENT + IPR                                                   
6221             IND = ITR(IPR,LEV)                                                   
6222             BGLAY = PFRAC(IPR,LEV) * PLAY(NGB(IPR),LEV)                             
6223             DELBGUP = BGLEV(IPR) - BGLAY                                         
6224 !     Get TF from lookup table                                                   
6225             TAUF = TF(IND)                                                       
6226             BBU(INDEX) = BGLAY + TAUF * DELBGUP                                  
6227             BGLEV(IPR) = PFRAC(IPR,LEV) * PLVL(NGB(IPR),LEV-1)                      
6228             DELBGDN = BGLEV(IPR) - BGLAY                                         
6229             BBD = BGLAY + TAUF * DELBGDN                                         
6230 !     Get clear sky transmittance from lookup table                              
6231             ABSS(INDEX) = 1. - TRANS(IND)                                        
6232 !     Total sky radiance                                                         
6233             RADLD(IPR) = RADLD(IPR) + (BBD - RADLD(IPR)) *     & 
6234                          ABSS(INDEX)                                             
6235             DRAD = DRAD + RADLD(IPR)                                             
6236  2100    CONTINUE                                                                
6237 !     Set clear sky stream to total sky stream as long as layers                 
6238 !     remain clear.  Streams diverge when a cloud is reached.                    
6239             IF (ICLDDN.EQ.1) THEN                                                
6240          DO 2200 IPR = 1, NGPT                                                   
6241                RADCLRD(IPR) = RADCLRD(IPR) + (BBD - RADCLRD(IPR)) *   & 
6242                               ABSS(INDEX)                                        
6243                CLRDRAD = CLRDRAD + RADCLRD(IPR)                                  
6244  2200    CONTINUE                                                                
6245             ELSE                                                                 
6246          DO 2300 IPR = 1, NGPT                                                   
6247                RADCLRD(IPR) = RADLD(IPR)                                         
6248                CLRDRAD = DRAD                                                    
6249  2300    CONTINUE                                                                
6250             ENDIF                                                                
6251                                                                                  
6252 ! 2100    CONTINUE                                                               
6253                                                                                  
6254          ENDIF                                                                   
6255                                                                                  
6256          TOTDFLUX(LEV-1) = DRAD * WTNUM                                          
6257          TOTDCLFL(LEV-1) = CLRDRAD * WTNUM                                       
6258                                                                                  
6259  3000 CONTINUE                                                                   
6260                                                                                  
6261                                                                                  
6262 ! SPECTRAL EMISSIVITY & REFLECTANCE                                              
6263 ! Include the contribution of spectrally varying longwave emissivity and         
6264 ! reflection from the surface to the upward radiative transfer.                  
6265 ! Note: Spectral and Lambertian reflection are identical for the one angle       
6266 ! flux integration used here.                                                    
6267                                                                                  
6268       URAD = 0.0                                                                 
6269       CLRURAD = 0.0                                                              
6270       DO 3500 IPR = 1, NGPT                                                      
6271 !     Total sky radiance                                                         
6272          RADLU(IPR) = RADUEMIT(IPR) + (1. - SEMIS(IPR)) * RADLD(IPR)             
6273          URAD = URAD + RADLU(IPR)                                                
6274 !     Clear sky radiance                                                         
6275          RADCLRU(IPR) = RADUEMIT(IPR) + (1. - SEMIS(IPR))  & 
6276                         * RADCLRD(IPR)                                           
6277          CLRURAD = CLRURAD + RADCLRU(IPR)                                        
6278  3500 CONTINUE                                                                   
6279       TOTUFLUX(0) = URAD * WTNUM                                                 
6280       TOTUCLFL(0) = CLRURAD * WTNUM                                              
6281                                                                                  
6282                                                                                  
6283 ! *** UPWARD RADIATIVE TRANSFER                                                  
6284 ! *** URAD holds the summed radiance for total sky stream                        
6285 ! *** CLRURAD holds the summed radiance for clear sky stream                     
6286                                                                                  
6287       DO 5000 LEV = 1, NLAYERS                                                   
6288          URAD = 0.0                                                              
6289          CLRURAD = 0.0                                                           
6290                                                                                  
6291 ! Check flag for cloud in current layer                                          
6292                                                                                  
6293          IF (ICLDLYR(LEV).EQ.1) THEN                                             
6294                                                                                  
6295 ! *** Cloudy layers                                                              
6296          IENT = NGPT * (LEV-1)                                                   
6297          DO 4000 IPR = 1, NGPT                                                   
6298             INDEX = IENT + IPR                                                   
6299             GASSRC = BBU(INDEX) * ABSS(INDEX)                                    
6300 !     Total sky radiance                                                         
6301             RADLU(IPR) = RADLU(IPR) - RADLU(IPR) * (ABSS(INDEX) +    &           
6302                EFCLFRAC(LEV) * (1.-ABSS(INDEX))) + GASSRC +          &
6303                CLDFRAC(LEV) * (BBUTOT(INDEX) * ATOT(INDEX) - GASSRC)             
6304             URAD = URAD + RADLU(IPR)                                             
6305 !     Clear sky radiance                                                         
6306             RADCLRU(IPR) = RADCLRU(IPR) + (BBU(INDEX) - RADCLRU(IPR)) * &        
6307                            ABSS(INDEX)                                           
6308             CLRURAD = CLRURAD + RADCLRU(IPR)                                     
6309  4000    CONTINUE                                                                
6310                                                                                  
6311          ELSE                                                                    
6312                                                                                  
6313 ! *** Clear layer                                                                
6314          IENT = NGPT * (LEV-1)                                                   
6315          DO 4100 IPR = 1, NGPT                                                   
6316             INDEX = IENT + IPR                                                   
6317 !     Total sky radiance                                                         
6318             RADLU(IPR) = RADLU(IPR) + (BBU(INDEX)-RADLU(IPR)) *  & 
6319                          ABSS(INDEX)                                             
6320             URAD = URAD + RADLU(IPR)                                             
6321 !     Clear sky radiance                                                         
6322 !     Upward clear and total sky streams must remain separate because surface    
6323 !     reflectance is different for each.                                         
6324             RADCLRU(IPR) = RADCLRU(IPR) + (BBU(INDEX) - RADCLRU(IPR))   &         
6325                            * ABSS(INDEX)                                         
6326             CLRURAD = CLRURAD + RADCLRU(IPR)                                     
6327  4100    CONTINUE                                                                
6328                                                                                  
6329          ENDIF                                                                   
6330                                                                                  
6331          TOTUFLUX(LEV) = URAD * WTNUM                                            
6332          TOTUCLFL(LEV) = CLRURAD * WTNUM                                         
6333                                                                                  
6334  5000 CONTINUE                                                                   
6335                                                                                  
6336                                                                                  
6337 ! *** Convert radiances to fluxes and heating rates for total sky.  Calculates   
6338 !     clear sky surface and TOA values.  To compute clear sky profiles, uncommen 
6339 !     relevant lines below.                                                      
6340       TOTUFLUX(0) = TOTUFLUX(0) * FLUXFAC                                        
6341       TOTDFLUX(0) = TOTDFLUX(0) * FLUXFAC                                        
6342       FNET(0) = TOTUFLUX(0) - TOTDFLUX(0)                                        
6343       TOTUCLFL(0) = TOTUCLFL(0) * FLUXFAC                                        
6344       TOTDCLFL(0) = TOTDCLFL(0) * FLUXFAC                                        
6345       FNETC(0) = TOTUCLFL(0) - TOTDCLFL(0)                                       
6346       CLRNTTOA = TOTUCLFL(NLAYERS)                                               
6347       CLRNTSRF = TOTUFLUX(0) - TOTDCLFL(0)                                       
6348                                                                                  
6349       DO 7000 LEV = 1, NLAYERS                                                   
6350          TOTUFLUX(LEV) = TOTUFLUX(LEV) * FLUXFAC                                 
6351          TOTDFLUX(LEV) = TOTDFLUX(LEV) * FLUXFAC                                 
6352          FNET(LEV) = TOTUFLUX(LEV) - TOTDFLUX(LEV)                               
6353          TOTUCLFL(LEV) = TOTUCLFL(LEV) * FLUXFAC                                 
6354          TOTDCLFL(LEV) = TOTDCLFL(LEV) * FLUXFAC                                 
6355          FNETC(LEV) = TOTUCLFL(LEV) - TOTDCLFL(LEV)                              
6356          L = LEV - 1                                                             
6357 !     Calculate Heating Rates.                                                   
6358          HTR(L) = HEATFAC * (FNET(L) - FNET(LEV)) / (PZ(L) - PZ(LEV))            
6359          HTRC(L) = HEATFAC * (FNETC(L) - FNETC(LEV)) / (PZ(L) - PZ(LEV))         
6360  7000 CONTINUE                                                                   
6361       HTR(NLAYERS) = 0.0                                                         
6362       HTRC(NLAYERS) = 0.0                                                        
6363                                                                                  
6364 
6365       END  SUBROUTINE RTRN
6366 
6367 !---------------------------------------------------------------------------
6368       SUBROUTINE GASABS(kts,ktep1,                                         &
6369                         COLDRY,COLH2O,COLCO2,COLO3,COLN2O,COLCH4,          &
6370                         COLO2,CO2MULT,                                     &
6371                         FAC00,FAC01,FAC10,FAC11,                           &
6372                         FORFAC,SELFFAC,SELFFRAC,                           &
6373                         JP,JT,JT1,INDSELF,ITR,WX,PFRAC,TAUG,               &
6374                         LAYTROP,LAYSWTCH,LAYLOW                            )
6375 !---------------------------------------------------------------------------
6376 !  RRTM Longwave Radiative Transfer Model                                        
6377 !  Atmospheric and Environmental Research, Inc., Cambridge, MA                   
6378 !                                                                                
6379 !  Original version:       E. J. Mlawer, et al.                                  
6380 !  Revision for NCAR CCM:  Michael J. Iacono; September, 1998                    
6381 !                                                                                
6382 !  This routine calculates the gaseous optical depths for all 16 longwave        
6383 !  spectral bands.  The optical depths are used to define the Pade               
6384 !  approximation to the function of tau transition from tranparancy to           
6385 !  opacity.  This function, which varies from 0 to 1, is converted to an         
6386 !  integer that will serve as an index for the lookup tables of tau              
6387 !  transition function and transmittance used in the radiative transfer.         
6388 !  These lookup tables are created on initialization in routine RRTMINIT.        
6389 !---------------------------------------------------------------------------
6390 !                                                                                
6391 ! Definitions                                                                    
6392 !    NGPT                         ! Total number of g-point subintervals         
6393 !    MXLAY                        ! Maximum number of model layers               
6394 !    SECANG                       ! Diffusivity angle for flux computation       
6395 !    TAU(NGPT,MXLAY)              ! Gaseous optical depths                       
6396 !    NLAYERS                      ! Number of model layers used in RRTM          
6397 !    PAVEL(MXLAY)                 ! Model layer pressures (mb)                   
6398 !    PZ(0:MXLAY)                  ! Model level (interface) pressures (mb)       
6399 !    TAVEL(MXLAY)                 ! Model layer temperatures (K)                 
6400 !    TZ(0:MXLAY)                  ! Model level (interface) temperatures (K)     
6401 !    TBOUND                       ! Surface temperature (K)                      
6402 !    BPADE                        ! Pade approximation constant (=1./0.278)      
6403 !    ITR(NGPT,MXLAY)              ! Integer lookup table index                   
6404 !                                                                                
6405 ! Parameters                              
6406 
6407       IMPLICIT NONE
6408                                        
6409       REAL, PARAMETER :: SECANG=1.66                                                    
6410 
6411       INTEGER, INTENT(IN )   ::  kts,ktep1
6412       INTEGER, INTENT(IN )   ::  LAYTROP,LAYSWTCH,LAYLOW
6413 
6414       REAL, DIMENSION( NGPT,kts:ktep1 ),                  &
6415             INTENT(INOUT)        ::                PFRAC
6416 
6417       REAL, DIMENSION( NGPT,kts:ktep1 ),                  &
6418             INTENT(INOUT)        ::                 TAUG
6419 
6420       REAL, DIMENSION( MAXXSEC,kts:ktep1 ),               &
6421             INTENT(IN   )        ::                   WX
6422 
6423       INTEGER, DIMENSION( NGPT,kts:ktep1 ),               &
6424                INTENT(INOUT)  ::                     ITR
6425 
6426       REAL, DIMENSION( kts:ktep1 ), INTENT(IN   ) ::      &
6427                                                   COLDRY, &  
6428                                                   COLH2O, &
6429                                                   COLCO2, &
6430                                                    COLO3, &
6431                                                   COLN2O, &
6432                                                   COLCH4, &
6433                                                    COLO2, &
6434                                                  CO2MULT, &
6435                                                    FAC00, &
6436                                                    FAC01, &
6437                                                    FAC10, &
6438                                                    FAC11, &
6439                                                   FORFAC, &
6440                                                  SELFFAC, &
6441                                                 SELFFRAC
6442  
6443       INTEGER, DIMENSION( kts:ktep1 ), INTENT(INOUT) ::   &
6444                                                       JP, &
6445                                                       JT, &
6446                                                      JT1, &
6447                                                  INDSELF
6448 
6449       INTEGER :: lay,ipr
6450       REAL    :: odepth,tff
6451 
6452 ! This compiler directive was added to insure private common block storage       
6453 ! in multi-tasked mode on a CRAY or SGI for all commons except those that        
6454 ! carry constants.                                                               
6455                                                                                  
6456 ! **************************************************************************     
6457 
6458 !  Calculate optical depth for each band                                         
6459      
6460       CALL TAUGB1(kts,ktep1,COLH2O,FAC00,FAC01,FAC10,FAC11,              &
6461                   FORFAC,SELFFAC,SELFFRAC,JP,JT,JT1,INDSELF,PFRAC,TAUG,  &
6462                   LAYTROP)
6463       CALL TAUGB2(kts,ktep1,COLDRY,COLH2O,FAC00,FAC01,FAC10,FAC11,       &
6464                   FORFAC,SELFFAC,SELFFRAC,JP,JT,JT1,INDSELF,PFRAC,TAUG,  &
6465                   LAYTROP)
6466       CALL TAUGB3(kts,ktep1,COLH2O,COLCO2,COLN2O,FAC00,FAC01,FAC10,FAC11,&
6467                   FORFAC,SELFFAC,SELFFRAC,JP,JT,JT1,INDSELF,PFRAC,TAUG,  &
6468                   LAYTROP)
6469       CALL TAUGB4(kts,ktep1,COLH2O,COLCO2,COLO3,FAC00,FAC01,FAC10,FAC11, &
6470                   SELFFAC,SELFFRAC,JP,JT,JT1,INDSELF,PFRAC,TAUG,         &
6471                   LAYTROP)
6472       CALL TAUGB5(kts,ktep1,COLH2O,COLCO2,COLO3,FAC00,FAC01,FAC10,FAC11, &
6473                   SELFFAC,SELFFRAC,JP,JT,JT1,INDSELF,WX,PFRAC,TAUG,      &
6474                   LAYTROP)
6475       CALL TAUGB6(kts,ktep1,COLH2O,CO2MULT,FAC00,FAC01,FAC10,FAC11,      &
6476                   SELFFAC,SELFFRAC,JP,JT,JT1,INDSELF,WX,PFRAC,TAUG,      &
6477                   LAYTROP)
6478       CALL TAUGB7(kts,ktep1,COLH2O,COLO3,CO2MULT,FAC00,FAC01,FAC10,FAC11,&
6479                   SELFFAC,SELFFRAC,JP,JT,JT1,INDSELF,PFRAC,TAUG,         &
6480                   LAYTROP)
6481       CALL TAUGB8(kts,ktep1,COLH2O,COLO3,COLN2O,CO2MULT,FAC00,FAC01,FAC10,&
6482                   FAC11,SELFFAC,SELFFRAC,JP,JT,JT1,INDSELF,WX,PFRAC,TAUG,&
6483                   LAYSWTCH)
6484       CALL TAUGB9(kts,ktep1,COLH2O,COLN2O,COLCH4,FAC00,FAC01,FAC10,FAC11,&
6485                   SELFFAC,SELFFRAC,JP,JT,JT1,INDSELF,PFRAC,TAUG,         &
6486                   LAYTROP,LAYSWTCH,LAYLOW)
6487       CALL TAUGB10(kts,ktep1,COLH2O,FAC00,FAC01,FAC10,FAC11,JP,JT,JT1,&
6488                   PFRAC,TAUG,LAYTROP)
6489       CALL TAUGB11(kts,ktep1,COLH2O,FAC00,FAC01,FAC10,FAC11,             &
6490                   SELFFAC,SELFFRAC,JP,JT,JT1,INDSELF,PFRAC,TAUG,         &
6491                   LAYTROP)
6492       CALL TAUGB12(kts,ktep1,COLH2O,COLCO2,FAC00,FAC01,FAC10,FAC11,      &
6493                   SELFFAC,SELFFRAC,JP,JT,JT1,INDSELF,PFRAC,TAUG,         &
6494                   LAYTROP)
6495       CALL TAUGB13(kts,ktep1,COLH2O,COLN2O,FAC00,FAC01,FAC10,FAC11,      &
6496                   SELFFAC,SELFFRAC,JP,JT,JT1,INDSELF,PFRAC,TAUG,         &
6497                   LAYTROP)
6498       CALL TAUGB14(kts,ktep1,COLCO2,FAC00,FAC01,FAC10,FAC11,             &
6499                   SELFFAC,SELFFRAC,JP,JT,JT1,INDSELF,PFRAC,TAUG,         &
6500                   LAYTROP)
6501       CALL TAUGB15(kts,ktep1,COLH2O,COLCO2,COLN2O,FAC00,FAC01,FAC10,FAC11,&
6502                   SELFFAC,SELFFRAC,JP,JT,JT1,INDSELF,PFRAC,TAUG,         &
6503                   LAYTROP)
6504       CALL TAUGB16(kts,ktep1,COLH2O,COLCH4,FAC00,FAC01,FAC10,FAC11,      &
6505                   SELFFAC,SELFFRAC,JP,JT,JT1,INDSELF,PFRAC,TAUG,         &
6506                   LAYTROP)
6507                                                                                  
6508 !  Compute the lookup table index from the Pade approximation of the             
6509 !  tau transition function, which is derived from the optical depth.             
6510                                                                                  
6511       DO 6000 LAY = 1, NLAYERS                                                   
6512          DO 5000 IPR = 1, NGPT                                                   
6513             ODEPTH = SECANG * TAUG(IPR,LAY)                                       
6514             TFF = ODEPTH/(BPADE+ODEPTH)                                           
6515             IF (ODEPTH.LE.0.) TFF=0.                                              
6516             ITR(IPR,LAY) = INT(5.E3*TFF+0.5)
6517  5000    CONTINUE                                                                
6518  6000 CONTINUE                                                                   
6519       
6520    END SUBROUTINE GASABS
6521 
6522 !====================================================================
6523    SUBROUTINE rrtminit(                                             &
6524                        allowed_to_read ,                            &
6525                        ids, ide, jds, jde, kds, kde,                &
6526                        ims, ime, jms, jme, kms, kme,                &
6527                        its, ite, jts, jte, kts, kte                 )
6528 !--------------------------------------------------------------------
6529    IMPLICIT NONE
6530 !--------------------------------------------------------------------
6531 
6532    LOGICAL , INTENT(IN)           :: allowed_to_read
6533    INTEGER , INTENT(IN)           :: ids, ide, jds, jde, kds, kde,  &
6534                                      ims, ime, jms, jme, kms, kme,  &
6535                                      its, ite, jts, jte, kts, kte
6536 
6537    REAL :: pi
6538 
6539    PI = 2.*ASIN(1.) 
6540    FLUXFAC  = PI   * 2.D4                     
6541    NLAYERS = kme
6542 
6543    IF ( allowed_to_read ) THEN
6544      CALL rrtm_lookuptable
6545    ENDIF
6546 
6547    END SUBROUTINE rrtminit
6548 
6549 
6550 ! **************************************************************************     
6551       SUBROUTINE rrtm_lookuptable
6552 ! **************************************************************************     
6553 
6554 USE module_wrf_error
6555 USE module_dm
6556 IMPLICIT NONE
6557 
6558 !  RRTM Longwave Radiative Transfer Model                                        
6559 !  Atmospheric and Environmental Research, Inc., Cambridge, MA                   
6560 !                                                                                
6561 !  Original version:       Michael J. Iacono; July, 1998                         
6562 !  Revision for NCAR CCM:  Michael J. Iacono; September, 1998                    
6563 !                                                                                
6564 !  This subroutine performs calculations necessary for the initialization        
6565 !  of the LW model, RRTM.  Lookup tables are computed for use in the LW          
6566 !  radiative transfer, and input absorption coefficient data for each            
6567 !  spectral band are reduced from 256 g-points to 140 for use in RRTM.           
6568 ! **************************************************************************     
6569                                                                                  
6570 ! Definitions                                                                    
6571 !     Arrays for 5000-point look-up tables:                                      
6572 !     TAU     Clear-sky optical depth (used in cloudy radiative transfer)        
6573 !     TF      Tau transition function; i.e. the transition of the Planck         
6574 !             function from that for the mean layer temperature to that for      
6575 !             the layer boundary temperature as a function of optical depth.     
6576 !             The "linear in tau" method is used to make the table.              
6577 !     TRANS   Transmittance                                                      
6578 !     BPADE   Inverse of the Pade approximation constant (= 1./0.278)            
6579 
6580 ! Local                                    
6581       INTEGER :: i,itre,igcsm,ibnd,igc,ind,ig,ipr,iprsm
6582       REAL :: tfn,fp,rtfp,wtsum                                        
6583       LOGICAL                 :: opened
6584       LOGICAL , EXTERNAL      :: wrf_dm_on_monitor
6585 
6586       REAL :: WTSM(MG)                       
6587       CHARACTER*80 errmess
6588       INTEGER rrtm_unit
6589 
6590       IF ( wrf_dm_on_monitor() ) THEN
6591         DO i = 10,99
6592           INQUIRE ( i , OPENED = opened )
6593           IF ( .NOT. opened ) THEN
6594             rrtm_unit = i
6595             GOTO 2010
6596           ENDIF
6597         ENDDO
6598         rrtm_unit = -1
6599  2010   CONTINUE
6600       ENDIF
6601       CALL wrf_dm_bcast_bytes ( rrtm_unit , IWORDSIZE )
6602       IF ( rrtm_unit < 0 ) THEN
6603         CALL wrf_error_fatal ( 'module_ra_rrtm: rrtm_lookuptable: Can not '// &
6604                                'find unused fortran unit to read in lookup table.' )
6605       ENDIF
6606 
6607 ! start data 1
6608 
6609 ! **************************************************************************     
6610 !  RRTM Longwave Radiative Transfer Model                                        
6611 !  Atmospheric and Environmental Research, Inc., Cambridge, MA                   
6612 !                                                                                
6613 !  Original version:       E. J. Mlawer, et al.                                  
6614 !  Revision for NCAR CCM:  Michael J. Iacono; September, 1998                    
6615 !                                                                                
6616 !  This routine contains 16 READ statements that include the                
6617 !  absorption coefficients and other data for each of the 16 longwave            
6618 !  spectral bands used in RRTM.  Here, the data are defined for 16               
6619 !  g-points, or sub-intervals, per band.  These data are combined and            
6620 !  weighted using a mapping procedure in routine RRTMINIT to reduce              
6621 !  the total number of g-points from 256 to 140 for use in the CCM.              
6622 ! **************************************************************************     
6623 #ifdef G95
6624 ! JRB hardwire unit to 98 to ensure it is read big endian by g95
6625       rrtm_unit=98
6626 #endif
6627         IF ( wrf_dm_on_monitor() ) THEN
6628           OPEN(rrtm_unit,FILE='RRTM_DATA',                  &
6629                FORM='UNFORMATTED',STATUS='OLD',ERR=9009)
6630         ENDIF
6631                                                                                  
6632 !     The array abscoefL1 contains absorption coefs at the 16 chosen g-values   
6633 !     for a range of pressure levels > ~100mb and temperatures.  The first       
6634 !     index in the array, JT, which runs from 1 to 5, corresponds to     
6635 !     different temperatures.  More specifically, JT = 3 means that the          
6636 !     data are for the corresponding TREF for this  pressure level,              
6637 !     JT = 2 refers to the temperatureTREF-15, JT = 1 is for TREF-30,            
6638 !     JT = 4 is for TREF+15, and JT = 5 is for TREF+30.  The second              
6639 !     index, JP, runs from 1 to 13 and refers to the corresponding               
6640 !     pressure level in PREF (e.g. JP = 1 is for a pressure of 1053.63 mb).      
6641 !     The third index, IG, goes from 1 to 16, and tells us which                 
6642 !     g-interval the absorption coefficients are for.                            
6643 
6644 
6645                                                                                  
6646 !     The array abscoefH1 contains absorption coefs at the 16 chosen g-values           
6647 !     for a range of pressure levels < ~100mb and temperatures. The first        
6648 !     index in the array, JT, which runs from 1 to 5, corresponds to             
6649 !     different temperatures.  More specifically, JT = 3 means that the          
6650 !     data are for the reference temperature TREF for this pressure              
6651 !     level, JT = 2 refers to the temperature TREF-15, JT = 1 is for             
6652 !     TREF-30, JT = 4 is for TREF+15, and JT = 5 is for TREF+30.                 
6653 !     The second index, JP, runs from 13 to 59 and refers to the JPth            
6654 !     reference pressure level (see taumol.f for the value of these              
6655 !     pressure levels in mb).  The third index, IG, goes from 1 to 16, &        
6656 !     and tells us which g-interval the absorption coefficients are for.         
6657 
6658                                                                                  
6659 !     The array SELFREF1 contains the coefficient of the water vapor              
6660 !     self-continuum (including the energy term).  The first index               
6661 !     refers to temperature in 7.2 degree increments.  For instance, &          
6662 !     JT = 1 refers to a temperature of 245.6, JT = 2 refers to 252.8, &        
6663 !     etc.  The second index runs over the g-channel (1 to 16).                  
6664 
6665 #define DM_BCAST_MACRO(A) CALL wrf_dm_bcast_bytes ( A , size ( A ) * RWORDSIZE )
6666 
6667          IF ( wrf_dm_on_monitor() ) READ (rrtm_unit,ERR=9010) abscoefL1, abscoefH1, SELFREF1
6668          DM_BCAST_MACRO(abscoefL1)
6669          DM_BCAST_MACRO(abscoefH1)
6670          DM_BCAST_MACRO(SELFREF1)
6671 
6672 ! **************************************************************************     
6673 !     The array abscoefL2 contains absorption coefs at the 16 chosen g-values 
6674 !     for a range of pressure levels > ~100mb and temperatures.  The first       
6675 !     index in the array, JT, which runs from 1 to 5, corresponds to             
6676 !     different temperatures.  More specifically, JT = 3 means that the          
6677 !     data are for the corresponding TREF for this  pressure level, &           
6678 !     JT = 2 refers to the temperatureTREF-15, JT = 1 is for TREF-30, &         
6679 !     JT = 4 is for TREF+15, and JT = 5 is for TREF+30.  The second              
6680 !     index, JP, runs from 1 to 13 and refers to the corresponding               
6681 !     pressure level in PREF (e.g. JP = 1 is for a pressure of 1053.63 mb).      
6682 !     The third index, IG, goes from 1 to 16, and tells us which                 
6683 !     g-interval the absorption coefficients are for.                            
6684 
6685                                                                                  
6686 !     The array abscoefH2 contains absorption coefs at the 16 chosen g-values           
6687 !     for a range of pressure levels < ~100mb and temperatures. The first        
6688 !     index in the array, JT, which runs from 1 to 5, corresponds to             
6689 !     different temperatures.  More specifically, JT = 3 means that the          
6690 !     data are for the reference temperature TREF for this pressure              
6691 !     level, JT = 2 refers to the temperature TREF-15, JT = 1 is for             
6692 !     TREF-30, JT = 4 is for TREF+15, and JT = 5 is for TREF+30.                 
6693 !     The second index, JP, runs from 13 to 59 and refers to the JPth            
6694 !     reference pressure level (see taumol.f for the value of these              
6695 !     pressure levels in mb).  The third index, IG, goes from 1 to 16, &        
6696 !     and tells us which g-interval the absorption coefficients are for.         
6697 
6698                                                                                  
6699 !     The array SELFREF2 contains the coefficient of the water vapor              
6700 !     self-continuum (including the energy term).  The first index               
6701 !     refers to temperature in 7.2 degree increments.  For instance, &          
6702 !     JT = 1 refers to a temperature of 245.6, JT = 2 refers to 252.8, &        
6703 !     etc.  The second index runs over the g-channel (1 to 16).                  
6704 
6705          IF ( wrf_dm_on_monitor() ) READ (rrtm_unit,ERR=9010) abscoefL2, abscoefH2, SELFREF2
6706          DM_BCAST_MACRO(abscoefL2)
6707          DM_BCAST_MACRO(abscoefH2)
6708          DM_BCAST_MACRO(SELFREF2)
6709                                                                                  
6710 ! **************************************************************************     
6711 
6712 !     The array abscoefL3 contains absorption coefs for each of the 16 g-intervals   
6713 !     for a range of pressure levels > ~100mb, temperatures, and ratios          
6714 !     of water vapor to CO2.  The first index in the array, JS, runs             
6715 !     from 1 to 10, and corresponds to different water vapor to CO2 ratios, &   
6716 !     as expressed through the binary species parameter eta, defined as          
6717 !     eta = h2o/(h20 + (rat) * co2), where rat is the ratio of the integrated    
6718 !     line strength in the band of co2 to that of h2o.  For instance, &         
6719 !     JS=1 refers to dry air (eta = 0), JS = 10 corresponds to eta = 1.0.        
6720 !     The 2nd index in the array, JT, which runs from 1 to 5, corresponds        
6721 !     to different temperatures.  More specifically, JT = 3 means that the       
6722 !     data are for the reference temperature TREF for this  pressure             
6723 !     level, JT = 2 refers to the temperature                                    
6724 !     TREF-15, JT = 1 is for TREF-30, JT = 4 is for TREF+15, and JT = 5          
6725 !     is for TREF+30.  The third index, JP, runs from 1 to 13 and refers         
6726 !     to the reference pressure level (e.g. JP = 1 is for a                      
6727 !     pressure of 1053.63 mb).  The fourth index, IG, goes from 1 to 16, &      
6728 !     and tells us which g-interval the absorption coefficients are for.         
6729 
6730                                                                                  
6731 !     The array abscoefH3 contains absorption coefs for each of the 16 g-intervals      
6732 !     for a range of pressure levels  < ~100mb, temperatures, and ratios         
6733 !     of H2O to CO2.  The first index in the array, JS, runs from 1 to 5, &     
6734 !     and corresponds to different H2O to CO2 ratios, as expressed through       
6735 !     the binary species parameter eta, defined as eta = H2O/(H2O+RAT*CO2), &   
6736 !     where RAT is the ratio of the integrated line strength in the band         
6737 !     of CO2 to that of H2O.  For instance, JS=1 refers to no H2O, &            
6738 !     JS = 2 corresponds to eta = 0.25, etc.  The second index, JT, which        
6739 !     runs from 1 to 5, corresponds to different temperatures.  More             
6740 !     specifically, JT = 3 means that the data are for the corresponding         
6741 !     reference temperature TREF for this  pressure level, JT = 2 refers         
6742 !     to the TREF-15, JT = 1 is for TREF-30, JT = 4 is for TREF+15, and          
6743 !     JT = 5 is for TREF+30.  The third index, JP, runs from 13 to 59 and        
6744 !     refers to the corresponding pressure level in PREF (e.g. JP = 13 is        
6745 !     for a pressure of 95.5835 mb).  The fourth index, IG, goes from 1 to       
6746 !     16, and tells us which g-interval the absorption coefficients are for.     
6747 
6748                                                                                  
6749 !     The array SELFREF3 contains the coefficient of the water vapor              
6750 !     self-continuum (including the energy term).  The first index               
6751 !     refers to temperature in 7.2 degree increments.  For instance, &          
6752 !     JT = 1 refers to a temperature of 245.6, JT = 2 refers to 252.8, &        
6753 !     etc.  The second index runs over the g-channel (1 to 16).                  
6754 
6755          IF ( wrf_dm_on_monitor() ) READ (rrtm_unit,ERR=9010) abscoefL3, abscoefH3, SELFREF3
6756          DM_BCAST_MACRO(abscoefL3)
6757          DM_BCAST_MACRO(abscoefH3)
6758          DM_BCAST_MACRO(SELFREF3)
6759                                                                                  
6760 ! **************************************************************************     
6761                                                                                  
6762 !     The array abscoefL4 contains absorption coefs for each of the 16 g-intervals      
6763 !     for a range of pressure levels > ~100mb, temperatures, and ratios          
6764 !     of water vapor to CO2.  The first index in the array, JS, runs             
6765 !     from 1 to 9 and corresponds to different water vapor to CO2 ratios, &     
6766 !     as expressed through the binary species parameter eta, defined as          
6767 !     eta = h2o/(h20 + (rat) * co2), where rat is the ratio of the integrated    
6768 !     line strength in the band of co2 to that of h2o.  For instance, &         
6769 !     JS=1 refers to dry air (eta = 0), JS = 9 corresponds to eta = 1.0.         
6770 !     The 2nd index in the array, JT, which runs from 1 to 5, corresponds        
6771 !     to different temperatures.  More specifically, JT = 3 means that the       
6772 !     data are for the reference temperature TREF for this pressure              
6773 !     level, JT = 2 refers to the temperature TREF-15, &                        
6774 !     JT = 1 is for TREF-30, JT = 4 is for TREF+15, and JT = 5                   
6775 !     is for TREF+30.  The third index, JP, runs from 1 to 13 and refers         
6776 !     to the reference pressure level (e.g. JP = 1 is for a                      
6777 !     pressure of 1053.63 mb).  The fourth index, IG, goes from 1 to 16, &      
6778 !     and tells us which g-interval the absorption coefficients are for.         
6779 
6780                                                                                  
6781 !     The array abscoefH4 contains absorption coefs for each of the 16 g-intervals      
6782 !     for a range of pressure levels  < ~100mb, temperatures, and ratios         
6783 !     of O3 to CO2.  The first index in the array, JS, runs from 1 to 6, &      
6784 !     and corresponds to different O3 to CO2 ratios, as expressed through        
6785 !     the binary species parameter eta, defined as eta = O3/(O3+RAT*H2O), &     
6786 !     where RAT is the ratio of the integrated line strength in the band         
6787 !     of CO2 to that of O3.  For instance, JS=1 refers to no O3 (eta = 0)        
6788 !     and JS = 5 corresponds to eta = 1.0.  The second index, JT, which          
6789 !     runs from 1 to 5, corresponds to different temperatures.  More             
6790 !     specifically, JT = 3 means that the data are for the corresponding         
6791 !     reference temperature TREF for this  pressure level, JT = 2 refers         
6792 !     to the TREF-15, JT = 1 is for TREF-30, JT = 4 is for TREF+15, and          
6793 !     JT = 5 is for TREF+30.  The third index, JP, runs from 13 to 59 and        
6794 !     refers to the corresponding pressure level in PREF (e.g. JP = 13 is        
6795 !     for a pressure of 95.5835 mb).  The fourth index, IG, goes from 1 to       
6796 !     16, and tells us which g-interval the absorption coefficients are for.     
6797 
6798                                                                                  
6799 !     The array SELFREF4 contains the coefficient of the water vapor              
6800 !     self-continuum (including the energy term).  The first index               
6801 !     refers to temperature in 7.2 degree increments.  For instance, &          
6802 !     JT = 1 refers to a temperature of 245.6, JT = 2 refers to 252.8, &        
6803 !     etc.  The second index runs over the g-channel (1 to 16).                  
6804 
6805          IF ( wrf_dm_on_monitor() ) READ (rrtm_unit,ERR=9010) abscoefL4, abscoefH4, SELFREF4
6806          DM_BCAST_MACRO(abscoefL4)
6807          DM_BCAST_MACRO(abscoefH4)
6808          DM_BCAST_MACRO(SELFREF4)
6809                                                                                  
6810 ! **************************************************************************     
6811                                                                                  
6812 !     The array abscoefL5 contains absorption coefs for each of the 16 g-intervals
6813 !     for a range of pressure levels > ~100mb, temperatures, and ratios          
6814 !     of water vapor to CO2.  The first index in the array, JS, runs             
6815 !     from 1 to 9 and corresponds to different water vapor to CO2 ratios, &     
6816 !     as expressed through the binary species parameter eta, defined as          
6817 !     eta = h2o/(h20 + (rat) * co2), where rat is the ratio of the integrated    
6818 !     line strength in the band of co2 to that of h2o.  For instance, &         
6819 !     JS=1 refers to dry air (eta = 0), JS = 9 corresponds to eta = 1.0.         
6820 !     The 2nd index in the array, JT, which runs from 1 to 5, corresponds        
6821 !     to different temperatures.  More specifically, JT = 3 means that the       
6822 !     data are for the reference temperature TREF for this  pressure             
6823 !     level, JT = 2 refers to the temperature TREF-15, &                        
6824 !     JT = 1 is for TREF-30, JT = 4 is for TREF+15, and JT = 5                   
6825 !     is for TREF+30.  The third index, JP, runs from 1 to 13 and refers         
6826 !     to the reference pressure level (e.g. JP = 1 is for a                      
6827 !     pressure of 1053.63 mb).  The fourth index, IG, goes from 1 to 16, &      
6828 !     and tells us which g-interval the absorption coefficients are for.         
6829 
6830                                                                                  
6831 !     The array abscoefH5 contains absorption coefs for each of the 16 g-intervals      
6832 !     for a range of pressure levels  < ~100mb, temperatures, and ratios         
6833 !     of O3 to CO2.  The first index in the array, JS, runs from 1 to 5, &      
6834 !     and corresponds to different O3 to CO2 ratios, as expressed through        
6835 !     the binary species parameter eta, defined as eta = O3/(O3+RAT*CO2), &     
6836 !     where RAT is the ratio of the integrated line strength in the band         
6837 !     of co2 to that of O3.  For instance, JS=1 refers to no O3 (eta = 0)        
6838 !     and JS = 5 corresponds to eta = 1.0.  The second index, JT, which          
6839 !     runs from 1 to 5, corresponds to different temperatures.  More             
6840 !     specifically, JT = 3 means that the data are for the corresponding         
6841 !     reference temperature TREF for this  pressure level, JT = 2 refers         
6842 !     to the TREF-15, JT = 1 is for TREF-30, JT = 4 is for TREF+15, and          
6843 !     JT = 5 is for TREF+30.  The third index, JP, runs from 13 to 59 and        
6844 !     refers to the corresponding pressure level in PREF (e.g. JP = 13 is        
6845 !     for a pressure of 95.5835 mb).  The fourth index, IG, goes from 1 to       
6846 !     16, and tells us which g-interval the absorption coefficients are for.     
6847 
6848                                                                                  
6849 !     The array SELFREF5 contains the coefficient of the water vapor              
6850 !     self-continuum (including the energy term).  The first index               
6851 !     refers to temperature in 7.2 degree increments.  For instance, &          
6852 !     JT = 1 refers to a temperature of 245.6, JT = 2 refers to 252.8, &        
6853 !     etc.  The second index runs over the g-channel (1 to 16).                  
6854 
6855          IF ( wrf_dm_on_monitor() ) READ (rrtm_unit,ERR=9010) abscoefL5, abscoefH5, SELFREF5
6856          DM_BCAST_MACRO(abscoefL5)
6857          DM_BCAST_MACRO(abscoefH5)
6858          DM_BCAST_MACRO(SELFREF5)
6859                                                                                  
6860 ! **************************************************************************     
6861                                                                                  
6862 !     The array abscoefL6 contains absorption coefs at the 16 chosen g-values    
6863 !     for a range of pressure levels > ~100mb and temperatures.  The first       
6864 !     index in the array, JT, which runs from 1 to 5, corresponds to             
6865 !     different temperatures.  More specifically, JT = 3 means that the          
6866 !     data are for the corresponding TREF for this  pressure level, &           
6867 !     JT = 2 refers to the temperatureTREF-15, JT = 1 is for TREF-30, &         
6868 !     JT = 4 is for TREF+15, and JT = 5 is for TREF+30.  The second              
6869 !     index, JP, runs from 1 to 13 and refers to the corresponding               
6870 !     pressure level in PREF (e.g. JP = 1 is for a pressure of 1053.63 mb).      
6871 !     The third index, IG, goes from 1 to 16, and tells us which                 
6872 !     g-interval the absorption coefficients are for.                            
6873 
6874                                                                                  
6875 !     The array SELFREF6 contains the coefficient of the water vapor              
6876 !     self-continuum (including the energy term).  The first index               
6877 !     refers to temperature in 7.2 degree increments.  For instance, &          
6878 !     JT = 1 refers to a temperature of 245.6, JT = 2 refers to 252.8, &        
6879 !     etc.  The second index runs over the g-channel (1 to 16).                  
6880 
6881          IF ( wrf_dm_on_monitor() ) READ (rrtm_unit,ERR=9010) abscoefL6, SELFREF6
6882          DM_BCAST_MACRO(abscoefL6)
6883          DM_BCAST_MACRO(SELFREF6)
6884                                                                                  
6885 ! **************************************************************************     
6886                                                                                  
6887 !     The array abscoefL7 contains absorption coefs at the 16 chosen g-values           
6888 !     for a range of pressure levels> ~100mb, temperatures, and binary           
6889 !     species parameters (see taumol.f for definition).  The first               
6890 !     index in the array, JS, runs from 1 to 9, and corresponds to               
6891 !     different values of the binary species parameter.  For instance, &        
6892 !     JS=1 refers to dry air, JS = 2 corresponds to the paramter value 1/8, &   
6893 !     JS = 3 corresponds to the parameter value 2/8, etc.  The second index      
6894 !     in the array, JT, which runs from 1 to 5, corresponds to different         
6895 !     temperatures.  More specifically, JT = 3 means that the data are for       
6896 !     the reference temperature TREF for this  pressure level, JT = 2 refers     
6897 !     to TREF-15, JT = 1 is for TREF-30, JT = 4 is for TREF+15, and JT = 5       
6898 !     is for TREF+30.  The third index, JP, runs from 1 to 13 and refers         
6899 !     to the JPth reference pressure level (see taumol.f for these levels        
6900 !     in mb).  The fourth index, IG, goes from 1 to 16, and indicates            
6901 !     which g-interval the absorption coefficients are for.                      
6902 
6903                                                                                  
6904 !     The array abscoefH7 contains absorption coefs at the 16 chosen g-values           
6905 !     for a range of pressure levels < ~100mb and temperatures. The first        
6906 !     index in the array, JT, which runs from 1 to 5, corresponds to             
6907 !     different temperatures.  More specifically, JT = 3 means that the          
6908 !     data are for the reference temperature TREF for this pressure              
6909 !     level, JT = 2 refers to the temperature TREF-15, JT = 1 is for             
6910 !     TREF-30, JT = 4 is for TREF+15, and JT = 5 is for TREF+30.                 
6911 !     The second index, JP, runs from 13 to 59 and refers to the JPth            
6912 !     reference pressure level (see taumol.f for the value of these              
6913 !     pressure levels in mb).  The third index, IG, goes from 1 to 16, &        
6914 !     and tells us which g-interval the absorption coefficients are for.         
6915 
6916                                                                                  
6917 !     The array SELFREF7 contains the coefficient of the water vapor              
6918 !     self-continuum (including the energy term).  The first index               
6919 !     refers to temperature in 7.2 degree increments.  For instance, &          
6920 !     JT = 1 refers to a temperature of 245.6, JT = 2 refers to 252.8, &        
6921 !     etc.  The second index runs over the g-channel (1 to 16).                  
6922 
6923          IF ( wrf_dm_on_monitor() ) READ (rrtm_unit,ERR=9010) abscoefL7, abscoefH7, SELFREF7
6924          DM_BCAST_MACRO(abscoefL7)
6925          DM_BCAST_MACRO(abscoefH7)
6926          DM_BCAST_MACRO(SELFREF7)
6927                                                                                  
6928 ! **************************************************************************
6929                                                                                  
6930 !     The array abscoefL8 contains absorption coefs at the 16 chosen g-values    
6931 !     for a range of pressure levels > ~100mb and temperatures.  The first       
6932 !     index in the array, JT, which runs from 1 to 5, corresponds to             
6933 !     different temperatures.  More specifically, JT = 3 means that the          
6934 !     data are for the corresponding TREF for this  pressure level, &           
6935 !     JT = 2 refers to the temperatureTREF-15, JT = 1 is for TREF-30, &         
6936 !     JT = 4 is for TREF+15, and JT = 5 is for TREF+30.  The second              
6937 !     index, JP, runs from 1 to 13 and refers to the corresponding               
6938 !     pressure level in PREF (e.g. JP = 1 is for a pressure of 1053.63 mb).      
6939 !     The third index, IG, goes from 1 to 16, and tells us which                 
6940 !     g-interval the absorption coefficients are for.                            
6941 !     The array abscoefL8 contains absorption coef5s at the 16 chosen g-values          
6942 !     for a range of pressure levels > ~100mb and temperatures.  The first       
6943 !     index in the array, JT, which runs from 1 to 5, corresponds to             
6944 !     different temperatures.  More specifically, JT = 3 means that the          
6945 !     data are for the cooresponding TREF for this  pressure level, &           
6946 !     JT = 2 refers to the temperature                                           
6947 !     TREF-15, JT = 1 is for TREF-30, JT = 4 is for TREF+15, and JT = 5          
6948 !     is for TREF+30.  The second index, JP, runs from 1 to 13 and refers        
6949 !     to the corresponding pressure level in PREF (e.g. JP = 1 is for a          
6950 !     pressure of 1053.63 mb).  The third index, IG, goes from 1 to 16, &       
6951 !     and tells us which "g-channel" the absorption coefficients are for.        
6952 
6953                                                                                  
6954 !     The array abscoefH8 contains absorption coefs at the 16 chosen g-values           
6955 !     for a range of pressure levels < ~100mb and temperatures. The first        
6956 !     index in the array, JT, which runs from 1 to 5, corresponds to             
6957 !     different temperatures.  More specifically, JT = 3 means that the          
6958 !     data are for the reference temperature TREF for this pressure              
6959 !     level, JT = 2 refers to the temperature TREF-15, JT = 1 is for             
6960 !     TREF-30, JT = 4 is for TREF+15, and JT = 5 is for TREF+30.                 
6961 !     The second index, JP, runs from 13 to 59 and refers to the JPth            
6962 !     reference pressure level (see taumol.f for the value of these              
6963 !     pressure levels in mb).  The third index, IG, goes from 1 to 16, &        
6964 !     and tells us which g-interval the absorption coefficients are for.         
6965 
6966 !                                                                                
6967 !       SELFREF8 is the array for the self-continuum.                                   
6968 !                                                                                
6969          IF ( wrf_dm_on_monitor() ) READ (rrtm_unit,ERR=9010) abscoefL8, abscoefH8, SELFREF8
6970          DM_BCAST_MACRO(abscoefL8)
6971          DM_BCAST_MACRO(abscoefH8)
6972          DM_BCAST_MACRO(SELFREF8)
6973                                                                                  
6974 ! **************************************************************************
6975                                                                                  
6976 !     The array abscoefL9 contains absorption coefs at the 16 chosen g-values    
6977 !     for a range of pressure levels> ~100mb, temperatures, and binary           
6978 !     species parameters (see taumol.f for definition).  The first               
6979 !     index in the array, JS, runs from 1 to 11, and corresponds to              
6980 !     different values of the binary species parameter.  For instance, &        
6981 !     JS=1 refers to dry air, JS = 2 corresponds to the paramter value 1/8, &   
6982 !     JS = 3 corresponds to the parameter value 2/8, etc.  The second index      
6983 !     in the array, JT, which runs from 1 to 5, corresponds to different         
6984 !     temperatures.  More specifically, JT = 3 means that the data are for       
6985 !     the reference temperature TREF for this  pressure level, JT = 2 refers     
6986 !     to TREF-15, JT = 1 is for TREF-30, JT = 4 is for TREF+15, and JT = 5       
6987 !     is for TREF+30.  The third index, JP, runs from 1 to 13 and refers         
6988 !     to the JPth reference pressure level (see taumol.f for these levels        
6989 !     in mb).  The fourth index, IG, goes from 1 to 16, and indicates            
6990 !     which g-interval the absorption coefficients are for.                      
6991 
6992                                                                                  
6993 !     The array abscoefH9 contains absorption coefs at the 16 chosen g-values           
6994 !     for a range of pressure levels < ~100mb and temperatures. The first        
6995 !     index in the array, JT, which runs from 1 to 5, corresponds to             
6996 !     different temperatures.  More specifically, JT = 3 means that the          
6997 !     data are for the reference temperature TREF for this pressure              
6998 !     level, JT = 2 refers to the temperature TREF-15, JT = 1 is for             
6999 !     TREF-30, JT = 4 is for TREF+15, and JT = 5 is for TREF+30.                 
7000 !     The second index, JP, runs from 13 to 59 and refers to the JPth            
7001 !     reference pressure level (see taumol.f for the value of these              
7002 !     pressure levels in mb).  The third index, IG, goes from 1 to 16, &        
7003 !     and tells us which g-interval the absorption coefficients are for.         
7004 
7005                                                                                  
7006 !     The array SELFREF9 contains the coefficient of the water vapor              
7007 !     self-continuum (including the energy term).  The first index               
7008 !     refers to temperature in 7.2 degree increments.  For instance, &          
7009 !     JT = 1 refers to a temperature of 245.6, JT = 2 refers to 252.8, &        
7010 !     etc.  The second index runs over the g-channel (1 to 16).                  
7011 
7012          IF ( wrf_dm_on_monitor() ) READ (rrtm_unit,ERR=9010) abscoefL9, abscoefH9, SELFREF9
7013          DM_BCAST_MACRO(abscoefL9)
7014          DM_BCAST_MACRO(abscoefH9)
7015          DM_BCAST_MACRO(SELFREF9)
7016                                                                                  
7017 ! **************************************************************************
7018                                                                                  
7019 !     The array abscoefL10 contains absorption coefs at the 16 chosen g-values   
7020 !     for a range of pressure levels > ~100mb and temperatures.  The first       
7021 !     index in the array, JT, which runs from 1 to 5, corresponds to             
7022 !     different temperatures.  More specifically, JT = 3 means that the          
7023 !     data are for the corresponding TREF for this  pressure level, &           
7024 !     JT = 2 refers to the temperatureTREF-15, JT = 1 is for TREF-30, &         
7025 !     JT = 4 is for TREF+15, and JT = 5 is for TREF+30.  The second              
7026 !     index, JP, runs from 1 to 13 and refers to the corresponding               
7027 !     pressure level in PREF (e.g. JP = 1 is for a pressure of 1053.63 mb).      
7028 !     The third index, IG, goes from 1 to 16, and tells us which                 
7029 !     g-interval the absorption coefficients are for.                            
7030 
7031                                                                                  
7032 !     The array abscoefH10 contains absorption coefs at the 16 chosen g-values           
7033 !     for a range of pressure levels < ~100mb and temperatures. The first        
7034 !     index in the array, JT, which runs from 1 to 5, corresponds to             
7035 !     different temperatures.  More specifically, JT = 3 means that the          
7036 !     data are for the reference temperature TREF for this pressure              
7037 !     level, JT = 2 refers to the temperature TREF-15, JT = 1 is for             
7038 !     TREF-30, JT = 4 is for TREF+15, and JT = 5 is for TREF+30.                 
7039 !     The second index, JP, runs from 13 to 59 and refers to the JPth            
7040 !     reference pressure level (see taumol.f for the value of these              
7041 !     pressure levels in mb).  The third index, IG, goes from 1 to 16, &        
7042 !     and tells us which g-interval the absorption coefficients are for.         
7043 
7044          IF ( wrf_dm_on_monitor() ) READ (rrtm_unit,ERR=9010) abscoefL10, abscoefH10
7045          DM_BCAST_MACRO(abscoefL10)
7046          DM_BCAST_MACRO(abscoefH10)
7047                                                                                  
7048 ! **************************************************************************
7049                                                                                  
7050 !     The array abscoefL11 contains absorption coefs at the 16 chosen g-values   
7051 !     for a range of pressure levels > ~100mb and temperatures.  The first       
7052 !     index in the array, JT, which runs from 1 to 5, corresponds to             
7053 !     different temperatures.  More specifically, JT = 3 means that the          
7054 !     data are for the corresponding TREF for this  pressure level, &           
7055 !     JT = 2 refers to the temperatureTREF-15, JT = 1 is for TREF-30, &         
7056 !     JT = 4 is for TREF+15, and JT = 5 is for TREF+30.  The second              
7057 !     index, JP, runs from 1 to 13 and refers to the corresponding               
7058 !     pressure level in PREF (e.g. JP = 1 is for a pressure of 1053.63 mb).      
7059 !     The third index, IG, goes from 1 to 16, and tells us which                 
7060 !     g-interval the absorption coefficients are for.                            
7061 
7062                                                                                  
7063 !     The array abscoefH11 contains absorption coefs at the 16 chosen g-values           
7064 !     for a range of pressure levels < ~100mb and temperatures. The first        
7065 !     index in the array, JT, which runs from 1 to 5, corresponds to             
7066 !     different temperatures.  More specifically, JT = 3 means that the          
7067 !     data are for the reference temperature TREF for this pressure              
7068 !     level, JT = 2 refers to the temperature TREF-15, JT = 1 is for             
7069 !     TREF-30, JT = 4 is for TREF+15, and JT = 5 is for TREF+30.                 
7070 !     The second index, JP, runs from 13 to 59 and refers to the JPth            
7071 !     reference pressure level (see taumol.f for the value of these              
7072 !     pressure levels in mb).  The third index, IG, goes from 1 to 16, &        
7073 !     and tells us which g-interval the absorption coefficients are for.         
7074 
7075                                                                                  
7076 !     The array SELFREF11 contains the coefficient of the water vapor              
7077 !     self-continuum (including the energy term).  The first index               
7078 !     refers to temperature in 7.2 degree increments.  For instance, &          
7079 !     JT = 1 refers to a temperature of 245.6, JT = 2 refers to 252.8, &        
7080 !     etc.  The second index runs over the g-channel (1 to 16).                  
7081 
7082          IF ( wrf_dm_on_monitor() ) READ (rrtm_unit,ERR=9010) abscoefL11, abscoefH11, SELFREF11
7083          DM_BCAST_MACRO(abscoefL11)
7084          DM_BCAST_MACRO(abscoefH11)
7085          DM_BCAST_MACRO(SELFREF11)
7086                                                                                         
7087 ! **************************************************************************
7088                                                                                  
7089 !     The array abscoefL12 contains absorption coefs at the 16 chosen g-values   
7090 !     for a range of pressure levels> ~100mb, temperatures, and binary           
7091 !     species parameters (see taumol.f for definition).  The first               
7092 !     index in the array, JS, runs from 1 to 9, and corresponds to               
7093 !     different values of the binary species parameter.  For instance, &        
7094 !     JS=1 refers to dry air, JS = 2 corresponds to the paramter value 1/8, &   
7095 !     JS = 3 corresponds to the parameter value 2/8, etc.  The second index      
7096 !     in the array, JT, which runs from 1 to 5, corresponds to different         
7097 !     temperatures.  More specifically, JT = 3 means that the data are for       
7098 !     the reference temperature TREF for this  pressure level, JT = 2 refers     
7099 !     to TREF-15, JT = 1 is for TREF-30, JT = 4 is for TREF+15, and JT = 5       
7100 !     is for TREF+30.  The third index, JP, runs from 1 to 13 and refers         
7101 !     to the JPth reference pressure level (see taumol.f for these levels        
7102 !     in mb).  The fourth index, IG, goes from 1 to 16, and indicates            
7103 !     which g-interval the absorption coefficients are for.                      
7104 
7105                                                                                  
7106 !     The array SELFREF12 contains the coefficient of the water vapor              
7107 !     self-continuum (including the energy term).  The first index               
7108 !     refers to temperature in 7.2 degree increments.  For instance, &          
7109 !     JT = 1 refers to a temperature of 245.6, JT = 2 refers to 252.8, &        
7110 !     etc.  The second index runs over the g-channel (1 to 16).                  
7111 
7112          IF ( wrf_dm_on_monitor() ) READ (rrtm_unit,ERR=9010) abscoefL12, SELFREF12
7113          DM_BCAST_MACRO(abscoefL12)
7114          DM_BCAST_MACRO(SELFREF12)
7115                                                                                  
7116 ! **************************************************************************
7117                                                                                  
7118 !     The array abscoefL13 contains absorption coefs at the 16 chosen g-values   
7119 !     for a range of pressure levels> ~100mb, temperatures, and binary           
7120 !     species parameters (see taumol.f for definition).  The first               
7121 !     index in the array, JS, runs from 1 to 9, and corresponds to               
7122 !     different values of the binary species parameter.  For instance, &        
7123 !     JS=1 refers to dry air, JS = 2 corresponds to the paramter value 1/8, &   
7124 !     JS = 3 corresponds to the parameter value 2/8, etc.  The second index      
7125 !     in the array, JT, which runs from 1 to 5, corresponds to different         
7126 !     temperatures.  More specifically, JT = 3 means that the data are for       
7127 !     the reference temperature TREF for this  pressure level, JT = 2 refers     
7128 !     to TREF-15, JT = 1 is for TREF-30, JT = 4 is for TREF+15, and JT = 5       
7129 !     is for TREF+30.  The third index, JP, runs from 1 to 13 and refers         
7130 !     to the JPth reference pressure level (see taumol.f for these levels        
7131 !     in mb).  The fourth index, IG, goes from 1 to 16, and indicates            
7132 !     which g-interval the absorption coefficients are for.                      
7133 
7134                                                                                  
7135 !     The array SELFREF13 contains the coefficient of the water vapor              
7136 !     self-continuum (including the energy term).  The first index               
7137 !     refers to temperature in 7.2 degree increments.  For instance, &          
7138 !     JT = 1 refers to a temperature of 245.6, JT = 2 refers to 252.8, &        
7139 !     etc.  The second index runs over the g-channel (1 to 16).                  
7140 
7141          IF ( wrf_dm_on_monitor() ) READ (rrtm_unit,ERR=9010) abscoefL13, SELFREF13
7142          DM_BCAST_MACRO(abscoefL13)
7143          DM_BCAST_MACRO(SELFREF13)
7144                                                                                  
7145 ! **************************************************************************
7146                                                                                  
7147 !     The array abscoefL14 contains absorption coefs at the 16 chosen g-values   
7148 !     for a range of pressure levels > ~100mb and temperatures.  The first       
7149 !     index in the array, JT, which runs from 1 to 5, corresponds to             
7150 !     different temperatures.  More specifically, JT = 3 means that the          
7151 !     data are for the corresponding TREF for this  pressure level, &           
7152 !     JT = 2 refers to the temperatureTREF-15, JT = 1 is for TREF-30, &         
7153 !     JT = 4 is for TREF+15, and JT = 5 is for TREF+30.  The second              
7154 !     index, JP, runs from 1 to 13 and refers to the corresponding               
7155 !     pressure level in PREF (e.g. JP = 1 is for a pressure of 1053.63 mb).      
7156 !     The third index, IG, goes from 1 to 16, and tells us which                 
7157 !     g-interval the absorption coefficients are for.                            
7158 
7159                                                                                  
7160 !     The array abscoefH14 contains absorption coefs at the 16 chosen g-values           
7161 !     for a range of pressure levels < ~100mb and temperatures. The first        
7162 !     index in the array, JT, which runs from 1 to 5, corresponds to             
7163 !     different temperatures.  More specifically, JT = 3 means that the          
7164 !     data are for the reference temperature TREF for this pressure              
7165 !     level, JT = 2 refers to the temperature TREF-15, JT = 1 is for             
7166 !     TREF-30, JT = 4 is for TREF+15, and JT = 5 is for TREF+30.                 
7167 !     The second index, JP, runs from 13 to 59 and refers to the JPth            
7168 !     reference pressure level (see taumol.f for the value of these              
7169 !     pressure levels in mb).  The third index, IG, goes from 1 to 16, &        
7170 !     and tells us which g-interval the absorption coefficients are for.         
7171 
7172                                                                                  
7173 !     The array SELFREF14 contains the coefficient of the water vapor              
7174 !     self-continuum (including the energy term).  The first index               
7175 !     refers to temperature in 7.2 degree increments.  For instance, &          
7176 !     JT = 1 refers to a temperature of 245.6, JT = 2 refers to 252.8, &        
7177 !     etc.  The second index runs over the g-channel (1 to 16).                  
7178 
7179          IF ( wrf_dm_on_monitor() ) READ (rrtm_unit,ERR=9010) abscoefL14, abscoefH14, SELFREF14
7180          DM_BCAST_MACRO(abscoefL14)
7181          DM_BCAST_MACRO(abscoefH14)
7182          DM_BCAST_MACRO(SELFREF14)
7183                                                                                         
7184 ! **************************************************************************
7185                                                                                  
7186 !     The array abscoefL15 contains absorption coefs at the 16 chosen g-values   
7187 !     for a range of pressure levels> ~100mb, temperatures, and binary           
7188 !     species parameters (see taumol.f for definition).  The first               
7189 !     index in the array, JS, runs from 1 to 9, and corresponds to               
7190 !     different values of the binary species parameter.  For instance, &        
7191 !     JS=1 refers to dry air, JS = 2 corresponds to the paramter value 1/8, &   
7192 !     JS = 3 corresponds to the parameter value 2/8, etc.  The second index      
7193 !     in the array, JT, which runs from 1 to 5, corresponds to different         
7194 !     temperatures.  More specifically, JT = 3 means that the data are for       
7195 !     the reference temperature TREF for this  pressure level, JT = 2 refers     
7196 !     to TREF-15, JT = 1 is for TREF-30, JT = 4 is for TREF+15, and JT = 5       
7197 !     is for TREF+30.  The third index, JP, runs from 1 to 13 and refers         
7198 !     to the JPth reference pressure level (see taumol.f for these levels        
7199 !     in mb).  The fourth index, IG, goes from 1 to 16, and indicates            
7200 !     which g-interval the absorption coefficients are for.                      
7201 
7202                                                                                  
7203 !     The array SELFREF15 contains the coefficient of the water vapor              
7204 !     self-continuum (including the energy term).  The first index               
7205 !     refers to temperature in 7.2 degree increments.  For instance, &          
7206 !     JT = 1 refers to a temperature of 245.6, JT = 2 refers to 252.8, &        
7207 !     etc.  The second index runs over the g-channel (1 to 16).                  
7208 
7209          IF ( wrf_dm_on_monitor() ) READ (rrtm_unit,ERR=9010) abscoefL15, SELFREF15
7210          DM_BCAST_MACRO(abscoefL15)
7211          DM_BCAST_MACRO(SELFREF15)
7212                                                                                  
7213 ! **************************************************************************
7214                                                                                  
7215 !     The array abscoefL16 contains absorption coefs at the 16 chosen g-values  
7216 !     for a range of pressure levels> ~100mb, temperatures, and binary           
7217 !     species parameters (see taumol.f for definition).  The first               
7218 !     index in the array, JS, runs from 1 to 9, and corresponds to               
7219 !     different values of the binary species parameter.  For instance, &        
7220 !     JS=1 refers to dry air, JS = 2 corresponds to the paramter value 1/8, &   
7221 !     JS = 3 corresponds to the parameter value 2/8, etc.  The second index      
7222 !     in the array, JT, which runs from 1 to 5, corresponds to different         
7223 !     temperatures.  More specifically, JT = 3 means that the data are for       
7224 !     the reference temperature TREF for this  pressure level, JT = 2 refers     
7225 !     to TREF-15, JT = 1 is for TREF-30, JT = 4 is for TREF+15, and JT = 5       
7226 !     is for TREF+30.  The third index, JP, runs from 1 to 13 and refers         
7227 !     to the JPth reference pressure level (see taumol.f for these levels        
7228 !     in mb).  The fourth index, IG, goes from 1 to 16, and indicates            
7229 !     which g-interval the absorption coefficients are for.                      
7230 
7231                                                                                  
7232 !     The array SELFREF16 contains the coefficient of the water vapor              
7233 !     self-continuum (including the energy term).  The first index               
7234 !     refers to temperature in 7.2 degree increments.  For instance, &          
7235 !     JT = 1 refers to a temperature of 245.6, JT = 2 refers to 252.8, &        
7236 !     etc.  The second index runs over the g-channel (1 to 16).                  
7237 
7238          IF ( wrf_dm_on_monitor() ) READ (rrtm_unit,ERR=9010) abscoefL16, SELFREF16
7239          DM_BCAST_MACRO(abscoefL16)
7240          DM_BCAST_MACRO(SELFREF16)
7241 
7242          IF ( wrf_dm_on_monitor() ) CLOSE (rrtm_unit)
7243                                                                                  
7244 !-----------------------------------------------------------------------
7245                                                             
7246                 
7247                                                                            
7248 !  Compute lookup tables for transmittance, tau transition function,             
7249 !  and clear sky tau (for the cloudy sky radiative transfer).  Tau is            
7250 !  computed as a function of the tau transition function, transmittance          
7251 !  is calculated as a function of tau, and the tau transition function           
7252 !  is calculated using the linear in tau formulation at values of tau            
7253 !  above 0.01.  TF is approximated as tau/6 for tau < 0.01.  All tables          
7254 !  are computed at intervals of 0.001.  The inverse of the constant used         
7255 !  in the Pade approximation to the tau transition function is set to b.         
7256                                                                                  
7257       TAU(0) = 0.0                                                               
7258       TAU(5000) = 1.E10                                                          
7259       TRANS(0) = 1.0                                                             
7260       TRANS(5000) = 0.0                                                          
7261       TF(0) = 0.0                                                                
7262       TF(5000) = 1.0                                                             
7263       BPADE=1./0.278                                                             
7264       DO 1000 ITRE = 1,4999                                                       
7265          TFN = ITRE/5.E3                                                          
7266          TAU(ITRE) = BPADE*TFN/(1.-TFN)                                           
7267          TRANS(ITRE) = EXP(-TAU(ITRE))                                             
7268          IF (TAU(ITRE).LT.0.1) THEN                                               
7269             TF(ITRE) = TAU(ITRE)/6.                                                
7270          ELSE                                                                    
7271             TF(ITRE) = 1.-2.*((1./TAU(ITRE))-(TRANS(ITRE)/(1.-TRANS(ITRE))))         
7272          ENDIF                                                                   
7273  1000 CONTINUE                                                                   
7274 !  Calculate lookup tables for functions needed in routine TAUMOL (TAUGB2)       
7275       CORR1(0) = 1.                                                              
7276       CORR1(200) = 1.                                                            
7277       CORR2(0) = 1.                                                              
7278       CORR2(200) = 1.                                                            
7279       DO 1200 I = 1,199                                                          
7280          FP = 0.005*FLOAT(I)                                                     
7281          RTFP = SQRT(FP)                                                         
7282          CORR1(I) = RTFP/FP                                                      
7283          CORR2(I) = (1.-RTFP)/(1.-FP)                                            
7284  1200 CONTINUE                                                                   
7285                                                                                  
7286 !  Perform g-point reduction from 16 per band (256 total points) to              
7287 !  a band dependant number (140 total points) for all absorption                 
7288 !  coefficient input data and Planck fraction input data.                        
7289 !  Compute relative weighting for new g-point combinations.                      
7290                                                                                  
7291       IGCSM = 0                                                                  
7292       DO 500 IBND = 1,NBANDS                                                     
7293          IPRSM = 0                                                               
7294          IF (NGC(IBND).LT.16) THEN                                               
7295             DO 450 IGC = 1,NGC(IBND)                                             
7296                IGCSM = IGCSM + 1                                                 
7297                WTSUM = 0.                                                        
7298                DO 420 IPR = 1, NGN(IGCSM)                                        
7299                   IPRSM = IPRSM + 1                                              
7300                   WTSUM = WTSUM + WT(IPRSM)                                      
7301  420           CONTINUE                                                          
7302                WTSM(IGC) = WTSUM                                                 
7303  450        CONTINUE                                                             
7304             DO 400 IG = 1,NG(IBND)                                               
7305                IND = (IBND-1)*16 + IG                                            
7306                RWGT(IND) = WT(IG)/WTSM(NGM(IND))                                 
7307  400        CONTINUE                                                             
7308          ELSE                                                                    
7309             DO 300 IG = 1,NG(IBND)                                               
7310                IGCSM = IGCSM + 1                                                 
7311                IND = (IBND-1)*16 + IG                                            
7312                RWGT(IND) = 1.0                                                   
7313  300        CONTINUE                                                             
7314          ENDIF                                                                   
7315  500  CONTINUE                                                                   
7316                                                                                  
7317 !  Reduce g-points for relevant data in each LW spectral band.                   
7318                                                                                  
7319       CALL CMBGB1 (abscoefL1,   abscoefH1,  SELFREF1,                   &
7320                    FRACREFA1,   FRACREFB1,  FORREF1,                    &
7321                    SELFREFC1,  FORREFC1, FRACREFAC1,                    &
7322                    FRACREFBC1   &
7323                   )
7324       CALL CMBGB2 (abscoefL2,   abscoefH2,  SELFREF2,                   &
7325                    FRACREFA2,   FRACREFB2,  FORREF2,                    &
7326                    SELFREFC2,  FORREFC2, FRACREFAC2,                    &
7327                    FRACREFBC2   &
7328                   )
7329       CALL CMBGB3 (abscoefL3,   abscoefH3,  SELFREF3,                   &
7330                    FRACREFA3,   FRACREFB3,                              &
7331                    FORREF3,     ABSN2OA3,   ABSN2OB3,                   &
7332                    SELFREFC3,  FORREFC3,                                &
7333                    ABSN2OAC3,   ABSN2OBC3,  FRACREFAC3, FRACREFBC3      &
7334                   )
7335       CALL CMBGB4 (abscoefL4,   abscoefH4,  SELFREF4,                   &
7336                    FRACREFA4,   FRACREFB4,                              &
7337                    SELFREFC4,  FRACREFAC4, FRACREFBC4                   &
7338                   )
7339       CALL CMBGB5 (abscoefL5,   abscoefH5,  SELFREF5,                   &
7340                    FRACREFA5,   FRACREFB5,  CCL45,                      &
7341                    SELFREFC5,  CCL4C5, FRACREFAC5,                      &
7342                    FRACREFBC5   &
7343                   )
7344       CALL CMBGB6 (abscoefL6,               SELFREF6,                   &
7345                    FRACREFA6,   ABSCO26,    CFC11ADJ6, CFC126,          &
7346                    SELFREFC6, ABSCO2C6, CFC11ADJC6, CFC12C6,            &
7347                    FRACREFAC6   &
7348                   )
7349       CALL CMBGB7 (abscoefL7,   abscoefH7,  SELFREF7,                   &
7350                    FRACREFA7,   FRACREFB7,  ABSCO27,                    &
7351                    SELFREFC7,  ABSCO2C7, FRACREFAC7,                    &
7352                    FRACREFBC7   &
7353                   )
7354       CALL CMBGB8 (abscoefL8,   abscoefH8,  SELFREF8,                   &
7355                    FRACREFA8,   FRACREFB8,  ABSCO2A8, ABSCO2B8,         &
7356                    ABSN2OA8,    ABSN2OB8,   CFC128,   CFC22ADJ8,        &
7357                    SELFREFC8,  ABSCO2AC8, ABSCO2BC8,                    &
7358                    ABSN2OAC8,   ABSN2OBC8,  CFC12C8,   CFC22ADJC8,      &
7359                    FRACREFAC8, FRACREFBC8                               &
7360                   )
7361       CALL CMBGB9 (abscoefL9,   abscoefH9,  SELFREF9,                   &
7362                    FRACREFA9,   FRACREFB9,  ABSN2O9,                    &
7363                    SELFREFC9,  ABSN2OC9, FRACREFAC9,                    &
7364                    FRACREFBC9                                           &
7365                   )  
7366       CALL CMBGB10(abscoefL10, abscoefH10,                              &
7367                    FRACREFA10, FRACREFB10,                              &
7368                    FRACREFAC10, FRACREFBC10                             &
7369                   )
7370       CALL CMBGB11(abscoefL11, abscoefH11, SELFREF11,                   &
7371                    FRACREFA11, FRACREFB11,                              &
7372                    SELFREFC11,  FRACREFAC11,                            &
7373                    FRACREFBC11  &
7374                   )
7375       CALL CMBGB12(abscoefL12,             SELFREF12,                   &
7376                    FRACREFA12,                                          &
7377                    SELFREFC12, FRACREFAC12                              &
7378                   )
7379       CALL CMBGB13(abscoefL13,             SELFREF13,                   &
7380                    FRACREFA13,                                          &
7381                    SELFREFC13, FRACREFAC13                              &
7382                   )
7383       CALL CMBGB14(abscoefL14, abscoefH14, SELFREF14,                   &
7384                    FRACREFA14, FRACREFB14,                              &
7385                    SELFREFC14, FRACREFAC14,                             &
7386                    FRACREFBC14 &
7387                   )
7388       CALL CMBGB15(abscoefL15,             SELFREF15,                   &
7389                    FRACREFA15,                                          &
7390                    SELFREFC15, FRACREFAC15                              &
7391                   )
7392       CALL CMBGB16(abscoefL16,             SELFREF16,                   &
7393                    FRACREFA16,                                          &
7394                    SELFREFC16, FRACREFAC16                              &
7395                   )
7396       RETURN
7397 9009 CONTINUE
7398      WRITE( errmess , '(A,I4)' ) 'module_ra_rrtm: error opening RRTM_DATA on unit ',rrtm_unit
7399      CALL wrf_error_fatal(errmess)
7400      RETURN
7401 9010 CONTINUE
7402      WRITE( errmess , '(A,I4)' ) 'module_ra_rrtm: error reading RRTM_DATA on unit ',rrtm_unit
7403      CALL wrf_error_fatal(errmess)
7404       END SUBROUTINE rrtm_lookuptable
7405 
7406 !------------------------------------------------------------------
7407 
7408 END MODULE module_ra_rrtm