LMDZ
rrtm_cmbgb5.F90
Go to the documentation of this file.
1 !***************************************************************************
2 SUBROUTINE rrtm_cmbgb5
3 !***************************************************************************
4 
5 ! BAND 5: 700-820 cm-1 (low - H2O,CO2; high - O3,CO2)
6 !***************************************************************************
7 
8 ! Parameters
9 #include "tsmbkind.h"
10 
11 USE parrrtm , ONLY : jpband ,jpg ,jpxsec ,jpgpt
12 
13 USE yoerrto5 , ONLY : kao ,kbo ,selfrefo ,fracrefao ,&
15 USE yoerrta5 , ONLY : ka ,kb ,selfref ,fracrefa ,&
16  & fracrefb,ccl4 ,&
17  & absa ,absb ,ng5
18 USE yoerrtrwt, ONLY : frefa ,frefb ,frefadf ,frefbdf ,rwgt
19 USE yoerrtftr, ONLY : ngc ,ngs ,ngn ,ngb ,ngm , wt
20 
21 IMPLICIT NONE
22 
23 ! LOCAL INTEGER SCALARS
24 integer_m :: igc, ipr, iprsm, jn, jp, jt
25 integer_m :: meq, neq ! To force equivalence, HG, 13-DEC-2003
26 
27 ! LOCAL REAL SCALARS
28 real_b :: sumf, sumk
29 
30 
31 DO jn = 1,9
32  DO jt = 1,5
33  DO jp = 1,13
34  iprsm = 0
35  DO igc = 1,ngc(5)
36  sumk = _zero_
37  DO ipr = 1, ngn(ngs(4)+igc)
38  iprsm = iprsm + 1
39 
40  sumk = sumk + kao(jn,jt,jp,iprsm)*rwgt(iprsm+64)
41  ENDDO
42 
43  ka(jn,jt,jp,igc) = sumk
44  ENDDO
45  ENDDO
46  ENDDO
47 ENDDO
48 DO jn = 1,5
49  DO jt = 1,5
50  DO jp = 13,59
51  iprsm = 0
52  DO igc = 1,ngc(5)
53  sumk = _zero_
54  DO ipr = 1, ngn(ngs(4)+igc)
55  iprsm = iprsm + 1
56 
57  sumk = sumk + kbo(jn,jt,jp,iprsm)*rwgt(iprsm+64)
58  ENDDO
59 
60  kb(jn,jt,jp,igc) = sumk
61  ENDDO
62  ENDDO
63  ENDDO
64 ENDDO
65 
66 DO jt = 1,10
67  iprsm = 0
68  DO igc = 1,ngc(5)
69  sumk = _zero_
70  DO ipr = 1, ngn(ngs(4)+igc)
71  iprsm = iprsm + 1
72 
73  sumk = sumk + selfrefo(jt,iprsm)*rwgt(iprsm+64)
74  ENDDO
75 
76  selfref(jt,igc) = sumk
77  ENDDO
78 ENDDO
79 
80 DO jp = 1,9
81  iprsm = 0
82  DO igc = 1,ngc(5)
83  sumf = _zero_
84  DO ipr = 1, ngn(ngs(4)+igc)
85  iprsm = iprsm + 1
86 
87  sumf = sumf + fracrefao(iprsm,jp)
88  ENDDO
89 
90  fracrefa(igc,jp) = sumf
91  ENDDO
92 ENDDO
93 
94 DO jp = 1,5
95  iprsm = 0
96  DO igc = 1,ngc(5)
97  sumf = _zero_
98  DO ipr = 1, ngn(ngs(4)+igc)
99  iprsm = iprsm + 1
100 
101  sumf = sumf + fracrefbo(iprsm,jp)
102  ENDDO
103 
104  fracrefb(igc,jp) = sumf
105  ENDDO
106 ENDDO
107 
108 iprsm = 0
109 DO igc = 1,ngc(5)
110  sumk = _zero_
111  DO ipr = 1, ngn(ngs(4)+igc)
112  iprsm = iprsm + 1
113 
114  sumk = sumk + ccl4o(iprsm)*rwgt(iprsm+64)
115  ENDDO
116 
117  ccl4(igc) = sumk
118 ENDDO
119 
120 DO jp = 1,9
121  DO igc = 1,ngc(5)
122 
123  frefa(ngs(4)+igc,jp) = fracrefa(igc,jp)
124  ENDDO
125 ENDDO
126 DO jp = 1,8
127  DO igc = 1,ngc(5)
128 
129 
130  frefadf(ngs(4)+igc,jp) = fracrefa(igc,jp+1) -fracrefa(igc,jp)
131  ENDDO
132 ENDDO
133 DO jp = 1,5
134  DO igc = 1,ngc(5)
135 
136  frefb(ngs(4)+igc,jp) = fracrefb(igc,jp)
137  ENDDO
138 ENDDO
139 DO jp = 1,4
140  DO igc = 1,ngc(5)
141 
142 
143  frefbdf(ngs(4)+igc,jp) = fracrefb(igc,jp+1) -fracrefb(igc,jp)
144  ENDDO
145 ENDDO
146 
147 
148 ! +--Force the equivalence: BEGIN (HG, 13-DEC-2003)
149 ! + ============================
150 
151 ! +--ABSA
152 ! + ^^^^
153  jn = 0
154  jt = 1
155  jp = 1
156  igc = 1
157  DO neq=1,ng5
158  DO meq=1,585
159  jn = jn + 1
160  IF ( jn == 9 + 1) THEN
161  jn = 1
162  jt = jt + 1
163  IF ( jt == 5 + 1 ) THEN
164  jt = 1
165  jp = jp + 1
166  IF ( jp == 13 + 1 ) THEN
167  jp = 1
168  igc= igc + 1
169  END IF
170  END IF
171  END IF
172  absa(meq,neq) = ka(jn,jt,jp,igc)
173  ENDDO
174  ENDDO
175 
176 ! +--ABSB
177 ! + ^^^^
178  jn = 0
179  jt = 1
180  jp = 13
181  igc = 1
182  DO neq=1,ng5
183  DO meq=1,1175
184  jn = jn + 1
185  IF ( jn == 5 + 1) THEN
186  jn = 1
187  jt = jt + 1
188  IF ( jt == 5 + 1 ) THEN
189  jt = 1
190  jp = jp + 1
191  IF ( jp == 59 + 1 ) THEN
192  jp = 13
193  igc= igc + 1
194  END IF
195  END IF
196  END IF
197  absb(meq,neq) = kb(jn,jt,jp,igc)
198  ENDDO
199  ENDDO
200 
201 ! +--Force the equivalence: END (HG, 13-DEC-2003)
202 ! + ==========================
203 
204 
205 RETURN
206 END SUBROUTINE rrtm_cmbgb5
integer(kind=jpim), dimension(jpgpt) ngb
Definition: yoerrtftr.F90:18
real(kind=jprb), dimension(9, 5, 13, ng5) ka
Definition: yoerrta5.F90:20
real(kind=jprb), dimension(jpgpt, 13) frefa
Definition: yoerrtrwt.F90:15
real(kind=jprb), dimension(9, 5, 13, no5) kao
Definition: yoerrto5.F90:20
integer(kind=jpim), dimension(jpg *jpband) ngm
Definition: yoerrtftr.F90:20
real(kind=jprb), dimension(jpg) wt
Definition: yoerrtftr.F90:21
real(kind=jprb), dimension(ng5, 9) fracrefa
Definition: yoerrta5.F90:16
integer(kind=jpim), parameter jpgpt
Definition: parrrtm.F90:21
subroutine rrtm_cmbgb5
Definition: rrtm_cmbgb5.F90:3
real(kind=jprb), dimension(jpg *jpband) rwgt
Definition: yoerrtrwt.F90:19
real(kind=jprb), dimension(jpgpt, 6) frefbdf
Definition: yoerrtrwt.F90:18
integer(kind=jpim), parameter jpband
Definition: parrrtm.F90:18
real(kind=jprb), dimension(jpgpt, 6) frefb
Definition: yoerrtrwt.F90:16
real(kind=jprb), dimension(10, no5) selfrefo
Definition: yoerrto5.F90:22
real(kind=jprb), dimension(1175, ng5) absb
Definition: yoerrta5.F90:21
real(kind=jprb), dimension(no5, 9) fracrefao
Definition: yoerrto5.F90:16
real(kind=jprb), dimension(10, ng5) selfref
Definition: yoerrta5.F90:22
real(kind=jprb), dimension(ng5) ccl4
Definition: yoerrta5.F90:18
integer(kind=jpim), parameter ng5
Definition: yoerrta5.F90:14
real(kind=jprb), dimension(5, 5, 13:59, no5) kbo
Definition: yoerrto5.F90:21
integer(kind=jpim), dimension(jpgpt) ngn
Definition: yoerrtftr.F90:17
real(kind=jprb), dimension(ng5, 5) fracrefb
Definition: yoerrta5.F90:16
real(kind=jprb), dimension(585, ng5) absa
Definition: yoerrta5.F90:20
real(kind=jprb), dimension(no5, 5) fracrefbo
Definition: yoerrto5.F90:16
real(kind=jprb), dimension(jpgpt, 13) frefadf
Definition: yoerrtrwt.F90:17
integer(kind=jpim), parameter jpg
Definition: parrrtm.F90:17
real(kind=jprb), dimension(no5) ccl4o
Definition: yoerrto5.F90:18
integer(kind=jpim), dimension(jpband) ngc
Definition: yoerrtftr.F90:15
integer(kind=jpim), dimension(jpband) ngs
Definition: yoerrtftr.F90:16
real(kind=jprb), dimension(5, 5, 13:59, ng5) kb
Definition: yoerrta5.F90:21
integer(kind=jpim), parameter jpxsec
Definition: parrrtm.F90:19