LMDZ
rrtm_taumol11.F90
Go to the documentation of this file.
1 !******************************************************************************
2 SUBROUTINE rrtm_taumol11 (KLEV,TAU,&
3  &tauaerl,fac00,fac01,fac10,fac11,jp,jt,jt1,&
4  &colh2o,laytrop,selffac,selffrac,indself,pfrac)
5 
6 ! BAND 11: 1480-1800 cm-1 (low - H2O; high - H2O)
7 
8 ! Modifications
9 !
10 ! D Salmond 2000-05-15 speed-up
11 ! JJMorcrette 2000-05-17 speed-up
12 
13 
14 #include "tsmbkind.h"
15 
16 USE parrrtm , ONLY : jplay ,jpband ,jpgpt ,jpxsec , ngs10
17 USE yoerrtwn , ONLY : ng ,nspa ,nspb
18 USE yoerrta11, ONLY : ng11 ,absa ,absb ,fracrefa, fracrefb,&
19  &ka , kb ,selfref
20 
21 ! Input
22 !#include "yoeratm.h"
23 
24 ! REAL TAUAER(JPLAY)
25 
26 IMPLICIT NONE
27 
28 ! Output
29 real_b :: tau(jpgpt,jplay)
30 
31 ! DUMMY INTEGER SCALARS
32 integer_m :: klev
33 
34 !- from AER
35 real_b :: tauaerl(jplay,jpband)
36 
37 !- from INTFAC
38 real_b :: fac00(jplay)
39 real_b :: fac01(jplay)
40 real_b :: fac10(jplay)
41 real_b :: fac11(jplay)
42 
43 !- from INTIND
44 integer_m :: jp(jplay)
45 integer_m :: jt(jplay)
46 integer_m :: jt1(jplay)
47 
48 !- from PROFDATA
49 real_b :: colh2o(jplay)
50 integer_m :: laytrop
51 
52 !- from SELF
53 real_b :: selffac(jplay)
54 real_b :: selffrac(jplay)
55 integer_m :: indself(jplay)
56 
57 !- from SP
58 real_b :: pfrac(jpgpt,jplay)
59 
60 integer_m :: ind0(jplay),ind1(jplay),inds(jplay)
61 
62 ! LOCAL INTEGER SCALARS
63 integer_m :: ig, lay
64 
65 ! EQUIVALENCE (TAUAERL(1,11),TAUAER)
66 
67 ! Compute the optical depth by interpolating in ln(pressure) and
68 ! temperature. Below LAYTROP, the water vapor self-continuum
69 ! is interpolated (in temperature) separately.
70 
71 DO lay = 1, laytrop
72  ind0(lay) = ((jp(lay)-1)*5+(jt(lay)-1))*nspa(11) + 1
73  ind1(lay) = (jp(lay)*5+(jt1(lay)-1))*nspa(11) + 1
74  inds(lay) = indself(lay)
75 ENDDO
76 
77 !-- DS_000515
78 DO ig = 1, ng11
79  DO lay = 1, laytrop
80 !-- DS_000515
81  tau(ngs10+ig,lay) = colh2o(lay) *&
82  &(fac00(lay) * absa(ind0(lay) ,ig) +&
83  & fac10(lay) * absa(ind0(lay)+1,ig) +&
84  & fac01(lay) * absa(ind1(lay) ,ig) +&
85  & fac11(lay) * absa(ind1(lay)+1,ig) +&
86  &selffac(lay) * (selfref(inds(lay),ig) + &
87  &selffrac(lay) *&
88  &(selfref(inds(lay)+1,ig) - selfref(inds(lay),ig))))&
89  &+ tauaerl(lay,11)
90  pfrac(ngs10+ig,lay) = fracrefa(ig)
91  ENDDO
92 ENDDO
93 
94 DO lay = laytrop+1, klev
95  ind0(lay) = ((jp(lay)-13)*5+(jt(lay)-1))*nspb(11) + 1
96  ind1(lay) = ((jp(lay)-12)*5+(jt1(lay)-1))*nspb(11) + 1
97 ENDDO
98 
99 !-- JJM_000517
100 DO ig = 1, ng11
101  DO lay = laytrop+1, klev
102 !-- JJM_000517
103  tau(ngs10+ig,lay) = colh2o(lay) *&
104  &(fac00(lay) * absb(ind0(lay) ,ig) +&
105  & fac10(lay) * absb(ind0(lay)+1,ig) +&
106  & fac01(lay) * absb(ind1(lay) ,ig) +&
107  & fac11(lay) * absb(ind1(lay)+1,ig)) &
108  &+ tauaerl(lay,11)
109  pfrac(ngs10+ig,lay) = fracrefb(ig)
110  ENDDO
111 ENDDO
112 
113 RETURN
114 END SUBROUTINE rrtm_taumol11
subroutine rrtm_taumol11(KLEV, P_TAU, P_TAUAERL, P_FAC00, P_FAC01, P_FAC10, P_FAC11, K_JP, K_JT, K_JT1, P_COLH2O, K_LAYTROP, P_SELFFAC, P_SELFFRAC, K_INDSELF, PFRAC)
integer, save klev
Definition: dimphy.F90:7
integer(kind=jpim), parameter jpgpt
Definition: parrrtm.F90:21
integer(kind=jpim), parameter jpband
Definition: parrrtm.F90:18
integer(kind=jpim), parameter ngs10
Definition: parrrtm.F90:49
real(kind=jprb), dimension(5, 13, ng11) ka
Definition: yoerrta11.F90:19
real(kind=jprb), dimension(ng11) fracrefa
Definition: yoerrta11.F90:16
real(kind=jprb), dimension(235, ng11) absb
Definition: yoerrta11.F90:20
integer(kind=jpim), dimension(16) nspb
Definition: yoerrtwn.F90:13
integer(kind=jpim), dimension(16) ng
Definition: yoerrtwn.F90:11
integer(kind=jpim), dimension(16) nspa
Definition: yoerrtwn.F90:12
real(kind=jprb), dimension(65, ng11) absa
Definition: yoerrta11.F90:19
real(kind=jprb), dimension(5, 13:59, ng11) kb
Definition: yoerrta11.F90:20
integer(kind=jpim), parameter jplay
Definition: parrrtm.F90:15
real(kind=jprb), dimension(ng11) fracrefb
Definition: yoerrta11.F90:17
integer(kind=jpim), parameter ng11
Definition: yoerrta11.F90:14
real(kind=jprb), dimension(10, ng11) selfref
Definition: yoerrta11.F90:21
integer(kind=jpim), parameter jpxsec
Definition: parrrtm.F90:19