Go To Top Go Up Go Back Go Forward

RSDI
RNDI
CHDI
CSDI
CNDI

PURPOSE: Matrix File Initialization

Open files for storing matrix [A]

SYNOPSIS

CALL RSDI (LOWEQ, NUMEQ, NAME, LUA)
CALL RNDI (LOWEQ, NUMEQ, NAME, LUA)
CALL CHDI (LOWEQ, NUMEQ, NAME, LUA)
CALL CSDI (LOWEQ, NUMEQ, NAME, LUA)
CALL CNDI (LOWEQ, NUMEQ, NAME, LUA)

INPUT PARAMETERS:

OUTPUT PARAMETERS:

FMS PARAMETERS:

The following FMS Parameters are especially important to this routine:

Parameter Description
IPRI Initialization print code
MFMAT Matrix format type (PROFILE, BLOCK, SLAB)
LENSDF I/O record size (PROFILE format)
NEQBIO I/O block size (BLOCK & SLAB format)
NEQBLK Compute block size
NEQBLO Minimum compute block size
NEQBHI Maximum compute block size
IJSTEP Stride toward diagonal
INSIDE Blocking pattern (PROFILE format)
INCORE File location (disk or memory)
IEXIST Use existing file
NOOPEN Do not physically open the file
LSECTR Disk sector length (8-byte words)
IEXIST Use existing file

DESCRIPTION:

This subroutine opens files LUA(1), LUA(2), LUA(3), and LUA(4) for storing the lower triangle, diagonal, upper triangle, and Segment Table for matrix [A]. The file names are generated by appending 'L', 'D', 'U', and 'T' to the actual parameter NAME. No matrix data is written to files LUA(1), LUA(2) or LUA(3) at this time.

Depending on the FMS parameter IEXIST, FMS will use an existing file or create a new one. When using existing files, you must supply the file attribute list LUA(25) that was used when the file was created.

For new files, the attribute list LUA(25) is computed by FMS. This list contains all information necessary for performing data transfers to any of the four matrix files. The attribute list is supplied by you to the remaining FMS subroutines as an actual parameter to define the matrix files.

Memory resident matrix files can be created by setting the INCORE parameter prior to calling this subroutine.

The Segment Table on file LUA(4) contains all the pointers and addresses used by FMS for processing the profile matrix. This information is not altered by FMS subroutines. Therefore, unless the matrix profile contained in the vector {LOWEQ} is changed, this initialization subroutine should be called only once.

FMS determines the record size for files LUA(1) and LUA(3) based on the available memory and matrix profile. If you require a specific size, use the LENSDF parameter for PROFILE matrices or the NEQBIO parameter for BLOCK and SLAB matrices.

The profile vector LOWEQ(NUMEQ) must be computed in your program prior to calling this subroutine. The following example illustrates how the profile vector could be computed for a matrix with constant bandwidth IBAND. If the matrix is being assembled from submatrices, subroutine FMSPF or FMSWF may be used to compute LOWEQ(NUMEQ) automatically.

       SUBROUTINE PBAND (IBAND, LOWEQ, NUMEQ)
C      Profile vector for a constant band matrix:
       INTEGER IBAND, NUMEQ, LOWEQ(NUMEQ)
       DO 10 I  =  1,NUMEQ
          LOWEQ(I)  =  MAX0(1,I-BAND+1)
   10  CONTINUE
       RETURN
       END

Go To Top Go Up Go Back Go Forward
Copyright © Multipath Corporation