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