in my quest to get a 64-bit version of Dirac running on the NERSC Cray's, I was able to get a good 64-bit version of OpenMPI built (4.0.2) and seemed to successfully build Dirac using gcc with 64-bit integers. I've linked to the Intel MKL libraries (which I do on my local linux cluster as well). However when I run a test with this version of Dirac I get the failure:
WARNING: Self test failed!
Call to LAPACK(DSYEVR) failed with integer*8, but
worked with integer*4 arguments. However, DIRAC is
configured to use integer*8 (64 bit integers).
even though it looks to me like the 64-bit versions of MKL are being used:
Math libraries | -Wl,--start-group;/opt/intel/compilers_and_libraries_2020.2.254/linux/mkl/lib/intel64/libmkl_lapack95_ilp64.a;/opt/intel/compilers_and_libraries_2020.2.254/linux/mkl/lib/intel64/libmkl_gf_ilp64.so;-fopenmp;-Wl,--end-group;-Wl,--start-group;/opt/intel/compilers_and_libraries_2020.2.254/linux/mkl/lib/intel64/libmkl_gf_ilp64.so;/opt/intel/compilers_and_libraries_2020.2.
This is also confirmed by invoking the ldd command on the dirac.x program.
In case anyone was thinking about this, please ignore. I got this sorted out this morning.
the self-test seemed to be doing exactly what it was supposed to do. The environment on the Cray I was building on was somehow set so that while it was finding the blas libraries correctly, it was somehow defaulting to some internal cray math library for lapack. I got around it by not using any of the cray compiler wrappers (that they strongly suggest using) and going with a standard mpif90, etc. from my 64-bit openmpi build. This simplified everything and it seems to work just fine (although I get some weird mpi errors after the job successfully finishes which I am going to ignore at this point).