GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: phylmd/rrtm/rrtm_cmbgb9.F90 Lines: 52 52 100.0 %
Date: 2023-06-30 12:56:34 Branches: 52 54 96.3 %

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