1 MODULE LA_PRECISION 2! 3! -- LAPACK95 interface driver routine (version 3.0) -- 4! UNI-C, Denmark; Univ. of Tennessee, USA; NAG Ltd., UK 5! September, 2000 6! 7! DEFINES SINGLE AND DOUBLE PRECISION PARAMETERS, SP AND DP. 8! THESE VALUES ARE COMPILER DEPENDENT. 9! 10 INTEGER, PARAMETER :: SP=KIND(1.0), DP=KIND(1.0D0) 11! 12 END MODULE LA_PRECISION 13 14 MODULE LA_AUXMOD 15! 16! -- LAPACK95 interface driver routine (version 3.0) -- 17! UNI-C, Denmark; Univ. of Tennessee, USA; NAG Ltd., UK 18! September, 2000 19! 20 INTERFACE 21 SUBROUTINE ERINFO(LINFO, SRNAME, INFO, ISTAT) 22 CHARACTER( LEN = * ), INTENT(IN) :: SRNAME 23 INTEGER , INTENT(IN) :: LINFO 24 INTEGER , INTENT(OUT), OPTIONAL :: INFO 25 INTEGER , INTENT(IN), OPTIONAL :: ISTAT 26 END SUBROUTINE ERINFO 27 INTEGER FUNCTION LA_WS_GELS( VER, M, N, NRHS, TRANS ) 28 CHARACTER( LEN=1 ), INTENT(IN) :: TRANS, VER 29 INTEGER, INTENT(IN) :: M, N, NRHS 30 END FUNCTION LA_WS_GELS 31 INTEGER FUNCTION LA_WS_GELSS( VER, M, N, NRHS ) 32 CHARACTER(LEN=1), INTENT(IN) :: VER 33 INTEGER, INTENT(IN) :: M, N, NRHS 34 END FUNCTION LA_WS_GELSS 35 END INTERFACE 36! 37 CONTAINS 38! 39 LOGICAL FUNCTION LSAME( CA, CB ) 40! 41! PURPOSE 42! ======= 43! 44! LSAME TESTS IF CA IS THE SAME LETTER AS CB REGARDLESS OF CASE. 45! 46! PARAMETERS 47! ========== 48! 49! CA (INPUT) CHARACTER*1 50! CB (INPUT) CHARACTER*1 51! CHARACTERS TO BE COMPARED. 52! 53! .. SCALAR ARGUMENTS .. 54 CHARACTER*1, INTENT(IN) :: CA, CB 55! .. PARAMETERS .. 56 INTEGER, PARAMETER :: IOFF=32 57! .. LOCAL SCALARS .. 58 INTEGER :: INTA, INTB, ZCODE 59! .. INTRINSIC FUNCTIONS .. 60 INTRINSIC ICHAR 61! 62! .. EXECUTABLE STATEMENTS .. 63! 64! TEST IF THE CHARACTERS ARE EQUAL 65! 66 LSAME = CA == CB 67! 68! NOW TEST FOR EQUIVALENCE 69! 70 IF( .NOT.LSAME )THEN 71! 72! USE 'Z' RATHER THAN 'A' SO THAT ASCII CAN BE DETECTED ON PRIME 73! MACHINES, ON WHICH ICHAR RETURNS A VALUE WITH BIT 8 SET. 74! ICHAR('A') ON PRIME MACHINES RETURNS 193 WHICH IS THE SAME AS 75! ICHAR('A') ON AN EBCDIC MACHINE. 76! 77 ZCODE = ICHAR( 'Z' ) 78! 79 INTA = ICHAR( CA ) 80 INTB = ICHAR( CB ) 81! 82 IF( ZCODE.EQ.90 .OR. ZCODE.EQ.122 )THEN 83! 84! ASCII IS ASSUMED - ZCODE IS THE ASCII CODE OF EITHER LOWER OR 85! UPPER CASE 'Z'. 86! 87 IF( INTA.GE.97 .AND. INTA.LE.122 ) INTA = INTA - 32 88 IF( INTB.GE.97 .AND. INTB.LE.122 ) INTB = INTB - 32 89! 90 ELSE IF( ZCODE.EQ.233 .OR. ZCODE.EQ.169 )THEN 91! 92! EBCDIC IS ASSUMED - ZCODE IS THE EBCDIC CODE OF EITHER LOWER OR 93! UPPER CASE 'Z'. 94! 95 IF( INTA.GE.129 .AND. INTA.LE.137 .OR. & 96! & INTA.GE.145 .AND. INTA.LE.153 .OR. & 97 & INTA.GE.162 .AND. INTA.LE.169 ) INTA = INTA + 64 98 IF( INTB.GE.129 .AND. INTB.LE.137 .OR. & 99 & INTB.GE.145 .AND. INTB.LE.153 .OR. & 100 & INTB.GE.162 .AND. INTB.LE.169 ) INTB = INTB + 64 101! 102 ELSE IF( ZCODE.EQ.218 .OR. ZCODE.EQ.250 )THEN 103! 104! ASCII IS ASSUMED, ON PRIME MACHINES - ZCODE IS THE ASCII CODE 105! PLUS 128 OF EITHER LOWER OR UPPER CASE 'Z'. 106! 107 IF( INTA.GE.225 .AND. INTA.LE.250 ) INTA = INTA - 32 108 IF( INTB.GE.225 .AND. INTB.LE.250 ) INTB = INTB - 32 109 ENDIF 110 LSAME = INTA == INTB 111 ENDIF 112 END FUNCTION LSAME 113 114 END MODULE LA_AUXMOD 115