3 * =========== DOCUMENTATION ===========
5 * Online html documentation available at
6 * http://www.netlib.org/lapack/explore-html/
19 *> Test program for the REAL Level 1 BLAS.
21 *> Based upon the original BLAS test routine together with:
22 *> F06EAF Example Program Text
28 *> \author Univ. of Tennessee
29 *> \author Univ. of California Berkeley
30 *> \author Univ. of Colorado Denver
35 *> \ingroup single_blas_testing
37 * =====================================================================
40 * -- Reference BLAS test routine (version 3.8.0) --
41 * -- Reference BLAS is a software package provided by Univ. of Tennessee, --
42 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
45 * =====================================================================
50 * .. Scalars in Common ..
51 INTEGER ICASE, INCX, INCY, N
56 * .. External Subroutines ..
57 EXTERNAL CHECK0, CHECK1, CHECK2, CHECK3, HEADER
59 COMMON /COMBLA/ICASE, N, INCX, INCY, PASS
60 * .. Data statements ..
61 DATA SFAC/9.765625E-4/
62 * .. Executable Statements ..
68 * .. Initialize PASS, INCX, and INCY for a new case. ..
69 * .. the value 9999 for INCX or INCY will appear in the ..
70 * .. detailed output, if any, for cases that do not involve ..
71 * .. these parameters ..
76 IF (ICASE.EQ.3 .OR. ICASE.EQ.11) THEN
78 ELSE IF (ICASE.EQ.7 .OR. ICASE.EQ.8 .OR. ICASE.EQ.9 .OR.
81 ELSE IF (ICASE.EQ.1 .OR. ICASE.EQ.2 .OR. ICASE.EQ.5 .OR.
82 + ICASE.EQ.6 .OR. ICASE.EQ.12 .OR. ICASE.EQ.13) THEN
84 ELSE IF (ICASE.EQ.4) THEN
88 IF (PASS) WRITE (NOUT,99998)
92 99999 FORMAT (' Real BLAS Test Program Results',/1X)
93 99998 FORMAT (' ----- PASS -----')
99 * .. Scalars in Common ..
100 INTEGER ICASE, INCX, INCY, N
104 * .. Common blocks ..
105 COMMON /COMBLA/ICASE, N, INCX, INCY, PASS
106 * .. Data statements ..
120 * .. Executable Statements ..
121 WRITE (NOUT,99999) ICASE, L(ICASE)
124 99999 FORMAT (/' Test of subprogram number',I3,12X,A6)
126 SUBROUTINE CHECK0(SFAC)
130 * .. Scalar Arguments ..
132 * .. Scalars in Common ..
133 INTEGER ICASE, INCX, INCY, N
135 * .. Local Scalars ..
136 REAL D12, SA, SB, SC, SS
139 REAL DA1(8), DATRUE(8), DB1(8), DBTRUE(8), DC1(8),
140 + DS1(8), DAB(4,9), DTEMP(9), DTRUE(9,9)
141 * .. External Subroutines ..
142 EXTERNAL SROTG, SROTMG, STEST, STEST1
143 * .. Common blocks ..
144 COMMON /COMBLA/ICASE, N, INCX, INCY, PASS
145 * .. Data statements ..
146 DATA DA1/0.3E0, 0.4E0, -0.3E0, -0.4E0, -0.3E0, 0.0E0,
148 DATA DB1/0.4E0, 0.3E0, 0.4E0, 0.3E0, -0.4E0, 0.0E0,
150 DATA DC1/0.6E0, 0.8E0, -0.6E0, 0.8E0, 0.6E0, 1.0E0,
152 DATA DS1/0.8E0, 0.6E0, 0.8E0, -0.6E0, 0.8E0, 0.0E0,
154 DATA DATRUE/0.5E0, 0.5E0, 0.5E0, -0.5E0, -0.5E0,
155 + 0.0E0, 1.0E0, 1.0E0/
156 DATA DBTRUE/0.0E0, 0.6E0, 0.0E0, -0.6E0, 0.0E0,
157 + 0.0E0, 1.0E0, 0.0E0/
158 * INPUT FOR MODIFIED GIVENS
159 DATA DAB/ .1E0,.3E0,1.2E0,.2E0,
160 A .7E0, .2E0, .6E0, 4.2E0,
161 B 0.E0,0.E0,0.E0,0.E0,
162 C 4.E0, -1.E0, 2.E0, 4.E0,
163 D 6.E-10, 2.E-2, 1.E5, 10.E0,
164 E 4.E10, 2.E-2, 1.E-5, 10.E0,
165 F 2.E-10, 4.E-2, 1.E5, 10.E0,
166 G 2.E10, 4.E-2, 1.E-5, 10.E0,
167 H 4.E0, -2.E0, 8.E0, 4.E0 /
168 * TRUE RESULTS FOR MODIFIED GIVENS
169 DATA DTRUE/0.E0,0.E0, 1.3E0, .2E0, 0.E0,0.E0,0.E0, .5E0, 0.E0,
170 A 0.E0,0.E0, 4.5E0, 4.2E0, 1.E0, .5E0, 0.E0,0.E0,0.E0,
171 B 0.E0,0.E0,0.E0,0.E0, -2.E0, 0.E0,0.E0,0.E0,0.E0,
172 C 0.E0,0.E0,0.E0, 4.E0, -1.E0, 0.E0,0.E0,0.E0,0.E0,
173 D 0.E0, 15.E-3, 0.E0, 10.E0, -1.E0, 0.E0, -1.E-4,
175 F 0.E0,0.E0, 6144.E-5, 10.E0, -1.E0, 4096.E0, -1.E6,
177 H 0.E0,0.E0,15.E0,10.E0,-1.E0, 5.E-5, 0.E0,1.E0,0.E0,
178 I 0.E0,0.E0, 15.E0, 10.E0, -1. E0, 5.E5, -4096.E0,
180 K 0.E0,0.E0, 7.E0, 4.E0, 0.E0,0.E0, -.5E0, -.25E0, 0.E0/
183 DTRUE(1,1) = 12.E0 / 130.E0
184 DTRUE(2,1) = 36.E0 / 130.E0
185 DTRUE(7,1) = -1.E0 / 6.E0
186 DTRUE(1,2) = 14.E0 / 75.E0
187 DTRUE(2,2) = 49.E0 / 75.E0
188 DTRUE(9,2) = 1.E0 / 7.E0
189 DTRUE(1,5) = 45.E-11 * (D12 * D12)
190 DTRUE(3,5) = 4.E5 / (3.E0 * D12)
191 DTRUE(6,5) = 1.E0 / D12
192 DTRUE(8,5) = 1.E4 / (3.E0 * D12)
193 DTRUE(1,6) = 4.E10 / (1.5E0 * D12 * D12)
194 DTRUE(2,6) = 2.E-2 / 1.5E0
195 DTRUE(8,6) = 5.E-7 * D12
196 DTRUE(1,7) = 4.E0 / 150.E0
197 DTRUE(2,7) = (2.E-10 / 1.5E0) * (D12 * D12)
198 DTRUE(7,7) = -DTRUE(6,5)
199 DTRUE(9,7) = 1.E4 / D12
200 DTRUE(1,8) = DTRUE(1,7)
201 DTRUE(2,8) = 2.E10 / (1.5E0 * D12 * D12)
202 DTRUE(1,9) = 32.E0 / 7.E0
203 DTRUE(2,9) = -16.E0 / 7.E0
204 * .. Executable Statements ..
206 * Compute true values which cannot be prestored
207 * in decimal notation
209 DBTRUE(1) = 1.0E0/0.6E0
210 DBTRUE(3) = -1.0E0/0.6E0
211 DBTRUE(5) = 1.0E0/0.6E0
214 * .. Set N=K for identification in output if any ..
221 CALL SROTG(SA,SB,SC,SS)
222 CALL STEST1(SA,DATRUE(K),DATRUE(K),SFAC)
223 CALL STEST1(SB,DBTRUE(K),DBTRUE(K),SFAC)
224 CALL STEST1(SC,DC1(K),DC1(K),SFAC)
225 CALL STEST1(SS,DS1(K),DS1(K),SFAC)
226 ELSEIF (ICASE.EQ.11) THEN
233 CALL SROTMG(DTEMP(1),DTEMP(2),DTEMP(3),DTEMP(4),DTEMP(5))
234 CALL STEST(9,DTEMP,DTRUE(1,K),DTRUE(1,K),SFAC)
236 WRITE (NOUT,*) ' Shouldn''t be here in CHECK0'
242 SUBROUTINE CHECK1(SFAC)
246 * .. Scalar Arguments ..
248 * .. Scalars in Common ..
249 INTEGER ICASE, INCX, INCY, N
251 * .. Local Scalars ..
254 REAL DTRUE1(5), DTRUE3(5), DTRUE5(8,5,2), DV(8,5,2),
255 + SA(10), STEMP(1), STRUE(8), SX(8)
257 * .. External Functions ..
260 EXTERNAL SASUM, SNRM2, ISAMAX
261 * .. External Subroutines ..
262 EXTERNAL ITEST1, SSCAL, STEST, STEST1
263 * .. Intrinsic Functions ..
265 * .. Common blocks ..
266 COMMON /COMBLA/ICASE, N, INCX, INCY, PASS
267 * .. Data statements ..
268 DATA SA/0.3E0, -1.0E0, 0.0E0, 1.0E0, 0.3E0, 0.3E0,
269 + 0.3E0, 0.3E0, 0.3E0, 0.3E0/
270 DATA DV/0.1E0, 2.0E0, 2.0E0, 2.0E0, 2.0E0, 2.0E0,
271 + 2.0E0, 2.0E0, 0.3E0, 3.0E0, 3.0E0, 3.0E0, 3.0E0,
272 + 3.0E0, 3.0E0, 3.0E0, 0.3E0, -0.4E0, 4.0E0,
273 + 4.0E0, 4.0E0, 4.0E0, 4.0E0, 4.0E0, 0.2E0,
274 + -0.6E0, 0.3E0, 5.0E0, 5.0E0, 5.0E0, 5.0E0,
275 + 5.0E0, 0.1E0, -0.3E0, 0.5E0, -0.1E0, 6.0E0,
276 + 6.0E0, 6.0E0, 6.0E0, 0.1E0, 8.0E0, 8.0E0, 8.0E0,
277 + 8.0E0, 8.0E0, 8.0E0, 8.0E0, 0.3E0, 9.0E0, 9.0E0,
278 + 9.0E0, 9.0E0, 9.0E0, 9.0E0, 9.0E0, 0.3E0, 2.0E0,
279 + -0.4E0, 2.0E0, 2.0E0, 2.0E0, 2.0E0, 2.0E0,
280 + 0.2E0, 3.0E0, -0.6E0, 5.0E0, 0.3E0, 2.0E0,
281 + 2.0E0, 2.0E0, 0.1E0, 4.0E0, -0.3E0, 6.0E0,
282 + -0.5E0, 7.0E0, -0.1E0, 3.0E0/
283 DATA DTRUE1/0.0E0, 0.3E0, 0.5E0, 0.7E0, 0.6E0/
284 DATA DTRUE3/0.0E0, 0.3E0, 0.7E0, 1.1E0, 1.0E0/
285 DATA DTRUE5/0.10E0, 2.0E0, 2.0E0, 2.0E0, 2.0E0,
286 + 2.0E0, 2.0E0, 2.0E0, -0.3E0, 3.0E0, 3.0E0,
287 + 3.0E0, 3.0E0, 3.0E0, 3.0E0, 3.0E0, 0.0E0, 0.0E0,
288 + 4.0E0, 4.0E0, 4.0E0, 4.0E0, 4.0E0, 4.0E0,
289 + 0.20E0, -0.60E0, 0.30E0, 5.0E0, 5.0E0, 5.0E0,
290 + 5.0E0, 5.0E0, 0.03E0, -0.09E0, 0.15E0, -0.03E0,
291 + 6.0E0, 6.0E0, 6.0E0, 6.0E0, 0.10E0, 8.0E0,
292 + 8.0E0, 8.0E0, 8.0E0, 8.0E0, 8.0E0, 8.0E0,
293 + 0.09E0, 9.0E0, 9.0E0, 9.0E0, 9.0E0, 9.0E0,
294 + 9.0E0, 9.0E0, 0.09E0, 2.0E0, -0.12E0, 2.0E0,
295 + 2.0E0, 2.0E0, 2.0E0, 2.0E0, 0.06E0, 3.0E0,
296 + -0.18E0, 5.0E0, 0.09E0, 2.0E0, 2.0E0, 2.0E0,
297 + 0.03E0, 4.0E0, -0.09E0, 6.0E0, -0.15E0, 7.0E0,
299 DATA ITRUE2/0, 1, 2, 2, 3/
300 * .. Executable Statements ..
305 * .. Set vector arguments ..
307 SX(I) = DV(I,NP1,INCX)
312 STEMP(1) = DTRUE1(NP1)
313 CALL STEST1(SNRM2(N,SX,INCX),STEMP(1),STEMP,SFAC)
314 ELSE IF (ICASE.EQ.8) THEN
316 STEMP(1) = DTRUE3(NP1)
317 CALL STEST1(SASUM(N,SX,INCX),STEMP(1),STEMP,SFAC)
318 ELSE IF (ICASE.EQ.9) THEN
320 CALL SSCAL(N,SA((INCX-1)*5+NP1),SX,INCX)
322 STRUE(I) = DTRUE5(I,NP1,INCX)
324 CALL STEST(LEN,SX,STRUE,STRUE,SFAC)
325 ELSE IF (ICASE.EQ.10) THEN
327 CALL ITEST1(ISAMAX(N,SX,INCX),ITRUE2(NP1))
329 WRITE (NOUT,*) ' Shouldn''t be here in CHECK1'
336 SUBROUTINE CHECK2(SFAC)
340 * .. Scalar Arguments ..
342 * .. Scalars in Common ..
343 INTEGER ICASE, INCX, INCY, N
345 * .. Local Scalars ..
347 INTEGER I, J, KI, KN, KNI, KPAR, KSIZE, LENX, LENY,
350 REAL DT10X(7,4,4), DT10Y(7,4,4), DT7(4,4),
351 $ DT8(7,4,4), DX1(7),
352 $ DY1(7), SSIZE1(4), SSIZE2(14,2), SSIZE3(4),
353 $ SSIZE(7), STX(7), STY(7), SX(7), SY(7),
354 $ DPAR(5,4), DT19X(7,4,16),DT19XA(7,4,4),
355 $ DT19XB(7,4,4), DT19XC(7,4,4),DT19XD(7,4,4),
356 $ DT19Y(7,4,16), DT19YA(7,4,4),DT19YB(7,4,4),
357 $ DT19YC(7,4,4), DT19YD(7,4,4), DTEMP(5),
359 INTEGER INCXS(4), INCYS(4), LENS(4,2), NS(4)
360 * .. External Functions ..
362 EXTERNAL SDOT, SDSDOT
363 * .. External Subroutines ..
364 EXTERNAL SAXPY, SCOPY, SROTM, SSWAP, STEST, STEST1
365 * .. Intrinsic Functions ..
367 * .. Common blocks ..
368 COMMON /COMBLA/ICASE, N, INCX, INCY, PASS
369 * .. Data statements ..
370 EQUIVALENCE (DT19X(1,1,1),DT19XA(1,1,1)),(DT19X(1,1,5),
371 A DT19XB(1,1,1)),(DT19X(1,1,9),DT19XC(1,1,1)),
372 B (DT19X(1,1,13),DT19XD(1,1,1))
373 EQUIVALENCE (DT19Y(1,1,1),DT19YA(1,1,1)),(DT19Y(1,1,5),
374 A DT19YB(1,1,1)),(DT19Y(1,1,9),DT19YC(1,1,1)),
375 B (DT19Y(1,1,13),DT19YD(1,1,1))
378 DATA INCXS/1, 2, -2, -1/
379 DATA INCYS/1, -2, 1, -2/
380 DATA LENS/1, 1, 2, 4, 1, 1, 3, 7/
382 DATA DX1/0.6E0, 0.1E0, -0.5E0, 0.8E0, 0.9E0, -0.3E0,
384 DATA DY1/0.5E0, -0.9E0, 0.3E0, 0.7E0, -0.6E0, 0.2E0,
386 DATA DT7/0.0E0, 0.30E0, 0.21E0, 0.62E0, 0.0E0,
387 + 0.30E0, -0.07E0, 0.85E0, 0.0E0, 0.30E0, -0.79E0,
388 + -0.74E0, 0.0E0, 0.30E0, 0.33E0, 1.27E0/
389 DATA ST7B/ .1, .4, .31, .72, .1, .4, .03, .95,
390 + .1, .4, -.69, -.64, .1, .4, .43, 1.37/
391 DATA DT8/0.5E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
392 + 0.0E0, 0.68E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
393 + 0.0E0, 0.0E0, 0.68E0, -0.87E0, 0.0E0, 0.0E0,
394 + 0.0E0, 0.0E0, 0.0E0, 0.68E0, -0.87E0, 0.15E0,
395 + 0.94E0, 0.0E0, 0.0E0, 0.0E0, 0.5E0, 0.0E0,
396 + 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.68E0,
397 + 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
398 + 0.35E0, -0.9E0, 0.48E0, 0.0E0, 0.0E0, 0.0E0,
399 + 0.0E0, 0.38E0, -0.9E0, 0.57E0, 0.7E0, -0.75E0,
400 + 0.2E0, 0.98E0, 0.5E0, 0.0E0, 0.0E0, 0.0E0,
401 + 0.0E0, 0.0E0, 0.0E0, 0.68E0, 0.0E0, 0.0E0,
402 + 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.35E0, -0.72E0,
403 + 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.38E0,
404 + -0.63E0, 0.15E0, 0.88E0, 0.0E0, 0.0E0, 0.0E0,
405 + 0.5E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
406 + 0.68E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
407 + 0.0E0, 0.68E0, -0.9E0, 0.33E0, 0.0E0, 0.0E0,
408 + 0.0E0, 0.0E0, 0.68E0, -0.9E0, 0.33E0, 0.7E0,
409 + -0.75E0, 0.2E0, 1.04E0/
410 DATA DT10X/0.6E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
411 + 0.0E0, 0.5E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
412 + 0.0E0, 0.5E0, -0.9E0, 0.0E0, 0.0E0, 0.0E0,
413 + 0.0E0, 0.0E0, 0.5E0, -0.9E0, 0.3E0, 0.7E0,
414 + 0.0E0, 0.0E0, 0.0E0, 0.6E0, 0.0E0, 0.0E0, 0.0E0,
415 + 0.0E0, 0.0E0, 0.0E0, 0.5E0, 0.0E0, 0.0E0, 0.0E0,
416 + 0.0E0, 0.0E0, 0.0E0, 0.3E0, 0.1E0, 0.5E0, 0.0E0,
417 + 0.0E0, 0.0E0, 0.0E0, 0.8E0, 0.1E0, -0.6E0,
418 + 0.8E0, 0.3E0, -0.3E0, 0.5E0, 0.6E0, 0.0E0,
419 + 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.5E0, 0.0E0,
420 + 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, -0.9E0,
421 + 0.1E0, 0.5E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.7E0,
422 + 0.1E0, 0.3E0, 0.8E0, -0.9E0, -0.3E0, 0.5E0,
423 + 0.6E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
424 + 0.5E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
425 + 0.5E0, 0.3E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
426 + 0.5E0, 0.3E0, -0.6E0, 0.8E0, 0.0E0, 0.0E0,
428 DATA DT10Y/0.5E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
429 + 0.0E0, 0.6E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
430 + 0.0E0, 0.6E0, 0.1E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
431 + 0.0E0, 0.6E0, 0.1E0, -0.5E0, 0.8E0, 0.0E0,
432 + 0.0E0, 0.0E0, 0.5E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
433 + 0.0E0, 0.0E0, 0.6E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
434 + 0.0E0, 0.0E0, -0.5E0, -0.9E0, 0.6E0, 0.0E0,
435 + 0.0E0, 0.0E0, 0.0E0, -0.4E0, -0.9E0, 0.9E0,
436 + 0.7E0, -0.5E0, 0.2E0, 0.6E0, 0.5E0, 0.0E0,
437 + 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.6E0, 0.0E0,
438 + 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, -0.5E0,
439 + 0.6E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
440 + -0.4E0, 0.9E0, -0.5E0, 0.6E0, 0.0E0, 0.0E0,
441 + 0.0E0, 0.5E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
442 + 0.0E0, 0.6E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
443 + 0.0E0, 0.6E0, -0.9E0, 0.1E0, 0.0E0, 0.0E0,
444 + 0.0E0, 0.0E0, 0.6E0, -0.9E0, 0.1E0, 0.7E0,
445 + -0.5E0, 0.2E0, 0.8E0/
446 DATA SSIZE1/0.0E0, 0.3E0, 1.6E0, 3.2E0/
447 DATA SSIZE2/0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
448 + 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
449 + 0.0E0, 1.17E0, 1.17E0, 1.17E0, 1.17E0, 1.17E0,
450 + 1.17E0, 1.17E0, 1.17E0, 1.17E0, 1.17E0, 1.17E0,
451 + 1.17E0, 1.17E0, 1.17E0/
452 DATA SSIZE3/ .1, .4, 1.7, 3.3 /
456 DATA DPAR/-2.E0, 0.E0,0.E0,0.E0,0.E0,
457 A -1.E0, 2.E0, -3.E0, -4.E0, 5.E0,
458 B 0.E0, 0.E0, 2.E0, -3.E0, 0.E0,
459 C 1.E0, 5.E0, 2.E0, 0.E0, -4.E0/
460 * TRUE X RESULTS F0R ROTATIONS DROTM
461 DATA DT19XA/.6E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
462 A .6E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
463 B .6E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
464 C .6E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
465 D .6E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
466 E -.8E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
467 F -.9E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
468 G 3.5E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
469 H .6E0, .1E0, 0.E0,0.E0,0.E0,0.E0,0.E0,
470 I -.8E0, 3.8E0, 0.E0,0.E0,0.E0,0.E0,0.E0,
471 J -.9E0, 2.8E0, 0.E0,0.E0,0.E0,0.E0,0.E0,
472 K 3.5E0, -.4E0, 0.E0,0.E0,0.E0,0.E0,0.E0,
473 L .6E0, .1E0, -.5E0, .8E0, 0.E0,0.E0,0.E0,
474 M -.8E0, 3.8E0, -2.2E0, -1.2E0, 0.E0,0.E0,0.E0,
475 N -.9E0, 2.8E0, -1.4E0, -1.3E0, 0.E0,0.E0,0.E0,
476 O 3.5E0, -.4E0, -2.2E0, 4.7E0, 0.E0,0.E0,0.E0/
478 DATA DT19XB/.6E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
479 A .6E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
480 B .6E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
481 C .6E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
482 D .6E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
483 E -.8E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
484 F -.9E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
485 G 3.5E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
486 H .6E0, .1E0, -.5E0, 0.E0,0.E0,0.E0,0.E0,
487 I 0.E0, .1E0, -3.0E0, 0.E0,0.E0,0.E0,0.E0,
488 J -.3E0, .1E0, -2.0E0, 0.E0,0.E0,0.E0,0.E0,
489 K 3.3E0, .1E0, -2.0E0, 0.E0,0.E0,0.E0,0.E0,
490 L .6E0, .1E0, -.5E0, .8E0, .9E0, -.3E0, -.4E0,
491 M -2.0E0, .1E0, 1.4E0, .8E0, .6E0, -.3E0, -2.8E0,
492 N -1.8E0, .1E0, 1.3E0, .8E0, 0.E0, -.3E0, -1.9E0,
493 O 3.8E0, .1E0, -3.1E0, .8E0, 4.8E0, -.3E0, -1.5E0 /
495 DATA DT19XC/.6E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
496 A .6E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
497 B .6E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
498 C .6E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
499 D .6E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
500 E -.8E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
501 F -.9E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
502 G 3.5E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
503 H .6E0, .1E0, -.5E0, 0.E0,0.E0,0.E0,0.E0,
504 I 4.8E0, .1E0, -3.0E0, 0.E0,0.E0,0.E0,0.E0,
505 J 3.3E0, .1E0, -2.0E0, 0.E0,0.E0,0.E0,0.E0,
506 K 2.1E0, .1E0, -2.0E0, 0.E0,0.E0,0.E0,0.E0,
507 L .6E0, .1E0, -.5E0, .8E0, .9E0, -.3E0, -.4E0,
508 M -1.6E0, .1E0, -2.2E0, .8E0, 5.4E0, -.3E0, -2.8E0,
509 N -1.5E0, .1E0, -1.4E0, .8E0, 3.6E0, -.3E0, -1.9E0,
510 O 3.7E0, .1E0, -2.2E0, .8E0, 3.6E0, -.3E0, -1.5E0 /
512 DATA DT19XD/.6E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
513 A .6E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
514 B .6E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
515 C .6E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
516 D .6E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
517 E -.8E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
518 F -.9E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
519 G 3.5E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
520 H .6E0, .1E0, 0.E0,0.E0,0.E0,0.E0,0.E0,
521 I -.8E0, -1.0E0, 0.E0,0.E0,0.E0,0.E0,0.E0,
522 J -.9E0, -.8E0, 0.E0,0.E0,0.E0,0.E0,0.E0,
523 K 3.5E0, .8E0, 0.E0,0.E0,0.E0,0.E0,0.E0,
524 L .6E0, .1E0, -.5E0, .8E0, 0.E0,0.E0,0.E0,
525 M -.8E0, -1.0E0, 1.4E0, -1.6E0, 0.E0,0.E0,0.E0,
526 N -.9E0, -.8E0, 1.3E0, -1.6E0, 0.E0,0.E0,0.E0,
527 O 3.5E0, .8E0, -3.1E0, 4.8E0, 0.E0,0.E0,0.E0/
528 * TRUE Y RESULTS FOR ROTATIONS DROTM
529 DATA DT19YA/.5E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
530 A .5E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
531 B .5E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
532 C .5E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
533 D .5E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
534 E .7E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
535 F 1.7E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
536 G -2.6E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
537 H .5E0, -.9E0, 0.E0,0.E0,0.E0,0.E0,0.E0,
538 I .7E0, -4.8E0, 0.E0,0.E0,0.E0,0.E0,0.E0,
539 J 1.7E0, -.7E0, 0.E0,0.E0,0.E0,0.E0,0.E0,
540 K -2.6E0, 3.5E0, 0.E0,0.E0,0.E0,0.E0,0.E0,
541 L .5E0, -.9E0, .3E0, .7E0, 0.E0,0.E0,0.E0,
542 M .7E0, -4.8E0, 3.0E0, 1.1E0, 0.E0,0.E0,0.E0,
543 N 1.7E0, -.7E0, -.7E0, 2.3E0, 0.E0,0.E0,0.E0,
544 O -2.6E0, 3.5E0, -.7E0, -3.6E0, 0.E0,0.E0,0.E0/
546 DATA DT19YB/.5E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
547 A .5E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
548 B .5E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
549 C .5E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
550 D .5E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
551 E .7E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
552 F 1.7E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
553 G -2.6E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
554 H .5E0, -.9E0, .3E0, 0.E0,0.E0,0.E0,0.E0,
555 I 4.0E0, -.9E0, -.3E0, 0.E0,0.E0,0.E0,0.E0,
556 J -.5E0, -.9E0, 1.5E0, 0.E0,0.E0,0.E0,0.E0,
557 K -1.5E0, -.9E0, -1.8E0, 0.E0,0.E0,0.E0,0.E0,
558 L .5E0, -.9E0, .3E0, .7E0, -.6E0, .2E0, .8E0,
559 M 3.7E0, -.9E0, -1.2E0, .7E0, -1.5E0, .2E0, 2.2E0,
560 N -.3E0, -.9E0, 2.1E0, .7E0, -1.6E0, .2E0, 2.0E0,
561 O -1.6E0, -.9E0, -2.1E0, .7E0, 2.9E0, .2E0, -3.8E0 /
563 DATA DT19YC/.5E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
564 A .5E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
565 B .5E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
566 C .5E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
567 D .5E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
568 E .7E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
569 F 1.7E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
570 G -2.6E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
571 H .5E0, -.9E0, 0.E0,0.E0,0.E0,0.E0,0.E0,
572 I 4.0E0, -6.3E0, 0.E0,0.E0,0.E0,0.E0,0.E0,
573 J -.5E0, .3E0, 0.E0,0.E0,0.E0,0.E0,0.E0,
574 K -1.5E0, 3.0E0, 0.E0,0.E0,0.E0,0.E0,0.E0,
575 L .5E0, -.9E0, .3E0, .7E0, 0.E0,0.E0,0.E0,
576 M 3.7E0, -7.2E0, 3.0E0, 1.7E0, 0.E0,0.E0,0.E0,
577 N -.3E0, .9E0, -.7E0, 1.9E0, 0.E0,0.E0,0.E0,
578 O -1.6E0, 2.7E0, -.7E0, -3.4E0, 0.E0,0.E0,0.E0/
580 DATA DT19YD/.5E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
581 A .5E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
582 B .5E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
583 C .5E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
584 D .5E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
585 E .7E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
586 F 1.7E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
587 G -2.6E0, 0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,
588 H .5E0, -.9E0, .3E0, 0.E0,0.E0,0.E0,0.E0,
589 I .7E0, -.9E0, 1.2E0, 0.E0,0.E0,0.E0,0.E0,
590 J 1.7E0, -.9E0, .5E0, 0.E0,0.E0,0.E0,0.E0,
591 K -2.6E0, -.9E0, -1.3E0, 0.E0,0.E0,0.E0,0.E0,
592 L .5E0, -.9E0, .3E0, .7E0, -.6E0, .2E0, .8E0,
593 M .7E0, -.9E0, 1.2E0, .7E0, -1.5E0, .2E0, 1.6E0,
594 N 1.7E0, -.9E0, .5E0, .7E0, -1.6E0, .2E0, 2.4E0,
595 O -2.6E0, -.9E0, -1.3E0, .7E0, 2.9E0, .2E0, -4.0E0 /
597 * .. Executable Statements ..
610 * .. Initialize all argument arrays ..
618 CALL STEST1(SDOT(N,SX,INCX,SY,INCY),DT7(KN,KI),SSIZE1(KN)
620 ELSE IF (ICASE.EQ.2) THEN
622 CALL SAXPY(N,SA,SX,INCX,SY,INCY)
624 STY(J) = DT8(J,KN,KI)
626 CALL STEST(LENY,SY,STY,SSIZE2(1,KSIZE),SFAC)
627 ELSE IF (ICASE.EQ.5) THEN
630 STY(I) = DT10Y(I,KN,KI)
632 CALL SCOPY(N,SX,INCX,SY,INCY)
633 CALL STEST(LENY,SY,STY,SSIZE2(1,1),1.0E0)
634 ELSE IF (ICASE.EQ.6) THEN
636 CALL SSWAP(N,SX,INCX,SY,INCY)
638 STX(I) = DT10X(I,KN,KI)
639 STY(I) = DT10Y(I,KN,KI)
641 CALL STEST(LENX,SX,STX,SSIZE2(1,1),1.0E0)
642 CALL STEST(LENY,SY,STY,SSIZE2(1,1),1.0E0)
643 ELSEIF (ICASE.EQ.12) THEN
650 STX(I)= DT19X(I,KPAR,KNI)
651 STY(I)= DT19Y(I,KPAR,KNI)
655 DTEMP(I) = DPAR(I,KPAR)
661 * SEE REMARK ABOVE ABOUT DT11X(1,2,7)
663 IF ((KPAR .EQ. 2) .AND. (KNI .EQ. 7))
665 IF ((KPAR .EQ. 3) .AND. (KNI .EQ. 8))
668 CALL SROTM(N,SX,INCX,SY,INCY,DTEMP)
669 CALL STEST(LENX,SX,STX,SSIZE,SFAC)
670 CALL STEST(LENY,SY,STY,STY,SFAC)
672 ELSEIF (ICASE.EQ.13) THEN
674 CALL STEST1 (SDSDOT(N,.1,SX,INCX,SY,INCY),
675 $ ST7B(KN,KI),SSIZE3(KN),SFAC)
677 WRITE (NOUT,*) ' Shouldn''t be here in CHECK2'
684 SUBROUTINE CHECK3(SFAC)
688 * .. Scalar Arguments ..
690 * .. Scalars in Common ..
691 INTEGER ICASE, INCX, INCY, N
693 * .. Local Scalars ..
695 INTEGER I, K, KI, KN, KSIZE, LENX, LENY, MX, MY
697 REAL COPYX(5), COPYY(5), DT9X(7,4,4), DT9Y(7,4,4),
698 + DX1(7), DY1(7), MWPC(11), MWPS(11), MWPSTX(5),
699 + MWPSTY(5), MWPTX(11,5), MWPTY(11,5), MWPX(5),
700 + MWPY(5), SSIZE2(14,2), STX(7), STY(7), SX(7),
702 INTEGER INCXS(4), INCYS(4), LENS(4,2), MWPINX(11),
703 + MWPINY(11), MWPN(11), NS(4)
704 * .. External Subroutines ..
706 * .. Intrinsic Functions ..
708 * .. Common blocks ..
709 COMMON /COMBLA/ICASE, N, INCX, INCY, PASS
710 * .. Data statements ..
711 DATA INCXS/1, 2, -2, -1/
712 DATA INCYS/1, -2, 1, -2/
713 DATA LENS/1, 1, 2, 4, 1, 1, 3, 7/
715 DATA DX1/0.6E0, 0.1E0, -0.5E0, 0.8E0, 0.9E0, -0.3E0,
717 DATA DY1/0.5E0, -0.9E0, 0.3E0, 0.7E0, -0.6E0, 0.2E0,
719 DATA SC, SS/0.8E0, 0.6E0/
720 DATA DT9X/0.6E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
721 + 0.0E0, 0.78E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
722 + 0.0E0, 0.0E0, 0.78E0, -0.46E0, 0.0E0, 0.0E0,
723 + 0.0E0, 0.0E0, 0.0E0, 0.78E0, -0.46E0, -0.22E0,
724 + 1.06E0, 0.0E0, 0.0E0, 0.0E0, 0.6E0, 0.0E0,
725 + 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.78E0,
726 + 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
727 + 0.66E0, 0.1E0, -0.1E0, 0.0E0, 0.0E0, 0.0E0,
728 + 0.0E0, 0.96E0, 0.1E0, -0.76E0, 0.8E0, 0.90E0,
729 + -0.3E0, -0.02E0, 0.6E0, 0.0E0, 0.0E0, 0.0E0,
730 + 0.0E0, 0.0E0, 0.0E0, 0.78E0, 0.0E0, 0.0E0,
731 + 0.0E0, 0.0E0, 0.0E0, 0.0E0, -0.06E0, 0.1E0,
732 + -0.1E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.90E0,
733 + 0.1E0, -0.22E0, 0.8E0, 0.18E0, -0.3E0, -0.02E0,
734 + 0.6E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
735 + 0.78E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
736 + 0.0E0, 0.78E0, 0.26E0, 0.0E0, 0.0E0, 0.0E0,
737 + 0.0E0, 0.0E0, 0.78E0, 0.26E0, -0.76E0, 1.12E0,
738 + 0.0E0, 0.0E0, 0.0E0/
739 DATA DT9Y/0.5E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
740 + 0.0E0, 0.04E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
741 + 0.0E0, 0.0E0, 0.04E0, -0.78E0, 0.0E0, 0.0E0,
742 + 0.0E0, 0.0E0, 0.0E0, 0.04E0, -0.78E0, 0.54E0,
743 + 0.08E0, 0.0E0, 0.0E0, 0.0E0, 0.5E0, 0.0E0,
744 + 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.04E0,
745 + 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.7E0,
746 + -0.9E0, -0.12E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
747 + 0.64E0, -0.9E0, -0.30E0, 0.7E0, -0.18E0, 0.2E0,
748 + 0.28E0, 0.5E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
749 + 0.0E0, 0.0E0, 0.04E0, 0.0E0, 0.0E0, 0.0E0,
750 + 0.0E0, 0.0E0, 0.0E0, 0.7E0, -1.08E0, 0.0E0,
751 + 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.64E0, -1.26E0,
752 + 0.54E0, 0.20E0, 0.0E0, 0.0E0, 0.0E0, 0.5E0,
753 + 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
754 + 0.04E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
755 + 0.0E0, 0.04E0, -0.9E0, 0.18E0, 0.0E0, 0.0E0,
756 + 0.0E0, 0.0E0, 0.04E0, -0.9E0, 0.18E0, 0.7E0,
757 + -0.18E0, 0.2E0, 0.16E0/
758 DATA SSIZE2/0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
759 + 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0, 0.0E0,
760 + 0.0E0, 1.17E0, 1.17E0, 1.17E0, 1.17E0, 1.17E0,
761 + 1.17E0, 1.17E0, 1.17E0, 1.17E0, 1.17E0, 1.17E0,
762 + 1.17E0, 1.17E0, 1.17E0/
763 * .. Executable Statements ..
782 STX(I) = DT9X(I,KN,KI)
783 STY(I) = DT9Y(I,KN,KI)
785 CALL SROT(N,SX,INCX,SY,INCY,SC,SS)
786 CALL STEST(LENX,SX,STX,SSIZE2(1,KSIZE),SFAC)
787 CALL STEST(LENY,SY,STY,SSIZE2(1,KSIZE),SFAC)
789 WRITE (NOUT,*) ' Shouldn''t be here in CHECK3'
881 MWPSTX(K) = MWPTX(I,K)
882 MWPSTY(K) = MWPTY(I,K)
884 CALL SROT(MWPN(I),COPYX,INCX,COPYY,INCY,MWPC(I),MWPS(I))
885 CALL STEST(5,COPYX,MWPSTX,MWPSTX,SFAC)
886 CALL STEST(5,COPYY,MWPSTY,MWPSTY,SFAC)
890 SUBROUTINE STEST(LEN,SCOMP,STRUE,SSIZE,SFAC)
891 * ********************************* STEST **************************
893 * THIS SUBR COMPARES ARRAYS SCOMP() AND STRUE() OF LENGTH LEN TO
894 * SEE IF THE TERM BY TERM DIFFERENCES, MULTIPLIED BY SFAC, ARE
897 * C. L. LAWSON, JPL, 1974 DEC 10
902 PARAMETER (NOUT=6, ZERO=0.0E0)
903 * .. Scalar Arguments ..
906 * .. Array Arguments ..
907 REAL SCOMP(LEN), SSIZE(LEN), STRUE(LEN)
908 * .. Scalars in Common ..
909 INTEGER ICASE, INCX, INCY, N
911 * .. Local Scalars ..
914 * .. External Functions ..
917 * .. Intrinsic Functions ..
919 * .. Common blocks ..
920 COMMON /COMBLA/ICASE, N, INCX, INCY, PASS
921 * .. Executable Statements ..
924 SD = SCOMP(I) - STRUE(I)
925 IF (ABS(SFAC*SD) .LE. ABS(SSIZE(I))*EPSILON(ZERO))
928 * HERE SCOMP(I) IS NOT CLOSE TO STRUE(I).
930 IF ( .NOT. PASS) GO TO 20
931 * PRINT FAIL MESSAGE AND HEADER.
935 20 WRITE (NOUT,99997) ICASE, N, INCX, INCY, I, SCOMP(I),
936 + STRUE(I), SD, SSIZE(I)
940 99999 FORMAT (' FAIL')
941 99998 FORMAT (/' CASE N INCX INCY I ',
942 + ' COMP(I) TRUE(I) DIFFERENCE',
944 99997 FORMAT (1X,I4,I3,2I5,I3,2E36.8,2E12.4)
946 SUBROUTINE STEST1(SCOMP1,STRUE1,SSIZE,SFAC)
947 * ************************* STEST1 *****************************
949 * THIS IS AN INTERFACE SUBROUTINE TO ACCOMMODATE THE FORTRAN
950 * REQUIREMENT THAT WHEN A DUMMY ARGUMENT IS AN ARRAY, THE
951 * ACTUAL ARGUMENT MUST ALSO BE AN ARRAY OR AN ARRAY ELEMENT.
953 * C.L. LAWSON, JPL, 1978 DEC 6
955 * .. Scalar Arguments ..
956 REAL SCOMP1, SFAC, STRUE1
957 * .. Array Arguments ..
960 REAL SCOMP(1), STRUE(1)
961 * .. External Subroutines ..
963 * .. Executable Statements ..
967 CALL STEST(1,SCOMP,STRUE,SSIZE,SFAC)
971 REAL FUNCTION SDIFF(SA,SB)
972 * ********************************* SDIFF **************************
973 * COMPUTES DIFFERENCE OF TWO NUMBERS. C. L. LAWSON, JPL 1974 FEB 15
975 * .. Scalar Arguments ..
977 * .. Executable Statements ..
981 SUBROUTINE ITEST1(ICOMP,ITRUE)
982 * ********************************* ITEST1 *************************
984 * THIS SUBROUTINE COMPARES THE VARIABLES ICOMP AND ITRUE FOR
986 * C. L. LAWSON, JPL, 1974 DEC 10
991 * .. Scalar Arguments ..
993 * .. Scalars in Common ..
994 INTEGER ICASE, INCX, INCY, N
996 * .. Local Scalars ..
998 * .. Common blocks ..
999 COMMON /COMBLA/ICASE, N, INCX, INCY, PASS
1000 * .. Executable Statements ..
1002 IF (ICOMP.EQ.ITRUE) GO TO 40
1004 * HERE ICOMP IS NOT EQUAL TO ITRUE.
1006 IF ( .NOT. PASS) GO TO 20
1007 * PRINT FAIL MESSAGE AND HEADER.
1011 20 ID = ICOMP - ITRUE
1012 WRITE (NOUT,99997) ICASE, N, INCX, INCY, ICOMP, ITRUE, ID
1016 99999 FORMAT (' FAIL')
1017 99998 FORMAT (/' CASE N INCX INCY ',
1018 + ' COMP TRUE DIFFERENCE',
1020 99997 FORMAT (1X,I4,I3,2I5,2I36,I12)