Sparse solver breaks down with bus error
Hi everybody,
I'm not sure if this question is way too trivial for you guys. I'm new with the Sun Performance Library and with Fortran in general, so please excuse if this is too obvious.
I compile the following code with -dalign and -xlic_llib=sunperf on a Sun Fire 6800. Running the binary crashes with a bus error and I simply can't figure out where the problem is.
[code]
PROGRAM example_uu_1call
! This program is an example driver that calls the sparse solver.
!It factors and solves an unsymmetric system.
IMPLICIT none
INTEGERneqns, ier, msglvl, outunt, ldrhs, nrhs
CHARACTER mtxtyp*2, pivot*1, ordmthd*3
DOUBLE PRECISION handle(150)
INTEGER*4 colstr(7), rowind(14)
DOUBLE PRECISION values(14), rhs(6)
INTEGERi
! 100101201
! 25000131
! A = 368000 rhs = 1
! 40011001
! 07000141
! 0090001
DATA colstr / 1,5,8,10,12,13,15 /
DATA rowind / 1,2,3,4,2,3,5,3,6,1,4,1,2,5 /
DATA values / 1,2,3,4,5,6,7,8,9,10,11,12,13,14 /
DATA rhs/ 1,1,1,1,1,1 /
WRITE(6,*) 'colstr =', colstr
WRITE(6,*) 'rowind =', rowind
WRITE(6,*) 'values =', values
WRITE(6,*) 'rhs=', rhs
mtxtyp= 'uu'! matrix type: unsymmetric structure, unsymmetric values
pivot = 'n'! pivoting not used in numeric factorization
neqns = size(rhs)! number of equations
nrhs= 1! number of right hand sides to solve for
ldrhs = neqns ! leading dimension of rhs array
ordmthd = 'nat'! fill-reducing ordering used by the sparse solver:
! 'nat': no ordering, 'mmd': multiple minimum degree, 'uso': user specified
outunt = 6 ! output unit
msglvl = 3 ! message level
WRITE(6,*) 'Initialization...'
CALL dgssin ( mtxtyp, pivot, neqns , colstr, rowind,outunt, msglvl, handle, ier)
IF ( ier .ne. 0 ) GOTO 110
WRITE(6,*) 'Ordering...'
CALL dgssor ( ordmthd, handle, ier )
IF ( ier .ne. 0 ) GOTO 110
WRITE(6,*) 'Factorization...'
CALL dgssfa ( neqns, colstr, rowind, values, handle, ier )
IF ( ier .ne. 0 ) GOTO 110
WRITE(6,*) 'Solution...'
CALL dgsssl ( nrhs, rhs, ldrhs, handle, ier )
IF ( ier .ne. 0 ) GOTO 110
CALL dgssda ( handle, ier )
IF ( ier .ne. 0 ) GOTO 110
WRITE(6,*) 'Solution found.'
STOP
110CONTINUE
WRITE(6,*) ' example: FAILED sparse solver error number = ', ier
STOP
END PROGRAM example_uu_1call
[/code]
Thanks for any advice. Ferdinand
Message was edited by:
listen.f.fichtner@gmx.net

