SUBROUTINE ERINFO(LINFO, SRNAME, INFO, ISTAT) ! ! -- LAPACK95 interface driver routine (version 3.0) -- ! UNI-C, Denmark; Univ. of Tennessee, USA; NAG Ltd., UK ! September, 2000 ! ! .. IMPLICIT STATEMENT .. IMPLICIT NONE ! .. SCALAR ARGUMENTS .. CHARACTER( LEN = * ), INTENT(IN) :: SRNAME INTEGER , INTENT(IN) :: LINFO INTEGER , INTENT(OUT), OPTIONAL :: INFO INTEGER , INTENT(IN), OPTIONAL :: ISTAT ! .. EXECUTABLE STATEMENTS .. ! IF( ( LINFO < 0 .AND. LINFO > -200 ) .OR. & ! & ( LINFO > 0 .AND. .NOT.PRESENT(INFO) ) )THEN IF( ( ( LINFO < 0 .AND. LINFO > -200 ) .OR. LINFO > 0 ) & & .AND. .NOT.PRESENT(INFO) )THEN WRITE (*,*) 'Program terminated in LAPACK95 subroutine ',SRNAME WRITE (*,*) 'Error indicator, INFO = ',LINFO IF( PRESENT(ISTAT) )THEN IF( ISTAT /= 0 ) THEN IF( LINFO == -100 )THEN WRITE (*,*) 'The statement ALLOCATE causes STATUS = ', & & ISTAT ELSE WRITE (*,*) 'LINFO = ', LINFO, ' not expected' END IF END IF END IF STOP ELSE IF( LINFO <= -200 ) THEN WRITE(*,*) '++++++++++++++++++++++++++++++++++++++++++++++++' WRITE(*,*) '*** WARNING, INFO = ', LINFO, ' WARNING ***' IF( LINFO == -200 )THEN WRITE(*,*) & & 'Could not allocate sufficient workspace for the optimum' WRITE(*,*) & & 'blocksize, hence the routine may not have performed as' WRITE(*,*) 'efficiently as possible' ELSE WRITE(*,*) 'Unexpected warning' END IF WRITE(*,*) '++++++++++++++++++++++++++++++++++++++++++++++++' END IF IF( PRESENT(INFO) ) THEN INFO = LINFO END IF END SUBROUTINE ERINFO