CALL CHECK1() STOP END SUBROUTINE CHECK1() DOUBLE PRECISION SA COMPLEX*16 CA DOUBLE PRECISION STRUE4(5) COMPLEX*16 CV(8,5,2), CX(8) DOUBLE PRECISION DZASUM DATA SA, CA/0.3D0, (0.4D0,-0.7D0)/ DATA (CV(I,2,1),I=1,2)/(0.3D0,-0.4D0), (3.0D0,4.0D0)/ DATA STRUE4/0.0D0, 0.7D0, 1.0D0, 1.3D0, 1.7D0/ DO 20 I = 1, 2 CX(I) = CV(I,2,1) 20 CONTINUE CALL STEST1(DZASUM(1,CX,1),STRUE4(2),STRUE4(2)) RETURN END SUBROUTINE STEST(LEN,SCOMP,STRUE,SSIZE) DOUBLE PRECISION SCOMP(LEN), SSIZE(LEN), STRUE(LEN) DOUBLE PRECISION SD DOUBLE PRECISION SDIFF INTRINSIC ABS SD = SCOMP(1) - STRUE(1) IF (SDIFF(ABS(SSIZE(1))+ABS(.3125D-1*SD),ABS(SSIZE(1))).EQ.0.0) * GO TO 40 WRITE (6,FMT=99999) 20 WRITE (6,FMT=99997) SCOMP(1), STRUE(1), SD, SSIZE(1) 40 CONTINUE RETURN 99999 FORMAT (' FAIL') 99997 FORMAT (1X,2D36.8,2D12.4) END SUBROUTINE STEST1(SCOMP1,STRUE1,SSIZE) DOUBLE PRECISION SCOMP1, STRUE1 C .. Array Arguments .. DOUBLE PRECISION SSIZE(*) DOUBLE PRECISION SCOMP(1), STRUE(1) SCOMP(1) = SCOMP1 STRUE(1) = STRUE1 CALL STEST(1,SCOMP,STRUE,SSIZE) C RETURN END DOUBLE PRECISION FUNCTION SDIFF(SA,SB) DOUBLE PRECISION SA, SB SDIFF = SA - SB RETURN END DOUBLE PRECISION FUNCTION F06JKF( N, X, INCX ) DOUBLE PRECISION DZASUM ENTRY DZASUM( N, X, INCX ) INTEGER INCX, N COMPLEX*16 X( * ) DOUBLE PRECISION ZERO PARAMETER ( ZERO = 0.0D+0 ) C .. Local Scalars .. DOUBLE PRECISION SUM INTEGER IX C .. Intrinsic Functions .. INTRINSIC ABS, DIMAG, DBLE C .. C .. Executable Statements .. SUM = ZERO IF( N.GT.0 )THEN DO 10, IX = 1, 1 + ( N - 1 )*INCX, INCX SUM = SUM + ABS( DBLE ( X( IX ) ) ) $ + ABS( DIMAG( X( IX ) ) ) 10 CONTINUE END IF C F06JKF = SUM RETURN C C End of F06JKF. ( DZASUM ) C END C** END OF F06JKFTEXT