GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: phylmd/rrtm/rrtm_cmbgb7.F90 Lines: 46 46 100.0 %
Date: 2023-06-30 12:51:15 Branches: 46 48 95.8 %

Line Branch Exec Source
1
!***************************************************************************
2
1
SUBROUTINE RRTM_CMBGB7
3
!***************************************************************************
4
5
!     BAND 7:  980-1080 cm-1 (low - H2O,O3; high - O3)
6
!***************************************************************************
7
8
! Parameters
9
USE PARKIND1  ,ONLY : JPIM     ,JPRB
10
USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
11
12
USE YOERRTO7 , ONLY : KAO     ,KBO     ,SELFREFO   ,FRACREFAO  ,&
13
 & FRACREFBO, ABSCO2O
14
USE YOERRTA7 , ONLY : KA      ,KB      ,SELFREF    ,FRACREFA   ,&
15
 & FRACREFB , ABSCO2
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, 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_CMBGB7',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
7650
      DO IGC = 1,NGC(7)
32
        Z_SUMK = 0.0_JPRB
33
16380
        DO IPR = 1, NGN(NGS(6)+IGC)
34
9360
          IPRSM = IPRSM + 1
35
36
16380
          Z_SUMK = Z_SUMK + KAO(JN,JT,JP,IPRSM)*RWGT(IPRSM+96)
37
        ENDDO
38
39
7605
        KA(JN,JT,JP,IGC) = Z_SUMK
40
      ENDDO
41
    ENDDO
42
  ENDDO
43
ENDDO
44
6
DO JT = 1,5
45
241
  DO JP = 13,59
46
    IPRSM = 0
47
3060
    DO IGC = 1,NGC(7)
48
      Z_SUMK = 0.0_JPRB
49
6580
      DO IPR = 1, NGN(NGS(6)+IGC)
50
3760
        IPRSM = IPRSM + 1
51
52
6580
        Z_SUMK = Z_SUMK + KBO(JT,JP,IPRSM)*RWGT(IPRSM+96)
53
      ENDDO
54
55
3055
      KB(JT,JP,IGC) = Z_SUMK
56
    ENDDO
57
  ENDDO
58
ENDDO
59
60
11
DO JT = 1,10
61
  IPRSM = 0
62
131
  DO IGC = 1,NGC(7)
63
    Z_SUMK = 0.0_JPRB
64
280
    DO IPR = 1, NGN(NGS(6)+IGC)
65
160
      IPRSM = IPRSM + 1
66
67
280
      Z_SUMK = Z_SUMK + SELFREFO(JT,IPRSM)*RWGT(IPRSM+96)
68
    ENDDO
69
70
130
    SELFREF(JT,IGC) = Z_SUMK
71
  ENDDO
72
ENDDO
73
74
10
DO JP = 1,9
75
  IPRSM = 0
76
118
  DO IGC = 1,NGC(7)
77
    Z_SUMF = 0.0_JPRB
78
252
    DO IPR = 1, NGN(NGS(6)+IGC)
79
144
      IPRSM = IPRSM + 1
80
81
252
      Z_SUMF = Z_SUMF + FRACREFAO(IPRSM,JP)
82
    ENDDO
83
84
117
    FRACREFA(IGC,JP) = Z_SUMF
85
  ENDDO
86
ENDDO
87
88
IPRSM = 0
89
13
DO IGC = 1,NGC(7)
90
  Z_SUMF = 0.0_JPRB
91
  Z_SUMK = 0.0_JPRB
92
28
  DO IPR = 1, NGN(NGS(6)+IGC)
93
16
    IPRSM = IPRSM + 1
94
95
16
    Z_SUMF = Z_SUMF + FRACREFBO(IPRSM)
96
28
    Z_SUMK = Z_SUMK + ABSCO2O(IPRSM)*RWGT(IPRSM+96)
97
  ENDDO
98
99
12
  FRACREFB(IGC) = Z_SUMF
100
13
  ABSCO2(IGC) = Z_SUMK
101
ENDDO
102
103
10
DO JP = 1,9
104
118
  DO IGC = 1,NGC(7)
105
106
117
    FREFA(NGS(6)+IGC,JP) = FRACREFA(IGC,JP)
107
  ENDDO
108
ENDDO
109
9
DO JP = 1,8
110
105
  DO IGC = 1,NGC(7)
111
112
104
    FREFADF(NGS(6)+IGC,JP) = FRACREFA(IGC,JP+1) -FRACREFA(IGC,JP)
113
  ENDDO
114
ENDDO
115
13
DO IGC = 1,NGC(7)
116
117
13
  FREFB(NGS(6)+IGC,1) = FRACREFB(IGC)
118
ENDDO
119
120
1
IF (LHOOK) CALL DR_HOOK('RRTM_CMBGB7',1,ZHOOK_HANDLE)
121
1
END SUBROUTINE RRTM_CMBGB7