Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

Why the include path is always wrong?

xu_jocelyn
Beginner
479 Views

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

0 Kudos
4 Replies
xu_jocelyn
Beginner
479 Views

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?

0 Kudos
TimP
Honored Contributor III
479 Views
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.
0 Kudos
xu_jocelyn
Beginner
479 Views

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!

0 Kudos
Andrey_N_Intel
Employee
479 Views

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.

0 Kudos
Reply