1*> \brief \b SERRSYX 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 SERRSY( PATH, NUNIT ) 12* 13* .. Scalar Arguments .. 14* CHARACTER*3 PATH 15* INTEGER NUNIT 16* .. 17* 18* 19*> \par Purpose: 20* ============= 21*> 22*> \verbatim 23*> 24*> SERRSY tests the error exits for the REAL routines 25*> for symmetric indefinite matrices. 26*> 27*> Note that this file is used only when the XBLAS are available, 28*> otherwise serrsy.f defines this subroutine. 29*> \endverbatim 30* 31* Arguments: 32* ========== 33* 34*> \param[in] PATH 35*> \verbatim 36*> PATH is CHARACTER*3 37*> The LAPACK path name for the routines to be tested. 38*> \endverbatim 39*> 40*> \param[in] NUNIT 41*> \verbatim 42*> NUNIT is INTEGER 43*> The unit number for output. 44*> \endverbatim 45* 46* Authors: 47* ======== 48* 49*> \author Univ. of Tennessee 50*> \author Univ. of California Berkeley 51*> \author Univ. of Colorado Denver 52*> \author NAG Ltd. 53* 54*> \date November 2013 55* 56*> \ingroup single_lin 57* 58* ===================================================================== 59 SUBROUTINE SERRSY( PATH, NUNIT ) 60* 61* -- LAPACK test routine (version 3.5.0) -- 62* -- LAPACK is a software package provided by Univ. of Tennessee, -- 63* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- 64* November 2013 65* 66* .. Scalar Arguments .. 67 CHARACTER*3 PATH 68 INTEGER NUNIT 69* .. 70* 71* ===================================================================== 72* 73* .. Parameters .. 74 INTEGER NMAX 75 PARAMETER ( NMAX = 4 ) 76* .. 77* .. Local Scalars .. 78 CHARACTER EQ 79 CHARACTER*2 C2 80 INTEGER I, INFO, J, N_ERR_BNDS, NPARAMS 81 REAL ANRM, RCOND, BERR 82* .. 83* .. Local Arrays .. 84 INTEGER IP( NMAX ), IW( NMAX ) 85 REAL A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ), 86 $ R1( NMAX ), R2( NMAX ), W( 3*NMAX ), X( NMAX ), 87 $ S( NMAX ), ERR_BNDS_N( NMAX, 3 ), 88 $ ERR_BNDS_C( NMAX, 3 ), PARAMS( 1 ) 89* .. 90* .. External Functions .. 91 LOGICAL LSAMEN 92 EXTERNAL LSAMEN 93* .. 94* .. External Subroutines .. 95 EXTERNAL ALAESM, CHKXER, SSPCON, SSPRFS, SSPTRF, SSPTRI, 96 $ SSPTRS, SSYCON, SSYCON_ROOK,SSYRFS, SSYTF2, 97 $ SSYTF2_ROOK, SSYTRF, SSYTRF_ROOK, SSYTRI, 98 $ SSYTRI_ROOK, SSYTRI2, SSYTRS, SSYTRS_ROOK, 99 $ SSYRFSX 100* .. 101* .. Scalars in Common .. 102 LOGICAL LERR, OK 103 CHARACTER*32 SRNAMT 104 INTEGER INFOT, NOUT 105* .. 106* .. Common blocks .. 107 COMMON / INFOC / INFOT, NOUT, OK, LERR 108 COMMON / SRNAMC / SRNAMT 109* .. 110* .. Intrinsic Functions .. 111 INTRINSIC REAL 112* .. 113* .. Executable Statements .. 114* 115 NOUT = NUNIT 116 WRITE( NOUT, FMT = * ) 117 C2 = PATH( 2: 3 ) 118* 119* Set the variables to innocuous values. 120* 121 DO 20 J = 1, NMAX 122 DO 10 I = 1, NMAX 123 A( I, J ) = 1. / REAL( I+J ) 124 AF( I, J ) = 1. / REAL( I+J ) 125 10 CONTINUE 126 B( J ) = 0. 127 R1( J ) = 0. 128 R2( J ) = 0. 129 W( J ) = 0. 130 X( J ) = 0. 131 S( J ) = 0. 132 IP( J ) = J 133 IW( J ) = J 134 20 CONTINUE 135 ANRM = 1.0 136 RCOND = 1.0 137 OK = .TRUE. 138* 139 IF( LSAMEN( 2, C2, 'SY' ) ) THEN 140* 141* Test error exits of the routines that use factorization 142* of a symmetric indefinite matrix with patrial 143* (Bunch-Kaufman) pivoting. 144* 145* SSYTRF 146* 147 SRNAMT = 'SSYTRF' 148 INFOT = 1 149 CALL SSYTRF( '/', 0, A, 1, IP, W, 1, INFO ) 150 CALL CHKXER( 'SSYTRF', INFOT, NOUT, LERR, OK ) 151 INFOT = 2 152 CALL SSYTRF( 'U', -1, A, 1, IP, W, 1, INFO ) 153 CALL CHKXER( 'SSYTRF', INFOT, NOUT, LERR, OK ) 154 INFOT = 4 155 CALL SSYTRF( 'U', 2, A, 1, IP, W, 4, INFO ) 156 CALL CHKXER( 'SSYTRF', INFOT, NOUT, LERR, OK ) 157* 158* SSYTF2 159* 160 SRNAMT = 'SSYTF2' 161 INFOT = 1 162 CALL SSYTF2( '/', 0, A, 1, IP, INFO ) 163 CALL CHKXER( 'SSYTF2', INFOT, NOUT, LERR, OK ) 164 INFOT = 2 165 CALL SSYTF2( 'U', -1, A, 1, IP, INFO ) 166 CALL CHKXER( 'SSYTF2', INFOT, NOUT, LERR, OK ) 167 INFOT = 4 168 CALL SSYTF2( 'U', 2, A, 1, IP, INFO ) 169 CALL CHKXER( 'SSYTF2', INFOT, NOUT, LERR, OK ) 170* 171* SSYTRI 172* 173 SRNAMT = 'SSYTRI' 174 INFOT = 1 175 CALL SSYTRI( '/', 0, A, 1, IP, W, INFO ) 176 CALL CHKXER( 'SSYTRI', INFOT, NOUT, LERR, OK ) 177 INFOT = 2 178 CALL SSYTRI( 'U', -1, A, 1, IP, W, INFO ) 179 CALL CHKXER( 'SSYTRI', INFOT, NOUT, LERR, OK ) 180 INFOT = 4 181 CALL SSYTRI( 'U', 2, A, 1, IP, W, INFO ) 182 CALL CHKXER( 'SSYTRI', INFOT, NOUT, LERR, OK ) 183* 184* SSYTRI2 185* 186 SRNAMT = 'SSYTRI2' 187 INFOT = 1 188 CALL SSYTRI2( '/', 0, A, 1, IP, W, IW, INFO ) 189 CALL CHKXER( 'SSYTRI', INFOT, NOUT, LERR, OK ) 190 INFOT = 2 191 CALL SSYTRI2( 'U', -1, A, 1, IP, W, IW, INFO ) 192 CALL CHKXER( 'SSYTRI', INFOT, NOUT, LERR, OK ) 193 INFOT = 4 194 CALL SSYTRI2( 'U', 2, A, 1, IP, W, IW, INFO ) 195 CALL CHKXER( 'SSYTRI', INFOT, NOUT, LERR, OK ) 196* 197* SSYTRS 198* 199 SRNAMT = 'SSYTRS' 200 INFOT = 1 201 CALL SSYTRS( '/', 0, 0, A, 1, IP, B, 1, INFO ) 202 CALL CHKXER( 'SSYTRS', INFOT, NOUT, LERR, OK ) 203 INFOT = 2 204 CALL SSYTRS( 'U', -1, 0, A, 1, IP, B, 1, INFO ) 205 CALL CHKXER( 'SSYTRS', INFOT, NOUT, LERR, OK ) 206 INFOT = 3 207 CALL SSYTRS( 'U', 0, -1, A, 1, IP, B, 1, INFO ) 208 CALL CHKXER( 'SSYTRS', INFOT, NOUT, LERR, OK ) 209 INFOT = 5 210 CALL SSYTRS( 'U', 2, 1, A, 1, IP, B, 2, INFO ) 211 CALL CHKXER( 'SSYTRS', INFOT, NOUT, LERR, OK ) 212 INFOT = 8 213 CALL SSYTRS( 'U', 2, 1, A, 2, IP, B, 1, INFO ) 214 CALL CHKXER( 'SSYTRS', INFOT, NOUT, LERR, OK ) 215* 216* SSYRFS 217* 218 SRNAMT = 'SSYRFS' 219 INFOT = 1 220 CALL SSYRFS( '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2, W, 221 $ IW, INFO ) 222 CALL CHKXER( 'SSYRFS', INFOT, NOUT, LERR, OK ) 223 INFOT = 2 224 CALL SSYRFS( 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2, 225 $ W, IW, INFO ) 226 CALL CHKXER( 'SSYRFS', INFOT, NOUT, LERR, OK ) 227 INFOT = 3 228 CALL SSYRFS( 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2, 229 $ W, IW, INFO ) 230 CALL CHKXER( 'SSYRFS', INFOT, NOUT, LERR, OK ) 231 INFOT = 5 232 CALL SSYRFS( 'U', 2, 1, A, 1, AF, 2, IP, B, 2, X, 2, R1, R2, W, 233 $ IW, INFO ) 234 CALL CHKXER( 'SSYRFS', INFOT, NOUT, LERR, OK ) 235 INFOT = 7 236 CALL SSYRFS( 'U', 2, 1, A, 2, AF, 1, IP, B, 2, X, 2, R1, R2, W, 237 $ IW, INFO ) 238 CALL CHKXER( 'SSYRFS', INFOT, NOUT, LERR, OK ) 239 INFOT = 10 240 CALL SSYRFS( 'U', 2, 1, A, 2, AF, 2, IP, B, 1, X, 2, R1, R2, W, 241 $ IW, INFO ) 242 CALL CHKXER( 'SSYRFS', INFOT, NOUT, LERR, OK ) 243 INFOT = 12 244 CALL SSYRFS( 'U', 2, 1, A, 2, AF, 2, IP, B, 2, X, 1, R1, R2, W, 245 $ IW, INFO ) 246 CALL CHKXER( 'SSYRFS', INFOT, NOUT, LERR, OK ) 247* 248* SSYRFSX 249* 250 N_ERR_BNDS = 3 251 NPARAMS = 0 252 SRNAMT = 'SSYRFSX' 253 INFOT = 1 254 CALL SSYRFSX( '/', EQ, 0, 0, A, 1, AF, 1, IP, S, B, 1, X, 1, 255 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 256 $ PARAMS, W, IW, INFO ) 257 CALL CHKXER( 'SSYRFSX', INFOT, NOUT, LERR, OK ) 258 INFOT = 2 259 CALL SSYRFSX( 'U', EQ, -1, 0, A, 1, AF, 1, IP, S, B, 1, X, 1, 260 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 261 $ PARAMS, W, IW, INFO ) 262 CALL CHKXER( 'SSYRFSX', INFOT, NOUT, LERR, OK ) 263 EQ = 'N' 264 INFOT = 3 265 CALL SSYRFSX( 'U', EQ, -1, 0, A, 1, AF, 1, IP, S, B, 1, X, 1, 266 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 267 $ PARAMS, W, IW, INFO ) 268 CALL CHKXER( 'SSYRFSX', INFOT, NOUT, LERR, OK ) 269 INFOT = 4 270 CALL SSYRFSX( 'U', EQ, 0, -1, A, 1, AF, 1, IP, S, B, 1, X, 1, 271 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 272 $ PARAMS, W, IW, INFO ) 273 CALL CHKXER( 'SSYRFSX', INFOT, NOUT, LERR, OK ) 274 INFOT = 6 275 CALL SSYRFSX( 'U', EQ, 2, 1, A, 1, AF, 2, IP, S, B, 2, X, 2, 276 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 277 $ PARAMS, W, IW, INFO ) 278 CALL CHKXER( 'SSYRFSX', INFOT, NOUT, LERR, OK ) 279 INFOT = 8 280 CALL SSYRFSX( 'U', EQ, 2, 1, A, 2, AF, 1, IP, S, B, 2, X, 2, 281 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 282 $ PARAMS, W, IW, INFO ) 283 CALL CHKXER( 'SSYRFSX', INFOT, NOUT, LERR, OK ) 284 INFOT = 12 285 CALL SSYRFSX( 'U', EQ, 2, 1, A, 2, AF, 2, IP, S, B, 1, X, 2, 286 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 287 $ PARAMS, W, IW, INFO ) 288 CALL CHKXER( 'SSYRFSX', INFOT, NOUT, LERR, OK ) 289 INFOT = 14 290 CALL SSYRFSX( 'U', EQ, 2, 1, A, 2, AF, 2, IP, S, B, 2, X, 1, 291 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 292 $ PARAMS, W, IW, INFO ) 293 CALL CHKXER( 'SSYRFSX', INFOT, NOUT, LERR, OK ) 294* 295* SSYCON 296* 297 SRNAMT = 'SSYCON' 298 INFOT = 1 299 CALL SSYCON( '/', 0, A, 1, IP, ANRM, RCOND, W, IW, INFO ) 300 CALL CHKXER( 'SSYCON', INFOT, NOUT, LERR, OK ) 301 INFOT = 2 302 CALL SSYCON( 'U', -1, A, 1, IP, ANRM, RCOND, W, IW, INFO ) 303 CALL CHKXER( 'SSYCON', INFOT, NOUT, LERR, OK ) 304 INFOT = 4 305 CALL SSYCON( 'U', 2, A, 1, IP, ANRM, RCOND, W, IW, INFO ) 306 CALL CHKXER( 'SSYCON', INFOT, NOUT, LERR, OK ) 307 INFOT = 6 308 CALL SSYCON( 'U', 1, A, 1, IP, -1.0, RCOND, W, IW, INFO ) 309 CALL CHKXER( 'SSYCON', INFOT, NOUT, LERR, OK ) 310* 311 ELSE IF( LSAMEN( 2, C2, 'SR' ) ) THEN 312* 313* Test error exits of the routines that use factorization 314* of a symmetric indefinite matrix with rook 315* (bounded Bunch-Kaufman) pivoting. 316* 317* SSYTRF_ROOK 318* 319 SRNAMT = 'SSYTRF_ROOK' 320 INFOT = 1 321 CALL SSYTRF_ROOK( '/', 0, A, 1, IP, W, 1, INFO ) 322 CALL CHKXER( 'SSYTRF_ROOK', INFOT, NOUT, LERR, OK ) 323 INFOT = 2 324 CALL SSYTRF_ROOK( 'U', -1, A, 1, IP, W, 1, INFO ) 325 CALL CHKXER( 'SSYTRF_ROOK', INFOT, NOUT, LERR, OK ) 326 INFOT = 4 327 CALL SSYTRF_ROOK( 'U', 2, A, 1, IP, W, 4, INFO ) 328 CALL CHKXER( 'SSYTRF_ROOK', INFOT, NOUT, LERR, OK ) 329* 330* SSYTF2_ROOK 331* 332 SRNAMT = 'SSYTF2_ROOK' 333 INFOT = 1 334 CALL SSYTF2_ROOK( '/', 0, A, 1, IP, INFO ) 335 CALL CHKXER( 'SSYTF2_ROOK', INFOT, NOUT, LERR, OK ) 336 INFOT = 2 337 CALL SSYTF2_ROOK( 'U', -1, A, 1, IP, INFO ) 338 CALL CHKXER( 'SSYTF2_ROOK', INFOT, NOUT, LERR, OK ) 339 INFOT = 4 340 CALL SSYTF2_ROOK( 'U', 2, A, 1, IP, INFO ) 341 CALL CHKXER( 'SSYTF2_ROOK', INFOT, NOUT, LERR, OK ) 342* 343* SSYTRI_ROOK 344* 345 SRNAMT = 'SSYTRI_ROOK' 346 INFOT = 1 347 CALL SSYTRI_ROOK( '/', 0, A, 1, IP, W, INFO ) 348 CALL CHKXER( 'SSYTRI_ROOK', INFOT, NOUT, LERR, OK ) 349 INFOT = 2 350 CALL SSYTRI_ROOK( 'U', -1, A, 1, IP, W, INFO ) 351 CALL CHKXER( 'SSYTRI_ROOK', INFOT, NOUT, LERR, OK ) 352 INFOT = 4 353 CALL SSYTRI_ROOK( 'U', 2, A, 1, IP, W, INFO ) 354 CALL CHKXER( 'SSYTRI_ROOK', INFOT, NOUT, LERR, OK ) 355* 356* SSYTRS_ROOK 357* 358 SRNAMT = 'SSYTRS_ROOK' 359 INFOT = 1 360 CALL SSYTRS_ROOK( '/', 0, 0, A, 1, IP, B, 1, INFO ) 361 CALL CHKXER( 'SSYTRS_ROOK', INFOT, NOUT, LERR, OK ) 362 INFOT = 2 363 CALL SSYTRS_ROOK( 'U', -1, 0, A, 1, IP, B, 1, INFO ) 364 CALL CHKXER( 'SSYTRS_ROOK', INFOT, NOUT, LERR, OK ) 365 INFOT = 3 366 CALL SSYTRS_ROOK( 'U', 0, -1, A, 1, IP, B, 1, INFO ) 367 CALL CHKXER( 'SSYTRS_ROOK', INFOT, NOUT, LERR, OK ) 368 INFOT = 5 369 CALL SSYTRS_ROOK( 'U', 2, 1, A, 1, IP, B, 2, INFO ) 370 CALL CHKXER( 'SSYTRS_ROOK', INFOT, NOUT, LERR, OK ) 371 INFOT = 8 372 CALL SSYTRS_ROOK( 'U', 2, 1, A, 2, IP, B, 1, INFO ) 373 CALL CHKXER( 'SSYTRS_ROOK', INFOT, NOUT, LERR, OK ) 374* 375* SSYCON_ROOK 376* 377 SRNAMT = 'SSYCON_ROOK' 378 INFOT = 1 379 CALL SSYCON_ROOK( '/', 0, A, 1, IP, ANRM, RCOND, W, IW, INFO ) 380 CALL CHKXER( 'SSYCON_ROOK', INFOT, NOUT, LERR, OK ) 381 INFOT = 2 382 CALL SSYCON_ROOK( 'U', -1, A, 1, IP, ANRM, RCOND, W, IW, INFO ) 383 CALL CHKXER( 'SSYCON_ROOK', INFOT, NOUT, LERR, OK ) 384 INFOT = 4 385 CALL SSYCON_ROOK( 'U', 2, A, 1, IP, ANRM, RCOND, W, IW, INFO ) 386 CALL CHKXER( 'SSYCON_ROOK', INFOT, NOUT, LERR, OK ) 387 INFOT = 6 388 CALL SSYCON_ROOK( 'U', 1, A, 1, IP, -1.0, RCOND, W, IW, INFO ) 389 CALL CHKXER( 'SSYCON_ROOK', INFOT, NOUT, LERR, OK ) 390* 391* Test error exits of the routines that use factorization 392* of a symmetric indefinite packed matrix with patrial 393* (Bunch-Kaufman) pivoting. 394* 395 ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN 396* 397* SSPTRF 398* 399 SRNAMT = 'SSPTRF' 400 INFOT = 1 401 CALL SSPTRF( '/', 0, A, IP, INFO ) 402 CALL CHKXER( 'SSPTRF', INFOT, NOUT, LERR, OK ) 403 INFOT = 2 404 CALL SSPTRF( 'U', -1, A, IP, INFO ) 405 CALL CHKXER( 'SSPTRF', INFOT, NOUT, LERR, OK ) 406* 407* SSPTRI 408* 409 SRNAMT = 'SSPTRI' 410 INFOT = 1 411 CALL SSPTRI( '/', 0, A, IP, W, INFO ) 412 CALL CHKXER( 'SSPTRI', INFOT, NOUT, LERR, OK ) 413 INFOT = 2 414 CALL SSPTRI( 'U', -1, A, IP, W, INFO ) 415 CALL CHKXER( 'SSPTRI', INFOT, NOUT, LERR, OK ) 416* 417* SSPTRS 418* 419 SRNAMT = 'SSPTRS' 420 INFOT = 1 421 CALL SSPTRS( '/', 0, 0, A, IP, B, 1, INFO ) 422 CALL CHKXER( 'SSPTRS', INFOT, NOUT, LERR, OK ) 423 INFOT = 2 424 CALL SSPTRS( 'U', -1, 0, A, IP, B, 1, INFO ) 425 CALL CHKXER( 'SSPTRS', INFOT, NOUT, LERR, OK ) 426 INFOT = 3 427 CALL SSPTRS( 'U', 0, -1, A, IP, B, 1, INFO ) 428 CALL CHKXER( 'SSPTRS', INFOT, NOUT, LERR, OK ) 429 INFOT = 7 430 CALL SSPTRS( 'U', 2, 1, A, IP, B, 1, INFO ) 431 CALL CHKXER( 'SSPTRS', INFOT, NOUT, LERR, OK ) 432* 433* SSPRFS 434* 435 SRNAMT = 'SSPRFS' 436 INFOT = 1 437 CALL SSPRFS( '/', 0, 0, A, AF, IP, B, 1, X, 1, R1, R2, W, IW, 438 $ INFO ) 439 CALL CHKXER( 'SSPRFS', INFOT, NOUT, LERR, OK ) 440 INFOT = 2 441 CALL SSPRFS( 'U', -1, 0, A, AF, IP, B, 1, X, 1, R1, R2, W, IW, 442 $ INFO ) 443 CALL CHKXER( 'SSPRFS', INFOT, NOUT, LERR, OK ) 444 INFOT = 3 445 CALL SSPRFS( 'U', 0, -1, A, AF, IP, B, 1, X, 1, R1, R2, W, IW, 446 $ INFO ) 447 CALL CHKXER( 'SSPRFS', INFOT, NOUT, LERR, OK ) 448 INFOT = 8 449 CALL SSPRFS( 'U', 2, 1, A, AF, IP, B, 1, X, 2, R1, R2, W, IW, 450 $ INFO ) 451 CALL CHKXER( 'SSPRFS', INFOT, NOUT, LERR, OK ) 452 INFOT = 10 453 CALL SSPRFS( 'U', 2, 1, A, AF, IP, B, 2, X, 1, R1, R2, W, IW, 454 $ INFO ) 455 CALL CHKXER( 'SSPRFS', INFOT, NOUT, LERR, OK ) 456* 457* SSPCON 458* 459 SRNAMT = 'SSPCON' 460 INFOT = 1 461 CALL SSPCON( '/', 0, A, IP, ANRM, RCOND, W, IW, INFO ) 462 CALL CHKXER( 'SSPCON', INFOT, NOUT, LERR, OK ) 463 INFOT = 2 464 CALL SSPCON( 'U', -1, A, IP, ANRM, RCOND, W, IW, INFO ) 465 CALL CHKXER( 'SSPCON', INFOT, NOUT, LERR, OK ) 466 INFOT = 5 467 CALL SSPCON( 'U', 1, A, IP, -1.0, RCOND, W, IW, INFO ) 468 CALL CHKXER( 'SSPCON', INFOT, NOUT, LERR, OK ) 469 END IF 470* 471* Print a summary line. 472* 473 CALL ALAESM( PATH, OK, NOUT ) 474* 475 RETURN 476* 477* End of SERRSY 478* 479 END 480