Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

Pardiso solver, error 157

ali_z_
Beginner
395 Views

Hi everyone,

I'm using intel visual fortran composer xe 2011 on MVS 2012. I recently start having the error 157 when calling the pardiso solver. 

I keep receiving the following message : "forrtl: severe (157): Program Exception - access violation" followed by the following lines:

Image              PC        Routine            Line        Source
First.exe          01614654  Unknown               Unknown  Unknown
First.exe          015C8658  Unknown               Unknown  Unknown
First.exe          015A3EBF  Unknown               Unknown  Unknown
First.exe          0159F94A  Unknown               Unknown  Unknown
First.exe          0159E9EA  Unknown               Unknown  Unknown
First.exe          01492B25  _MD_NR_mp_LINEAR_        1386  MOD_NR.f90
First.exe          0144475B  _MD_NR_mp_FRAC_NR         241  MOD_NR.f90
First.exe          014E4324  _MAIN__                   196  MAIN-2F-NR-DG.f90
First.exe          014E4324  _MAIN__                   196  MAIN-2F-NR-DG.f90
First.exe          0270B218  Unknown               Unknown  Unknown
                   04DB8350  Unknown               Unknown  Unknown
First.exe          026F8F94  Unknown               Unknown  Unknown

Please note that "First.exe" is my executable file name, the Mod_NR and MAIN-2F-NR-DG are 2 fortran files in my program. The pardiso solver is called withing the MOD_NR file. 
Any help is appreciated.

Thanks,

Ali

 

0 Kudos
6 Replies
mecej4
Honored Contributor III
395 Views

All the symptoms point to errors (wrong type, wrong sequence, missing items) in the argument list passed to Pardiso. Since the argument of Pardiso is rather complicated, it will not be possible to suggest what to do unless you show the source code of the calling subprogram.

0 Kudos
ali_z_
Beginner
395 Views

Thanks mecej4,

Here's is the subroutine where the pardiso is called:
!-------

 

!------

0 Kudos
mecej4
Honored Contributor III
395 Views

The line referred to in #1 is line 1386 of  MOD_NR.f90. The listing in #3 neither has that name nor does it have that many lines. Therefore, I cannot make sense out of your last post.

Please what you are attempting to solve, and where the input matrix has its entries defined.

0 Kudos
ali_z_
Beginner
395 Views

The code is huge, more than 50,000 lines. Below I copied the MOD_NR module where all the input for the pardiso are there. 

Please note that line 1386 refers to the following (called from the pasted above subroutine) marked in bold-italic:
.
.
.

     phase     = 11 
    if(any(AXout.ne.AXout).or.any(AIout.ne.AIout).or.any(AJout.ne.AJout).or.any(Bbfr.ne.Bbfr))pause"problem herE"                 
    if(any(AIout.eq.0).or.any(ajout.eq.0))pause"problem herE**"

    This is line 1386 >>>  CALL pardiso (pt2, maxfct, mnum, mtype, phase, n, AXout, AIout, AJout,&
                                                idum, nrhs, iparm2, msglvl, ddum, ddum, error)
--------------------------------------------------------------------------------------------------

And here a copy of the whole module, hope this could be useful

 

0 Kudos
mecej4
Honored Contributor III
395 Views

Sorry, it is not possible to proceed without either (i) a self-contained short program that makes the same kind of Pardiso calls as your large application, with the property that finding the error in this "reproducer" will help you to fix the large application, or (ii) the entire sources of your application, zipped together with any data files needed and instructions on how to compile link and run in order to reproduce the run time error.

Your module source in #5 has IMPLICIT NONE, yet contains a number of variables whose types and array dimensions are not declared, such as INT_UP_Q, INT_UP_SAT, INT_UP_CELL and CZI. Furthermore, the main matrix associated with the call to Pardiso is not defined in the module; presumably, it is defined in another subprogram that you have not shown, which USEs module MOD_NR. If, as is most likely, the cause of the access violation is errors in one or more of the arguments passed to Pardiso, we need to know the sizes and values of the actual arguments.

It is unreasonable to try to find the error by visual inspection of part of the program, when the actual code is so big and variables with global scope are used.

0 Kudos
VipinKumar_E_Intel
395 Views

Hi Ali,

  The error code 157 may be related to the link line of your application.  If you are using ilp64, please also include /4I8.

--Vipin

0 Kudos
Reply