PURPOSE

To compute the profile vector from submatrix integer files and optionally impose constraints.

SYNOPSIS

CALL FMSPF (LUS, NUMSF, NEWNUM, MAXEQ, LOWEQ, NUMEQ)

INPUT PARAMETERS

OUTPUT PARAMETERS

DESCRIPTION:

This subroutine performs the following tasks:
  1. Eliminates equations whose solution value is constrained to zero.
  2. Computes the vector NEWNUM(MAXEQ) which relates old equation numbers to new equation numbers.
  3. Updates the submatrix integer files LUS(2,i) to the new equation numbers.
  4. Computes the profile vector LOWEQ(NUMEQ) and new number of equations, NUMEQ.
  5. The renumbering of equations, steps 1 through 3, may be skipped by specifying a value of 0 for MAXEQ.

This subroutine is intended for finite element programs solving mixed boundary value problems where some of the solution values are constrained to specified values. You first create the submatrix integer and real files using equation numbers that include both free and constrained equations. The NEWNUM(MAXEQ) vector is then created to flag the constrained equations. This subroutine is then called to renumber the equations into a packed global system which eliminates equations whose value is constrained to zero.

Your program must pack the right-hand side vectors to correspond to the new numbering system in NEWNUM(MAXEQ). In addition, nonzero constraints must be imposed, usually by scaling the diagonal and right-hand side by a big number, BIGNUM. After the solution is obtained, the solution may be expanded back to the original numbering system using NEWNUM(MAXEQ).