159 INTEGER FUNCTION ilaenv( ISPEC, NAME, OPTS, N1, N2, N3, N4 )
166 CHARACTER*( * ) name, opts
167 INTEGER ispec, n1, n2, n3, n4
173 INTEGER i, ic, iz, nb, nbmin, nx
174 LOGICAL cname, sname, twostage
175 CHARACTER c1*1, c2*2, c4*2, c3*3, subnam*16
178 INTRINSIC char, ichar, int, min, real
186 GO TO ( 10, 10, 10, 80, 90, 100, 110, 120,
187 $ 130, 140, 150, 160, 160, 160, 160, 160, 160)ispec
200 ic = ichar( subnam( 1: 1 ) )
202 IF( iz.EQ.90 .OR. iz.EQ.122 )
THEN
206 IF( ic.GE.97 .AND. ic.LE.122 )
THEN
207 subnam( 1: 1 ) = char( ic-32 )
209 ic = ichar( subnam( i: i ) )
210 IF( ic.GE.97 .AND. ic.LE.122 )
211 $ subnam( i: i ) = char( ic-32 )
215 ELSE IF( iz.EQ.233 .OR. iz.EQ.169 )
THEN
219 IF( ( ic.GE.129 .AND. ic.LE.137 ) .OR.
220 $ ( ic.GE.145 .AND. ic.LE.153 ) .OR.
221 $ ( ic.GE.162 .AND. ic.LE.169 ) )
THEN
222 subnam( 1: 1 ) = char( ic+64 )
224 ic = ichar( subnam( i: i ) )
225 IF( ( ic.GE.129 .AND. ic.LE.137 ) .OR.
226 $ ( ic.GE.145 .AND. ic.LE.153 ) .OR.
227 $ ( ic.GE.162 .AND. ic.LE.169 ) )subnam( i:
228 $ i ) = char( ic+64 )
232 ELSE IF( iz.EQ.218 .OR. iz.EQ.250 )
THEN
236 IF( ic.GE.225 .AND. ic.LE.250 )
THEN
237 subnam( 1: 1 ) = char( ic-32 )
239 ic = ichar( subnam( i: i ) )
240 IF( ic.GE.225 .AND. ic.LE.250 )
241 $ subnam( i: i ) = char( ic-32 )
247 sname = c1.EQ.
'S' .OR. c1.EQ.
'D'
248 cname = c1.EQ.
'C' .OR. c1.EQ.
'Z'
249 IF( .NOT.( cname .OR. sname ) )
254 twostage = len( subnam ).GE.11
255 $ .AND. subnam( 11: 11 ).EQ.
'2'
257 GO TO ( 50, 60, 70 )ispec
269 IF( subnam(2:6).EQ.
'LAORH' )
THEN
278 ELSE IF( c2.EQ.
'GE' )
THEN
279 IF( c3.EQ.
'TRF' )
THEN
285 ELSE IF( c3.EQ.
'QRF' .OR. c3.EQ.
'RQF' .OR. c3.EQ.
'LQF' .OR.
292 ELSE IF( c3.EQ.
'QR ')
THEN
296 IF ((n1*n2.LE.131072).OR.(n1.LE.8192))
THEN
302 IF ((n1*n2.LE.131072).OR.(n1.LE.8192))
THEN
315 ELSE IF( c3.EQ.
'LQ ')
THEN
319 IF ((n1*n2.LE.131072).OR.(n1.LE.8192))
THEN
325 IF ((n1*n2.LE.131072).OR.(n1.LE.8192))
THEN
338 ELSE IF( c3.EQ.
'HRD' )
THEN
344 ELSE IF( c3.EQ.
'BRD' )
THEN
350 ELSE IF( c3.EQ.
'TRI' )
THEN
356 ELSE IF( subnam( 4: 7 ).EQ.
'QP3RK' )
THEN
363 ELSE IF( c2.EQ.
'PO' )
THEN
364 IF( c3.EQ.
'TRF' )
THEN
371 ELSE IF( c2.EQ.
'SY' )
THEN
372 IF( c3.EQ.
'TRF' )
THEN
386 ELSE IF( sname .AND. c3.EQ.
'TRD' )
THEN
388 ELSE IF( sname .AND. c3.EQ.
'GST' )
THEN
391 ELSE IF( cname .AND. c2.EQ.
'HE' )
THEN
392 IF( c3.EQ.
'TRF' )
THEN
398 ELSE IF( c3.EQ.
'TRD' )
THEN
400 ELSE IF( c3.EQ.
'GST' )
THEN
403 ELSE IF( sname .AND. c2.EQ.
'OR' )
THEN
404 IF( c3( 1: 1 ).EQ.
'G' )
THEN
405 IF( c4.EQ.
'QR' .OR. c4.EQ.
'RQ' .OR. c4.EQ.
'LQ' .OR. c4.EQ.
406 $
'QL' .OR. c4.EQ.
'HR' .OR. c4.EQ.
'TR' .OR. c4.EQ.
'BR' )
410 ELSE IF( c3( 1: 1 ).EQ.
'M' )
THEN
411 IF( c4.EQ.
'QR' .OR. c4.EQ.
'RQ' .OR. c4.EQ.
'LQ' .OR. c4.EQ.
412 $
'QL' .OR. c4.EQ.
'HR' .OR. c4.EQ.
'TR' .OR. c4.EQ.
'BR' )
417 ELSE IF( cname .AND. c2.EQ.
'UN' )
THEN
418 IF( c3( 1: 1 ).EQ.
'G' )
THEN
419 IF( c4.EQ.
'QR' .OR. c4.EQ.
'RQ' .OR. c4.EQ.
'LQ' .OR. c4.EQ.
420 $
'QL' .OR. c4.EQ.
'HR' .OR. c4.EQ.
'TR' .OR. c4.EQ.
'BR' )
424 ELSE IF( c3( 1: 1 ).EQ.
'M' )
THEN
425 IF( c4.EQ.
'QR' .OR. c4.EQ.
'RQ' .OR. c4.EQ.
'LQ' .OR. c4.EQ.
426 $
'QL' .OR. c4.EQ.
'HR' .OR. c4.EQ.
'TR' .OR. c4.EQ.
'BR' )
431 ELSE IF( c2.EQ.
'GB' )
THEN
432 IF( c3.EQ.
'TRF' )
THEN
447 ELSE IF( c2.EQ.
'PB' )
THEN
448 IF( c3.EQ.
'TRF' )
THEN
463 ELSE IF( c2.EQ.
'TR' )
THEN
464 IF( c3.EQ.
'TRI' )
THEN
470 ELSE IF ( c3.EQ.
'EVC' )
THEN
476 ELSE IF( c3.EQ.
'SYL' )
THEN
479 nb = min( max( 48, int( ( min( n1, n2 ) * 16 ) / 100) ),
482 nb = min( max( 24, int( ( min( n1, n2 ) * 8 ) / 100) ),
486 ELSE IF( c2.EQ.
'LA' )
THEN
487 IF( c3.EQ.
'UUM' )
THEN
493 ELSE IF( c3.EQ.
'TRS' )
THEN
500 ELSE IF( sname .AND. c2.EQ.
'ST' )
THEN
501 IF( c3.EQ.
'EBZ' )
THEN
504 ELSE IF( c2.EQ.
'GG' )
THEN
506 IF( c3.EQ.
'HD3' )
THEN
522 IF( c2.EQ.
'GE' )
THEN
523 IF( c3.EQ.
'QRF' .OR. c3.EQ.
'RQF' .OR. c3.EQ.
'LQF' .OR. c3.EQ.
530 ELSE IF( c3.EQ.
'HRD' )
THEN
536 ELSE IF( c3.EQ.
'BRD' )
THEN
542 ELSE IF( c3.EQ.
'TRI' )
THEN
548 ELSE IF( subnam( 4: 7 ).EQ.
'QP3RK' )
THEN
556 ELSE IF( c2.EQ.
'SY' )
THEN
557 IF( c3.EQ.
'TRF' )
THEN
563 ELSE IF( sname .AND. c3.EQ.
'TRD' )
THEN
566 ELSE IF( cname .AND. c2.EQ.
'HE' )
THEN
567 IF( c3.EQ.
'TRD' )
THEN
570 ELSE IF( sname .AND. c2.EQ.
'OR' )
THEN
571 IF( c3( 1: 1 ).EQ.
'G' )
THEN
572 IF( c4.EQ.
'QR' .OR. c4.EQ.
'RQ' .OR. c4.EQ.
'LQ' .OR. c4.EQ.
573 $
'QL' .OR. c4.EQ.
'HR' .OR. c4.EQ.
'TR' .OR. c4.EQ.
'BR' )
577 ELSE IF( c3( 1: 1 ).EQ.
'M' )
THEN
578 IF( c4.EQ.
'QR' .OR. c4.EQ.
'RQ' .OR. c4.EQ.
'LQ' .OR. c4.EQ.
579 $
'QL' .OR. c4.EQ.
'HR' .OR. c4.EQ.
'TR' .OR. c4.EQ.
'BR' )
584 ELSE IF( cname .AND. c2.EQ.
'UN' )
THEN
585 IF( c3( 1: 1 ).EQ.
'G' )
THEN
586 IF( c4.EQ.
'QR' .OR. c4.EQ.
'RQ' .OR. c4.EQ.
'LQ' .OR. c4.EQ.
587 $
'QL' .OR. c4.EQ.
'HR' .OR. c4.EQ.
'TR' .OR. c4.EQ.
'BR' )
591 ELSE IF( c3( 1: 1 ).EQ.
'M' )
THEN
592 IF( c4.EQ.
'QR' .OR. c4.EQ.
'RQ' .OR. c4.EQ.
'LQ' .OR. c4.EQ.
593 $
'QL' .OR. c4.EQ.
'HR' .OR. c4.EQ.
'TR' .OR. c4.EQ.
'BR' )
598 ELSE IF( c2.EQ.
'GG' )
THEN
600 IF( c3.EQ.
'HD3' )
THEN
612 IF( c2.EQ.
'GE' )
THEN
613 IF( c3.EQ.
'QRF' .OR. c3.EQ.
'RQF' .OR. c3.EQ.
'LQF' .OR. c3.EQ.
620 ELSE IF( c3.EQ.
'HRD' )
THEN
626 ELSE IF( c3.EQ.
'BRD' )
THEN
632 ELSE IF( subnam( 4: 7 ).EQ.
'QP3RK' )
THEN
639 ELSE IF( c2.EQ.
'SY' )
THEN
640 IF( sname .AND. c3.EQ.
'TRD' )
THEN
643 ELSE IF( cname .AND. c2.EQ.
'HE' )
THEN
644 IF( c3.EQ.
'TRD' )
THEN
647 ELSE IF( sname .AND. c2.EQ.
'OR' )
THEN
648 IF( c3( 1: 1 ).EQ.
'G' )
THEN
649 IF( c4.EQ.
'QR' .OR. c4.EQ.
'RQ' .OR. c4.EQ.
'LQ' .OR. c4.EQ.
650 $
'QL' .OR. c4.EQ.
'HR' .OR. c4.EQ.
'TR' .OR. c4.EQ.
'BR' )
655 ELSE IF( cname .AND. c2.EQ.
'UN' )
THEN
656 IF( c3( 1: 1 ).EQ.
'G' )
THEN
657 IF( c4.EQ.
'QR' .OR. c4.EQ.
'RQ' .OR. c4.EQ.
'LQ' .OR. c4.EQ.
658 $
'QL' .OR. c4.EQ.
'HR' .OR. c4.EQ.
'TR' .OR. c4.EQ.
'BR' )
663 ELSE IF( c2.EQ.
'GG' )
THEN
665 IF( c3.EQ.
'HD3' )
THEN
690 ilaenv = int( real( min( n1, n2 ) )*1.6e0 )