HP MLIB for PA-RISC and Itanium HP-UX Version 9.5.6 Release Note

HP MLIB for PA-RISC and Itanium HP-UX Version 9.5.6 Release Note
Known Problems and Workarounds
19
User and library subprogram name conflicts
Some applications make use of some MLIB subprograms, but not others. For example, an
application may use the MLIB matrix-multiplication subprogram, DGEMM, but have its own
subprogram DCOPY. A subroutine name conflict occurs because DGEMM calls DCOPY and
expects the functionality of the MLIB DCOPY subprogram. DGEMM fails if the user’s version
of DCOPY performs a different operation.
Use one of the following workarounds:
Change your source code to rename the application subprograms that are colliding with
the MLIB namespace.
Use the Fortran 90 compiler command line option +pre_include=file to rename the
colliding subprograms without changing your source code.
For example, to rename DCOPY:
Create a file containing the f90 compiler directive and include the
+pre_include=file option on your f90 compile command line:
% !$HP$ ALIAS dcopy='_dcopy'
% f90 +pre_include=file main.f dcopy.f
Work length for LAPACK standard eigensolver routine ZHEEVD
In the LAPACK User's Guide, documentation of the routine ZHEEVD (JOBZ, UPLO, N, A,
LDA, W, WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK, INFO) specifies if JOBZ =
'V' and N > 1, LWORK must be at least 2*N + N**2. However, to achieve optimum
performance, LWORK must be at least 2*N + N**2 + NB*N, where NB is the optimal block
size for ZUNMQR that is computed by the function ILAENV. Enough work space allows
LAPACK computational routines to go through block versions of algorithms with optimum
performance.