LMDZ
rrtm_cmbgb14.F90
Go to the documentation of this file.
1 !***************************************************************************
2 SUBROUTINE rrtm_cmbgb14
3 !***************************************************************************
4 
5 ! BAND 14: 2250-2380 cm-1 (low - CO2; high - CO2)
6 !***************************************************************************
7 
8 ! Parameters
9 #include "tsmbkind.h"
10 
11 USE parrrtm , ONLY : jpband ,jpg ,jpxsec ,jpgpt
12 
14 USE yoerrta14, ONLY : ka ,kb ,selfref ,fracrefa ,fracrefb &
15  & , absa ,absb ,ng14
16 USE yoerrtrwt, ONLY : frefa ,frefb ,frefadf ,frefbdf ,rwgt
17 USE yoerrtftr, ONLY : ngc ,ngs ,ngn ,ngb ,ngm , wt
18 
19 IMPLICIT NONE
20 
21 ! LOCAL INTEGER SCALARS
22 integer_m :: igc, ipr, iprsm, jp, jt
23 integer_m :: meq, neq ! To force equivalence, HG, 13-DEC-2003
24 
25 ! LOCAL REAL SCALARS
26 real_b :: sumf1, sumf2, sumk
27 
28 
29 DO jt = 1,5
30  DO jp = 1,13
31  iprsm = 0
32  DO igc = 1,ngc(14)
33  sumk = _zero_
34  DO ipr = 1, ngn(ngs(13)+igc)
35  iprsm = iprsm + 1
36 
37  sumk = sumk + kao(jt,jp,iprsm)*rwgt(iprsm+208)
38  ENDDO
39 
40  ka(jt,jp,igc) = sumk
41  ENDDO
42  ENDDO
43 ENDDO
44 
45 DO jt = 1,5
46  DO jp = 13,59
47  iprsm = 0
48  DO igc = 1,ngc(14)
49  sumk = _zero_
50  DO ipr = 1, ngn(ngs(13)+igc)
51  iprsm = iprsm + 1
52 
53  sumk = sumk + kbo(jt,jp,iprsm)*rwgt(iprsm+208)
54  ENDDO
55 
56  kb(jt,jp,igc) = sumk
57  ENDDO
58  ENDDO
59 ENDDO
60 
61 DO jt = 1,10
62  iprsm = 0
63  DO igc = 1,ngc(14)
64  sumk = _zero_
65  DO ipr = 1, ngn(ngs(13)+igc)
66  iprsm = iprsm + 1
67 
68  sumk = sumk + selfrefo(jt,iprsm)*rwgt(iprsm+208)
69  ENDDO
70 
71  selfref(jt,igc) = sumk
72  ENDDO
73 ENDDO
74 
75 iprsm = 0
76 DO igc = 1,ngc(14)
77  sumf1= _zero_
78  sumf2= _zero_
79  DO ipr = 1, ngn(ngs(13)+igc)
80  iprsm = iprsm + 1
81 
82 
83  sumf1= sumf1+ fracrefao(iprsm)
84  sumf2= sumf2+ fracrefbo(iprsm)
85  ENDDO
86 
87 
88  fracrefa(igc) = sumf1
89  fracrefb(igc) = sumf2
90 ENDDO
91 
92 DO igc = 1,ngc(14)
93 
94 
95  frefa(ngs(13)+igc,1) = fracrefa(igc)
96  frefb(ngs(13)+igc,1) = fracrefb(igc)
97 ENDDO
98 
99 
100 ! +--Force the equivalence: BEGIN (HG, 13-DEC-2003)
101 ! + ============================
102 
103 ! +--ABSA
104 ! + ^^^^
105  jt = 0
106  jp = 1
107  igc = 1
108  DO neq=1,ng14
109  DO meq=1,65
110  jt = jt + 1
111  IF ( jt == 5 + 1 ) THEN
112  jt = 1
113  jp = jp + 1
114  IF ( jp == 13 + 1 ) THEN
115  jp = 1
116  igc= igc + 1
117  END IF
118  END IF
119  absa(meq,neq) = ka(jt,jp,igc)
120  ENDDO
121  ENDDO
122 
123 ! +--ABSB
124 ! + ^^^^
125  jt = 0
126  jp = 13
127  igc = 1
128  DO neq=1,ng14
129  DO meq=1,235
130  jt = jt + 1
131  IF ( jt == 5 + 1 ) THEN
132  jt = 1
133  jp = jp + 1
134  IF ( jp == 59 + 1 ) THEN
135  jp = 13
136  igc= igc + 1
137  END IF
138  END IF
139  absb(meq,neq) = kb(jt,jp,igc)
140  ENDDO
141  ENDDO
142 
143 ! +--Force the equivalence: END (HG, 13-DEC-2003)
144 ! + ==========================
145 
146 
147 RETURN
148 END SUBROUTINE rrtm_cmbgb14
integer(kind=jpim), dimension(jpgpt) ngb
Definition: yoerrtftr.F90:18
real(kind=jprb), dimension(jpgpt, 13) frefa
Definition: yoerrtrwt.F90:15
real(kind=jprb), dimension(ng14) fracrefb
Definition: yoerrta14.F90:17
real(kind=jprb), dimension(235, ng14) absb
Definition: yoerrta14.F90:20
integer(kind=jpim), dimension(jpg *jpband) ngm
Definition: yoerrtftr.F90:20
real(kind=jprb), dimension(10, no14) selfrefo
Definition: yoerrto14.F90:21
subroutine rrtm_cmbgb14
Definition: rrtm_cmbgb14.F90:3
real(kind=jprb), dimension(5, 13:59, ng14) kb
Definition: yoerrta14.F90:20
real(kind=jprb), dimension(jpg) wt
Definition: yoerrtftr.F90:21
real(kind=jprb), dimension(10, ng14) selfref
Definition: yoerrta14.F90:21
integer(kind=jpim), parameter jpgpt
Definition: parrrtm.F90:21
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(no14) fracrefbo
Definition: yoerrto14.F90:17
real(kind=jprb), dimension(jpgpt, 6) frefb
Definition: yoerrtrwt.F90:16
real(kind=jprb), dimension(ng14) fracrefa
Definition: yoerrta14.F90:16
real(kind=jprb), dimension(5, 13:59, no14) kbo
Definition: yoerrto14.F90:20
integer(kind=jpim), dimension(jpgpt) ngn
Definition: yoerrtftr.F90:17
real(kind=jprb), dimension(65, ng14) absa
Definition: yoerrta14.F90:19
real(kind=jprb), dimension(5, 13, ng14) ka
Definition: yoerrta14.F90:19
real(kind=jprb), dimension(jpgpt, 13) frefadf
Definition: yoerrtrwt.F90:17
integer(kind=jpim), parameter jpg
Definition: parrrtm.F90:17
real(kind=jprb), dimension(5, 13, no14) kao
Definition: yoerrto14.F90:19
integer(kind=jpim), dimension(jpband) ngc
Definition: yoerrtftr.F90:15
integer(kind=jpim), parameter ng14
Definition: yoerrta14.F90:14
integer(kind=jpim), dimension(jpband) ngs
Definition: yoerrtftr.F90:16
real(kind=jprb), dimension(no14) fracrefao
Definition: yoerrto14.F90:16
integer(kind=jpim), parameter jpxsec
Definition: parrrtm.F90:19