* * $Id: c205ch.F,v 1.2 1996/03/21 17:16:12 mclareni Exp $ * * $Log: c205ch.F,v $ * Revision 1.2 1996/03/21 17:16:12 mclareni * Kernnumt corrections for unaligned access on OSF1 by John Marafino, Fermilab * * Revision 1.1.1.1 1996/02/15 17:48:46 mclareni * Kernlib * * #include "kernnumt/pilot.h" SUBROUTINE C205CH(NREP,OK) #include "kernnumt/sysdat.inc" EXTERNAL C205R1,C205R2,C205R3,C205R4 *JMM * REAL RX,RR,REPS,C205R1,C205R2,C205R3,C205R4 REAL RX,RR,REPS,C205R1,C205R2,C205R3,C205R4,RTHIRD #if defined(CERNLIB_NUMLOPRE) EXTERNAL C205D1,C205D2,C205D3,C205D4 *JMM * DOUBLE PRECISION DX,DR,DEPS,C205D1,C205D2,C205D3,C205D4 DOUBLE PRECISION DX,DR,DEPS,C205D1,C205D2,C205D3,C205D4,DTHIRD #endif LOGICAL OK,OKT OK=.TRUE. *JMM RTHIRD = 1.0/3.0 REPS=RELPRT(1)*1000 CALL RZERO(-1E0,4E0,RX,RR,REPS,100,C205R1) *JMM * OKT=ABS(RX-1E0/3) .LE. REPS OKT=ABS(RX-RTHIRD) .LE. REPS IF(.NOT.OKT) WRITE(*,100) 'RX =',RX OK=OK .AND. OKT CALL RZERO(-0.5E0,0.7E0,RX,RR,REPS,100,C205R2) OKT=ABS(RX) .LE. 2*REPS IF(.NOT.OKT) WRITE(*,100) 'RX =',RX OK=OK .AND. OKT IF( ERPRNT .AND. ERSTOP) WRITE(*,101) IF( ERPRNT .AND. .NOT.ERSTOP) WRITE(*,102) IF(.NOT.ERPRNT .AND. ERSTOP) WRITE(*,103) CALL RZERO(1E0,2E0,RX,RR,REPS,30,C205R3) IF(RR .GE. 0) THEN OK=.FALSE. WRITE(*,104) 'RZERO','RR =',RR,'C205.1' END IF CALL RZERO(-10E0,1.9E0,RX,RR,REPS,5,C205R4) IF(RR .GE. 0) THEN OK=.FALSE. WRITE(*,104) 'RZERO','RR =',RR,'C205.2' END IF #if defined(CERNLIB_NUMLOPRE) *JMM DTHIRD = 1.0D0/3.0D0 DEPS=RELPRT(2)*1000 CALL DZERO(-1D0,4D0,DX,DR,DEPS,100,C205D1) *JMM * OKT=ABS(DX-1D0/3) .LE. DEPS OKT=ABS(DX-DTHIRD) .LE. DEPS IF(.NOT.OKT) WRITE(*,100) 'DX =',DX OK=OK .AND. OKT CALL DZERO(-0.5D0,0.7D0,DX,DR,DEPS,100,C205D2) OKT=ABS(DX) .LE. 2*DEPS IF(.NOT.OKT) WRITE(*,100) 'DX =',DX OK=OK .AND. OKT IF( ERPRNT .AND. ERSTOP) WRITE(*,101) IF( ERPRNT .AND. .NOT.ERSTOP) WRITE(*,102) IF(.NOT.ERPRNT .AND. ERSTOP) WRITE(*,103) CALL DZERO(1D0,2D0,DX,DR,DEPS,30,C205D3) IF(DR .GE. 0) THEN OK=.FALSE. WRITE(*,104) 'DZERO','DR =',DR,'C205.1' END IF CALL DZERO(-10D0,1.9D0,DX,DR,DEPS,5,C205D4) IF(DR .GE. 0) THEN OK=.FALSE. WRITE(*,104) 'DZERO','DR =',DR,'C205.2' END IF #endif RETURN 100 FORMAT(1X,'C205CH ARITHMETIC ERROR ',A4,E25.12) 101 FORMAT(/' TWO ERROR AND ABEND MESSAGES SHOULD NOW FOLLOW ...') 102 FORMAT(/' TWO ERROR MESSAGES SHOULD NOW FOLLOW ...') 103 FORMAT(/' TWO ABEND MESSAGES SHOULD NOW FOLLOW ...') 104 FORMAT(/' ????? TEST OF ',A5,' ... ',A4,E20.10, 1 ' ERROR CONDITION ',A6,' NOT DEDECTED.') END