HP MLIB User's Guide Vol. 2 7th Ed.
704 HP MLIB LAPACK User’s Guide
ScaLAPACK naming conventions
This problem is not confined to the XERBLA subroutine. It occurs on
Itanium when the following conditions are met:
• Any subprogram with the same name as a user-visible MLIB
subprogram is compiled in your program with +noppu
• Another MLIB subprogram used by your program also calls that
subprogram
PA-RISC and Itanium processors
Also note that all the workarounds listed for Itanium are more generic and can
also be used for PA-RISC. Therefore, if you are coding your own version of a
MLIB routine called "mlib_routine" on PA-RISC or Itanium, a Fortran version
might be implemented as:
!$HP$ ALIAS mlib_routine='mlib_routine'
!$HP$ ALIAS mlib_routine_='mlib_routine_'
SUBROUTINE mlib_routine(...)
ENTRY mlib_routine_(...)
...
And a C version might be:
#undef mlib_routine
#undif mlib_routine_
void mlib_routine (...){
...
}
void mlib_routine_(...){
mlib_routine(...);
}
ScaLAPACK naming conventions
Each ScaLAPACK subroutine has a LAPACK equivalent. The ScaLAPACK
subroutine name is simply the LAPACK name prepended by a 'P'. Thus,
subroutine names are greater than the six character Fortran 77 standard. All
driver and computational routine names are of the form PXYYZZZ where for
some driver routines’ seventh character is blank. (Unlike other MLIB libraries,
there is not a version of ScaLAPACK that assumes all integers are 8 bytes in
length.)