p { margin-bottom: 0.1in; line-height: 120%; }
Hello,
I have a question regarding compiling a program containing cluster_sparse_solve.
I have developed a program for 3D flow field calculation using finite element method, using Intel parallel studio in my laptop, which is working with WINDOWS OS. I have compiled the program using the following lines:
step1 :
set path=C:\MyIntel\IntelSWTools\compilers_and_libraries_2017.4.210\windows\redist\intel64\mkl; C:\MyIntel\IntelSWTools\compilers_and_libraries_2017.4.210\windows\redist\intel64\compiler;C:\MyIntel\IntelSWTools\compilers_and_libraries_2017.4.210\windows\redist\intel64\tbb\vc_mt;%path%
step 2 :
set lib=C:\MyIntel\IntelSWTools\compilers_and_libraries_2017.4.210\windows\mkl\lib\intel64;%lib%
for the mentioned lined, I have used mkl_link_tool mpiifort C:\FORTRAN\Programmes\MPI\main01.f90
Then, after setting the path and libraries, I have used the followings:
step 3:
mpiifort USEFULLS.f90 CONSTANTS.f90 PRE_PROCESSOR_3D.f90 DATATYPES.f90 VEL_SUBS.f90 SPARSE_SUB.f90 -I"C:\MyIntel\IntelSWTools\compilers_and_libraries_2017.4.210\windows\mkl\include""parallel01.f90" mkl_intel_lp64.lib mkl_intel_thread.lib mkl_core.lib mkl_blacs_intelmpi_lp64.lib impi.lib libiomp5md.lib -o Pstatic -heap-arrays
It works perfectly, without any problem. Also, I shall add that I have also compiled the program using dynamic libraries, as well. (I have used the the online link advisor for the recently mentioned line (step 3)- https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/)
But, I want to use the in a better computer which has Intel parallel Studio just under a LINUX OS. I have used again the online link advisor and then I have used the following to compile my code:
mpiifort USEFULLS.f90 CONSTANTS.f90 PRE_PROCESSOR_3D.f90 DATATYPES.f90 VEL_SUBS.f90 SPARSE_SUB.f90 -I. /opt/intel/compilers_and_libraries_2017.4.196/linux/mkl/include "parallel01.f90" -Wl,--start-group . /opt/intel/compilers_and_libraries_2017.4.196/linux/mkl/lib/intel64/libmkl_intel_lp64.a . /opt/intel/compilers_and_libraries_2017.4.196/linux/mkl/lib/intel64/libmkl_intel_thread.a . /opt/intel/compilers_and_libraries_2017.4.196/linux/mkl/lib/intel64/libmkl_core.a . /opt/intel/compilers_and_libraries_2017.4.196/linux/mkl/lib/intel64/libmkl_blacs_intelmpi_lp64.a -Wl,--end-group -liomp5 -lpthread -lm -ldl -o Pstatic -heap-arrays
But I do not know:
a – How to determine the path and libraries in linux system (I mean what is mentioned in step 1 and step 2, but for linux)
b – How to find the suitable lines and libraries in linux system
c - I have found mkl_link_tool in linux instalation directory, but it does not work! Why?
At the moment, it gives the following errors:
parallel01.f90(17): error #7002: Error in opening the compiled module file. Check INCLUDE paths. [MKL_CLUSTER_SPARSE_SOLVER]
USE MKL_CLUSTER_SPARSE_SOLVER
------------^
parallel01.f90(61): error #6457: This derived type name has not been declared. [MKL_CLUSTER_SPARSE_SOLVER_HANDLE]
TYPE(MKL_CLUSTER_SPARSE_SOLVER_HANDLE) :: CPT(64)
-------------^
parallel01.f90(268): error #6404: This name does not have a type, and must have an explicit type. [CPT]
CPT(:)%dummy = 0
--------^
parallel01.f90(268): error #6514: Substring or array slice notation requires CHARACTER type or array. [CPT]
CPT(:)%dummy = 0
--------^
parallel01.f90(268): error #6460: This is not a field name that is defined in the encompassing structure. [DUMMY]
CPT(:)%dummy = 0
---------------^
parallel01.f90(268): error #6158: The structure-name is invalid or is missing. [CPT]
CPT(:)%dummy = 0
--------^
compilation aborted for parallel01.f90 (code 1)
Best regards
Mehdi