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)
| 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 |
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