📄 c_zblat1.f
字号:
PROGRAM ZCBLAT1* Test program for the COMPLEX*16 Level 1 CBLAS.* Based upon the original CBLAS test routine together with:* F06GAF Example Program Text* .. Parameters .. INTEGER NOUT PARAMETER (NOUT=6)* .. Scalars in Common .. INTEGER ICASE, INCX, INCY, MODE, N LOGICAL PASS* .. Local Scalars .. DOUBLE PRECISION SFAC INTEGER IC* .. External Subroutines .. EXTERNAL CHECK1, CHECK2, HEADER* .. Common blocks .. COMMON /COMBLA/ICASE, N, INCX, INCY, MODE, PASS* .. Data statements .. DATA SFAC/9.765625D-4/* .. Executable Statements .. WRITE (NOUT,99999) DO 20 IC = 1, 10 ICASE = IC CALL HEADER** Initialize PASS, INCX, INCY, and MODE for a new case.* The value 9999 for INCX, INCY or MODE will appear in the* detailed output, if any, for cases that do not involve* these parameters.* PASS = .TRUE. INCX = 9999 INCY = 9999 MODE = 9999 IF (ICASE.LE.5) THEN CALL CHECK2(SFAC) ELSE IF (ICASE.GE.6) THEN CALL CHECK1(SFAC) END IF* -- Print IF (PASS) WRITE (NOUT,99998) 20 CONTINUE STOP*99999 FORMAT (' Complex CBLAS Test Program Results',/1X)99998 FORMAT (' ----- PASS -----') END SUBROUTINE HEADER* .. Parameters .. INTEGER NOUT PARAMETER (NOUT=6)* .. Scalars in Common .. INTEGER ICASE, INCX, INCY, MODE, N LOGICAL PASS* .. Local Arrays .. CHARACTER*15 L(10)* .. Common blocks .. COMMON /COMBLA/ICASE, N, INCX, INCY, MODE, PASS* .. Data statements .. DATA L(1)/'CBLAS_ZDOTC'/ DATA L(2)/'CBLAS_ZDOTU'/ DATA L(3)/'CBLAS_ZAXPY'/ DATA L(4)/'CBLAS_ZCOPY'/ DATA L(5)/'CBLAS_ZSWAP'/ DATA L(6)/'CBLAS_DZNRM2'/ DATA L(7)/'CBLAS_DZASUM'/ DATA L(8)/'CBLAS_ZSCAL'/ DATA L(9)/'CBLAS_ZDSCAL'/ DATA L(10)/'CBLAS_IZAMAX'/* .. Executable Statements .. WRITE (NOUT,99999) ICASE, L(ICASE) RETURN*99999 FORMAT (/' Test of subprogram number',I3,9X,A15) END SUBROUTINE CHECK1(SFAC)* .. Parameters .. INTEGER NOUT PARAMETER (NOUT=6)* .. Scalar Arguments .. DOUBLE PRECISION SFAC* .. Scalars in Common .. INTEGER ICASE, INCX, INCY, MODE, N LOGICAL PASS* .. Local Scalars .. COMPLEX*16 CA DOUBLE PRECISION SA INTEGER I, J, LEN, NP1* .. Local Arrays .. COMPLEX*16 CTRUE5(8,5,2), CTRUE6(8,5,2), CV(8,5,2), CX(8), + MWPCS(5), MWPCT(5) DOUBLE PRECISION STRUE2(5), STRUE4(5) INTEGER ITRUE3(5)* .. External Functions .. DOUBLE PRECISION DZASUMTEST, DZNRM2TEST INTEGER IZAMAXTEST EXTERNAL DZASUMTEST, DZNRM2TEST, IZAMAXTEST* .. External Subroutines .. EXTERNAL ZSCALTEST, ZDSCALTEST, CTEST, ITEST1, STEST1* .. Intrinsic Functions .. INTRINSIC MAX* .. Common blocks .. COMMON /COMBLA/ICASE, N, INCX, INCY, MODE, PASS* .. Data statements .. DATA SA, CA/0.3D0, (0.4D0,-0.7D0)/ DATA ((CV(I,J,1),I=1,8),J=1,5)/(0.1D0,0.1D0), + (1.0D0,2.0D0), (1.0D0,2.0D0), (1.0D0,2.0D0), + (1.0D0,2.0D0), (1.0D0,2.0D0), (1.0D0,2.0D0), + (1.0D0,2.0D0), (0.3D0,-0.4D0), (3.0D0,4.0D0), + (3.0D0,4.0D0), (3.0D0,4.0D0), (3.0D0,4.0D0), + (3.0D0,4.0D0), (3.0D0,4.0D0), (3.0D0,4.0D0), + (0.1D0,-0.3D0), (0.5D0,-0.1D0), (5.0D0,6.0D0), + (5.0D0,6.0D0), (5.0D0,6.0D0), (5.0D0,6.0D0), + (5.0D0,6.0D0), (5.0D0,6.0D0), (0.1D0,0.1D0), + (-0.6D0,0.1D0), (0.1D0,-0.3D0), (7.0D0,8.0D0), + (7.0D0,8.0D0), (7.0D0,8.0D0), (7.0D0,8.0D0), + (7.0D0,8.0D0), (0.3D0,0.1D0), (0.1D0,0.4D0), + (0.4D0,0.1D0), (0.1D0,0.2D0), (2.0D0,3.0D0), + (2.0D0,3.0D0), (2.0D0,3.0D0), (2.0D0,3.0D0)/ DATA ((CV(I,J,2),I=1,8),J=1,5)/(0.1D0,0.1D0), + (4.0D0,5.0D0), (4.0D0,5.0D0), (4.0D0,5.0D0), + (4.0D0,5.0D0), (4.0D0,5.0D0), (4.0D0,5.0D0), + (4.0D0,5.0D0), (0.3D0,-0.4D0), (6.0D0,7.0D0), + (6.0D0,7.0D0), (6.0D0,7.0D0), (6.0D0,7.0D0), + (6.0D0,7.0D0), (6.0D0,7.0D0), (6.0D0,7.0D0), + (0.1D0,-0.3D0), (8.0D0,9.0D0), (0.5D0,-0.1D0), + (2.0D0,5.0D0), (2.0D0,5.0D0), (2.0D0,5.0D0), + (2.0D0,5.0D0), (2.0D0,5.0D0), (0.1D0,0.1D0), + (3.0D0,6.0D0), (-0.6D0,0.1D0), (4.0D0,7.0D0), + (0.1D0,-0.3D0), (7.0D0,2.0D0), (7.0D0,2.0D0), + (7.0D0,2.0D0), (0.3D0,0.1D0), (5.0D0,8.0D0), + (0.1D0,0.4D0), (6.0D0,9.0D0), (0.4D0,0.1D0), + (8.0D0,3.0D0), (0.1D0,0.2D0), (9.0D0,4.0D0)/ DATA STRUE2/0.0D0, 0.5D0, 0.6D0, 0.7D0, 0.7D0/ DATA STRUE4/0.0D0, 0.7D0, 1.0D0, 1.3D0, 1.7D0/ DATA ((CTRUE5(I,J,1),I=1,8),J=1,5)/(0.1D0,0.1D0), + (1.0D0,2.0D0), (1.0D0,2.0D0), (1.0D0,2.0D0), + (1.0D0,2.0D0), (1.0D0,2.0D0), (1.0D0,2.0D0), + (1.0D0,2.0D0), (-0.16D0,-0.37D0), (3.0D0,4.0D0), + (3.0D0,4.0D0), (3.0D0,4.0D0), (3.0D0,4.0D0), + (3.0D0,4.0D0), (3.0D0,4.0D0), (3.0D0,4.0D0), + (-0.17D0,-0.19D0), (0.13D0,-0.39D0), + (5.0D0,6.0D0), (5.0D0,6.0D0), (5.0D0,6.0D0), + (5.0D0,6.0D0), (5.0D0,6.0D0), (5.0D0,6.0D0), + (0.11D0,-0.03D0), (-0.17D0,0.46D0), + (-0.17D0,-0.19D0), (7.0D0,8.0D0), (7.0D0,8.0D0), + (7.0D0,8.0D0), (7.0D0,8.0D0), (7.0D0,8.0D0), + (0.19D0,-0.17D0), (0.32D0,0.09D0), + (0.23D0,-0.24D0), (0.18D0,0.01D0), + (2.0D0,3.0D0), (2.0D0,3.0D0), (2.0D0,3.0D0), + (2.0D0,3.0D0)/ DATA ((CTRUE5(I,J,2),I=1,8),J=1,5)/(0.1D0,0.1D0), + (4.0D0,5.0D0), (4.0D0,5.0D0), (4.0D0,5.0D0), + (4.0D0,5.0D0), (4.0D0,5.0D0), (4.0D0,5.0D0), + (4.0D0,5.0D0), (-0.16D0,-0.37D0), (6.0D0,7.0D0), + (6.0D0,7.0D0), (6.0D0,7.0D0), (6.0D0,7.0D0), + (6.0D0,7.0D0), (6.0D0,7.0D0), (6.0D0,7.0D0), + (-0.17D0,-0.19D0), (8.0D0,9.0D0), + (0.13D0,-0.39D0), (2.0D0,5.0D0), (2.0D0,5.0D0), + (2.0D0,5.0D0), (2.0D0,5.0D0), (2.0D0,5.0D0), + (0.11D0,-0.03D0), (3.0D0,6.0D0), + (-0.17D0,0.46D0), (4.0D0,7.0D0), + (-0.17D0,-0.19D0), (7.0D0,2.0D0), (7.0D0,2.0D0), + (7.0D0,2.0D0), (0.19D0,-0.17D0), (5.0D0,8.0D0), + (0.32D0,0.09D0), (6.0D0,9.0D0), + (0.23D0,-0.24D0), (8.0D0,3.0D0), + (0.18D0,0.01D0), (9.0D0,4.0D0)/ DATA ((CTRUE6(I,J,1),I=1,8),J=1,5)/(0.1D0,0.1D0), + (1.0D0,2.0D0), (1.0D0,2.0D0), (1.0D0,2.0D0), + (1.0D0,2.0D0), (1.0D0,2.0D0), (1.0D0,2.0D0), + (1.0D0,2.0D0), (0.09D0,-0.12D0), (3.0D0,4.0D0), + (3.0D0,4.0D0), (3.0D0,4.0D0), (3.0D0,4.0D0), + (3.0D0,4.0D0), (3.0D0,4.0D0), (3.0D0,4.0D0), + (0.03D0,-0.09D0), (0.15D0,-0.03D0), + (5.0D0,6.0D0), (5.0D0,6.0D0), (5.0D0,6.0D0), + (5.0D0,6.0D0), (5.0D0,6.0D0), (5.0D0,6.0D0), + (0.03D0,0.03D0), (-0.18D0,0.03D0), + (0.03D0,-0.09D0), (7.0D0,8.0D0), (7.0D0,8.0D0), + (7.0D0,8.0D0), (7.0D0,8.0D0), (7.0D0,8.0D0), + (0.09D0,0.03D0), (0.03D0,0.12D0), + (0.12D0,0.03D0), (0.03D0,0.06D0), (2.0D0,3.0D0), + (2.0D0,3.0D0), (2.0D0,3.0D0), (2.0D0,3.0D0)/ DATA ((CTRUE6(I,J,2),I=1,8),J=1,5)/(0.1D0,0.1D0), + (4.0D0,5.0D0), (4.0D0,5.0D0), (4.0D0,5.0D0), + (4.0D0,5.0D0), (4.0D0,5.0D0), (4.0D0,5.0D0), + (4.0D0,5.0D0), (0.09D0,-0.12D0), (6.0D0,7.0D0), + (6.0D0,7.0D0), (6.0D0,7.0D0), (6.0D0,7.0D0), + (6.0D0,7.0D0), (6.0D0,7.0D0), (6.0D0,7.0D0), + (0.03D0,-0.09D0), (8.0D0,9.0D0), + (0.15D0,-0.03D0), (2.0D0,5.0D0), (2.0D0,5.0D0), + (2.0D0,5.0D0), (2.0D0,5.0D0), (2.0D0,5.0D0), + (0.03D0,0.03D0), (3.0D0,6.0D0), + (-0.18D0,0.03D0), (4.0D0,7.0D0), + (0.03D0,-0.09D0), (7.0D0,2.0D0), (7.0D0,2.0D0), + (7.0D0,2.0D0), (0.09D0,0.03D0), (5.0D0,8.0D0), + (0.03D0,0.12D0), (6.0D0,9.0D0), (0.12D0,0.03D0), + (8.0D0,3.0D0), (0.03D0,0.06D0), (9.0D0,4.0D0)/ DATA ITRUE3/0, 1, 2, 2, 2/* .. Executable Statements .. DO 60 INCX = 1, 2 DO 40 NP1 = 1, 5 N = NP1 - 1 LEN = 2*MAX(N,1)* .. Set vector arguments .. DO 20 I = 1, LEN CX(I) = CV(I,NP1,INCX) 20 CONTINUE IF (ICASE.EQ.6) THEN* .. DZNRM2TEST .. CALL STEST1(DZNRM2TEST(N,CX,INCX),STRUE2(NP1), + STRUE2(NP1),SFAC) ELSE IF (ICASE.EQ.7) THEN* .. DZASUMTEST .. CALL STEST1(DZASUMTEST(N,CX,INCX),STRUE4(NP1), + STRUE4(NP1),SFAC) ELSE IF (ICASE.EQ.8) THEN* .. ZSCALTEST .. CALL ZSCALTEST(N,CA,CX,INCX) CALL CTEST(LEN,CX,CTRUE5(1,NP1,INCX),CTRUE5(1,NP1,INCX), + SFAC) ELSE IF (ICASE.EQ.9) THEN* .. ZDSCALTEST .. CALL ZDSCALTEST(N,SA,CX,INCX) CALL CTEST(LEN,CX,CTRUE6(1,NP1,INCX),CTRUE6(1,NP1,INCX), + SFAC) ELSE IF (ICASE.EQ.10) THEN* .. IZAMAXTEST .. CALL ITEST1(IZAMAXTEST(N,CX,INCX),ITRUE3(NP1))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -