CALL RNUSLB (A, LOCI, LOCJ, LUFLAG, JCOL1, JCOL2,
NUMEQ)
CALL CNUSLB (A, LOCI, LOCJ, LUFLAG, JCOL1, JCOL2,
NUMEQ)
A( LOCI(I) + LOCJ(J,LUFLAG(I)) ) = AIJ
| Parameter | Description |
|---|---|
| MDATAU | Call your subroutine to define or modify matrix data |
| MFMAT | Matrix format (PROFILE, BLOCK, SLAB) |
To use this feature, FMS must be directed to call your subroutines. The MDATAU parameter provides this function. The default value of 0 results in skipping all calls to these subroutines.
When MDATAU is 1, FMS calls these subroutines during the assembly process. When MDATAU is 2, FMS calls these subroutines during the factoring process. If MDATAU is 1 or 2, these subroutines are called during the assembly-factor process.
If the entire matrix does not fit in memory, these subroutines are called several times. Each call defines a slab of the matrix, bound by rows 1 through NUMEQ and columns JCOL1 through JCOL2 as shown in the figure below.
The location vectors {LOCI}, {LOCJ} and {LUFLAG} are used to address matrix data in the array A as follows:
A(I,J) = A( LOCI(I) + LOCJ(J,LUFLAG(I))
).
The row I ranges from 1 through NUMEQ and the column J ranges from JCOL1 through JCOL2
FMS is distributed with user supplied subroutines for populating test matrices with integer and random numbers. If your program supplies its own subroutines, they must be explicitly named on the link command to avoid using the subroutines supplied in the library.