I have a fortran DLL, called by a vb.net program, in which I perform some matrix calculations. I have to used the /heap_arrays flag because I get stack overflow when running. Now the code runs fine but very very slow. I added the flag "/check:arg_temp_created" to the compiler to see if it is any non-contigous array, and it tells me that there's an array Kred which is "temporary". This array has been declared as:
real*8,allocatable,dimension(:,:) :: Kred
and, after it has been allocated and filled, it is passed to the MKL routine DSYSV:
CALL DSYSV('Lower', red, 1, -Kred, red, pivot, Fred, red, WORK, LWORK,IERR)
The question is: why this warning just on MKL? because it is just passed in a call?
And second: how can I speed the code? Basically, I cannot modify some arrays copies inside the code.
The DLL is compiled in "Release", I'm using intel compiler XE in VS 2008, project in 32-bit, Windows 7 64bit.