- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
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
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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:
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]
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page