LMDZ
rrtm_cmbgb1.F90
Go to the documentation of this file.
1 !***************************************************************************
2 SUBROUTINE rrtm_cmbgb1
3 !***************************************************************************
4 
5 ! The subroutines CMBGB1->CMBGB16 input the absorption coefficient
6 ! data for each band, which are defined for 16 g-points and 16 spectral
7 ! bands. The data are combined with appropriate weighting following the
8 ! g-point mapping arrays specified in RRTMINIT. Plank fraction data
9 ! in arrays FRACREFA and FRACREFB are combined without weighting. All
10 ! g-point reduced data are put into new arrays for use in RRTM.
11 
12 ! BAND 1: 10-250 cm-1 (low - H2O; high - H2O)
13 !***************************************************************************
14 
15 ! Parameters
16 USE parkind1 ,ONLY : jpim ,jprb
17 USE yomhook ,ONLY : lhook, dr_hook
18 
20 USE yoerrta1 , ONLY : ka , kb , selfref , forref , fracrefa ,fracrefb
21 USE yoerrtrwt, ONLY : frefa ,frefb ,rwgt
22 USE yoerrtftr, ONLY : ngc ,ngn
23 
24 IMPLICIT NONE
25 
26 INTEGER(KIND=JPIM) :: IGC, IPR, IPRSM, JP, JT
27 
28 REAL(KIND=JPRB) :: Z_SUMF1, Z_SUMF2, Z_SUMK
29 REAL(KIND=JPRB) :: ZHOOK_HANDLE
30 
31 IF (lhook) CALL dr_hook('RRTM_CMBGB1',0,zhook_handle)
32 DO jt = 1,5
33  DO jp = 1,13
34  iprsm = 0
35  DO igc = 1,ngc(1)
36  z_sumk = 0.0_jprb
37  DO ipr = 1, ngn(igc)
38  iprsm = iprsm + 1
39 
40  z_sumk = z_sumk + kao(jt,jp,iprsm)*rwgt(iprsm)
41  ENDDO
42 
43  ka(jt,jp,igc) = z_sumk
44  ENDDO
45  ENDDO
46  DO jp = 13,59
47  iprsm = 0
48  DO igc = 1,ngc(1)
49  z_sumk = 0.0_jprb
50  DO ipr = 1, ngn(igc)
51  iprsm = iprsm + 1
52 
53  z_sumk = z_sumk + kbo(jt,jp,iprsm)*rwgt(iprsm)
54  ENDDO
55 
56  kb(jt,jp,igc) = z_sumk
57  ENDDO
58  ENDDO
59 ENDDO
60 
61 DO jt = 1,10
62  iprsm = 0
63  DO igc = 1,ngc(1)
64  z_sumk = 0.0_jprb
65  DO ipr = 1, ngn(igc)
66  iprsm = iprsm + 1
67 
68  z_sumk = z_sumk + selfrefo(jt,iprsm)*rwgt(iprsm)
69  ENDDO
70 
71  selfref(jt,igc) = z_sumk
72  ENDDO
73 ENDDO
74 
75 iprsm = 0
76 DO igc = 1,ngc(1)
77  z_sumk = 0.0_jprb
78  z_sumf1 = 0.0_jprb
79  z_sumf2 = 0.0_jprb
80  DO ipr = 1, ngn(igc)
81  iprsm = iprsm + 1
82 
83  z_sumk = z_sumk + forrefo(iprsm)*rwgt(iprsm)
84  z_sumf1= z_sumf1+ fracrefao(iprsm)
85  z_sumf2= z_sumf2+ fracrefbo(iprsm)
86  ENDDO
87 
88  forref(igc) = z_sumk
89  fracrefa(igc) = z_sumf1
90  fracrefb(igc) = z_sumf2
91 ENDDO
92 
93 DO igc = 1,ngc(1)
94 
95  frefa(igc,1) = fracrefa(igc)
96  frefb(igc,1) = fracrefb(igc)
97 ENDDO
98 
99 IF (lhook) CALL dr_hook('RRTM_CMBGB1',1,zhook_handle)
100 END SUBROUTINE rrtm_cmbgb1
real(kind=jprb), dimension(10, no1) selfrefo
Definition: yoerrto1.F90:19
real(kind=jprb), dimension(jpgpt, 13) frefa
Definition: yoerrtrwt.F90:15
real(kind=jprb), dimension(no1) fracrefao
Definition: yoerrto1.F90:16
real(kind=jprb), dimension(5, 13:59, no1) kbo
Definition: yoerrto1.F90:18
real(kind=jprb), dimension(5, 13, no1) kao
Definition: yoerrto1.F90:17
subroutine rrtm_cmbgb1
Definition: rrtm_cmbgb1.F90:3
real(kind=jprb), dimension(ng1) fracrefb
Definition: yoerrta1.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(no1) fracrefbo
Definition: yoerrto1.F90:16
integer, parameter jprb
Definition: parkind1.F90:31
real(kind=jprb), dimension(no1) forrefo
Definition: yoerrto1.F90:19
real(kind=jprb), dimension(ng1) fracrefa
Definition: yoerrta1.F90:16
integer(kind=jpim), dimension(jpgpt) ngn
Definition: yoerrtftr.F90:17
logical lhook
Definition: yomhook.F90:12
real(kind=jprb), dimension(ng1) forref
Definition: yoerrta1.F90:19
subroutine dr_hook(CDNAME, KSWITCH, PKEY)
Definition: yomhook.F90:17
integer, parameter jpim
Definition: parkind1.F90:13
real(kind=jprb), dimension(5, 13, ng1) ka
Definition: yoerrta1.F90:17
integer(kind=jpim), dimension(jpband) ngc
Definition: yoerrtftr.F90:15
real(kind=jprb), dimension(5, 13:59, ng1) kb
Definition: yoerrta1.F90:18
real(kind=jprb), dimension(10, ng1) selfref
Definition: yoerrta1.F90:19