249
250 INTEGER NOUT
251 parameter(nout=6)
252
253 REAL SFAC
254
255 INTEGER ICASE, INCX, INCY, N
256 LOGICAL PASS
257
258 INTEGER I, IX, LEN, NP1
259
260 REAL DTRUE1(5), DTRUE3(5), DTRUE5(8,5,2), DV(8,5,2),
261 + DVR(8), SA(10), STEMP(1), STRUE(8), SX(8),
262 + SXR(15)
263 INTEGER ITRUE2(5), ITRUEC(5)
264
265 REAL SASUM, SNRM2
266 INTEGER ISAMAX
268
270
271 INTRINSIC max
272
273 COMMON /combla/icase, n, incx, incy, pass
274
275 DATA sa/0.3e0, -1.0e0, 0.0e0, 1.0e0, 0.3e0, 0.3e0,
276 + 0.3e0, 0.3e0, 0.3e0, 0.3e0/
277 DATA dv/0.1e0, 2.0e0, 2.0e0, 2.0e0, 2.0e0, 2.0e0,
278 + 2.0e0, 2.0e0, 0.3e0, 3.0e0, 3.0e0, 3.0e0, 3.0e0,
279 + 3.0e0, 3.0e0, 3.0e0, 0.3e0, -0.4e0, 4.0e0,
280 + 4.0e0, 4.0e0, 4.0e0, 4.0e0, 4.0e0, 0.2e0,
281 + -0.6e0, 0.3e0, 5.0e0, 5.0e0, 5.0e0, 5.0e0,
282 + 5.0e0, 0.1e0, -0.3e0, 0.5e0, -0.1e0, 6.0e0,
283 + 6.0e0, 6.0e0, 6.0e0, 0.1e0, 8.0e0, 8.0e0, 8.0e0,
284 + 8.0e0, 8.0e0, 8.0e0, 8.0e0, 0.3e0, 9.0e0, 9.0e0,
285 + 9.0e0, 9.0e0, 9.0e0, 9.0e0, 9.0e0, 0.3e0, 2.0e0,
286 + -0.4e0, 2.0e0, 2.0e0, 2.0e0, 2.0e0, 2.0e0,
287 + 0.2e0, 3.0e0, -0.6e0, 5.0e0, 0.3e0, 2.0e0,
288 + 2.0e0, 2.0e0, 0.1e0, 4.0e0, -0.3e0, 6.0e0,
289 + -0.5e0, 7.0e0, -0.1e0, 3.0e0/
290 DATA dvr/8.0e0, -7.0e0, 9.0e0, 5.0e0, 9.0e0, 8.0e0,
291 + 7.0e0, 7.0e0/
292 DATA dtrue1/0.0e0, 0.3e0, 0.5e0, 0.7e0, 0.6e0/
293 DATA dtrue3/0.0e0, 0.3e0, 0.7e0, 1.1e0, 1.0e0/
294 DATA dtrue5/0.10e0, 2.0e0, 2.0e0, 2.0e0, 2.0e0,
295 + 2.0e0, 2.0e0, 2.0e0, -0.3e0, 3.0e0, 3.0e0,
296 + 3.0e0, 3.0e0, 3.0e0, 3.0e0, 3.0e0, 0.0e0, 0.0e0,
297 + 4.0e0, 4.0e0, 4.0e0, 4.0e0, 4.0e0, 4.0e0,
298 + 0.20e0, -0.60e0, 0.30e0, 5.0e0, 5.0e0, 5.0e0,
299 + 5.0e0, 5.0e0, 0.03e0, -0.09e0, 0.15e0, -0.03e0,
300 + 6.0e0, 6.0e0, 6.0e0, 6.0e0, 0.10e0, 8.0e0,
301 + 8.0e0, 8.0e0, 8.0e0, 8.0e0, 8.0e0, 8.0e0,
302 + 0.09e0, 9.0e0, 9.0e0, 9.0e0, 9.0e0, 9.0e0,
303 + 9.0e0, 9.0e0, 0.09e0, 2.0e0, -0.12e0, 2.0e0,
304 + 2.0e0, 2.0e0, 2.0e0, 2.0e0, 0.06e0, 3.0e0,
305 + -0.18e0, 5.0e0, 0.09e0, 2.0e0, 2.0e0, 2.0e0,
306 + 0.03e0, 4.0e0, -0.09e0, 6.0e0, -0.15e0, 7.0e0,
307 + -0.03e0, 3.0e0/
308 DATA itrue2/0, 1, 2, 2, 3/
309 DATA itruec/0, 1, 1, 1, 1/
310
311 DO 80 incx = 1, 2
312 DO 60 np1 = 1, 5
313 n = np1 - 1
314 len = 2*max(n,1)
315
316 DO 20 i = 1, len
317 sx(i) = dv(i,np1,incx)
318 20 CONTINUE
319
320 IF (icase.EQ.7) THEN
321
322 stemp(1) = dtrue1(np1)
324 ELSE IF (icase.EQ.8) THEN
325
326 stemp(1) = dtrue3(np1)
328 ELSE IF (icase.EQ.9) THEN
329
330 CALL sscal(n,sa((incx-1)*5+np1),sx,incx)
331 DO 40 i = 1, len
332 strue(i) = dtrue5(i,np1,incx)
333 40 CONTINUE
334 CALL stest(len,sx,strue,strue,sfac)
335 ELSE IF (icase.EQ.10) THEN
336
338 DO 100 i = 1, len
339 sx(i) = 42.0e0
340 100 CONTINUE
342 ELSE
343 WRITE (nout,*) ' Shouldn''t be here in CHECK1'
344 stop
345 END IF
346 60 CONTINUE
347 IF (icase.EQ.10) THEN
348 n = 8
349 ix = 1
350 DO 120 i = 1, n
351 sxr(ix) = dvr(i)
352 ix = ix + incx
353 120 CONTINUE
355 END IF
356 80 CONTINUE
357 RETURN
358
359
360
subroutine stest(LEN, SCOMP, STRUE, SSIZE, SFAC)
subroutine stest1(SCOMP1, STRUE1, SSIZE, SFAC)
subroutine itest1(ICOMP, ITRUE)
integer function isamax(N, SX, INCX)
ISAMAX
subroutine sscal(N, SA, SX, INCX)
SSCAL
real(wp) function snrm2(n, x, incx)
SNRM2
real function sasum(N, SX, INCX)
SASUM