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

forrtl:severe: program exception - access violation

ceo012
Beginner
405 Views
OS: Window XP (32 bit.)
Processor: Intel Core 2
Memory: 3 GB
Version: Visual Studio 2005 Prof. Ed.
IVF 11.1.038
MKL 10.2.1

Forrtl:severe<157>: Program Exception access violation
Mkl_intel_thread. 1029620E. Unknown

I solved linear systems of equation Ax=b, where A is positive definite and 108 by 108 and b is 108 by 1 vector.
I got answer well via previous version IVF 11.0.078 and MKL 10.0.1, but I cant have the answer via new version, IVF 11.1.038 and MKL 10.2.1.
Whats the problem?

program Inverse_Test
implicit double precision (A-H, O-Z)

integer nDim, i,j,k, nEnv
! Ax = b
integer,allocatable:: jA(:)
integer,allocatable:: iA(:)
real*8, allocatable:: A(:)
real*8, allocatable:: b(:)
real*8, allocatable:: x(:)

! parameters for Intel Math. Kernel Lib.
integer*4 pt(64) ! solver internal data address pointer for 32 bit operating system
integer*8 ddum ! dummy
integer maxfct ! max. number of factors with identical nonzero sparsity structure
integer mnum ! actual matrix for the solution phase
integer mtype ! matrix type 2: real & symmetric positive definite
integer phase ! controls the execution of the solver
integer nrhs ! dimension of right hand side
integer error ! error
integer msglvl ! statistics data
integer*4 iparm(64) ! parameter array for MKL
integer omp_get_max_threads ! get max thread
EXTERNAL omp_get_max_threads

nDim = 108
nEnv = 4014
! allocation
allocate ( A(nEnv) )
allocate ( jA(nEnv) )
allocate ( iA(nDim + 1) )
allocate ( b(nDim) )
allocate ( x(nDim) )

data nrhs /1/, maxfct /1/, mnum /1/

mtype = 2 ! real and SPD
! initialize PARDISO (solve inverse matrix )
call pardisoinit(pt, mtype, iparm)
iparm(1) = 1 ! no solver default
iparm(2) = 2 ! 2 fill-in reordering from METIS
iparm(3) = omp_get_max_threads()! number of processors
iparm(7) = 16 ! default logical fortran unit number for output
iparm(8) = 9 ! numbers of iterative refinement steps
iparm(10)= 13 ! perturbe the pivot elements with 1E-13
msglvl = 0 ! don't print statistical information

! initialize matrix and vector
! Ax = b
A = 0.d0
b = 0.d0
x = 0.d0

! read data from txt files
open(11,file='A.txt')
do i = 1, nEnv
read(11,*) A(i)
end do
close(11)

open(22,file='b.txt')
do i = 1, nDim
read(22,*) b(i)
end do
close(22)

open(33,file='jA.txt')
do i = 1, nEnv
read(33,*) jA(i)
end do
close(33)

open(44,file='iA.txt')
do i = 1, nDim+1
read(44,*) iA(i)
end do
close(44)


! analysis, symbolic factorization, numerical factorization and solve
! Ax = b
phase = 13
call pardiso(pt, maxfct, mnum, mtype, phase, nDim, A, iA, jA, &
idum, nrhs, iparm, msglvl, b, x, error)
! x = inv(A)b
if (error .NE. 0) then
write(*,*) 'The following ERROR was detected: ', error, 'Secant Stiff routine 1'
stop
end if


do i = 1, 30
print *, 'x',i, '= ', x(i)
end do

! Termination and release of memory
phase = -1 ! release internal memory
call pardiso (pt, maxfct, mnum, mtype, phase, nDim, ddum, idum, idum, &
idum, nrhs, iparm, msglvl, ddum, ddum, error)


! deallocate all
if ( allocated(A) ) deallocate( A )
if ( allocated(jA) ) deallocate( jA )
if ( allocated(iA) ) deallocate( iA )
if ( allocated(b) ) deallocate( b )
if ( allocated(x) ) deallocate( x )

end program Inverse_Test

If you want to run it, I will give you txt data via email
Thanks a lot



0 Kudos
0 Replies
Reply