LMDZ
rrtm_cmbgb7.F90
Go to the documentation of this file.
1 !***************************************************************************
2 SUBROUTINE rrtm_cmbgb7
3 !***************************************************************************
4 
5 ! BAND 7: 980-1080 cm-1 (low - H2O,O3; high - O3)
6 !***************************************************************************
7 
8 ! Parameters
9 USE parkind1 ,ONLY : jpim ,jprb
10 USE yomhook ,ONLY : lhook, dr_hook
11 
12 USE yoerrto7 , ONLY : kao ,kbo ,selfrefo ,fracrefao ,&
13  & fracrefbo, absco2o
14 USE yoerrta7 , ONLY : ka ,kb ,selfref ,fracrefa ,&
15  & fracrefb , absco2
16 USE yoerrtrwt, ONLY : frefa ,frefb ,frefadf ,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
24 REAL(KIND=JPRB) :: ZHOOK_HANDLE
25 
26 IF (lhook) CALL dr_hook('RRTM_CMBGB7',0,zhook_handle)
27 DO jn = 1,9
28  DO jt = 1,5
29  DO jp = 1,13
30  iprsm = 0
31  DO igc = 1,ngc(7)
32  z_sumk = 0.0_jprb
33  DO ipr = 1, ngn(ngs(6)+igc)
34  iprsm = iprsm + 1
35 
36  z_sumk = z_sumk + kao(jn,jt,jp,iprsm)*rwgt(iprsm+96)
37  ENDDO
38 
39  ka(jn,jt,jp,igc) = z_sumk
40  ENDDO
41  ENDDO
42  ENDDO
43 ENDDO
44 DO jt = 1,5
45  DO jp = 13,59
46  iprsm = 0
47  DO igc = 1,ngc(7)
48  z_sumk = 0.0_jprb
49  DO ipr = 1, ngn(ngs(6)+igc)
50  iprsm = iprsm + 1
51 
52  z_sumk = z_sumk + kbo(jt,jp,iprsm)*rwgt(iprsm+96)
53  ENDDO
54 
55  kb(jt,jp,igc) = z_sumk
56  ENDDO
57  ENDDO
58 ENDDO
59 
60 DO jt = 1,10
61  iprsm = 0
62  DO igc = 1,ngc(7)
63  z_sumk = 0.0_jprb
64  DO ipr = 1, ngn(ngs(6)+igc)
65  iprsm = iprsm + 1
66 
67  z_sumk = z_sumk + selfrefo(jt,iprsm)*rwgt(iprsm+96)
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(7)
77  z_sumf = 0.0_jprb
78  DO ipr = 1, ngn(ngs(6)+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 iprsm = 0
89 DO igc = 1,ngc(7)
90  z_sumf = 0.0_jprb
91  z_sumk = 0.0_jprb
92  DO ipr = 1, ngn(ngs(6)+igc)
93  iprsm = iprsm + 1
94 
95  z_sumf = z_sumf + fracrefbo(iprsm)
96  z_sumk = z_sumk + absco2o(iprsm)*rwgt(iprsm+96)
97  ENDDO
98 
99  fracrefb(igc) = z_sumf
100  absco2(igc) = z_sumk
101 ENDDO
102 
103 DO jp = 1,9
104  DO igc = 1,ngc(7)
105 
106  frefa(ngs(6)+igc,jp) = fracrefa(igc,jp)
107  ENDDO
108 ENDDO
109 DO jp = 1,8
110  DO igc = 1,ngc(7)
111 
112  frefadf(ngs(6)+igc,jp) = fracrefa(igc,jp+1) -fracrefa(igc,jp)
113  ENDDO
114 ENDDO
115 DO igc = 1,ngc(7)
116 
117  frefb(ngs(6)+igc,1) = fracrefb(igc)
118 ENDDO
119 
120 IF (lhook) CALL dr_hook('RRTM_CMBGB7',1,zhook_handle)
121 END SUBROUTINE rrtm_cmbgb7
real(kind=jprb), dimension(jpgpt, 13) frefa
Definition: yoerrtrwt.F90:15
real(kind=jprb), dimension(5, 13:59, no7) kbo
Definition: yoerrto7.F90:21
real(kind=jprb), dimension(5, 13:59, ng7) kb
Definition: yoerrta7.F90:21
subroutine rrtm_cmbgb7
Definition: rrtm_cmbgb7.F90:3
real(kind=jprb), dimension(10, no7) selfrefo
Definition: yoerrto7.F90:22
real(kind=jprb), dimension(ng7, 9) fracrefa
Definition: yoerrta7.F90:16
real(kind=jprb), dimension(jpg *jpband) rwgt
Definition: yoerrtrwt.F90:19
real(kind=jprb), dimension(jpgpt, 6) frefb
Definition: yoerrtrwt.F90:16
real(kind=jprb), dimension(no7) absco2o
Definition: yoerrto7.F90:19
real(kind=jprb), dimension(ng7) fracrefb
Definition: yoerrta7.F90:18
integer, parameter jprb
Definition: parkind1.F90:31
real(kind=jprb), dimension(no7, 9) fracrefao
Definition: yoerrto7.F90:16
real(kind=jprb), dimension(ng7) absco2
Definition: yoerrta7.F90:19
integer(kind=jpim), dimension(jpgpt) ngn
Definition: yoerrtftr.F90:17
logical lhook
Definition: yomhook.F90:12
subroutine dr_hook(CDNAME, KSWITCH, PKEY)
Definition: yomhook.F90:17
real(kind=jprb), dimension(9, 5, 13, no7) kao
Definition: yoerrto7.F90:20
real(kind=jprb), dimension(jpgpt, 13) frefadf
Definition: yoerrtrwt.F90:17
integer, parameter jpim
Definition: parkind1.F90:13
real(kind=jprb), dimension(10, ng7) selfref
Definition: yoerrta7.F90:22
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, ng7) ka
Definition: yoerrta7.F90:20
real(kind=jprb), dimension(no7) fracrefbo
Definition: yoerrto7.F90:18