PURPOSE

Multiply a group of vectors {X} by submatrices [S]i and place the results in vectors {Y}, according to the FMS Parameter IACCUM
{Y} = {Z} - SUM([S]i{X}), IACCUM = -1
{Y} =       SUM([S]i{X}), IACCUM =  0 (default)
{Y} = {Z} + SUM([S]i{X}), IACCUM = +1

SYNOPSIS

CALL RSDSVM (LUS, NUMSF, LUX, LUY, NUMVEC, LUZ)
CALL CHDSVM (LUS, NUMSF, LUX, LUY, NUMVEC, LUZ)
CALL CSDSVM (LUS, NUMSF, LUX, LUY, NUMVEC, LUZ)

INPUT PARAMETERS

OUTPUT PARAMETERS:

None.

FMS PARAMETERS:

The following FMS Parameters are especially important to this routine:
Parameter Description
IACCUM Product accumulation flag
= -1, {Y} = {Z} - SUM([S]i{X}),
=  0, {Y} =       SUM([S]i{X}), (default)
= +1, {Y} = {Z} + SUM([S]i{X})
IPRMV Matrix-vectors multiply print code

DESCRIPTION:

This subroutine multiplies a group of vectors {X} stored on file LUX by the submatrices stored on files LUS. The resulting vectors {Y} are written to file LUY, which may be the same as file LUX.

This subroutine is equivalent to assembling the matrix [A] with subroutines RSDA, RNDA, CHDA, CSDA, CNDA and then performing matrix-vectors multiply {Y}=[A]{X} using RSDMVM, RNDMVM, CHDMVM, CSDMVM, CNDMVM. If the assembled matrix [A] contains a large number of zero terms within the profile, this subroutine should be used. If the matrix is densely populated and several vectors are to be multiplied, the matrix [A] should be assembled as a separate step.