I cant seem to figure out how to set the Properties to compile and link MKL95 in a DLL.
Here is the code:
SUBROUTINE GET_ROOTS(phi, philen, side, output)
!DEC$ ATTRIBUTES DLLEXPORT::GET_ROOTS
USE mkl95_precision
USE mkl95_lapack, ONLY: HSEQR
INTEGER, INTENT(IN) :: philen
REAL(8), INTENT(IN) :: side
REAL(8), DIMENSION(philen), INTENT(INOUT) :: phi
COMPLEX(16), DIMENSION(philen-1), INTENT(INOUT) :: output
COMPLEX(16), DIMENSION(:,:), ALLOCATABLE :: matrixA
COMPLEX(16), DIMENSION(:), ALLOCATABLE :: roots
INTEGER :: status, dim, i
dim = philen-1
ALLOCATE(matrixA(dim,dim), STAT = status)
ALLOCATE(roots(dim), STAT = status)
roots = 0.0_8
matrixA = 0.0_8
DO i = 1, dim-1
matrixA(1,i) = -1.0_8 * phi(philen-i)/phi(philen)
matrixA(i+1,i) = 1.0_8
END DO
matrixA(1,dim) = -1.0_8 * phi(1)/phi(philen)
CALL HSEQR(matrixA,roots)
output = roots
DEALLOCATE(matrixA)
DEALLOCATE(roots)
return
END SUBROUTINE GET_ROOTSHere are the compilers errors:
>GET_ROOTS.f90 GET_ROOTS\GET_ROOTS\GET_ROOTS.f90(8): error #7002: Error in opening the compiled module file. Check INCLUDE paths. [MKL95_PRECISION] GET_ROOTS\GET_ROOTS\GET_ROOTS.f90(9): error #7002: Error in opening the compiled module file. Check INCLUDE paths. [MKL95_LAPACK] GET_ROOTS\GET_ROOTS\GET_ROOTS.f90(27): error #6406: Conflicting attributes or multiple declaration of name. [HSEQR] GET_ROOTS\GET_ROOTS\GET_ROOTS.f90(9): error #6580: Name in only-list does not exist. [HSEQR] 1>compilation aborted for C:\Users\FrankM\documents\visual studio 2012\Projects\GET_ROOTS\GET_ROOTS\GET_ROOTS.f90 (code 1)
of course the first thing I tried was to set
Sequential (/Qmkl:sequential)
I 've also tried using the advisor and get the same messages.
Help.