XERBLA(3)

πŸ“¦ version 3.12.0, in opensuse-leap 16.0

πŸ’… XERBLA(3) β€” like, the test-only error handler, bestie

okay so real talk, this page lives in the Library Functions Manual and the file path situation is a whole journey: /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/LIN/xerbla.f. yes that's the actual path. no I'm not kidding. 🫢


✨ NAME ✨

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/LIN/xerbla.f

like... that's it. that's the name. it's giving "find me in the TESTING/LIN folder or don't find me at all" energy πŸ’€


πŸ¦‹ SYNOPSIS πŸ¦‹

Functions/Subroutines

subroutine XERBLA (srname, info)
    XERBLA

πŸ‘‘ Function/Subroutine Documentation πŸ‘‘

subroutine XERBLA (character*(*) srname, integer info)

XERBLA β€” iconic name, iconic subroutine, and yes it gets its own little heading twice because the docs are extra like that.

🌸 Purpose 🌸

okay so listen, this is not the normal XERBLA. 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. it's the understudy. the stunt double. the one that shows up only in testing. πŸŽ€

the vibe: error messages are printed if INFO.NE.INFOT or if SRNAME.NE.SRNAMT, where INFOT and SRNAMT are values stored in COMMON. so it's like a vibe check for your error handling β€” if you don't match, it will say something. periodt.


🧚 Parameters 🧚

  • SRNAME β€” SRNAME is CHARACTER*(*). it's the name of the subroutine calling XERBLA, and bestie, this name should match the COMMON variable SRNAMT. that's the whole assignment. mismatch = printed complaint. πŸ™ˆ
  • INFO β€” INFO is INTEGER. it's the error return code from the calling subroutine, and INFO should equal the COMMON variable INFOT. also a matching situation. also will get called out if it doesn't line up. 😭

πŸ’œ Author πŸ’œ

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

look at that group project roster. four institutions carrying the whole thing. slay. πŸ”₯


🌈 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*(*) β€” expected name of calling subroutine

like, it's a whole little state machine living in COMMON blocks and honestly? i'm obsessed. OK goes .TRUE. only when both things match β€” everything else flips it to .FALSE. and LERR lights up to say "yep, XERBLA got called." πŸ’…

ngl, all of this is common-block global state, so treat INFOC and SRNAMC with the respect you'd give someone else's group chat. don't go renaming things. 🫢

⭐ Definition ⭐

Definition at line 74 of file xerbla.f.


🌸 Author (the second one, yes really) 🌸

Generated automatically by Doxygen for LAPACK from the source code. not a human. a robot did this. and it ate. πŸ€–βœ¨


and that's the page!! the footer says it's LAPACK, Version 3.12.0, dated /home/abui...IN/xerbla.f(3) β€” so yeah, LAPACK 3.12.0, cute little truncated date stamp and all. mwah, bye bestie πŸ’–πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from