LMDZ
rrtm_cmbgb2.F90
Go to the documentation of this file.
1 !***************************************************************************
2 SUBROUTINE rrtm_cmbgb2
3 !***************************************************************************
4 
5 ! BAND 2: 250-500 cm-1 (low - H2O; high - H2O)
6 !***************************************************************************
7 
8 ! Parameters
9 USE parkind1 ,ONLY : jpim ,jprb
10 USE yomhook ,ONLY : lhook, dr_hook
11 
12 USE yoerrto2 , ONLY : kao ,kbo ,selfrefo ,fracrefao ,&
13  & fracrefbo ,forrefo
14 USE yoerrta2 , ONLY : ka ,kb ,selfref ,fracrefa ,&
15  & fracrefb ,forref
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, 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_CMBGB2',0,zhook_handle)
27 DO jt = 1,5
28  DO jp = 1,13
29  iprsm = 0
30  DO igc = 1,ngc(2)
31  z_sumk = 0.0_jprb
32  DO ipr = 1, ngn(ngs(1)+igc)
33  iprsm = iprsm + 1
34 
35  z_sumk = z_sumk + kao(jt,jp,iprsm)*rwgt(iprsm+16)
36  ENDDO
37 
38  ka(jt,jp,igc) = z_sumk
39  ENDDO
40  ENDDO
41  DO jp = 13,59
42  iprsm = 0
43  DO igc = 1,ngc(2)
44  z_sumk = 0.0_jprb
45  DO ipr = 1, ngn(ngs(1)+igc)
46  iprsm = iprsm + 1
47 
48  z_sumk = z_sumk + kbo(jt,jp,iprsm)*rwgt(iprsm+16)
49  ENDDO
50 ! KBC(JT,JP,IGC) = SUMK
51  kb(jt,jp,igc) = z_sumk
52  ENDDO
53  ENDDO
54 ENDDO
55 
56 DO jt = 1,10
57  iprsm = 0
58  DO igc = 1,ngc(2)
59  z_sumk = 0.0_jprb
60  DO ipr = 1, ngn(ngs(1)+igc)
61  iprsm = iprsm + 1
62 
63  z_sumk = z_sumk + selfrefo(jt,iprsm)*rwgt(iprsm+16)
64  ENDDO
65 
66  selfref(jt,igc) = z_sumk
67  ENDDO
68 ENDDO
69 
70 DO jp = 1,13
71  iprsm = 0
72  DO igc = 1,ngc(2)
73  z_sumf = 0.0_jprb
74  DO ipr = 1, ngn(ngs(1)+igc)
75  iprsm = iprsm + 1
76 
77  z_sumf = z_sumf + fracrefao(iprsm,jp)
78  ENDDO
79 
80  fracrefa(igc,jp) = z_sumf
81  ENDDO
82 ENDDO
83 
84 iprsm = 0
85 DO igc = 1,ngc(2)
86  z_sumk = 0.0_jprb
87  z_sumf = 0.0_jprb
88  DO ipr = 1, ngn(ngs(1)+igc)
89  iprsm = iprsm + 1
90 
91  z_sumk = z_sumk + forrefo(iprsm)*rwgt(iprsm+16)
92  z_sumf = z_sumf + fracrefbo(iprsm)
93  ENDDO
94 
95  forref(igc) = z_sumk
96  fracrefb(igc) = z_sumf
97 ENDDO
98 
99 DO jp = 1,13
100  DO igc = 1,ngc(2)
101 
102  frefa(ngs(1)+igc,jp) = fracrefa(igc,jp)
103  ENDDO
104 ENDDO
105 DO jp = 2,13
106  DO igc = 1,ngc(2)
107 
108  frefadf(ngs(1)+igc,jp) = fracrefa(igc,jp-1) -fracrefa(igc,jp)
109  ENDDO
110 ENDDO
111 DO igc = 1,ngc(2)
112 
113  frefb(ngs(1)+igc,1) = fracrefb(igc)
114 ENDDO
115 
116 IF (lhook) CALL dr_hook('RRTM_CMBGB2',1,zhook_handle)
117 END SUBROUTINE rrtm_cmbgb2
real(kind=jprb), dimension(no2) forrefo
Definition: yoerrto2.F90:21
real(kind=jprb), dimension(jpgpt, 13) frefa
Definition: yoerrtrwt.F90:15
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(5, 13, ng2) ka
Definition: yoerrta2.F90:19
real(kind=jprb), dimension(ng2) forref
Definition: yoerrta2.F90:21
integer, parameter jprb
Definition: parkind1.F90:31
real(kind=jprb), dimension(10, no2) selfrefo
Definition: yoerrto2.F90:21
integer(kind=jpim), dimension(jpgpt) ngn
Definition: yoerrtftr.F90:17
logical lhook
Definition: yomhook.F90:12
real(kind=jprb), dimension(5, 13, no2) kao
Definition: yoerrto2.F90:19
real(kind=jprb), dimension(5, 13:59, ng2) kb
Definition: yoerrta2.F90:20
real(kind=jprb), dimension(ng2, 13) fracrefa
Definition: yoerrta2.F90:18
real(kind=jprb), dimension(no2) fracrefbo
Definition: yoerrto2.F90:18
real(kind=jprb), dimension(10, ng2) selfref
Definition: yoerrta2.F90:21
subroutine dr_hook(CDNAME, KSWITCH, PKEY)
Definition: yomhook.F90:17
subroutine rrtm_cmbgb2
Definition: rrtm_cmbgb2.F90:3
real(kind=jprb), dimension(ng2) fracrefb
Definition: yoerrta2.F90:18
real(kind=jprb), dimension(jpgpt, 13) frefadf
Definition: yoerrtrwt.F90:17
integer, parameter jpim
Definition: parkind1.F90:13
real(kind=jprb), dimension(no2, 13) fracrefao
Definition: yoerrto2.F90:18
real(kind=jprb), dimension(5, 13:59, no2) kbo
Definition: yoerrto2.F90:20
integer(kind=jpim), dimension(jpband) ngc
Definition: yoerrtftr.F90:15
integer(kind=jpim), dimension(jpband) ngs
Definition: yoerrtftr.F90:16