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