- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I recently upgrades to XE2013 to get access to the extended eigensolvers in the MKL11 libraries.
I am trying to use dfeast_scsrev but am getting some compilation errors.
Here is my code:
SUBROUTINE TTTT(IVECT,STIFFNESS_MATRIX)
USE SPARSE_MATRIX_CLASS
! INCLUDE 'mkl_solvers_ee.fi'
INTEGER::fpm(128)
REAL(8)::EMIN,EMAX,EPSOUT
REAL(8),ALLOCATABLE::E(:),X(:,:),RES(:)
INTEGER::M0,LOOP,INFO,M
INTEGER::IVECT(*)
TYPE(SPARSE_MATRIX)::STIFFNESS_MATRIX
CALL SPARSE_MATRIX_STORAGE('CSR',STIFFNESS_MATRIX)
call feastinit (fpm)
EMIN=0D0 ; EMAX=1000D0 ; M0=ivect(12)
ALLOCATE(E(M0),X(IVECT(12),M0),RES(M0))
call dfeast_scsrev('L',ivect(12),STIFFNESS_MATRIX%MATRIX,STIFFNESS_MATRIX%ROWS(1:ivect(12)+1),STIFFNESS_MATRIX%COLUMNS,fpm, epsout, loop, emin,emax, m0, e, x, m, res, info)
RETURN
END SUBROUTINE
When I compile this code I get three errors:
C:\RMA\Programs\EFE_V1.0\ansys\SSSS.f90(24): error #8055: The procedure has a dummy argument that has the ALLOCATABLE, ASYNCHRONOUS, OPTIONAL, POINTER, TARGET, VALUE or VOLATILE attribute. Required explicit interface is missing from original source. [MATRIX]
C:\RMA\Programs\EFE_V1.0\ansys\SSSS.f90(24): error #8055: The procedure has a dummy argument that has the ALLOCATABLE, ASYNCHRONOUS, OPTIONAL, POINTER, TARGET, VALUE or VOLATILE attribute. Required explicit interface is missing from original source. [ROWS]
C:\RMA\Programs\EFE_V1.0\ansys\SSSS.f90(24): error #8055: The procedure has a dummy argument that has the ALLOCATABLE, ASYNCHRONOUS, OPTIONAL, POINTER, TARGET, VALUE or VOLATILE attribute. Required explicit interface is missing from original source. [COLUMNS]
If I uncomment the include statement I get the following error:
SSSS.f90
C:\Program Files\Intel\Composer XE 2013 SP1\mkl\include\mkl_solvers_ee.fi(459): error #8000: There is a conflict between local interface block and external interface block. [SA]
The type Sparse_Matrix is:
TYPE SPARSE_MATRIX
INTEGER::NUMBER_OF_ROWS=0
INTEGER::NUMBER_OF_COLUMNS=0
INTEGER::NUMBER_OF_NON_ZEROS=0
INTEGER,ALLOCATABLE::ROWS(:)
INTEGER,ALLOCATABLE::COLUMNS(:)
REAL(8),ALLOCATABLE::MATRIX(:)
END TYPE SPARSE MATRIX
Any help in solving this issue would be gratefully received.
Thanks, ACAR
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I can not compile your code here, as many of structure is missed in the source code. Yes, you need to need to uncomment the include. You can put before the function call. For example:
INCLUDE 'mkl_solvers_ee.fi'
SUBROUTINE TTTT(IVECT,STIFFNESS_MATRIX)
USE SPARSE_MATRIX_CLASS
Thanks,
Chao
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Thanks for looking at my problem. All the structures were actually there but for simplicity here is a self-contained version which exhibits the same problem:
SUBROUTINE INTEL
! INCLUDE 'mkl_solvers_ee.fi'
INTEGER::fpm(128)
REAL(8)::EMIN,EMAX,EPSOUT
REAL(8),ALLOCATABLE::E(:),X(:,:),RES(:)
INTEGER::M0,LOOP,INFO,M,N
CHARACTER(1)::UPLO='L'
INTEGER::IVECT(100)
TYPE SPARSE_MATRIX
REAL(8),ALLOCATABLE::MATRIX(:)
INTEGER,ALLOCATABLE::ROWS(:)
INTEGER,ALLOCATABLE::COLUMNS(:)
END TYPE SPARSE_MATRIX
TYPE(SPARSE_MATRIX)::STIFFNESS_MATRIX
N=IVECT(12)
ALLOCATE(STIFFNESS_MATRIX%MATRIX(N))
ALLOCATE(STIFFNESS_MATRIX%ROWS(N))
ALLOCATE(STIFFNESS_MATRIX%COLUMNS(N))
call feastinit (fpm)
EMIN=0D0 ; EMAX=1000D0 ; M0=N
ALLOCATE(E(M0),X(N,M0),RES(M0))
call dfeast_scsrev(UPLO,N,STIFFNESS_MATRIX%MATRIX,STIFFNESS_MATRIX%ROWS(1:N+1),STIFFNESS_MATRIX%COLUMNS,fpm, epsout, loop, emin,emax, m0, e, x, m, res, info)
RETURN
END SUBROUTINE
The routine does not compile either as is or when the include is uncommented and the errors are as reported in my first note.
Thanks,
ACAR.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I realise that I've not initialised any of the arrays but that should not affect the compilation...
ACAR
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The code that you listed in #3 gets compiled by the 14.0.3.202 compiler without any error messages being output.
Please provide more details of your system, compiler version, etc., to enable reproducing the errors that you mentioned.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks mecej4 for testing out my code on your system and pleased to hear that there is nothing wrong with my code!
My system details are:
Intel(R) Visual Fortran Composer XE 2013 SP1 Update 3 Integration for Microsoft Visual Studio* 2008, 14.0.0092.2008, Copyright (C) 2002-2014 Intel Corporation.
Include:
C:\Program Files\Intel\Composer XE 2013 SP1\mkl\include
C:\Program Files\Intel\Composer XE 2013 SP1\compiler\include
Libraries:
C:\Program Files\Intel\Composer XE 2013 SP1\mkl\lib\ia32
C:\Program Files\Intel\ComposerXE-2011\compiler\lib\ia32
I realise the compiler libraries have not been updated but if I do it gives issues that I would like to avoid solving at the moment.
Cheers,
ACAR.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Please check whether the source file that you are editing is the same as the one that gets compiled, and whether you have more than one source file with the same name in your directory tree. After all, I tried the same compiler version on Windows 8.1, and there were no errors reported.
You may also check by compiling the file using the IFort command window, after moving to the correct subdirectory.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for your input mecej4 but I am confident that it is this file that I am compiling and that there are no duplicates - the errors reported relate specifically to the file and it's contents.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
Would it be possible to attach your file here? It may to us to compile the code here.
Thanks,
Chao
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Guys,
I think the problem might be that I am pointing to my old XE2011 libraries since I was and am still having the following linker error:
Error 3 error LNK2019: unresolved external symbol ___intel_VEC_memcpy referenced in function _MENU_F90_mp_GMSETWIDGETINFO GMENUWI8.LIB(menu_f90.obj)
I have posted this in the FORTRAN forum so let's see what happens.
Thanks,
ACAR.

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