HP MLIB User's Guide Vol. 2 7th Ed.

Chapter 11 Introduction to Distributed SuperLU 733
Accessing Distributed SuperLU
PA-RISC processors
Suppose you write your own Fortran version of the XERBLA subroutine. You
compile on PA-RISC with +DA2.0W and the compiler turns on +ppu (See Table
11-2), so your xerbla.o object file has an entry point xerbla_. However, the
PA-RISC MLIB libraries were compiled with +noppu and the entry points with
underbars were added as synonyms to the entry points without underbars.
Hence, the various MLIB subprograms that call XERBLA reference them as
xerbla (without the postpended underbar). Therefore, your xerbla_ does not
satisfy their CALL XERBLA, so the linker accesses xerbla.o from the library.
This file includes both entry points xerbla and xerbla_, and xerbla_ conflicts
with your XERBLA subroutine.
Use one of the following workarounds on PA-RISC if you are compiling your
own Fortran version of XERBLA:
Compile your XERBLA with +noppu. This implies that you also compile any
of your program that calls XERBLA with +noppu, and that you apply this
rule recursively.
Use f90 ALIAS directives:
% !$HP$ ALIAS xerbla='xerbla'
This prevents the compiler from postpending the underbar onto the entry
point and external references for XERBLA.
This problem is not confined to the XERBLA subroutine. It occurs on PA-RISC
when the following conditions are met:
Any subprogram with the same name as a user-visible MLIB subprogram is
compiled in your program with +ppu
Another MLIB subprogram used by your program also calls that
subprogram
Furthermore, the reverse can occur in the PA-RISC 32-bit libraries if you
compile with the +ppu compiler option.
Itanium processors
If you compile on Itanium using the compiler option +noppu your xerbla.o
object has an entry point xerbla (without the postpended underbar). However
the Itanium MLIB libraries were compiled with +ppu option (following the
default behavior described in Table 11-2) and the entry points without
underbars were added as synonyms to the entry points with underbars. Hence
the various MLIB Fortran source subprograms that call XERBLA reference
them as xerbla_. Therefore, your xerbla (without the postpended underbar)
does not satisfy the Fortran calls to XERBLA, so the linker accesses xerbla.o