LMDZ
rrtm_cmbgb16.F90
Go to the documentation of this file.
1 !***************************************************************************
2 SUBROUTINE rrtm_cmbgb16
3 !***************************************************************************
4 
5 ! BAND 16: 2600-3000 cm-1 (low - H2O,CH4; high - nothing)
6 !***************************************************************************
7 
8 ! Parameters
9 #include "tsmbkind.h"
10 
11 USE parrrtm , ONLY : jpband ,jpg ,jpxsec ,jpgpt
12 
13 USE yoerrto16, ONLY : kao ,selfrefo ,fracrefao
14 USE yoerrta16, ONLY : ka ,selfref ,fracrefa &
15  & , absa ,ng16
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, jn, jp, jt
23 integer_m :: meq, neq ! To force equivalence, HG, 13-DEC-2003
24 
25 ! LOCAL REAL SCALARS
26 real_b :: sumf, sumk
27 
28 
29 DO jn = 1,9
30  DO jt = 1,5
31  DO jp = 1,13
32  iprsm = 0
33  DO igc = 1,ngc(16)
34  sumk = _zero_
35  DO ipr = 1, ngn(ngs(15)+igc)
36  iprsm = iprsm + 1
37 
38  sumk = sumk + kao(jn,jt,jp,iprsm)*rwgt(iprsm+240)
39  ENDDO
40 
41  ka(jn,jt,jp,igc) = sumk
42  ENDDO
43  ENDDO
44  ENDDO
45 ENDDO
46 
47 DO jt = 1,10
48  iprsm = 0
49  DO igc = 1,ngc(16)
50  sumk = _zero_
51  DO ipr = 1, ngn(ngs(15)+igc)
52  iprsm = iprsm + 1
53 
54  sumk = sumk + selfrefo(jt,iprsm)*rwgt(iprsm+240)
55  ENDDO
56 
57  selfref(jt,igc) = sumk
58  ENDDO
59 ENDDO
60 
61 DO jp = 1,9
62  iprsm = 0
63  DO igc = 1,ngc(16)
64  sumf = _zero_
65  DO ipr = 1, ngn(ngs(15)+igc)
66  iprsm = iprsm + 1
67 
68  sumf = sumf + fracrefao(iprsm,jp)
69  ENDDO
70 
71  fracrefa(igc,jp) = sumf
72  ENDDO
73 ENDDO
74 
75 DO jp = 1,9
76  DO igc = 1,ngc(16)
77 
78  frefa(ngs(15)+igc,jp) = fracrefa(igc,jp)
79  ENDDO
80 ENDDO
81 
82 DO jp = 1,8
83  DO igc = 1,ngc(16)
84 
85 
86  frefadf(ngs(15)+igc,jp) = fracrefa(igc,jp+1) -fracrefa(igc,jp)
87  ENDDO
88 ENDDO
89 
90 
91 ! +--Force the equivalence: BEGIN (HG, 13-DEC-2003)
92 ! + ============================
93 
94 ! +--ABSA
95 ! + ^^^^
96  jn = 0
97  jt = 1
98  jp = 1
99  igc = 1
100  DO neq=1,ng16
101  DO meq=1,585
102  jn = jn + 1
103  IF ( jn == 9 + 1) THEN
104  jn = 1
105  jt = jt + 1
106  IF ( jt == 5 + 1 ) THEN
107  jt = 1
108  jp = jp + 1
109  IF ( jp == 13 + 1 ) THEN
110  jp = 1
111  igc= igc + 1
112  END IF
113  END IF
114  END IF
115  absa(meq,neq) = ka(jn,jt,jp,igc)
116  ENDDO
117  ENDDO
118 
119 ! +--Force the equivalence: END (HG, 13-DEC-2003)
120 ! + ==========================
121 
122 
123 RETURN
124 END SUBROUTINE rrtm_cmbgb16
integer(kind=jpim), dimension(jpgpt) ngb
Definition: yoerrtftr.F90:18
real(kind=jprb), dimension(jpgpt, 13) frefa
Definition: yoerrtrwt.F90:15
integer(kind=jpim), parameter ng16
Definition: yoerrta16.F90:14
integer(kind=jpim), dimension(jpg *jpband) ngm
Definition: yoerrtftr.F90:20
subroutine rrtm_cmbgb16
Definition: rrtm_cmbgb16.F90:3
real(kind=jprb), dimension(jpg) wt
Definition: yoerrtftr.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(jpgpt, 6) frefb
Definition: yoerrtrwt.F90:16
real(kind=jprb), dimension(no16, 9) fracrefao
Definition: yoerrto16.F90:16
real(kind=jprb), dimension(585, ng16) absa
Definition: yoerrta16.F90:18
real(kind=jprb), dimension(ng16, 9) fracrefa
Definition: yoerrta16.F90:16
real(kind=jprb), dimension(10, no16) selfrefo
Definition: yoerrto16.F90:19
real(kind=jprb), dimension(9, 5, 13, ng16) ka
Definition: yoerrta16.F90:18
integer(kind=jpim), dimension(jpgpt) ngn
Definition: yoerrtftr.F90:17
real(kind=jprb), dimension(10, ng16) selfref
Definition: yoerrta16.F90:19
real(kind=jprb), dimension(jpgpt, 13) frefadf
Definition: yoerrtrwt.F90:17
integer(kind=jpim), parameter jpg
Definition: parrrtm.F90:17
integer(kind=jpim), dimension(jpband) ngc
Definition: yoerrtftr.F90:15
integer(kind=jpim), dimension(jpband) ngs
Definition: yoerrtftr.F90:16
real(kind=jprb), dimension(9, 5, 13, no16) kao
Definition: yoerrto16.F90:18
integer(kind=jpim), parameter jpxsec
Definition: parrrtm.F90:19