GCC Code Coverage Report


Directory: ./
File: rad/suleg_mod.f90
Date: 2022-01-11 19:19:34
Exec Total Coverage
Lines: 0 74 0.0%
Branches: 0 122 0.0%

Line Branch Exec Source
1 MODULE SULEG_MOD
2 CONTAINS
3 ✗ SUBROUTINE SULEG
4
5 USE PARKIND1 ,ONLY : JPIM ,JPRB
6 USE PARKIND2 ,ONLY : JPRH
7
8 USE TPM_GEN
9 USE TPM_DIM
10 USE TPM_CONSTANTS
11 USE TPM_DISTR
12 USE TPM_FIELDS
13
14 !USE SUGAW_MOD
15 USE SUPOL_MOD
16 USE SUTRLE_MOD
17
18
19
20 IMPLICIT NONE
21
22
23 ! ------------------------------------------------------------------
24 REAL(KIND=JPRB),ALLOCATABLE :: ZPNMG(:,:)
25
26 ✗ REAL(KIND=JPRH) :: DLRMU(R%NDGL)
27 ✗ REAL(KIND=JPRH) :: DLC(0:R%NTMAX+1,0:R%NTMAX+1)
28 ✗ REAL(KIND=JPRH) :: DLD(0:R%NTMAX+1,0:R%NTMAX+1)
29 ✗ REAL(KIND=JPRH) :: DLE(0:R%NTMAX+1,0:R%NTMAX+1)
30 ✗ REAL(KIND=JPRH) :: DLA(0:R%NTMAX+1),DLB(0:R%NTMAX+1),DLF(0:R%NTMAX+1)
31 ✗ REAL(KIND=JPRH) :: DLG(0:R%NTMAX+1),DLH(0:R%NTMAX+1),DLI(0:R%NTMAX+1)
32 ✗ REAL(KIND=JPRH) :: DLPOL(0:R%NTMAX+1,0:R%NTMAX+1)
33 ! ------------------------------------------------------------------
34
35 INTEGER(KIND=JPIM), PARAMETER :: JPKS=KIND(ZPNMG)
36 INTEGER(KIND=JPIM), PARAMETER :: JPKD=KIND(DLG)
37
38 ! ------------------------------------------------------------------
39 REAL(KIND=JPRH) :: DA,DC,DD,DE
40 INTEGER(KIND=JPIM) :: KKN, KKM
41
42 ! LOCAL
43 INTEGER(KIND=JPIM) :: IGLLOC, INM, IM , ICOUNT,&
44 &JGL, JM, JMLOC, JN, JNM
45
46
47 LOGICAL :: LLP1,LLP2
48
49
50 DC(KKN,KKM)=SQRT( (REAL(2*KKN+1,JPKD)*REAL(KKN+KKM-1,JPKD)&
51 &*REAL(KKN+KKM-3,JPKD))&
52 &/ (REAL(2*KKN-3,JPKD)*REAL(KKN+KKM,JPKD)&
53 &*REAL(KKN+KKM-2,JPKD)) )
54 DD(KKN,KKM)=SQRT( (REAL(2*KKN+1,JPKD)*REAL(KKN+KKM-1,JPKD)&
55 &*REAL(KKN-KKM+1,JPKD))&
56 &/ (REAL(2*KKN-1,JPKD)*REAL(KKN+KKM,JPKD)&
57 &*REAL(KKN+KKM-2,JPKD)) )
58 DE(KKN,KKM)=SQRT( (REAL(2*KKN+1,JPKD)*REAL(KKN-KKM,JPKD))&
59 &/ (REAL(2*KKN-1,JPKD)*REAL(KKN+KKM,JPKD)) )
60 DA(KKN,KKM)=SQRT( (REAL(2*KKN+1,JPKD)*REAL(KKN-KKM,JPKD)&
61 &*REAL(KKN+KKM,JPKD))&
62 &/ REAL(2*KKN-1,JPKD) )
63
64 ! ------------------------------------------------------------------
65 ✗ ALLOCATE(ZPNMG(R%NSPOLEG,D%NLEI3D))
66
67 !* 0. Some initializations.
68 ! ---------------------
69
70 ✗ LLP1 = NPRINTLEV>0
71 LLP2 = NPRINTLEV>1
72 ✗ IF(LLP1) WRITE(NOUT,*) '=== ENTER ROUTINE SULEG ==='
73
74 !CALL GSTATS(140,0) !MPL 4.12.08
75 ✗ ALLOCATE(F%RPNM(R%NLEI3,D%NSPOLEGL))
76 ✗ IF (LLP2) WRITE(NOUT,9) 'F%RPNM ',SIZE(F%RPNM),SHAPE(F%RPNM)
77 ✗ ALLOCATE(F%RMU(R%NDGL))
78 ✗ IF (LLP2) WRITE(NOUT,9) 'F%RMU ',SIZE(F%RMU ),SHAPE(F%RMU )
79 ✗ ALLOCATE(F%RW(R%NDGL))
80 ✗ IF (LLP2) WRITE(NOUT,9) 'F%RW ',SIZE(F%RW ),SHAPE(F%RW )
81 ✗ ALLOCATE(F%R1MU2(R%NDGL))
82 ✗ IF (LLP2) WRITE(NOUT,9) 'F%R1MU2 ',SIZE(F%R1MU2),SHAPE(F%R1MU2 )
83 ✗ ALLOCATE(F%RACTHE(R%NDGL))
84 ✗ IF (LLP2) WRITE(NOUT,9) 'F%RACTHE ',SIZE(F%RACTHE),SHAPE(F%RACTHE )
85
86 !CALL GSTATS(1801,0) ! MPL 4.12.08
87 ✗ DO JNM=1,D%NSPOLEGL
88 ✗ F%RPNM(R%NLEI3,JNM) = 0.0_JPRB
89 ENDDO
90 !CALL GSTATS(1801,1) ! MPL 4.12.08
91
92 ! ------------------------------------------------------------------
93
94 !* 3.1 Gaussian latitudes and weights
95 !CALL SUGAW(R%NDGL,F%RMU,DLRMU,F%RW)
96
97 !* 3.2 Computes related arrays
98
99 ✗ DO JGL=1,R%NDGL
100 ✗ F%R1MU2(JGL) = REAL(1.0_JPRB-DLRMU(JGL)*DLRMU(JGL),JPKS)
101 F%RACTHE(JGL) = REAL(1.0_JPRB/SQRT(1.0_JPRB-DLRMU(JGL)*DLRMU(JGL))/&
102 ✗ &REAL(RA,JPKD),JPKS)
103 ENDDO
104
105 !* 3.3 Working arrays
106 ✗ DO JN=3,R%NTMAX+1
107 ✗ DO JM=2,JN-1
108 ✗ DLC(JM,JN) = DC(JN,JM)
109 ✗ DLD(JM,JN) = DD(JN,JM)
110 ✗ DLE(JM,JN) = DE(JN,JM)
111 ENDDO
112 ENDDO
113
114 ✗ DO JN=1,R%NTMAX+1
115 ✗ DLA(JN) = SQRT(REAL(2*JN+1,JPKD))
116 ✗ DLB(JN) = SQRT(REAL(2*JN+1,JPKD)/REAL(JN*(JN+1),JPKD))
117 ✗ DLF(JN) = REAL(2*JN-1,JPKD)/REAL(JN,JPKD)
118 ✗ DLG(JN) = REAL(JN-1,JPKD)/REAL(JN,JPKD)
119 ✗ DLH(JN) = SQRT(REAL(2*JN+1,JPKD)/REAL(2*JN,JPKD))
120 ✗ DLI(JN) = REAL(JN,JPKD)
121 ENDDO
122
123 !CALL GSTATS(1801,0) ! MPL 4.12.08
124 ✗ DO JGL=D%NLATLS(MYSETW),D%NLATLE(MYSETW)
125 ✗ DLPOL(:,:) = 0.0_JPRB
126 ✗ CALL SUPOL(R%NTMAX+1,DLRMU(JGL),DLPOL,DLA,DLB,DLC,DLD,DLE,DLF,DLG,DLH,DLI)
127 INM = 0
128 ✗ IGLLOC = JGL - D%NLATLS(MYSETW) + 1
129 ✗ DO JM=0,R%NSMAX
130 ✗ DO JN=R%NTMAX+1,JM,-1
131 ✗ INM = INM+1
132 ✗ ZPNMG(INM,IGLLOC) = REAL(DLPOL(JM,JN),JPKS)
133 ENDDO
134 ENDDO
135 ENDDO
136 !CALL GSTATS(1801,1) ! MPL 4.12.08
137 !CALL GSTATS(140,1) ! MPL 4.12.08
138
139 !CALL GSTATS(190,0) ! MPL 4.12.08
140 ✗ CALL SUTRLE(ZPNMG)
141 !CALL GSTATS(190,1) ! MPL 4.12.08
142
143 ICOUNT = 0
144 ✗ DO JMLOC=1,D%NUMP
145 ✗ IM = D%MYMS(JMLOC)
146 ✗ DO JN=IM,R%NTMAX+2
147 ✗ ICOUNT = ICOUNT+1
148 ENDDO
149 ENDDO
150
151 ✗ ALLOCATE(F%REPSNM(ICOUNT))
152 ✗ IF (LLP2) WRITE(NOUT,9) 'F%REPSNM ',SIZE(F%REPSNM ),SHAPE(F%REPSNM )
153
154 ICOUNT = 0
155 ✗ DO JMLOC=1,D%NUMP
156 ✗ IM = D%MYMS(JMLOC)
157 ✗ DO JN=IM,R%NTMAX+2
158 ✗ ICOUNT = ICOUNT+1
159 F%REPSNM(ICOUNT) = REAL(SQRT(REAL(JN*JN-IM*IM,JPKD)/&
160 ✗ &REAL(4*JN*JN-1,JPKD)),JPKS)
161 ENDDO
162 ENDDO
163
164 ✗ ALLOCATE(F%RN(-1:R%NTMAX+3))
165 ✗ IF (LLP2) WRITE(NOUT,9) 'F%RN ',SIZE(F%RN ),SHAPE(F%RN )
166 ✗ ALLOCATE(F%RLAPIN(-1:R%NSMAX+2))
167 ✗ IF (LLP2) WRITE(NOUT,9) 'F%RLAPIN ',SIZE(F%RLAPIN ),SHAPE(F%RLAPIN )
168 ✗ ALLOCATE(F%NLTN(-1:R%NTMAX+3))
169 ✗ IF (LLP2) WRITE(NOUT,9) 'F%NLTN ',SIZE(F%NLTN ),SHAPE(F%NLTN )
170
171 ✗ DO JN=-1,R%NTMAX+3
172 ✗ F%RN(JN) = REAL(JN,JPRB)
173 ✗ F%NLTN(JN) = R%NTMAX+2-JN
174 ENDDO
175 ✗ F%RLAPIN(:) = 0.0_JPRB
176 ✗ F%RLAPIN(0) = 0._JPRB
177 ✗ F%RLAPIN(-1) = 0.0_JPRB
178 ✗ DO JN=1,R%NSMAX+2
179 ✗ F%RLAPIN(JN)=REAL(-(REAL(RA,JPKD)*REAL(RA,JPKD))/REAL(JN*(JN+1),JPKD),JPKS)
180 ENDDO
181
182 ✗ DEALLOCATE(ZPNMG)
183
184 ! ------------------------------------------------------------------
185 9 FORMAT(1X,'ARRAY ',A10,' ALLOCATED ',8I8)
186
187 ✗ END SUBROUTINE SULEG
188 END MODULE SULEG_MOD
189