Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.

DSS_SOLVE_REAL problem in makefile

sp__zheng
Beginner
900 Views

OBJS = main.f90

main: ${OBJS}

     ifort ${OBJS} ${MKLPATH}/libmkl_blas95_ilp64.a ${MKLPATH}/libmkl_lapack95_ilp64.a -Wl,--start-group ${MKLPATH}/libmkl_intel_ilp64.a ${MKLPATH}/libmkl_core.a ${MKLPATH}/libmkl_sequential.a -Wl,--end-group -openmp -lpthread -lm -mkl=sequential -i8 -I$(MKLHOME)/mkl/include/intel64/ilp64 -I$(MKLHOME)/mkl/include

 

Above is the makefile which i compile, a DSS solver routine is used, but there is an error, shows that 

error #6284: there is no matching specific function for this generic function reference. [DSS_SOLVE_REAL]

but: when i replace dss_solve_real with dss_solve_real_d or dss_solve_real_d_ ,both alternative works fine. no error comes up. 

 Is there something wrong with my makefile?

Thank you.

0 Kudos
4 Replies
mecej4
Honored Contributor III
900 Views

I think that you are looking in the wrong place -- in the makefile.

The error #6284 is from the compiler, and there is probably a mismatch regarding the arguments that you try to pass to dss_solve_real. When you replace CALL dss_solve_real(...) by a call to dss_solve_real_d, an implicit interface is used, so no compile-time checking is done. The code may, however, crash at run time. Please provide a short example source code that exhibits the problem.

0 Kudos
sp__zheng
Beginner
900 Views

this is my example code: dss_sk is a subroutine which is made from a dss solve example just to simplify the code.And the example runs fine but with this subroutine the problem comes up. 

0 Kudos
mecej4
Honored Contributor III
900 Views

The MKL documentation for DSS_SOLVE_REAL indicates that you should change the declaration of the rhs array to a rank-1 array, i.e.,  [fortran]rhs( datavec(1)*datavec(4) )[/fortran] instead of [fortran]rhs( datavec(1),datavec(4) )[/fortran].

0 Kudos
sp__zheng
Beginner
900 Views

thank you for your help, it works fine

0 Kudos
Reply