ilaenv.f.html
来自「famous linear algebra library (LAPACK) p」· HTML 代码 · 共 577 行 · 第 1/3 页
HTML
577 行
40 CONTINUE
END IF
END IF
<span class="comment">*</span><span class="comment">
</span> C1 = SUBNAM( 1: 1 )
SNAME = C1.EQ.<span class="string">'S'</span> .OR. C1.EQ.<span class="string">'D'</span>
CNAME = C1.EQ.<span class="string">'C'</span> .OR. C1.EQ.<span class="string">'Z'</span>
IF( .NOT.( CNAME .OR. SNAME ) )
$ RETURN
C2 = SUBNAM( 2: 3 )
C3 = SUBNAM( 4: 6 )
C4 = C3( 2: 3 )
<span class="comment">*</span><span class="comment">
</span> GO TO ( 50, 60, 70 )ISPEC
<span class="comment">*</span><span class="comment">
</span> 50 CONTINUE
<span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> ISPEC = 1: block size
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> In these examples, separate code is provided for setting NB for
</span><span class="comment">*</span><span class="comment"> real and complex. We assume that NB will take the same value in
</span><span class="comment">*</span><span class="comment"> single or double precision.
</span><span class="comment">*</span><span class="comment">
</span> NB = 1
<span class="comment">*</span><span class="comment">
</span> IF( C2.EQ.<span class="string">'GE'</span> ) THEN
IF( C3.EQ.<span class="string">'TRF'</span> ) THEN
IF( SNAME ) THEN
NB = 64
ELSE
NB = 64
END IF
ELSE IF( C3.EQ.<span class="string">'QRF'</span> .OR. C3.EQ.<span class="string">'RQF'</span> .OR. C3.EQ.<span class="string">'LQF'</span> .OR.
$ C3.EQ.<span class="string">'QLF'</span> ) THEN
IF( SNAME ) THEN
NB = 32
ELSE
NB = 32
END IF
ELSE IF( C3.EQ.<span class="string">'HRD'</span> ) THEN
IF( SNAME ) THEN
NB = 32
ELSE
NB = 32
END IF
ELSE IF( C3.EQ.<span class="string">'BRD'</span> ) THEN
IF( SNAME ) THEN
NB = 32
ELSE
NB = 32
END IF
ELSE IF( C3.EQ.<span class="string">'TRI'</span> ) THEN
IF( SNAME ) THEN
NB = 64
ELSE
NB = 64
END IF
END IF
ELSE IF( C2.EQ.<span class="string">'PO'</span> ) THEN
IF( C3.EQ.<span class="string">'TRF'</span> ) THEN
IF( SNAME ) THEN
NB = 64
ELSE
NB = 64
END IF
END IF
ELSE IF( C2.EQ.<span class="string">'SY'</span> ) THEN
IF( C3.EQ.<span class="string">'TRF'</span> ) THEN
IF( SNAME ) THEN
NB = 64
ELSE
NB = 64
END IF
ELSE IF( SNAME .AND. C3.EQ.<span class="string">'TRD'</span> ) THEN
NB = 32
ELSE IF( SNAME .AND. C3.EQ.<span class="string">'GST'</span> ) THEN
NB = 64
END IF
ELSE IF( CNAME .AND. C2.EQ.<span class="string">'HE'</span> ) THEN
IF( C3.EQ.<span class="string">'TRF'</span> ) THEN
NB = 64
ELSE IF( C3.EQ.<span class="string">'TRD'</span> ) THEN
NB = 32
ELSE IF( C3.EQ.<span class="string">'GST'</span> ) THEN
NB = 64
END IF
ELSE IF( SNAME .AND. C2.EQ.<span class="string">'OR'</span> ) THEN
IF( C3( 1: 1 ).EQ.<span class="string">'G'</span> ) THEN
IF( C4.EQ.<span class="string">'QR'</span> .OR. C4.EQ.<span class="string">'RQ'</span> .OR. C4.EQ.<span class="string">'LQ'</span> .OR. C4.EQ.
$ <span class="string">'QL'</span> .OR. C4.EQ.<span class="string">'HR'</span> .OR. C4.EQ.<span class="string">'TR'</span> .OR. C4.EQ.<span class="string">'BR'</span> )
$ THEN
NB = 32
END IF
ELSE IF( C3( 1: 1 ).EQ.<span class="string">'M'</span> ) THEN
IF( C4.EQ.<span class="string">'QR'</span> .OR. C4.EQ.<span class="string">'RQ'</span> .OR. C4.EQ.<span class="string">'LQ'</span> .OR. C4.EQ.
$ <span class="string">'QL'</span> .OR. C4.EQ.<span class="string">'HR'</span> .OR. C4.EQ.<span class="string">'TR'</span> .OR. C4.EQ.<span class="string">'BR'</span> )
$ THEN
NB = 32
END IF
END IF
ELSE IF( CNAME .AND. C2.EQ.<span class="string">'UN'</span> ) THEN
IF( C3( 1: 1 ).EQ.<span class="string">'G'</span> ) THEN
IF( C4.EQ.<span class="string">'QR'</span> .OR. C4.EQ.<span class="string">'RQ'</span> .OR. C4.EQ.<span class="string">'LQ'</span> .OR. C4.EQ.
$ <span class="string">'QL'</span> .OR. C4.EQ.<span class="string">'HR'</span> .OR. C4.EQ.<span class="string">'TR'</span> .OR. C4.EQ.<span class="string">'BR'</span> )
$ THEN
NB = 32
END IF
ELSE IF( C3( 1: 1 ).EQ.<span class="string">'M'</span> ) THEN
IF( C4.EQ.<span class="string">'QR'</span> .OR. C4.EQ.<span class="string">'RQ'</span> .OR. C4.EQ.<span class="string">'LQ'</span> .OR. C4.EQ.
$ <span class="string">'QL'</span> .OR. C4.EQ.<span class="string">'HR'</span> .OR. C4.EQ.<span class="string">'TR'</span> .OR. C4.EQ.<span class="string">'BR'</span> )
$ THEN
NB = 32
END IF
END IF
ELSE IF( C2.EQ.<span class="string">'GB'</span> ) THEN
IF( C3.EQ.<span class="string">'TRF'</span> ) THEN
IF( SNAME ) THEN
IF( N4.LE.64 ) THEN
NB = 1
ELSE
NB = 32
END IF
ELSE
IF( N4.LE.64 ) THEN
NB = 1
ELSE
NB = 32
END IF
END IF
END IF
ELSE IF( C2.EQ.<span class="string">'PB'</span> ) THEN
IF( C3.EQ.<span class="string">'TRF'</span> ) THEN
IF( SNAME ) THEN
IF( N2.LE.64 ) THEN
NB = 1
ELSE
NB = 32
END IF
ELSE
IF( N2.LE.64 ) THEN
NB = 1
ELSE
NB = 32
END IF
END IF
END IF
ELSE IF( C2.EQ.<span class="string">'TR'</span> ) THEN
IF( C3.EQ.<span class="string">'TRI'</span> ) THEN
IF( SNAME ) THEN
NB = 64
ELSE
NB = 64
END IF
END IF
ELSE IF( C2.EQ.<span class="string">'LA'</span> ) THEN
IF( C3.EQ.<span class="string">'UUM'</span> ) THEN
IF( SNAME ) THEN
NB = 64
ELSE
NB = 64
END IF
END IF
ELSE IF( SNAME .AND. C2.EQ.<span class="string">'ST'</span> ) THEN
IF( C3.EQ.<span class="string">'EBZ'</span> ) THEN
NB = 1
END IF
END IF
<a name="ILAENV.342"></a><a href="hfy-index.html#ILAENV">ILAENV</a> = NB
RETURN
<span class="comment">*</span><span class="comment">
</span> 60 CONTINUE
<span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> ISPEC = 2: minimum block size
</span><span class="comment">*</span><span class="comment">
</span> NBMIN = 2
IF( C2.EQ.<span class="string">'GE'</span> ) THEN
IF( C3.EQ.<span class="string">'QRF'</span> .OR. C3.EQ.<span class="string">'RQF'</span> .OR. C3.EQ.<span class="string">'LQF'</span> .OR. C3.EQ.
$ <span class="string">'QLF'</span> ) THEN
IF( SNAME ) THEN
NBMIN = 2
ELSE
NBMIN = 2
END IF
ELSE IF( C3.EQ.<span class="string">'HRD'</span> ) THEN
IF( SNAME ) THEN
NBMIN = 2
ELSE
NBMIN = 2
END IF
ELSE IF( C3.EQ.<span class="string">'BRD'</span> ) THEN
IF( SNAME ) THEN
NBMIN = 2
ELSE
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?