Dear Garold,

When compiling on a xeon you should do
./configure -p4
because the configuration process doesn't recognise the xeon processor.

Also mkl6.0 puts the blas files in a different directory than configure expects and so it doesn't see them. As a workaround if you do
ln -s /opt/intel/mkl60 /opt/intel/mkl
then configure will give you the right options for linking in the blas:
-L/opt/intel/mkl/lib/32 -lmkl_p4 -Wl,-rpath,/opt/intel/mkl/lib/32
and the lapack:
-L/opt/intel/mkl/lib/32 -lmkl_lapack -Wl,-rpath,/opt/intel/mkl/lib/32
which you can then change from mkl to mkl60 if you want.


The reason you're getting the conflicts is because configure didn't find lapack so you don't have the lapack preprocessor flag set and molpro is delivering it's own lapack routines in addition to the one's you linked in with mkl_lapack.

So you should delete your CONFIG file and after the configure process you should see the following lines in your CONFIG file:
FTCFLAGS="blas1 blas2 blas3 lapack"
BLASLIB="-L/opt/intel/mkl/lib/32 -lmkl_p4 -Wl,-rpath,/opt/intel/mkl/lib/32 "
LAPACKLIB="-L/opt/intel/mkl/lib/32 -lmkl_lapack -Wl,-rpath,/opt/intel/mkl/lib/32 "
ARCHNAME="p4"
BLASLIB_p4="-L/opt/intel/mkl/lib/32 -lmkl_p4 -Wl,-rpath,/opt/intel/mkl/lib/32 "
LAPACKLIB_p4="-L/opt/intel/mkl/lib/32 -lmkl_lapack -Wl,-rpath,/opt/intel/mkl/lib/32 "


Hope it works,
Best wishes,
Nick Wilson

Garold Murdachaew wrote:
Dear molpro experts,

I am trying to compile molpro2002.6 with the intel fortran compiler ifc7.1 and
the intel blas mkl6.0 on a dual Xeon.  I am trying to first successfully compile
a single processor binary before I even consider an mpp version.

The first problem that had to be fixed was the Red Hat 9 / ifc incompatibilty
problem which was done as described in

http://www.wien2k.at/reg_user/faq/redhat90.html

The next problem was that apparently the new mkl6.0 (as opposed to the previous
mkl5.2) defines the functions / subroutines blas2, lsame, and xerbla which occur
in a molpro file, molpro2002.6/src/blas/blas2.f.  The simple remedy is to make
these changes in the file (change names of these routines from XERBLA to
XXERBLA, etc., when they are defined to avoid the conflict and use the mkl-
supplied routines instead):

        % diff blas2.f_original blas2.f
2c2
<        subroutine blas2
---

subroutine bblas2

5c5 < SUBROUTINE XERBLA ( SRNAME, INFO ) ---

SUBROUTINE XXERBLA ( SRNAME, INFO )

14c14 < * XERBLA is an error handler for the Level 2 BLAS routines. ---

* XXERBLA is an error handler for the Level 2 BLAS routines.

27c27 < * called XERBLA. ---

* called XXERBLA.

48c48 < * End of XERBLA. ---

* End of XXERBLA.

53c53 < LOGICAL FUNCTION LSAME( CA, CB ) ---

LOGICAL FUNCTION LLSAME( CA, CB )

67c67 < * LSAME returns .TRUE. if CA is the same letter as CB regardless of ---

* LLSAME returns .TRUE. if CA is the same letter as CB regardless of

87,88c87,88 < LSAME = CA.EQ.CB < IF( LSAME ) ---

     LLSAME = CA.EQ.CB
     IF( LLSAME )

131c131 < LSAME = INTA.EQ.INTB ---

LLSAME = INTA.EQ.INTB

135c135 < * End of LSAME ---

* End of LLSAME


This seems to work and I can compile and link without errors. (I forgot to mention that in configuring I chose blas level 3 so shouldn't the mkl blas be used by default? Oh, I guess it's a new change in mkl in going from version 5.2 to 6.0.)

However, when I subsequently do:

% make quicktest >& make_quicktest.log &

the log shows, e.g.,

Running test job h2o_vdz.test
** Address Error **
End of diagnostics
I would appreciate your suggestions.


By the way, I should mention that I am successfully running molpro2002.6 installed from an rpm on this system.

Thank you for your time and attention,
Garold Murdachaew


ps: I am including the CONFIG file, the make_quicktest.log file, and the report.2002.6.unix-linux.mp20.garold.4.0.ifc.tar.gz as attachments.






Reply via email to