Why the include path is always wrong?

Why the include path is always wrong?

Hi,

A program contains mkl_vsl functions. I have some codes as follow,

"Use MKL_VSL
TYPE(VSL_CONV_TASK) :: task

status = vsldConvNewTaskX1D(task,VSL_CONV_MODE_DIRECT,Nt,Nt,Nt,Ram_par,1)
status = vsldConvExecX1D(task,It_1D,1,Ram,1)
errcode = vslConvDeleteTask(task)"

I have already set in IVF,

1) Tools-Options-Compiler Seletion (Libraries-C:Program Files (x86)IntelMKL10.0.012em64tlib, Includes-C:Program Files (x86)IntelMKL10.0.012include)

2) Project--Linker-Input-additional dependencies(mkl_dll.lib libguide40.lib).

3) Running the mklvarsem64t.bat file...

Moreover, the beginning of the program contains "Use MKL_VSL". Afterabve setting, compilation is not completed yet. It still show that,

F:....f90(384) : Error: Error in opening the compiled module file. Check INCLUDE paths. [MKL_VSL]
F:....f90(389) : Error: This derived type name has not been declared. [VSL_CONV_TASK]
F:....f90(416) : Error: This name does not have a type, and must have an explicit type. [TASK]
F:...(416) : Error: This name does not have a type, and must have an explicit type. [VSL_CONV_MODE_DIRECT]
F:....f90(416) : Error: This name does not have a type, and must have an explicit type. [VSLDCONVNEWTASKX1D]
F:....f90(417) : Error: This name does not have a type, and must have an explicit type. [VSLDCONVEXECX1D]
F:...f90(418) : Error: This name does not have a type, and must have an explicit type. [VSLCONVDELETETASK]

...

What'swrong with it? I really have no idea... Could you give me some advices?

btw: I have use the mkl_dfti funcions in the same program quite well.. (It has to use the command "ifort -c mkl_dfti.f90" to creat "mkl_dfti.mod". However, there is "mkl_vsl.fi" only. SoI am afraid that the"mkl_vsl.mod"could not be created. Is it right?)What problem occurs in the mkl_vsl?

Thank you so much!

Jocelyn

5 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Ihave seenin Option-Intel Fortran-General-Fortran File Extensions-Free Format(Source-.f90, Header-nothing), while-Fixed Format(Source-.f;.for;.fpp, Header-.fi;.fd). Doestherelation between the Free Format and mkl_vsl.fi have something to do with the error above?

The failure to find the include file should not be a free vs fixed format issue, unless a file name is mangled by extending it across improperly formatted continuation lines.
Ideally, the Fortran USE include files should be set up so they work in both free format and standard fixed format. It isn't possible to accommodate both of those and also 132-column fixed format, except by eliminating all continuation lines (which has been done in some places). As you point out, the .f90 include files emphasize free format compatibility, and the .fi files emphasize fixed format, but a top quality implementation would eliminate problems in that area.
If you have a fixed vs free format error, it will show up in failure to parse continuation lines.

When the clause "include mkl_vsl.fi" is added before the subroutine, the compiling runs well. I begin to know that the INCLUDE and USE syntax are needed synchronously. The relativesampleis asbelow,

INCLUDE 'mkl_vsl.fi'

SUBROUTINE DDCON(h,inch,x,incx,y,incy,nh,nx,iy0,ny,id)
USE MKL_VSL_TYPE
USE MKL_VSL

btw,whendo we need to use the MKL_VSL_TYPE ?

Thanks so much to all!

MKL_VSL and MKL_VSL_TYPE modules should be included in the applications which use MKLVSL functions (like random number generators or convolution/correlation routines) and the constants related to them.

Leave a Comment

Please sign in to add a comment. Not a member? Join today