GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: phylmd/rrtm/rrtm_cmbgb5.F90 Lines: 55 55 100.0 %
Date: 2023-06-30 12:51:15 Branches: 60 62 96.8 %

Line Branch Exec Source
1
!***************************************************************************
2
1
SUBROUTINE RRTM_CMBGB5
3
!***************************************************************************
4
5
!     BAND 5:  700-820 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 YOERRTO5 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
13
 & FRACREFBO, CCL4O
14
USE YOERRTA5 , ONLY : KA      ,KB      ,SELFREF    ,FRACREFA   ,&
15
 & FRACREFB , CCL4
16
USE YOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,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
1
IF (LHOOK) CALL DR_HOOK('RRTM_CMBGB5',0,ZHOOK_HANDLE)
27
10
DO JN = 1,9
28
55
  DO JT = 1,5
29
639
    DO JP = 1,13
30
      IPRSM = 0
31
9990
      DO IGC = 1,NGC(5)
32
        Z_SUMK = 0.0_JPRB
33
18720
        DO IPR = 1, NGN(NGS(4)+IGC)
34
9360
          IPRSM = IPRSM + 1
35
36
18720
          Z_SUMK = Z_SUMK + KAO(JN,JT,JP,IPRSM)*RWGT(IPRSM+64)
37
        ENDDO
38
39
9945
        KA(JN,JT,JP,IGC) = Z_SUMK
40
      ENDDO
41
    ENDDO
42
  ENDDO
43
ENDDO
44
6
DO JN = 1,5
45
31
  DO JT = 1,5
46
1205
    DO JP = 13,59
47
      IPRSM = 0
48
20000
      DO IGC = 1,NGC(5)
49
        Z_SUMK = 0.0_JPRB
50
37600
        DO IPR = 1, NGN(NGS(4)+IGC)
51
18800
          IPRSM = IPRSM + 1
52
53
37600
          Z_SUMK = Z_SUMK + KBO(JN,JT,JP,IPRSM)*RWGT(IPRSM+64)
54
        ENDDO
55
56
19975
        KB(JN,JT,JP,IGC) = Z_SUMK
57
      ENDDO
58
    ENDDO
59
  ENDDO
60
ENDDO
61
62
11
DO JT = 1,10
63
  IPRSM = 0
64
171
  DO IGC = 1,NGC(5)
65
    Z_SUMK = 0.0_JPRB
66
320
    DO IPR = 1, NGN(NGS(4)+IGC)
67
160
      IPRSM = IPRSM + 1
68
69
320
      Z_SUMK = Z_SUMK + SELFREFO(JT,IPRSM)*RWGT(IPRSM+64)
70
    ENDDO
71
72
170
    SELFREF(JT,IGC) = Z_SUMK
73
  ENDDO
74
ENDDO
75
76
10
DO JP = 1,9
77
  IPRSM = 0
78
154
  DO IGC = 1,NGC(5)
79
    Z_SUMF = 0.0_JPRB
80
288
    DO IPR = 1, NGN(NGS(4)+IGC)
81
144
      IPRSM = IPRSM + 1
82
83
288
      Z_SUMF = Z_SUMF + FRACREFAO(IPRSM,JP)
84
    ENDDO
85
86
153
    FRACREFA(IGC,JP) = Z_SUMF
87
  ENDDO
88
ENDDO
89
90
6
DO JP = 1,5
91
  IPRSM = 0
92
86
  DO IGC = 1,NGC(5)
93
    Z_SUMF = 0.0_JPRB
94
160
    DO IPR = 1, NGN(NGS(4)+IGC)
95
80
      IPRSM = IPRSM + 1
96
97
160
      Z_SUMF = Z_SUMF + FRACREFBO(IPRSM,JP)
98
    ENDDO
99
100
85
    FRACREFB(IGC,JP) = Z_SUMF
101
  ENDDO
102
ENDDO
103
104
IPRSM = 0
105
17
DO IGC = 1,NGC(5)
106
  Z_SUMK = 0.0_JPRB
107
32
  DO IPR = 1, NGN(NGS(4)+IGC)
108
16
    IPRSM = IPRSM + 1
109
110
32
    Z_SUMK = Z_SUMK + CCL4O(IPRSM)*RWGT(IPRSM+64)
111
  ENDDO
112
113
17
  CCL4(IGC) = Z_SUMK
114
ENDDO
115
116
10
DO JP = 1,9
117
154
  DO IGC = 1,NGC(5)
118
119
153
    FREFA(NGS(4)+IGC,JP) = FRACREFA(IGC,JP)
120
  ENDDO
121
ENDDO
122
9
DO JP = 1,8
123
137
  DO IGC = 1,NGC(5)
124
125
136
    FREFADF(NGS(4)+IGC,JP) = FRACREFA(IGC,JP+1) -FRACREFA(IGC,JP)
126
  ENDDO
127
ENDDO
128
6
DO JP = 1,5
129
86
  DO IGC = 1,NGC(5)
130
131
85
    FREFB(NGS(4)+IGC,JP) = FRACREFB(IGC,JP)
132
  ENDDO
133
ENDDO
134
5
DO JP = 1,4
135
69
  DO IGC = 1,NGC(5)
136
137
68
    FREFBDF(NGS(4)+IGC,JP) = FRACREFB(IGC,JP+1) -FRACREFB(IGC,JP)
138
  ENDDO
139
ENDDO
140
141
1
IF (LHOOK) CALL DR_HOOK('RRTM_CMBGB5',1,ZHOOK_HANDLE)
142
1
END SUBROUTINE RRTM_CMBGB5