source: LMDZ6/trunk/libf/phylmd/ecrad/ifsrrtm/rrtm_taumol9.F90 @ 4999

Last change on this file since 4999 was 4773, checked in by idelkadi, 7 months ago
  • Update of Ecrad in LMDZ The same organization of the Ecrad offline version is retained in order to facilitate the updating of Ecrad in LMDZ and the comparison between online and offline results. version 1.6.1 of Ecrad (https://github.com/lguez/ecrad.git)
  • Implementation of the double call of Ecrad in LMDZ


File size: 14.2 KB
Line 
1!----------------------------------------------------------------------------
2SUBROUTINE RRTM_TAUMOL9 (KIDIA,KFDIA,KLEV,P_TAU,&
3 & P_TAUAERL,P_FAC00,P_FAC01,P_FAC10,P_FAC11,P_FORFAC,P_FORFRAC,K_INDFOR,K_JP,K_JT,K_JT1,P_ONEMINUS,&
4 & P_COLH2O,P_COLN2O,P_COLCH4,P_COLDRY,K_LAYTROP,K_LAYSWTCH,K_LAYLOW,P_SELFFAC,P_SELFFRAC,K_INDSELF,PFRAC, &
5 & PRAT_H2OCH4,PRAT_H2OCH4_1,PMINORFRAC,KINDMINOR) 
6
7!     BAND 9:  1180-1390 cm-1 (low - H2O,CH4; high - CH4)
8
9!     AUTHOR.
10!     -------
11!      JJMorcrette, ECMWF
12
13!     MODIFICATIONS.
14!     --------------
15!      M.Hamrud      01-Oct-2003 CY28 Cleaning
16!      NEC           25-Oct-2007 Optimisations
17!      JJMorcrette 20110613 flexible number of g-points
18!      201306 ABozzo updated to rrtmg v4.85
19!     band 9:  1180-1390 cm-1 (low key - h2o,ch4; low minor - n2o)
20!                             (high key - ch4; high minor - n2o)
21! ---------------------------------------------------------------------------
22
23USE PARKIND1  ,ONLY : JPIM     ,JPRB
24USE YOMHOOK   ,ONLY : LHOOK, DR_HOOK, JPHOOK
25
26USE PARRRTM  , ONLY : JPBAND
27USE YOERRTM  , ONLY : JPGPT  ,NG9   ,NGS8
28USE YOERRTWN , ONLY :      NSPA   ,NSPB
29USE YOERRTA9 , ONLY : ABSA   ,ABSB   ,FRACREFA, FRACREFB,SELFREF,FORREF,KA_MN2O, KB_MN2O   
30USE YOERRTRF, ONLY : CHI_MLS
31
32IMPLICIT NONE
33
34INTEGER(KIND=JPIM),INTENT(IN)    :: KIDIA
35INTEGER(KIND=JPIM),INTENT(IN)    :: KFDIA
36INTEGER(KIND=JPIM),INTENT(IN)    :: KLEV
37REAL(KIND=JPRB)   ,INTENT(OUT)   :: P_TAU(KIDIA:KFDIA,JPGPT,KLEV)
38REAL(KIND=JPRB)   ,INTENT(IN)    :: P_TAUAERL(KIDIA:KFDIA,KLEV,JPBAND)
39REAL(KIND=JPRB)   ,INTENT(IN)    :: P_FAC00(KIDIA:KFDIA,KLEV)
40REAL(KIND=JPRB)   ,INTENT(IN)    :: P_FAC01(KIDIA:KFDIA,KLEV)
41REAL(KIND=JPRB)   ,INTENT(IN)    :: P_FAC10(KIDIA:KFDIA,KLEV)
42REAL(KIND=JPRB)   ,INTENT(IN)    :: P_FAC11(KIDIA:KFDIA,KLEV)
43INTEGER(KIND=JPIM),INTENT(IN)    :: K_JP(KIDIA:KFDIA,KLEV)
44INTEGER(KIND=JPIM),INTENT(IN)    :: K_JT(KIDIA:KFDIA,KLEV)
45INTEGER(KIND=JPIM),INTENT(IN)    :: K_JT1(KIDIA:KFDIA,KLEV)
46REAL(KIND=JPRB)   ,INTENT(IN)    :: P_ONEMINUS
47REAL(KIND=JPRB)   ,INTENT(IN)    :: P_COLH2O(KIDIA:KFDIA,KLEV)
48REAL(KIND=JPRB)   ,INTENT(IN)    :: P_COLN2O(KIDIA:KFDIA,KLEV)
49REAL(KIND=JPRB)   ,INTENT(IN)    :: P_COLCH4(KIDIA:KFDIA,KLEV)
50REAL(KIND=JPRB)   ,INTENT(IN)    :: P_COLDRY(KIDIA:KFDIA,KLEV)
51INTEGER(KIND=JPIM),INTENT(IN)    :: K_LAYTROP(KIDIA:KFDIA)
52INTEGER(KIND=JPIM),INTENT(IN)    :: K_LAYSWTCH(KIDIA:KFDIA)
53INTEGER(KIND=JPIM),INTENT(IN)    :: K_LAYLOW(KIDIA:KFDIA)
54REAL(KIND=JPRB)   ,INTENT(IN)    :: P_SELFFAC(KIDIA:KFDIA,KLEV)
55REAL(KIND=JPRB)   ,INTENT(IN)    :: P_SELFFRAC(KIDIA:KFDIA,KLEV)
56INTEGER(KIND=JPIM),INTENT(IN)    :: K_INDSELF(KIDIA:KFDIA,KLEV)
57REAL(KIND=JPRB)   ,INTENT(OUT)   :: PFRAC(KIDIA:KFDIA,JPGPT,KLEV)
58
59REAL(KIND=JPRB)   ,INTENT(IN)   :: PRAT_H2OCH4(KIDIA:KFDIA,KLEV)
60REAL(KIND=JPRB)   ,INTENT(IN)   :: PRAT_H2OCH4_1(KIDIA:KFDIA,KLEV)
61INTEGER(KIND=JPIM),INTENT(IN)   :: K_INDFOR(KIDIA:KFDIA,KLEV)
62REAL(KIND=JPRB)   ,INTENT(IN)   :: P_FORFAC(KIDIA:KFDIA,KLEV)
63REAL(KIND=JPRB)   ,INTENT(IN)   :: P_FORFRAC(KIDIA:KFDIA,KLEV)
64REAL(KIND=JPRB)   ,INTENT(IN)   :: PMINORFRAC(KIDIA:KFDIA,KLEV)
65INTEGER(KIND=JPIM),INTENT(IN)   :: KINDMINOR(KIDIA:KFDIA,KLEV)
66
67
68! ---------------------------------------------------------------------------
69
70INTEGER(KIND=JPIM) :: IND0(KLEV),IND1(KLEV),INDS(KLEV),INDF(KLEV),INDM(KLEV)
71INTEGER(KIND=JPIM) :: IG, JS, JLAY, JS1, JMN2O, JPL
72INTEGER(KIND=JPIM) :: JLON
73
74REAL(KIND=JPRB) :: Z_SPECCOMB(KLEV),Z_SPECCOMB1(KLEV),Z_SPECCOMB_MN2O(KLEV), &
75& Z_SPECCOMB_PLANCK(KLEV)
76REAL(KIND=JPRB) :: ZREFRAT_PLANCK_A, ZREFRAT_M_A
77
78REAL(KIND=JPRB) :: Z_FS, Z_SPECMULT, Z_SPECPARM,  &
79 & Z_FS1, Z_SPECMULT1, Z_SPECPARM1,   &
80 & Z_FMN2O, Z_SPECMULT_MN2O, Z_SPECPARM_MN2O,   &
81 & Z_FPL, Z_SPECMULT_PLANCK, Z_SPECPARM_PLANCK
82
83REAL(KIND=JPRB) :: ZADJFAC,ZADJCOLN2O(KIDIA:KFDIA,KLEV),ZRATN2O,ZCHI_N2O
84REAL(KIND=JPRB) ::  Z_FAC000, Z_FAC100, Z_FAC200,&
85 & Z_FAC010, Z_FAC110, Z_FAC210, &
86 & Z_FAC001, Z_FAC101, Z_FAC201, &
87 & Z_FAC011, Z_FAC111, Z_FAC211
88REAL(KIND=JPRB) :: ZP, ZP4, ZFK0, ZFK1, ZFK2
89REAL(KIND=JPRB) :: ZTAUFOR,ZTAUSELF,ZN2OM1,ZN2OM2,ZABSN2O,ZTAU_MAJOR,ZTAU_MAJOR1
90
91REAL(KIND=JPHOOK) :: ZHOOK_HANDLE
92
93ASSOCIATE(NFLEVG=>KLEV)
94IF (LHOOK) CALL DR_HOOK('RRTM_TAUMOL9',0,ZHOOK_HANDLE)
95
96! Minor gas mapping level :
97!     lower - n2o, p = 706.272 mbar, t = 278.94 k
98!     upper - n2o, p = 95.58 mbar, t = 215.7 k
99
100! Calculate reference ratio to be used in calculation of Planck
101! fraction in lower/upper atmosphere.
102
103! P = 212 mb
104      ZREFRAT_PLANCK_A = CHI_MLS(1,9)/CHI_MLS(6,9)
105
106! P = 706.272 mb
107      ZREFRAT_M_A = CHI_MLS(1,3)/CHI_MLS(6,3)
108
109! Compute the optical depth by interpolating in ln(pressure),
110! temperature, and appropriate species.  Below laytrop, the water
111! vapor self-continuum and foreign continuum is interpolated
112! (in temperature) separately. 
113
114DO JLAY = 1, KLEV
115  DO JLON = KIDIA, KFDIA
116
117    IF (JLAY <= K_LAYTROP(JLON)) THEN
118      Z_SPECCOMB(JLAY) = P_COLH2O(JLON,JLAY) + PRAT_H2OCH4(JLON,JLAY)*P_COLCH4(JLON,JLAY)
119      Z_SPECPARM = P_COLH2O(JLON,JLAY)/Z_SPECCOMB(JLAY)
120      Z_SPECPARM=MIN(P_ONEMINUS,Z_SPECPARM)
121      Z_SPECMULT = 8._JPRB*(Z_SPECPARM)
122      JS = 1 + INT(Z_SPECMULT)
123      Z_FS = MOD(Z_SPECMULT,1.0_JPRB)
124
125      Z_SPECCOMB1(JLAY) = P_COLH2O(JLON,JLAY) + PRAT_H2OCH4_1(JLON,JLAY)*P_COLCH4(JLON,JLAY)
126      Z_SPECPARM1 = P_COLH2O(JLON,JLAY)/Z_SPECCOMB1(JLAY)
127      IF (Z_SPECPARM1 >= P_ONEMINUS) Z_SPECPARM1 = P_ONEMINUS
128      Z_SPECMULT1 = 8._JPRB*(Z_SPECPARM1)
129      JS1 = 1 + INT(Z_SPECMULT1)
130      Z_FS1 = MOD(Z_SPECMULT1,1.0_JPRB)
131
132      Z_SPECCOMB_MN2O(JLAY) = P_COLH2O(JLON,JLAY) + ZREFRAT_M_A*P_COLCH4(JLON,JLAY)
133      Z_SPECPARM_MN2O = P_COLH2O(JLON,JLAY)/Z_SPECCOMB_MN2O(JLAY)
134      IF (Z_SPECPARM_MN2O >= P_ONEMINUS) Z_SPECPARM_MN2O = P_ONEMINUS
135      Z_SPECMULT_MN2O = 8._JPRB*Z_SPECPARM_MN2O
136      JMN2O = 1 + INT(Z_SPECMULT_MN2O)
137      Z_FMN2O = MOD(Z_SPECMULT_MN2O,1.0_JPRB)
138!  In atmospheres where the amount of N2O is too great to be considered
139!  a minor species, adjust the column amount of N2O by an empirical factor
140!  to obtain the proper contribution.
141      ZCHI_N2O = P_COLN2O(JLON,JLAY)/P_COLDRY(JLON,JLAY)
142      ZRATN2O = 1.E20_JPRB*ZCHI_N2O/CHI_MLS(4,K_JP(JLON,JLAY)+1)
143      IF (ZRATN2O > 1.5_JPRB) THEN
144         ZADJFAC = 0.5_JPRB+(ZRATN2O-0.5_JPRB)**0.65_JPRB
145         ZADJCOLN2O(JLON,JLAY) = ZADJFAC*CHI_MLS(4,K_JP(JLON,JLAY)+1)*P_COLDRY(JLON,JLAY)*1.E-20_JPRB
146      ELSE
147         ZADJCOLN2O(JLON,JLAY) = P_COLN2O(JLON,JLAY)
148      ENDIF
149
150      Z_SPECCOMB_PLANCK(JLAY) = P_COLH2O(JLON,JLAY)+ZREFRAT_PLANCK_A*P_COLCH4(JLON,JLAY)
151      Z_SPECPARM_PLANCK = P_COLH2O(JLON,JLAY)/Z_SPECCOMB_PLANCK(JLAY)
152      IF (Z_SPECPARM_PLANCK >= P_ONEMINUS) Z_SPECPARM_PLANCK=P_ONEMINUS
153      Z_SPECMULT_PLANCK = 8._JPRB*Z_SPECPARM_PLANCK
154      JPL= 1 + INT(Z_SPECMULT_PLANCK)
155      Z_FPL = MOD(Z_SPECMULT_PLANCK,1.0_JPRB)
156
157
158      IND0(JLAY) = ((K_JP(JLON,JLAY)-1)*5+(K_JT(JLON,JLAY)-1))*NSPA(9) + JS
159      IND1(JLAY) = (K_JP(JLON,JLAY)*5+(K_JT1(JLON,JLAY)-1))*NSPA(9) + JS1
160      INDS(JLAY) = K_INDSELF(JLON,JLAY)
161      INDF(JLAY) = K_INDFOR(JLON,JLAY)
162      INDM(JLAY) = KINDMINOR(JLON,JLAY)
163
164         IF (Z_SPECPARM < 0.125_JPRB) THEN
165            ZP = Z_FS - 1
166            ZP4 = ZP**4
167            ZFK0 = ZP4
168            ZFK1 = 1 - ZP - 2.0_JPRB*ZP4
169            ZFK2 = ZP + ZP4
170            Z_FAC000 = ZFK0*P_FAC00(JLON,JLAY)
171            Z_FAC100 = ZFK1*P_FAC00(JLON,JLAY)
172            Z_FAC200 = ZFK2*P_FAC00(JLON,JLAY)
173            Z_FAC010 = ZFK0*P_FAC10(JLON,JLAY)
174            Z_FAC110 = ZFK1*P_FAC10(JLON,JLAY)
175            Z_FAC210 = ZFK2*P_FAC10(JLON,JLAY)
176         ELSEIF (Z_SPECPARM > 0.875_JPRB) THEN
177            ZP = -Z_FS
178            ZP4 = ZP**4
179            ZFK0 = ZP4
180            ZFK1 = 1 - ZP - 2.0_JPRB*ZP4
181            ZFK2 = ZP + ZP4
182            Z_FAC000 = ZFK0*P_FAC00(JLON,JLAY)
183            Z_FAC100 = ZFK1*P_FAC00(JLON,JLAY)
184            Z_FAC200 = ZFK2*P_FAC00(JLON,JLAY)
185            Z_FAC010 = ZFK0*P_FAC10(JLON,JLAY)
186            Z_FAC110 = ZFK1*P_FAC10(JLON,JLAY)
187            Z_FAC210 = ZFK2*P_FAC10(JLON,JLAY)
188         ELSE
189            Z_FAC000 = (1._JPRB - Z_FS) * P_FAC00(JLON,JLAY)
190            Z_FAC010 = (1._JPRB - Z_FS) * P_FAC10(JLON,JLAY)
191            Z_FAC100 = Z_FS * P_FAC00(JLON,JLAY)
192            Z_FAC110 = Z_FS * P_FAC10(JLON,JLAY)
193         ENDIF
194         IF (Z_SPECPARM1 < 0.125_JPRB) THEN
195            ZP = Z_FS1 - 1
196            ZP4 = ZP**4
197            ZFK0 = ZP4
198            ZFK1 = 1 - ZP - 2.0_JPRB*ZP4
199            ZFK2 = ZP + ZP4
200            Z_FAC001 = ZFK0*P_FAC01(JLON,JLAY)
201            Z_FAC101 = ZFK1*P_FAC01(JLON,JLAY)
202            Z_FAC201 = ZFK2*P_FAC01(JLON,JLAY)
203            Z_FAC011 = ZFK0*P_FAC11(JLON,JLAY)
204            Z_FAC111 = ZFK1*P_FAC11(JLON,JLAY)
205            Z_FAC211 = ZFK2*P_FAC11(JLON,JLAY)
206         ELSEIF (Z_SPECPARM1 > 0.875_JPRB) THEN
207            ZP = -Z_FS1
208            ZP4 = ZP**4
209            ZFK0 = ZP4
210            ZFK1 = 1 - ZP - 2.0_JPRB*ZP4
211            ZFK2 = ZP + ZP4
212            Z_FAC001 = ZFK0*P_FAC01(JLON,JLAY)
213            Z_FAC101 = ZFK1*P_FAC01(JLON,JLAY)
214            Z_FAC201 = ZFK2*P_FAC01(JLON,JLAY)
215            Z_FAC011 = ZFK0*P_FAC11(JLON,JLAY)
216            Z_FAC111 = ZFK1*P_FAC11(JLON,JLAY)
217            Z_FAC211 = ZFK2*P_FAC11(JLON,JLAY)
218         ELSE
219            Z_FAC001 = (1._JPRB - Z_FS1) * P_FAC01(JLON,JLAY)
220            Z_FAC011 = (1._JPRB - Z_FS1) * P_FAC11(JLON,JLAY)
221            Z_FAC101 = Z_FS1 * P_FAC01(JLON,JLAY)
222            Z_FAC111 = Z_FS1 * P_FAC11(JLON,JLAY)
223         ENDIF
224
225
226
227!-- DS_000515
228!CDIR UNROLL=NG9
229      DO IG = 1, NG9
230!-- DS_000515
231        ZTAUSELF = P_SELFFAC(JLON,JLAY)* (SELFREF(INDS(JLAY),IG) + P_SELFFRAC(JLON,JLAY) * &
232          &      (SELFREF(INDS(JLAY)+1,IG) - SELFREF(INDS(JLAY),IG)))
233        ZTAUFOR = P_FORFAC(JLON,JLAY) * (FORREF(INDF(JLAY),IG) + P_FORFRAC(JLON,JLAY) * &
234          &      (FORREF(INDF(JLAY)+1,IG) - FORREF(INDF(JLAY),IG)))
235        ZN2OM1 = KA_MN2O(JMN2O,INDM(JLAY),IG) + Z_FMN2O * &
236          &      (KA_MN2O(JMN2O+1,INDM(JLAY),IG) - KA_MN2O(JMN2O,INDM(JLAY),IG))
237        ZN2OM2 = KA_MN2O(JMN2O,INDM(JLAY)+1,IG) + Z_FMN2O * &
238          &      (KA_MN2O(JMN2O+1,INDM(JLAY)+1,IG) - KA_MN2O(JMN2O,INDM(JLAY)+1,IG))
239        ZABSN2O = ZN2OM1 + PMINORFRAC(JLON,JLAY) * (ZN2OM2 - ZN2OM1)
240
241   IF (Z_SPECPARM < 0.125_JPRB) THEN
242               ZTAU_MAJOR = Z_SPECCOMB(JLAY) * &
243                 &  (Z_FAC000 * ABSA(IND0(JLAY),IG) + &
244                 &  Z_FAC100 * ABSA(IND0(JLAY)+1,IG) + &
245                 &  Z_FAC200 * ABSA(IND0(JLAY)+2,IG) + &
246                 &  Z_FAC010 * ABSA(IND0(JLAY)+9,IG) + &
247                 &  Z_FAC110 * ABSA(IND0(JLAY)+10,IG) + &
248                 &  Z_FAC210 * ABSA(IND0(JLAY)+11,IG))
249            ELSEIF (Z_SPECPARM > 0.875_JPRB) THEN
250               ZTAU_MAJOR = Z_SPECCOMB(JLAY) * &
251                 &  (Z_FAC200 * ABSA(IND0(JLAY)-1,IG) + &
252                 &  Z_FAC100 * ABSA(IND0(JLAY),IG) + &
253                 &  Z_FAC000 * ABSA(IND0(JLAY)+1,IG) + &
254                 &  Z_FAC210 * ABSA(IND0(JLAY)+8,IG) + &
255                 &  Z_FAC110 * ABSA(IND0(JLAY)+9,IG) + &
256                 &  Z_FAC010 * ABSA(IND0(JLAY)+10,IG))
257            ELSE
258               ZTAU_MAJOR = Z_SPECCOMB(JLAY) * &
259                 &  (Z_FAC000 * ABSA(IND0(JLAY),IG) + &
260                 &  Z_FAC100 * ABSA(IND0(JLAY)+1,IG) + &
261                 &  Z_FAC010 * ABSA(IND0(JLAY)+9,IG) + &
262                 &  Z_FAC110 * ABSA(IND0(JLAY)+10,IG))
263            ENDIF
264
265            IF (Z_SPECPARM1 < 0.125_JPRB) THEN
266               ZTAU_MAJOR1 = Z_SPECCOMB1(JLAY) * &
267                 &  (Z_FAC001 * ABSA(IND1(JLAY),IG) + &
268                 &  Z_FAC101 * ABSA(IND1(JLAY)+1,IG) + &
269                 &  Z_FAC201 * ABSA(IND1(JLAY)+2,IG) + &
270                 &  Z_FAC011 * ABSA(IND1(JLAY)+9,IG) + &
271                 &  Z_FAC111 * ABSA(IND1(JLAY)+10,IG) + &
272                 &  Z_FAC211 * ABSA(IND1(JLAY)+11,IG))
273            ELSEIF (Z_SPECPARM1 > 0.875_JPRB) THEN
274               ZTAU_MAJOR1 = Z_SPECCOMB1(JLAY) * &
275                 &  (Z_FAC201 * ABSA(IND1(JLAY)-1,IG) + &
276                 &  Z_FAC101 * ABSA(IND1(JLAY),IG) + &
277                 &  Z_FAC001 * ABSA(IND1(JLAY)+1,IG) + &
278                 &  Z_FAC211 * ABSA(IND1(JLAY)+8,IG) + &
279                 &  Z_FAC111 * ABSA(IND1(JLAY)+9,IG) + &
280                 &  Z_FAC011 * ABSA(IND1(JLAY)+10,IG))
281            ELSE
282               ZTAU_MAJOR1 = Z_SPECCOMB1(JLAY) * &
283                 &  (Z_FAC001 * ABSA(IND1(JLAY),IG) +  &
284                 &  Z_FAC101 * ABSA(IND1(JLAY)+1,IG) + &
285                 &  Z_FAC011 * ABSA(IND1(JLAY)+9,IG) + &
286                 &  Z_FAC111 * ABSA(IND1(JLAY)+10,IG))
287            ENDIF
288
289
290        P_TAU(JLON,NGS8+IG,JLAY) = ZTAU_MAJOR + ZTAU_MAJOR1 &
291         &       + ZTAUSELF + ZTAUFOR &
292         &       + ZADJCOLN2O(JLON,JLAY)*ZABSN2O &
293         & + P_TAUAERL(JLON,JLAY,9) 
294        PFRAC(JLON,NGS8+IG,JLAY) = FRACREFA(IG,JPL) + Z_FPL *&
295         & (FRACREFA(IG,JPL+1) - FRACREFA(IG,JPL))
296      ENDDO
297    ENDIF
298
299    IF (JLAY > K_LAYTROP(JLON)) THEN
300
301!  In atmospheres where the amount of N2O is too great to be considered
302!  a minor species, adjust the column amount of N2O by an empirical factor
303!  to obtain the proper contribution.
304      ZCHI_N2O = P_COLN2O(JLON,JLAY)/P_COLDRY(JLON,JLAY)
305      ZRATN2O = 1.E20_JPRB*ZCHI_N2O/CHI_MLS(4,K_JP(JLON,JLAY)+1)
306      IF (ZRATN2O > 1.5_JPRB) THEN
307         ZADJFAC = 0.5_JPRB+(ZRATN2O-0.5_JPRB)**0.65_JPRB
308         ZADJCOLN2O(JLON,JLAY) = ZADJFAC*CHI_MLS(4,K_JP(JLON,JLAY)+1)*P_COLDRY(JLON,JLAY)*1.E-20_JPRB
309      ELSE
310         ZADJCOLN2O(JLON,JLAY) = P_COLN2O(JLON,JLAY)
311      ENDIF
312
313      IND0(JLAY) = ((K_JP(JLON,JLAY)-13)*5+(K_JT(JLON,JLAY)-1))*NSPB(9) + 1
314      IND1(JLAY) = ((K_JP(JLON,JLAY)-12)*5+(K_JT1(JLON,JLAY)-1))*NSPB(9) + 1
315      INDM(JLAY) = KINDMINOR(JLON,JLAY)
316
317
318!-- JJM_000517
319!CDIR UNROLL=NG9
320      DO IG = 1, NG9
321        ZABSN2O = KB_MN2O(INDM(JLAY),IG) + PMINORFRAC(JLON,JLAY) * &
322         &       (KB_MN2O(INDM(JLAY)+1,IG) - KB_MN2O(INDM(JLAY),IG))
323
324!-- JJM_000517
325        P_TAU(JLON,NGS8+IG,JLAY) = P_COLCH4(JLON,JLAY) *&
326         & (P_FAC00(JLON,JLAY) * ABSB(IND0(JLAY)  ,IG) +&
327         & P_FAC10(JLON,JLAY) * ABSB(IND0(JLAY)+1,IG) +&
328         & P_FAC01(JLON,JLAY) * ABSB(IND1(JLAY)  ,IG) +&
329         & P_FAC11(JLON,JLAY) * ABSB(IND1(JLAY)+1,IG))&
330         & + ZADJCOLN2O(JLON,JLAY)*ZABSN2O &
331         & + P_TAUAERL(JLON,JLAY,9) 
332        PFRAC(JLON,NGS8+IG,JLAY) = FRACREFB(IG)
333      ENDDO
334    ENDIF
335  ENDDO
336ENDDO
337
338IF (LHOOK) CALL DR_HOOK('RRTM_TAUMOL9',1,ZHOOK_HANDLE)
339
340END ASSOCIATE
341END SUBROUTINE RRTM_TAUMOL9
Note: See TracBrowser for help on using the repository browser.