LMDZ
rrtm_cmbgb3.F90
Go to the documentation of this file.
1 !***************************************************************************
2 SUBROUTINE rrtm_cmbgb3
3 !***************************************************************************
4 
5 ! BAND 3: 500-630 cm-1 (low - H2O,CO2; high - H2O,CO2)
6 !***************************************************************************
7 
8 ! Parameters
9 USE parkind1 ,ONLY : jpim ,jprb
10 USE yomhook ,ONLY : lhook, dr_hook
11 
12 USE yoerrto3 , ONLY : kao ,kbo ,selfrefo ,fracrefao ,&
14 USE yoerrta3 , ONLY : ka ,kb ,selfref ,fracrefa ,&
16 USE yoerrtrwt, ONLY : frefa ,frefb ,frefadf ,frefbdf ,rwgt
17 USE yoerrtftr, ONLY : ngc ,ngs ,ngn
18 
19 IMPLICIT NONE
20 
21 INTEGER(KIND=JPIM) :: IGC, IPR, IPRSM, JN, JP, JT
22 
23 REAL(KIND=JPRB) :: Z_SUMF, Z_SUMK, Z_SUMK1, Z_SUMK2, Z_SUMK3
24 REAL(KIND=JPRB) :: ZHOOK_HANDLE
25 
26 IF (lhook) CALL dr_hook('RRTM_CMBGB3',0,zhook_handle)
27 DO jn = 1,10
28  DO jt = 1,5
29  DO jp = 1,13
30  iprsm = 0
31  DO igc = 1,ngc(3)
32  z_sumk = 0.0_jprb
33  DO ipr = 1, ngn(ngs(2)+igc)
34  iprsm = iprsm + 1
35 
36  z_sumk = z_sumk + kao(jn,jt,jp,iprsm)*rwgt(iprsm+32)
37  ENDDO
38 
39  ka(jn,jt,jp,igc) = z_sumk
40  ENDDO
41  ENDDO
42  ENDDO
43 ENDDO
44 DO jn = 1,5
45  DO jt = 1,5
46  DO jp = 13,59
47  iprsm = 0
48  DO igc = 1,ngc(3)
49  z_sumk = 0.0_jprb
50  DO ipr = 1, ngn(ngs(2)+igc)
51  iprsm = iprsm + 1
52 
53  z_sumk = z_sumk + kbo(jn,jt,jp,iprsm)*rwgt(iprsm+32)
54  ENDDO
55 
56  kb(jn,jt,jp,igc) = z_sumk
57  ENDDO
58  ENDDO
59  ENDDO
60 ENDDO
61 
62 DO jt = 1,10
63  iprsm = 0
64  DO igc = 1,ngc(3)
65  z_sumk = 0.0_jprb
66  z_sumf = 0.0_jprb
67  DO ipr = 1, ngn(ngs(2)+igc)
68  iprsm = iprsm + 1
69 
70  z_sumk = z_sumk + selfrefo(jt,iprsm)*rwgt(iprsm+32)
71  z_sumf = z_sumf + fracrefao(iprsm,jt)
72  ENDDO
73 
74  selfref(jt,igc) = z_sumk
75  fracrefa(igc,jt) = z_sumf
76  ENDDO
77 ENDDO
78 
79 DO jp = 1,5
80  iprsm = 0
81  DO igc = 1,ngc(3)
82  z_sumf = 0.0_jprb
83  DO ipr = 1, ngn(ngs(2)+igc)
84  iprsm = iprsm + 1
85 
86  z_sumf = z_sumf + fracrefbo(iprsm,jp)
87  ENDDO
88 
89  fracrefb(igc,jp) = z_sumf
90  ENDDO
91 ENDDO
92 
93 iprsm = 0
94 DO igc = 1,ngc(3)
95  z_sumk1= 0.0_jprb
96  z_sumk2= 0.0_jprb
97  z_sumk3= 0.0_jprb
98  DO ipr = 1, ngn(ngs(2)+igc)
99  iprsm = iprsm + 1
100 
101  z_sumk1= z_sumk1+ forrefo(iprsm)*rwgt(iprsm+32)
102  z_sumk2= z_sumk2+ absn2oao(iprsm)*rwgt(iprsm+32)
103  z_sumk3= z_sumk3+ absn2obo(iprsm)*rwgt(iprsm+32)
104  ENDDO
105 
106  forref(igc) = z_sumk1
107  absn2oa(igc) = z_sumk2
108  absn2ob(igc) = z_sumk3
109 ENDDO
110 
111 DO jp = 1,10
112  DO igc = 1,ngc(3)
113 
114  frefa(ngs(2)+igc,jp) = fracrefa(igc,jp)
115  ENDDO
116 ENDDO
117 DO jp = 1,9
118  DO igc = 1,ngc(3)
119 
120  frefadf(ngs(2)+igc,jp) = fracrefa(igc,jp+1) -fracrefa(igc,jp)
121  ENDDO
122 ENDDO
123 DO jp = 1,5
124  DO igc = 1,ngc(3)
125 
126  frefb(ngs(2)+igc,jp) = fracrefb(igc,jp)
127  ENDDO
128 ENDDO
129 DO jp = 1,4
130  DO igc = 1,ngc(3)
131 
132  frefbdf(ngs(2)+igc,jp) = fracrefb(igc,jp+1) -fracrefb(igc,jp)
133  ENDDO
134 ENDDO
135 
136 IF (lhook) CALL dr_hook('RRTM_CMBGB3',1,zhook_handle)
137 END SUBROUTINE rrtm_cmbgb3
real(kind=jprb), dimension(ng3, 10) fracrefa
Definition: yoerrta3.F90:16
real(kind=jprb), dimension(ng3, 5) fracrefb
Definition: yoerrta3.F90:16
real(kind=jprb), dimension(jpgpt, 13) frefa
Definition: yoerrtrwt.F90:15
real(kind=jprb), dimension(no3) forrefo
Definition: yoerrto3.F90:18
real(kind=jprb), dimension(16) absn2ob
Definition: yoerrta3.F90:20
real(kind=jprb), dimension(no3, 5) fracrefbo
Definition: yoerrto3.F90:16
real(kind=jprb), dimension(10, 5, 13, ng3) ka
Definition: yoerrta3.F90:26
real(kind=jprb), dimension(16) forref
Definition: yoerrta3.F90:18
real(kind=jprb), dimension(jpg *jpband) rwgt
Definition: yoerrtrwt.F90:19
real(kind=jprb), dimension(jpgpt, 6) frefbdf
Definition: yoerrtrwt.F90:18
real(kind=jprb), dimension(5, 5, 13:59, ng3) kb
Definition: yoerrta3.F90:27
real(kind=jprb), dimension(jpgpt, 6) frefb
Definition: yoerrtrwt.F90:16
integer, parameter jprb
Definition: parkind1.F90:31
real(kind=jprb), dimension(10, 5, 13, no3) kao
Definition: yoerrto3.F90:22
real(kind=jprb), dimension(16) absn2oa
Definition: yoerrta3.F90:19
subroutine rrtm_cmbgb3
Definition: rrtm_cmbgb3.F90:3
real(kind=jprb), dimension(no3) absn2obo
Definition: yoerrto3.F90:20
integer(kind=jpim), dimension(jpgpt) ngn
Definition: yoerrtftr.F90:17
logical lhook
Definition: yomhook.F90:12
real(kind=jprb), dimension(5, 5, 13:59, no3) kbo
Definition: yoerrto3.F90:23
subroutine dr_hook(CDNAME, KSWITCH, PKEY)
Definition: yomhook.F90:17
real(kind=jprb), dimension(10, no3) selfrefo
Definition: yoerrto3.F90:24
real(kind=jprb), dimension(jpgpt, 13) frefadf
Definition: yoerrtrwt.F90:17
integer, parameter jpim
Definition: parkind1.F90:13
integer(kind=jpim), dimension(jpband) ngc
Definition: yoerrtftr.F90:15
integer(kind=jpim), dimension(jpband) ngs
Definition: yoerrtftr.F90:16
real(kind=jprb), dimension(10, ng3) selfref
Definition: yoerrta3.F90:28
real(kind=jprb), dimension(no3, 10) fracrefao
Definition: yoerrto3.F90:16
real(kind=jprb), dimension(no3) absn2oao
Definition: yoerrto3.F90:19