OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
zchkec.f
Go to the documentation of this file.
1*> \brief \b ZCHKEC
2*
3* =========== DOCUMENTATION ===========
4*
5* Online html documentation available at
6* http://www.netlib.org/lapack/explore-html/
7*
8* Definition:
9* ===========
10*
11* SUBROUTINE ZCHKEC( THRESH, TSTERR, NIN, NOUT )
12*
13* .. Scalar Arguments ..
14* LOGICAL TSTERR
15* INTEGER NIN, NOUT
16* DOUBLE PRECISION THRESH
17* ..
18*
19*
20*> \par Purpose:
21* =============
22*>
23*> \verbatim
24*>
25*> ZCHKEC tests eigen- condition estimation routines
26*> ZTRSYL, CTREXC, CTRSNA, CTRSEN
27*>
28*> In all cases, the routine runs through a fixed set of numerical
29*> examples, subjects them to various tests, and compares the test
30*> results to a threshold THRESH. In addition, ZTRSNA and CTRSEN are
31*> tested by reading in precomputed examples from a file (on input unit
32*> NIN). Output is written to output unit NOUT.
33*> \endverbatim
34*
35* Arguments:
36* ==========
37*
38*> \param[in] THRESH
39*> \verbatim
40*> THRESH is DOUBLE PRECISION
41*> Threshold for residual tests. A computed test ratio passes
42*> the threshold if it is less than THRESH.
43*> \endverbatim
44*>
45*> \param[in] TSTERR
46*> \verbatim
47*> TSTERR is LOGICAL
48*> Flag that indicates whether error exits are to be tested.
49*> \endverbatim
50*>
51*> \param[in] NIN
52*> \verbatim
53*> NIN is INTEGER
54*> The logical unit number for input.
55*> \endverbatim
56*>
57*> \param[in] NOUT
58*> \verbatim
59*> NOUT is INTEGER
60*> The logical unit number for output.
61*> \endverbatim
62*
63* Authors:
64* ========
65*
66*> \author Univ. of Tennessee
67*> \author Univ. of California Berkeley
68*> \author Univ. of Colorado Denver
69*> \author NAG Ltd.
70*
71*> \ingroup complex16_eig
72*
73* =====================================================================
74 SUBROUTINE zchkec( THRESH, TSTERR, NIN, NOUT )
75*
76* -- LAPACK test routine --
77* -- LAPACK is a software package provided by Univ. of Tennessee, --
78* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
79*
80* .. Scalar Arguments ..
81 LOGICAL TSTERR
82 INTEGER NIN, NOUT
83 DOUBLE PRECISION THRESH
84* ..
85*
86* =====================================================================
87*
88* .. Local Scalars ..
89 LOGICAL OK
90 CHARACTER*3 PATH
91 INTEGER KTREXC, KTRSEN, KTRSNA, KTRSYL, LTREXC, LTRSYL,
92 $ NTESTS, NTREXC, NTRSYL
93 DOUBLE PRECISION EPS, RTREXC, RTRSYL, SFMIN
94* ..
95* .. Local Arrays ..
96 INTEGER LTRSEN( 3 ), LTRSNA( 3 ), NTRSEN( 3 ),
97 $ NTRSNA( 3 )
98 DOUBLE PRECISION RTRSEN( 3 ), RTRSNA( 3 )
99* ..
100* .. External Subroutines ..
101 EXTERNAL zerrec, zget35, zget36, zget37, zget38
102* ..
103* .. External Functions ..
104 DOUBLE PRECISION DLAMCH
105 EXTERNAL dlamch
106* ..
107* .. Executable Statements ..
108*
109 path( 1: 1 ) = 'Zomplex precision'
110 path( 2: 3 ) = 'EC'
111 eps = dlamch( 'P' )
112 sfmin = dlamch( 'S' )
113 WRITE( nout, fmt = 9994 )
114 WRITE( nout, fmt = 9993 )eps, sfmin
115 WRITE( nout, fmt = 9992 )thresh
116*
117* Test error exits if TSTERR is .TRUE.
118*
119 IF( tsterr )
120 $ CALL zerrec( path, nout )
121*
122 ok = .true.
123 CALL zget35( rtrsyl, ltrsyl, ntrsyl, ktrsyl, nin )
124 IF( rtrsyl.GT.thresh ) THEN
125 ok = .false.
126 WRITE( nout, fmt = 9999 )rtrsyl, ltrsyl, ntrsyl, ktrsyl
127 END IF
128*
129 CALL zget36( rtrexc, ltrexc, ntrexc, ktrexc, nin )
130 IF( rtrexc.GT.thresh .OR. ntrexc.GT.0 ) THEN
131 ok = .false.
132 WRITE( nout, fmt = 9998 )rtrexc, ltrexc, ntrexc, ktrexc
133 END IF
134*
135 CALL zget37( rtrsna, ltrsna, ntrsna, ktrsna, nin )
136 IF( rtrsna( 1 ).GT.thresh .OR. rtrsna( 2 ).GT.thresh .OR.
137 $ ntrsna( 1 ).NE.0 .OR. ntrsna( 2 ).NE.0 .OR. ntrsna( 3 ).NE.0 )
138 $ THEN
139 ok = .false.
140 WRITE( nout, fmt = 9997 )rtrsna, ltrsna, ntrsna, ktrsna
141 END IF
142*
143 CALL zget38( rtrsen, ltrsen, ntrsen, ktrsen, nin )
144 IF( rtrsen( 1 ).GT.thresh .OR. rtrsen( 2 ).GT.thresh .OR.
145 $ ntrsen( 1 ).NE.0 .OR. ntrsen( 2 ).NE.0 .OR. ntrsen( 3 ).NE.0 )
146 $ THEN
147 ok = .false.
148 WRITE( nout, fmt = 9996 )rtrsen, ltrsen, ntrsen, ktrsen
149 END IF
150*
151 ntests = ktrsyl + ktrexc + ktrsna + ktrsen
152 IF( ok )
153 $ WRITE( nout, fmt = 9995 )path, ntests
154*
155 9999 FORMAT( ' Error in ZTRSYL: RMAX =', d12.3, / ' LMAX = ', i8,
156 $ ' NINFO=', i8, ' KNT=', i8 )
157 9998 FORMAT( ' Error in ZTREXC: RMAX =', d12.3, / ' LMAX = ', i8,
158 $ ' NINFO=', i8, ' KNT=', i8 )
159 9997 FORMAT( ' Error in ZTRSNA: RMAX =', 3d12.3, / ' LMAX = ', 3i8,
160 $ ' NINFO=', 3i8, ' KNT=', i8 )
161 9996 FORMAT( ' Error in ZTRSEN: RMAX =', 3d12.3, / ' LMAX = ', 3i8,
162 $ ' NINFO=', 3i8, ' KNT=', i8 )
163 9995 FORMAT( / 1x, 'All tests for ', a3,
164 $ ' routines passed the threshold ( ', i6, ' tests run)' )
165 9994 FORMAT( ' Tests of the Nonsymmetric eigenproblem condition',
166 $ ' estimation routines', / ' ZTRSYL, ZTREXC, ZTRSNA, ZTRSEN',
167 $ / )
168 9993 FORMAT( ' Relative machine precision (EPS) = ', d16.6,
169 $ / ' Safe minimum (SFMIN) = ', d16.6, / )
170 9992 FORMAT( ' Routines pass computational tests if test ratio is ',
171 $ 'less than', f8.2, / / )
172 RETURN
173*
174* End of ZCHKEC
175*
176 END
subroutine zget37(rmax, lmax, ninfo, knt, nin)
ZGET37
Definition zget37.f:90
subroutine zerrec(path, nunit)
ZERREC
Definition zerrec.f:56
subroutine zget38(rmax, lmax, ninfo, knt, nin)
ZGET38
Definition zget38.f:91
subroutine zchkec(thresh, tsterr, nin, nout)
ZCHKEC
Definition zchkec.f:75
subroutine zget35(rmax, lmax, ninfo, knt, nin)
ZGET35
Definition zget35.f:84
subroutine zget36(rmax, lmax, ninfo, knt, nin)
ZGET36
Definition zget36.f:85