- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
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 copiado
- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
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
------------------------------------------------------------------------------------------------------------------------
- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
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.
- Marcar como novo
- Marcador
- Subscrever
- Silenciar
- Subscrever fonte RSS
- Destacar
- Imprimir
- Denunciar conteúdo inapropriado
Realized the mistake was in my code.. thanks for the reply! :)
- Subscrever fonte RSS
- Marcar tópico como novo
- Marcar tópico como lido
- Flutuar este Tópico para o utilizador atual
- Marcador
- Subscrever
- Página amigável para impressora