Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
17 Views

Error compiling Intel mkl scalapack example pcdbdriver

Dear All,
I am using Intel fortran 11.1 intergrated with VS 2008. I am trying to run scalapack example pcdbdriver given in Intel\\Compiler\\11.1\\060\\mkl\\tests\\scalapack\\source\\TESTING\\EIG folder. When I tried to compile it I had compiler error saying "The type of the actual argument differs from the type of the dummy argument. [MEM] ". I did notice that in pcdbdriver source file Mem is defined as complex in pcdbdriver.f and as integer in pcdbinfo.f
Is this just a mistake or am I missing something.
Regards,
newbie2scalapack
0 Kudos
1 Reply
Highlighted
Black Belt
17 Views

The code is from the "bad old days" of Fortran. It was common to pass around uninitialized "work arrays" with no regard to their declared type, because dynamic allocation did not exist. With separate compilation or no argument checking, it will work fine as long as the byte-size of the array is large enough and passed correctly.

There are myriad combinations of compiler switches, Scalapack, Blacs, MPI and MKL libraries that can be used when running the test problems provided with MKL. You should specify which combination you used, since there are too many to try otherwise.

With release 066, which is what I have access to, file pcdbinfo.f does not contain any variable called MEM. However, the 26th argument is the integer array WORK, which corresponds to the actual argument MEM in pcdbdriver.f, which itself is in ...TESTING\LIN, not ...TESTING\EIG as you stated.

Instead of using the makefile, I simply compiled the files

pcdbdriver.f
pcdbinfo.f
pcmatgen.f
pcbmatgen.f
pcdblaschk.f
pcdbmv1.f
pmatgeninc.f

and linked with the libraries

mkl_scalapack_core_dll.lib
mkl_blacs_dll.lib
mkl_intel_c_dll.lib
mkl_sequential_dll.lib

and ran the resulting .exe file with the provided data file BLU.DAT. The results looked plausible:
[bash]...
Finished 12 tests, with the following results:
6 tests completed and passed residual checks.
0 tests completed and failed residual checks.
6 tests skipped because of illegal input values.[/bash]
0 Kudos