GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: phylmd/rrtm/rrtm_cmbgb1.F90 Lines: 35 35 100.0 %
Date: 2023-06-30 12:51:15 Branches: 28 30 93.3 %

Line Branch Exec Source
1
!***************************************************************************
2
1
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
19
USE YOERRTO1 , ONLY : KAO, KBO, SELFREFO, FORREFO, FRACREFAO,FRACREFBO
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
1
IF (LHOOK) CALL DR_HOOK('RRTM_CMBGB1',0,ZHOOK_HANDLE)
32
6
DO JT = 1,5
33
70
  DO JP = 1,13
34
    IPRSM = 0
35
590
    DO IGC = 1,NGC(1)
36
      Z_SUMK = 0.0_JPRB
37
1560
      DO IPR = 1, NGN(IGC)
38
1040
        IPRSM = IPRSM + 1
39
40
1560
        Z_SUMK = Z_SUMK + KAO(JT,JP,IPRSM)*RWGT(IPRSM)
41
      ENDDO
42
43
585
      KA(JT,JP,IGC) = Z_SUMK
44
    ENDDO
45
  ENDDO
46
241
  DO JP = 13,59
47
    IPRSM = 0
48
2120
    DO IGC = 1,NGC(1)
49
      Z_SUMK = 0.0_JPRB
50
5640
      DO IPR = 1, NGN(IGC)
51
3760
        IPRSM = IPRSM + 1
52
53
5640
        Z_SUMK = Z_SUMK + KBO(JT,JP,IPRSM)*RWGT(IPRSM)
54
      ENDDO
55
56
2115
      KB(JT,JP,IGC) = Z_SUMK
57
    ENDDO
58
  ENDDO
59
ENDDO
60
61
11
DO JT = 1,10
62
  IPRSM = 0
63
91
  DO IGC = 1,NGC(1)
64
    Z_SUMK = 0.0_JPRB
65
240
    DO IPR = 1, NGN(IGC)
66
160
      IPRSM = IPRSM + 1
67
68
240
      Z_SUMK = Z_SUMK + SELFREFO(JT,IPRSM)*RWGT(IPRSM)
69
    ENDDO
70
71
90
    SELFREF(JT,IGC) = Z_SUMK
72
  ENDDO
73
ENDDO
74
75
IPRSM = 0
76
9
DO IGC = 1,NGC(1)
77
  Z_SUMK = 0.0_JPRB
78
  Z_SUMF1 = 0.0_JPRB
79
  Z_SUMF2 = 0.0_JPRB
80
24
  DO IPR = 1, NGN(IGC)
81
16
    IPRSM = IPRSM + 1
82
83
16
    Z_SUMK = Z_SUMK + FORREFO(IPRSM)*RWGT(IPRSM)
84
16
    Z_SUMF1= Z_SUMF1+ FRACREFAO(IPRSM)
85
24
    Z_SUMF2= Z_SUMF2+ FRACREFBO(IPRSM)
86
  ENDDO
87
88
8
  FORREF(IGC) = Z_SUMK
89
8
  FRACREFA(IGC) = Z_SUMF1
90
9
  FRACREFB(IGC) = Z_SUMF2
91
ENDDO
92
93
9
DO IGC = 1,NGC(1)
94
95
8
  FREFA(IGC,1) = FRACREFA(IGC)
96
9
  FREFB(IGC,1) = FRACREFB(IGC)
97
ENDDO
98
99
1
IF (LHOOK) CALL DR_HOOK('RRTM_CMBGB1',1,ZHOOK_HANDLE)
100
1
END SUBROUTINE RRTM_CMBGB1