PURPOSE

To provide a user interface for processing zero diagonal pivots.
This is a subroutine you provide.

SYNOPSIS

CALL RSUPIV (*, IEQN, A, S, D)
CALL CSUPIV (*, IEQN, A, S, D)

INPUT PARAMETERS

OUTPUT PARAMETERS:

FMS PARAMETERS:

The following FMS Parameters are especially important to this routine:
Parameter Description
MZERO Zero pivot flag
NBITSZ Number of lost bits on diagonal to call zero
PIVMIN Absolute value of minimum pivot

DESCRIPTION:

This subroutine provides you with low level access to the FMS zero pivot handler. You direct FMS to call this subroutine by specifying a value of 2 for the FMS Parameter MZERO.

When FMS determines that a zero pivot has occurred, based on the tolerance values of NBITSZ and PIVMIN, and MZERO is 2, this subroutine is called. FMS passes the equation number, original diagonal and sum to be subtracted. You are required to return the diagonal pivot reciprocal.

If you want to abandon the factoring process but continue execution, you may use the alternate return. Executing the FORTRAN statement

RETURN 1

in your subroutine will return processing to your program where you called the FMS factoring subroutine. Naturally the factoring calculation will be incomplete, requiring you to take alternate action.

The Pivot Precision Monitoring section describes how FMS determines if the pivot is zero and what FMS normally does with zero pivots. You should make every effort to use standard FMS features before developing this subroutine.