- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
My question is perhaps very bugging since I'm a complete novice.. Could you please advice me about properly linking & compiling my F90 code to use MKL Lapack routines & libraries.. I can already use all MKL Lapack routines without problems but when I try to use a function (like real*8 function dlange), the compilation fails & gives an error like this:
--------------------------------------------------------------------------------------------------------------------------------
srihari@simpatix101:~/atomion/1Dho/propamicro_AngFort$ make -f Make_test
ifort -openmp -O0 -g -check bounds -traceback -heap-arrays -I /opt/intel/Compiler/11.1/089/Frameworks/mkl/include/ -c /homes/srihari/atomion/1Dho/propamicro_AngFort/hills.f90
ifort -openmp -O0 -g -check bounds -traceback -heap-arrays -c /homes/srihari/atomion/1Dho/source/Libs/mothpl.f90
ifort -openmp -O0 -g -check bounds -traceback -heap-arrays -c /homes/srihari/atomion/1Dho/source/Libs/vsrtrd.f
ifort -openmp -O0 -g -check bounds -traceback -heap-arrays -I /opt/intel/Compiler/11.1/089/Frameworks/mkl/include/ -c /homes/srihari/atomion/1Dho/source/Libs/matmulpar.f90
ifort -openmp -O0 -g -check bounds -traceback -heap-arrays -c /homes/srihari/atomion/1Dho/source/Libs/lglnodes.f90
ifort -openmp -O0 -g -check bounds -traceback -heap-arrays -c /homes/srihari/atomion/1Dho/source/Libs/pleg5.f90
ifort -openmp -O0 -g -check bounds -traceback -heap-arrays -c /homes/srihari/atomion/1Dho/source/Libs/kingll.f90
ifort -openmp -O0 -g -check bounds -traceback -heap-arrays -c /homes/srihari/atomion/1Dho/source/Libs/tkingl_mod.f90
ifort -openmp -O0 -g -check bounds -traceback -heap-arrays -c /homes/srihari/atomion/1Dho/propamicro_AngFort/test.f90
/homes/srihari/atomion/1Dho/propamicro_AngFort/test.f90(19): error #6404: This name does not have a type, and must have an explicit type. [DLANGE]
nrm=dlange('1', 10, 10, bla, 10, work)
-----^
compilation aborted for /homes/srihari/atomion/1Dho/propamicro_AngFort/test.f90 (code 1)
make: *** [test.o] Error 1
--------------------------------------------------------------------------------------------------------------------------------
I have attacked my make file here for reference..
details: Using Intel MKL 11.1 on Linux on AMD64 architecture. Multithreaded dynamic linking with LP64. I'm using Intel OpenMP libraries..
I have added *.txt extension just to upload here without problems..
Any & all help will be greatly appreciated! Thanks !
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Correction, the displayed error for the attached make file is this one posted here..
------------------------------------------------------------------------------------------------------------------------
srihari@simpatix101:~/atomion/1Dho/propamicro_AngFort$ make -f Make_propamicro_linux
ifort -O0 -g -check bounds -traceback -heap-arrays -I /opt/intel/Compiler/11.1/089/Frameworks/mkl/include/ -c /homes/srihari/atomion/1Dho/propamicro_AngFort/hills.f90
ifort -O0 -g -check bounds -traceback -heap-arrays -c /homes/srihari/atomion/1Dho/source/Libs/de2p_sort.f
ifort -O0 -g -check bounds -traceback -heap-arrays -c /homes/srihari/atomion/1Dho/source/Libs/pleg5.f90
ifort -O0 -g -check bounds -traceback -heap-arrays -c /homes/srihari/atomion/1Dho/source/Libs/kingll.f90
ifort -O0 -g -check bounds -traceback -heap-arrays -c /homes/srihari/atomion/1Dho/source/Libs/lglnodes.f90
ifort -O0 -g -check bounds -traceback -heap-arrays -c /homes/srihari/atomion/1Dho/source/Libs/tkingl_mod.f90
ifort -O0 -g -check bounds -traceback -heap-arrays -c /homes/srihari/atomion/1Dho/source/Libs/mothpl.f90
ifort -O0 -g -check bounds -traceback -heap-arrays -I /opt/intel/Compiler/11.1/089/Frameworks/mkl/include/ -c /homes/srihari/atomion/1Dho/source/Libs/matmulpar.f90
ifort -O0 -g -check bounds -traceback -heap-arrays -I /opt/intel/Compiler/11.1/089/Frameworks/mkl/include/ -c /homes/srihari/atomion/1Dho/source/Libs/matinv.f90
ifort -O0 -g -check bounds -traceback -heap-arrays -I /opt/intel/Compiler/11.1/089/Frameworks/mkl/include/ -c /homes/srihari/atomion/1Dho/source/Libs/mldivide.f90
ifort -O0 -g -check bounds -traceback -heap-arrays -I /opt/intel/Compiler/11.1/089/Frameworks/mkl/include/ -c /homes/srihari/atomion/1Dho/source/Libs/mldivrect.f90
ifort -O0 -g -check bounds -traceback -heap-arrays -c /homes/srihari/atomion/1Dho/source/Libs/vsrtrd.f
ifort -O0 -g -check bounds -traceback -heap-arrays -c /homes/srihari/atomion/1Dho/source/Libs/m_mrgrnk.f90
ifort -O0 -g -check bounds -traceback -heap-arrays -c /homes/srihari/atomion/1Dho/propamicro_AngFort/get_input.f90
ifort -O0 -g -check bounds -traceback -heap-arrays -lmkl_lapack -I /opt/intel/Compiler/11.1/089/Frameworks/mkl/include/ -c /homes/srihari/atomion/1Dho/propamicro_AngFort/JMpropMod.f90
/homes/srihari/atomion/1Dho/propamicro_AngFort/JMpropMod.f90(562): error #6404: This name does not have a type, and must have an explicit type. [DLANGE]
norm='1'; xnrm1=dlange(norm, nc, nc, tmp1, nc, work)
------------------^
compilation aborted for /homes/srihari/atomion/1Dho/propamicro_AngFort/JMpropMod.f90 (code 1)
make: *** [JMpropMod.o] Error 1
------------------------------------------------------------------------------------------------------------------------
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It is incorrect for you to expect that the Fortran compiler should know the type of a function other than a Fortran intrinsic function. In particular, the routines in MKL are not required to be available in any standard-conforming Fortran compiler package.
You must provide a type declaration for external functions that are referenced in expressions when the implicit type convention gives an incorrect type or if IMPLICIT NONE is in effect. Do you have an IMPLICIT NONE declaration in your subprogram that calls dlange() ?
In your specific case, dlange() is of type DOUBLE PRECISION, but the default type for variables and functions starting with 'D' is REAL.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Realized the mistake was in my code.. thanks for the reply! :)

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