GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: phylmd/rrtm/rrtm_cmbgb4.F90 Lines: 50 50 100.0 %
Date: 2023-06-30 12:51:15 Branches: 56 58 96.6 %

Line Branch Exec Source
1
!***************************************************************************
2
1
SUBROUTINE RRTM_CMBGB4
3
!***************************************************************************
4
5
!     BAND 4:  630-700 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 YOERRTO4 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,FRACREFBO
13
USE YOERRTA4 , ONLY : KA      ,KB      ,SELFREF    ,FRACREFA   ,FRACREFB
14
USE YOERRTRWT, ONLY : FREFA    ,FREFB    ,FREFADF  ,FREFBDF   ,RWGT
15
USE YOERRTFTR, ONLY : NGC      ,NGS      ,NGN
16
17
IMPLICIT NONE
18
19
INTEGER(KIND=JPIM) :: IGC, IPR, IPRSM, JN, JP, JT
20
21
REAL(KIND=JPRB) :: Z_SUMF, Z_SUMK
22
REAL(KIND=JPRB) :: ZHOOK_HANDLE
23
24
1
IF (LHOOK) CALL DR_HOOK('RRTM_CMBGB4',0,ZHOOK_HANDLE)
25
10
DO JN = 1,9
26
55
  DO JT = 1,5
27
639
    DO JP = 1,13
28
      IPRSM = 0
29
8820
      DO IGC = 1,NGC(4)
30
        Z_SUMK = 0.0_JPRB
31
17550
        DO IPR = 1, NGN(NGS(3)+IGC)
32
9360
          IPRSM = IPRSM + 1
33
34
17550
          Z_SUMK = Z_SUMK + KAO(JN,JT,JP,IPRSM)*RWGT(IPRSM+48)
35
        ENDDO
36
37
8775
        KA(JN,JT,JP,IGC) = Z_SUMK
38
      ENDDO
39
    ENDDO
40
  ENDDO
41
ENDDO
42
7
DO JN = 1,6
43
37
  DO JT = 1,5
44
1446
    DO JP = 13,59
45
      IPRSM = 0
46
21180
      DO IGC = 1,NGC(4)
47
        Z_SUMK = 0.0_JPRB
48
42300
        DO IPR = 1, NGN(NGS(3)+IGC)
49
22560
          IPRSM = IPRSM + 1
50
51
42300
          Z_SUMK = Z_SUMK + KBO(JN,JT,JP,IPRSM)*RWGT(IPRSM+48)
52
        ENDDO
53
54
21150
        KB(JN,JT,JP,IGC) = Z_SUMK
55
      ENDDO
56
    ENDDO
57
  ENDDO
58
ENDDO
59
60
11
DO JT = 1,10
61
  IPRSM = 0
62
151
  DO IGC = 1,NGC(4)
63
    Z_SUMK = 0.0_JPRB
64
300
    DO IPR = 1, NGN(NGS(3)+IGC)
65
160
      IPRSM = IPRSM + 1
66
67
300
      Z_SUMK = Z_SUMK + SELFREFO(JT,IPRSM)*RWGT(IPRSM+48)
68
    ENDDO
69
70
150
    SELFREF(JT,IGC) = Z_SUMK
71
  ENDDO
72
ENDDO
73
74
10
DO JP = 1,9
75
  IPRSM = 0
76
136
  DO IGC = 1,NGC(4)
77
    Z_SUMF = 0.0_JPRB
78
270
    DO IPR = 1, NGN(NGS(3)+IGC)
79
144
      IPRSM = IPRSM + 1
80
81
270
      Z_SUMF = Z_SUMF + FRACREFAO(IPRSM,JP)
82
    ENDDO
83
84
135
    FRACREFA(IGC,JP) = Z_SUMF
85
  ENDDO
86
ENDDO
87
88
7
DO JP = 1,6
89
  IPRSM = 0
90
91
  DO IGC = 1,NGC(4)
91
    Z_SUMF = 0.0_JPRB
92
180
    DO IPR = 1, NGN(NGS(3)+IGC)
93
96
      IPRSM = IPRSM + 1
94
95
180
      Z_SUMF = Z_SUMF + FRACREFBO(IPRSM,JP)
96
    ENDDO
97
98
90
    FRACREFB(IGC,JP) = Z_SUMF
99
  ENDDO
100
ENDDO
101
102
10
DO JP = 1,9
103
136
  DO IGC = 1,NGC(4)
104
105
135
    FREFA(NGS(3)+IGC,JP) = FRACREFA(IGC,JP)
106
  ENDDO
107
ENDDO
108
9
DO JP = 1,8
109
121
  DO IGC = 1,NGC(4)
110
111
120
    FREFADF(NGS(3)+IGC,JP) = FRACREFA(IGC,JP+1) -FRACREFA(IGC,JP)
112
  ENDDO
113
ENDDO
114
7
DO JP = 1,6
115
91
  DO IGC = 1,NGC(4)
116
117
90
    FREFB(NGS(3)+IGC,JP) = FRACREFB(IGC,JP)
118
  ENDDO
119
ENDDO
120
6
DO JP = 1,5
121
76
  DO IGC = 1,NGC(4)
122
123
75
    FREFBDF(NGS(3)+IGC,JP) = FRACREFB(IGC,JP+1) -FRACREFB(IGC,JP)
124
  ENDDO
125
ENDDO
126
127
1
IF (LHOOK) CALL DR_HOOK('RRTM_CMBGB4',1,ZHOOK_HANDLE)
128
1
END SUBROUTINE RRTM_CMBGB4