PageRenderTime 123ms CodeModel.GetById 19ms RepoModel.GetById 1ms app.codeStats 2ms

/wrfv2_fire/phys/module_ra_rrtm.F

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