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