#include "blaswrap.h" /* xerbla.f -- translated by f2c (version 20061008). You must link the resulting object file with libf2c: on Microsoft Windows system, link with libf2c.lib; on Linux or Unix systems, link with .../path/to/libf2c.a -lm or, if you install libf2c.a in a standard place, with -lf2c -lm -- in that order, at the end of the command line, as in cc *.o -lf2c -lm Source for libf2c is in /netlib/f2c/libf2c.zip, e.g., http://www.netlib.org/f2c/libf2c.zip */ #include "f2c.h" /* Common Block Declarations */ struct { integer infot, nout; logical ok, lerr; } infoc_; #define infoc_1 infoc_ struct { char srnamt[6]; } srnamc_; #define srnamc_1 srnamc_ /* Table of constant values */ static integer c__1 = 1; /* Subroutine */ int xerbla_(char *srname, integer *info) { /* Format strings */ static char fmt_9999[] = "(\002 *** XERBLA was called from \002,a6,\002 " "with INFO = \002,i6,\002 instead of \002,i2,\002 ***\002)"; static char fmt_9997[] = "(\002 *** On entry to \002,a6,\002 parameter n" "umber \002,i6,\002 had an illegal value ***\002)"; static char fmt_9998[] = "(\002 *** XERBLA was called with SRNAME = \002" ",a6,\002 instead of \002,a6,\002 ***\002)"; /* Builtin functions */ integer s_wsfe(cilist *), do_fio(integer *, char *, ftnlen), e_wsfe(void), s_cmp(char *, char *, ftnlen, ftnlen); /* Fortran I/O blocks */ static cilist io___1 = { 0, 0, 0, fmt_9999, 0 }; static cilist io___2 = { 0, 0, 0, fmt_9997, 0 }; static cilist io___3 = { 0, 0, 0, fmt_9998, 0 }; /* -- LAPACK auxiliary routine (version 3.1) -- Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. November 2006 Purpose ======= This is a special version of XERBLA to be used only as part of the test program for testing error exits from the LAPACK routines. Error messages are printed if INFO.NE.INFOT or if SRNAME.NE.SRMANT, where INFOT and SRNAMT are values stored in COMMON. Arguments ========= SRNAME (input) CHARACTER*6 The name of the subroutine calling XERBLA. This name should match the COMMON variable SRNAMT. INFO (input) INTEGER The error return code from the calling subroutine. INFO should equal the COMMON variable INFOT. Further Details ======= ======= The following variables are passed via the common blocks INFOC and SRNAMC: INFOT INTEGER Expected integer return code NOUT INTEGER Unit number for printing error messages OK LOGICAL Set to .TRUE. if INFO = INFOT and SRNAME = SRNAMT, otherwise set to .FALSE. LERR LOGICAL Set to .TRUE., indicating that XERBLA was called SRNAMT CHARACTER*6 Expected name of calling subroutine */ infoc_1.lerr = TRUE_; if (*info != infoc_1.infot) { if (infoc_1.infot != 0) { io___1.ciunit = infoc_1.nout; s_wsfe(&io___1); do_fio(&c__1, srnamc_1.srnamt, (ftnlen)6); do_fio(&c__1, (char *)&(*info), (ftnlen)sizeof(integer)); do_fio(&c__1, (char *)&infoc_1.infot, (ftnlen)sizeof(integer)); e_wsfe(); } else { io___2.ciunit = infoc_1.nout; s_wsfe(&io___2); do_fio(&c__1, srname, (ftnlen)6); do_fio(&c__1, (char *)&(*info), (ftnlen)sizeof(integer)); e_wsfe(); } infoc_1.ok = FALSE_; } if (s_cmp(srname, srnamc_1.srnamt, (ftnlen)6, (ftnlen)6) != 0) { io___3.ciunit = infoc_1.nout; s_wsfe(&io___3); do_fio(&c__1, srname, (ftnlen)6); do_fio(&c__1, srnamc_1.srnamt, (ftnlen)6); e_wsfe(); infoc_1.ok = FALSE_; } return 0; /* End of XERBLA */ } /* xerbla_ */