lmat, lindex, l, lsym, nvt
lmat integer, scalar
Length of (local) matrix array MAT.lindex integer, scalar
Length of the integer array index.l integer, scalar
Maximal number of unknowns on a processor (it must hold: l = max{lmatbk(i),i=1,..,nproc}).lsym logical, scalar
is .true., if the matrix MAT is symmetric; is .false., if the matrix MAT is non-symmetric;nvt integer, scalar
Number of vector terms the matrix MAT consists of [see also manual page <lsolp> and <matrix>].
ityp, nvecterms
ityp integer, scalar is the number of the storage pattern to be read (written).
ityp = 1 : read (write) main diagonal,
ityp = 2 : read (write) full diagonal(s),
ityp = 3 : read (write) packed diagonal(s),
ityp = 6 : read (write) starry sky (skies),
ityp = 7 : read (write) full row(s),
ityp = 8 : read (write) full column(s),
ityp = 9 : read (write) packed row(s),
ityp =11 : read (write) packed column(s).
nvecterms integer, scalar
is the number of vector terms of a certain storage pattern determined by ityp to read (write). If ityp = 1 holds, nvecterms can only be set to 1 (is is not allowed to define more than one main diagonal!).
The composition and number of the next records depend on the type of the storage pattern;
vtmain(1), vtmain(2), ..., vtmain(l)
vtmain(1..l) double precision, vector
The main diagonal elements must be read (written).
lvt, iac, iar
vtfull(1), vtfull(2), ..., vtfull(lvt)
lvt integer, scalar
The length of the next vector term to be read (written).iac integer, scalar
{The column index of the first element of the next vector term to be read (written)} - 1.iar integer, scalar
{The row index of the first element of the next vector term to be read (written)} - 1.vtfull(1..lvt) double precision, vector
The elements of a full vector term must be read (written).
lvt, iac, iar
index(1), index(2), ..., index(lvt)
vtpack(1), vtpack(2), ..., vtpack(lvt)
lvt integer, scalar
The length of the next vector term to be read (written).iac integer, scalar
{The column index of the first element of the next vector term to be read (written)} - 1.iar integer, scalar
{The row index of the first element of the next vector term to be read (written)} - 1.index(1..lvt) integer, vector
The indices of a packed vector term must be read (written).vtpack(1..lvt) double precision, vector
The elements of a packed vector term must be read (written).
lvt
cindex(1), cindex(2), ..., cindex(lvt)
rindex(1), rindex(2), ..., rindex(lvt)
vtpack(1), vtpack(2), ..., vtpack(lvt)
lvt integer, scalar
The length of the next vector term to be read (written).cindex(1..lvt) integer, vector
The column indices of a packed vector term must be read (written).rindex(1..lvt) integer, vector
The row indices of a packed vector term must be read (written).vtpack(1..lvt) double precision, vector
The elements of a packed vector term must be read (written).If the matrix is composed of different storage patterns, then goto 2[+loops]th record to read the next vector terms of a different storage pattern. Remark: loops is equal to the number of records read by the actually defined storage pattern and the previous ones.
call LININ(MAT,lmat,index,lindex,info,ia1,nvt,lloc,l,lsym,
unit,lout,ierr)MAT double precision, array: MAT(lmat), outputinteger, parameter :: ia2 = 7
integer, intent(in) :: ia1,unit,l,lout
integer, intent(inout) :: lmat,lindex
integer, intent(out) :: nvt,ierr,lloc
integer, intent(out) :: info(ia1,ia2)
integer, intent(out) :: index(lindex)
double precision, intent(out) :: MAT(lmat)
logical, intent(out) :: lsym
Matrix array.lmat integer, scalar, input/output
Length of (local) matrix array MAT.index integer, array: index(lindex), output
Array of indices enabling indirect access to the matrix array MAT.lindex integer, scalar, input/output
Length of the integer array index.info integer, array: info(ia1,ia2), output
Information array for the matrix MAT (ia2 {= 7} is a constant).ia1 integer, scalar, input
First dimension of matrix information array info.nvt , integer, scalar, output
Number of used vector terms.lloc integer, scalar, output
Number of rows and columns respectively of the matrix.l integer, scalar, input
Number of rows and columns respectively of the matrix. If l <> lloc, then the routine stops with an error.lsym logical, scalar, input
is .true., if the matrix MAT is symmetric, is .false., if the matrix MAT is non-symmetric.unit integer, scalar, input
I/O-unit to read from.lout integer, scalar, input
is the number of the output device of messages (stdout is 6).ierr integer, scalar, output
is an error indicator (ierr <> 0 --> error occured).
call LINBIN(MAT,lmat,index,lindex,info,ia1,nvt,lloc,l,lsym,
unit,lout,ierr)MAT real*4, array: MAT(lmat), outputinteger, parameter :: ia2 = 7
integer, intent(in) :: ia1,unit,l,lout
integer, intent(inout) :: lmat,lindex
integer, intent(out) :: nvt,ierr,lloc
integer, intent(out) :: info(ia1,ia2)
integer, intent(out) :: index(lindex)
real*4, intent(out) :: MAT(lmat)
logical, intent(out) :: lsym
Matrix array.
All other arguments can you see above.
call LINOUT(MAT,lmat,index,lindex,info,ia1,nvt,l,lsym,
ilin,unit,ierr)ilin integer, array: ilin(nilin), inputinteger, parameter :: ia2 = 7, nilin = 50
integer, intent(in) :: ia1,unit,l
integer, intent(in) :: lmat,lindex,nvt
integer, intent(out) :: ierr
integer, intent(in) :: info(ia1,ia2)
integer, intent(in) :: index(lindex)
integer, intent(in) :: ilin(nilin)
double precision, intent(in) :: MAT(lmat)
logical, intent(in) :: lsym
Information vector (nilin {=50} is a constant); the values of ilin(12), ilin(13), ilin(17), ilin(33), ilin(34) must be set due to the manual page <lsolp> for a correct use of this routine.unit integer, scalar, input
I/O-unit to write to.
All other arguments can you see above.
call LINBOUT(MAT,lmat,index,lindex,info,ia1,nvt,l,lsym,
ilin,unit,ierr)ilin integer, array: ilin(nilin), inputinteger, parameter :: ia2 = 7, nilin = 50
integer, intent(in) :: ia1,unit,l
integer, intent(in) :: lmat,lindex,nvt
integer, intent(out) :: ierr
integer, intent(in) :: info(ia1,ia2)
integer, intent(in) :: index(lindex)
integer, intent(in) :: ilin(nilin)
real*4, intent(in) :: MAT(lmat)
logical, intent(in) :: lsym
Information vector (nilin {=50} is a constant); the values of ilin(12), ilin(13), ilin(17), ilin(33), ilin(34) must be set due to the manual page <lsolp> for a correct use of this routine.unit integer, scalar, input
I/O-unit to write to.
All other arguments can you see above.
Consulting by
Numerikforschung fuer Supercomputer
Rechenzentrum der Universitaet Karlsruhe
Am Zirkel 2
D-76128 Karlsruhe
Germany
Tel. : (+721) 608/4869
Fax. : (+721) 32550
e-mail : haefner@rz.uni-karlsruhe.de