- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
LoTekFEAfa.obj : error LNK2019: unresolved external symbol _DDOT_MKL95 referenced in function _MOD_DIRECT_SOLVERS_EX_mp_LIN_LU_SOLVE
I put the MKL DOT interface in a module called MODULE mod_BLAS_real_int and USEd MODULE mod_BLAS_real_int, ONLY : DOT in the module MOD_DIRECT_SOLVER_EXprocedure LIN_LU_SOLVE.
Please let me know how to source code so that the Fortran 95 interface to the MKL BLAS Level 1 procedures willhave symbolsresolved.
This is the only unresolved external symbol I get. I use other MKL BLAS Level 1 procedures, but have kept their interfaces unchanged (I only changed to the Fortran 95 MKL BLAS Level 1 DOT to experiment), and do not get the unresolved external symbol error.
Find below the module wherein I've placed the interface to DOT. Notice also that the commented out interface for "DDOT" was what I used prior to trying to use the MKL Fortran 95 interface version of DOT, and always it compiled with no errors.
MODULE mod_BLAS_real_int
!
PUBLIC
!
! import BLAS through Intel MKL ( IVF-specific )
! NOTE: updated to MKL Fortran 95 interface of DOT12/05/2005
!
INTERFACE DOT
PURE FUNCTION SDOT_MKL95(X,Y)
! MKL Fortran77 call:
! SDOT(N,X,INCX,Y,INCY)
REAL(KIND(1.0)) :: SDOT_MKL95
REAL(KIND(1.0)), INTENT(IN) :: X(:)
REAL(KIND(1.0)), INTENT(IN) :: Y(:)
END FUNCTION SDOT_MKL95
PURE FUNCTION DDOT_MKL95(X,Y)
! MKL Fortran77 call:
! DDOT(N,X,INCX,Y,INCY)
REAL(KIND(1.0D0)) :: DDOT_MKL95
REAL(KIND(1.0D0)), INTENT(IN) :: X(:)
REAL(KIND(1.0D0)), INTENT(IN) :: Y(:)
END FUNCTION DDOT_MKL95
END INTERFACE DOT
!
INTERFACE
!
! REAL(KIND(1.0D0)) PURE FUNCTION DDOT ( N, DX, INCX, DY, INCY )
! REAL(KIND(1.0D0)), INTENT(IN) :: DX(*), DY(*)
! INTEGER, INTENT(IN) :: INCX, INCY, N
! END FUNCTION DDOT
!
SUBROUTINE DGEMV ( TRANS, M, N, ALPHA, A, LDA, X, INCX, &
BETA, Y, INCY )
REAL(KIND(1.0D0)), INTENT(IN) :: ALPHA, BETA
INTEGER, INTENT(IN) :: INCX, INCY, LDA, M, N
CHARACTER(1), INTENT(IN) :: TRANS
REAL(KIND(1.0D0)), INTENT(IN) :: A( LDA, * ), X( * )
REAL(KIND(1.0D0)), INTENT(INOUT) :: Y( * )
END SUBROUTINE DGEMV
!
REAL(KIND(1.0D0)) PURE FUNCTION DNRM2 ( N, X, INCX )
INTEGER, INTENT(IN) :: INCX, N
REAL(KIND(1.0D0)), INTENT(IN) :: X( * )
END FUNCTION DNRM2
!
REAL(KIND(1.0)) PURE FUNCTION SNRM2 ( N, X, INCX )
REAL(KIND(1.0)), INTENT(IN) :: X(*)
INTEGER, INTENT(IN) :: N, INCX
END FUNCTION SNRM2
!
END INTERFACE
Brian Lamm
Addendum: Apparently identical behavior on Win XP SP2, IA-32,9.0.025,8.0.1,MSVS.NET2003,SDK 3790-1830. Dll build failed link, subsequent exe build succeeded(?),dll build log attached. BL-12/05/2005
Message Edited by blamm on 12-05-2005 07:10 PM
Message Edited by blamm on 12-05-2005 07:16 PM
Link Copied

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page