PJLAENV(l) ) PJLAENV(l)NAMESYNOPSIS
INTEGER FUNCTION PJLAENV( ICTXT, ISPEC, NAME, OPTS, N1, N2, N3, N4 )
CHARACTER*( * ) NAME, OPTS
INTEGER ICTXT, ISPEC, N1, N2, N3, N4
INTEGER BLOCK_CYCLIC_2D, CSRC_, CTXT_, DLEN_, DTYPE_, LLD_,
MB_, M_, NB_, N_, RSRC_
PARAMETER ( BLOCK_CYCLIC_2D = 1, DLEN_ = 9, DTYPE_ = 1, CTXT_ =
2, M_ = 3, N_ = 4, MB_ = 5, NB_ = 6, RSRC_ = 7, CSRC_
= 8, LLD_ = 9 )
LOGICAL CNAME, GLOBAL, SNAME
CHARACTER C1
CHARACTER*2 C2, C4
CHARACTER*3 C3
CHARACTER*8 SUBNAM
INTEGER I, IC, IDUMM, IZ, MSZ, NB
INTRINSIC CHAR, ICHAR
EXTERNAL IGAMX2D
IF( BLOCK_CYCLIC_2D*CSRC_*CTXT_*DLEN_*DTYPE_*LLD_*MB_*M_*NB_*N_*
RSRC_.LT.0 )RETURN
GO TO ( 10, 10, 10, 10, 10 )ISPEC
PJLAENV = -1
RETURN
10 CONTINUE
PJLAENV = 1
SUBNAM = NAME
IC = ICHAR( SUBNAM( 1: 1 ) )
IZ = ICHAR( 'Z' )
IF( IZ.EQ.100 .OR. IZ.EQ.122 ) THEN
IF( IC.GE.97 .AND. IC.LE.122 ) THEN
SUBNAM( 1: 1 ) = CHAR( IC-32 )
DO 20 I = 2, 6
IC = ICHAR( SUBNAM( I: I ) )
IF( IC.GE.97 .AND. IC.LE.122 ) SUBNAM( I: I ) = CHAR(
IC-32 )
20 CONTINUE
END IF
ELSE IF( IZ.EQ.233 .OR. IZ.EQ.169 ) THEN
IF( ( IC.GE.129 .AND. IC.LE.137 ) .OR. ( IC.GE.145 .AND.
IC.LE.153 ) .OR. ( IC.GE.162 .AND. IC.LE.169 ) ) THEN
SUBNAM( 1: 1 ) = CHAR( IC+64 )
DO 30 I = 2, 6
IC = ICHAR( SUBNAM( I: I ) )
IF( ( IC.GE.129 .AND. IC.LE.137 ) .OR. ( IC.GE.145 .AND.
IC.LE.153 ) .OR. ( IC.GE.162 .AND. IC.LE.169 ) )SUB‐
NAM( I: I ) = CHAR( IC+64 )
30 CONTINUE
END IF
ELSE IF( IZ.EQ.218 .OR. IZ.EQ.250 ) THEN
IF( IC.GE.225 .AND. IC.LE.250 ) THEN
SUBNAM( 1: 1 ) = CHAR( IC-32 )
DO 40 I = 2, 6
IC = ICHAR( SUBNAM( I: I ) )
IF( IC.GE.225 .AND. IC.LE.250 ) SUBNAM( I: I ) = CHAR(
IC-32 )
40 CONTINUE
END IF
END IF
C1 = SUBNAM( 2: 2 )
SNAME = C1.EQ.'S' .OR. C1.EQ.'D'
CNAME = C1.EQ.'C' .OR. C1.EQ.'Z'
IF( RETURN
C2 = SUBNAM( 3: 4 )
C3 = SUBNAM( 5: 7 )
C4 = C3( 2: 3 )
IF( ( N2+N3+N4 )*0.NE.0 ) THEN
C4 = OPTS
C3 = C4
END IF
GO TO ( 50, 60, 70, 80, 90 )ISPEC
50 CONTINUE
NB = 1
IF( C2.EQ.'SY' .OR. C2.EQ.'HE' ) THEN
IF( C3.EQ.'LLT' ) THEN
IF( SNAME ) THEN
NB = 64
ELSE
NB = 64
END IF
ELSE IF( C3.EQ.'TTR' ) THEN
IF( SNAME ) THEN
NB = 1
ELSE
NB = 1
END IF
ELSE IF( C3.EQ.'GST' ) THEN
IF( SNAME ) THEN
NB = 32
ELSE
NB = 32
END IF
ELSE IF( C3.EQ.'BCK' ) THEN
IF( SNAME ) THEN
NB = 32
ELSE
NB = 32
END IF
ELSE IF( C3.EQ.'TRS' ) THEN
IF( SNAME ) THEN
NB = 64
ELSE
NB = 64
END IF
END IF
END IF
PJLAENV = NB
GLOBAL = .TRUE.
GO TO 100
60 CONTINUE
NB = 16
IF( C2.EQ.'SY' .OR. C2.EQ.'HE' ) THEN
IF( C3.EQ.'TTR' ) THEN
IF( SNAME ) THEN
NB = 32
ELSE
NB = 32
END IF
END IF
END IF
PJLAENV = NB
GLOBAL = .FALSE.
GO TO 100
70 CONTINUE
NB = 1
IF( C2.EQ.'SY' .OR. C2.EQ.'HE' ) THEN
IF( C3.EQ.'TTR' ) THEN
IF( SNAME ) THEN
NB = 16
ELSE
NB = 16
END IF
END IF
END IF
PJLAENV = NB
GLOBAL = .TRUE.
GO TO 100
80 CONTINUE
PJLAENV = -4
IF( C2.EQ.'SY' .OR. C2.EQ.'HE' ) THEN
IF( C3.EQ.'TTR' ) THEN
IF( N1.EQ.1 ) THEN
PJLAENV = 1
END IF
IF( N1.EQ.2 ) THEN
PJLAENV = 0
END IF
IF( N1.EQ.3 ) THEN
PJLAENV = 0
END IF
END IF
END IF
GLOBAL = .TRUE.
GO TO 100
90 CONTINUE
MSZ = 0
IF( C2.EQ.'SY' .OR. C2.EQ.'HE' ) THEN
IF( C3.EQ.'TTR' ) THEN
IF( SNAME ) THEN
MSZ = 100
ELSE
MSZ = 100
END IF
END IF
END IF
PJLAENV = MSZ
GLOBAL = .TRUE.
GO TO 100
100 CONTINUE
IF( GLOBAL ) THEN
CALL IGAMX2D( ICTXT, 'All', ' ', 1, 1, PJLAENV, 1, IDUMM,
IDUMM, -1, -1, IDUMM )
END IF
RETURN
END
PURPOSELAPACK test version 1.7 13 August 2001 PJLAENV(l)