Accessing VECLIB
SUBROUTINE XERBLA(SRNAME,INFO)
ENTRY XERBLA_SRNAME,INFO)
...
• Use f90 ALIAS directives and provide both xerbla and xerbla_ entry points:
!$HP$ ALIAS xerbla='xerbla' !$HP$ ALIAS xerbla_='xerbla_'
SUBROUTINE XERBLA(SRNAME,INFO) ENTRY XERBLA_(SRNAME,INFO)
...
The ALIAS directives prevent the compiler from postpending the underbar onto the entry points and external references to XERBLA.
Use the following workaround on Itanium if you are compiling your own C version of XERBLA:
•Undefine any previous aliasing from include files and provide both xerbla and xerbla_ entry points explicitly:
#undef xerbla #undef xerbla_
void xerbla (char*name, int*iarg, size_t len_name){
...
}
void xerbla_ (char*name, int*iarg, size_t len_name){ xerbla (name, iarg, len_name);
}
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
•+noppu
•Another MLIB subprogram used by your program also calls that subprogram
Also note that all the workarounds listed for Itanium are more generic and can also be used for
!$HP$ ALIAS mlib_routine='mlib_routine' !$HP$ ALIAS mlib_routine_='mlib_routine_'
16HP MLIB User’s Guide