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

- LUS(10,NUMSF) = Integer array.

File attributes for each submatrix file. - NUMSF = Integer.

Number of submatrix files. - LUX(25) = Integer array.

File attributes for the file containing {X} vectors. - LUY(25) = Integer array.

File attributes for the file where the {Y} vectors are to be written. This parameter may be the same as LUX to overlay the {Y} vectors on the {X} vectors. - NUMVEC = Integer.

Number of vectors to multiply. - LUZ(25) = Integer array.

File attributes for the {Z} vectors. This parameter is only used if the FMS Parameter IACCUM is set to a nonzero value. This parameter may be the same as LUY to accumulate the results in {Y}.

## 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.