- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

I am Mehdi and this is my first time using this forum.

I need to used cluster_sparse_solver in my FORTRAN Finite Element program. Because the degree of freedom of my system is very high (1^6), the number of nonzero members in the stiffness matrix (A in Ax=B) will be also very high in a way that I can not store the number of non-zero in an integer number with type 4 and I must use integer(8). Therefore, the parameter ia (row indexing of sparse matrix) must be integer(8).

In this situation, how I should compile my program. I have tried to use 4 bit and 8 bit libraries, during compiling of my program and none of them are working. Shall I use all of the integers in my program with type integer(8)? When ia in integer(8) and ja is integer(4), is it possible to compile the program?

Please help me. I can provide any more information you may need.

Bests

Mehdi

Link Copied

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Hi Mehdi, your issue is related to Intel Math Kernel Library, I will transfer your issue to the MKL forum. Thanks.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Hi Mehdi,

Just use MKL_INT instead of int type for whole program - it allow you to switch between 4 and 8 bytes integer using compiling flag -i8 during compiling and link _lp64 or _ilp64 libraries corresponded. Correct link line can be found here:

https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/

As about pardiso parameters - ia and ja need to be set to same MKL_INT type. However, in case of lp64 library you can use 8byte input parameters in direct solver using pardiso_64 interface. Details here:

https://software.intel.com/en-us/mkl-developer-reference-fortran-pardiso-64

Thanks,

Alex

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Hi Alex,

I do not know how to use MKL_INT in my FORTRAN program. Can you please explain me. As far as I found on the web, MKL_INT is used for C++ compilers not FORTRAN.

I have also a question regarding cluster_sparse_solver_64:Should I define ia and ja as well as all of the parameters using integer(8)? by that I mean:

TYPE(MKL_CLUSTER_SPARSE_SOLVER_HANDLE) :: PT(64)

INTEGER(8) :: MAXFCT, MNUM, MTYPE, PHASE, N , MSGLVL

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Hi Alex,

I do not know how to use MKL_INT in my FORTRAN program. Can you please explain me. As far as I found on the web, MKL_INT is used for C++ compilers not FORTRAN.

I have also a question regarding cluster_sparse_solver_64:Should I define ia and ja as well as all of the parameters using integer(8)? by that I mean:

TYPE(MKL_CLUSTER_SPARSE_SOLVER_HANDLE) :: PT(64)

INTEGER(8) :: MAXFCT, MNUM, MTYPE, PHASE, N , MSGLVL

INTEGER(8) :: PERM(1), NRHS, ERROR, IPARM(64) , COMM

Thanks

Mehdi

Hi Mehdi,

Just use MKL_INT instead of int type for whole program - it allow you to switch between 4 and 8 bytes integer using compiling flag -i8 during compiling and link _lp64 or _ilp64 libraries corresponded. Correct link line can be found here:

https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/

As about pardiso parameters - ia and ja need to be set to same MKL_INT type. However, in case of lp64 library you can use 8byte input parameters in direct solver using pardiso_64 interface. Details here:

https://software.intel.com/en-us/mkl-developer-reference-fortran-pardiso-64

Thanks,

Alex

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