home *** CD-ROM | disk | FTP | other *** search
/ Frostbyte's 1980s DOS Shareware Collection / floppyshareware.zip / floppyshareware / DOOG / PCSSP2.ZIP / MATOPS.ZIP / SRMA.FOR < prev    next >
Text File  |  1985-11-29  |  2KB  |  64 lines

  1. C
  2. C     ..................................................................
  3. C
  4. C        SUBROUTINE SRMA
  5. C
  6. C        PURPOSE
  7. C           MULTIPLY ROW OF MATRIX BY A SCALAR AND ADD TO ANOTHER ROW
  8. C           OF THE SAME MATRIX
  9. C
  10. C        USAGE
  11. C           CALL SRMA(A,C,N,M,LA,LB)
  12. C
  13. C        DESCRIPTION OF PARAMETERS
  14. C           A  - NAME OF MATRIX
  15. C           C  - SCALAR
  16. C           N  - NUMBER OF ROWS IN A
  17. C           M  - NUMBER OF COLUMNS IN A
  18. C           LA - ROW IN A TO BE MULTIPLIED BY SCALAR
  19. C           LB - ROW IN A TO WHICH PRODUCT IS ADDED
  20. C                IF 0 IS SPECIFIED, PRODUCT REPLACES ELEMENTS IN ROW LA
  21. C
  22. C        REMARKS
  23. C           MATRIX A MUST BE A GENERAL MATRIX
  24. C
  25. C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
  26. C           NONE
  27. C
  28. C        METHOD
  29. C           EACH ELEMENT OF ROW LA IS MULTIPLIED BY SCALAR C AND THE
  30. C           PRODUCT IS ADDED TO THE CORRESPONDING ELEMENT OF ROW LB.
  31. C           ROW LA REMAINS UNAFFECTED BY THE OPERATION.
  32. C           IF PARAMETER LB CONTAINS ZERO, MULTIPLICATION BY THE SCALAR
  33. C           IS PERFORMED AND THE PRODUCT REPLACES ELEMENTS IN ROW LA.
  34. C
  35. C     ..................................................................
  36. C
  37.       SUBROUTINE SRMA(A,C,N,M,LA,LB)
  38.       DIMENSION A(1)
  39. C
  40.       LAJ=LA-N
  41.       LBJ=LB-N
  42.       DO 3 J=1,M
  43. C
  44. C        LOCATE ELEMENT IN BOTH ROWS
  45. C
  46.       LAJ=LAJ+N
  47.       LBJ=LBJ+N
  48. C
  49. C        CHECK LB FOR ZERO
  50. C
  51.       IF(LB) 1,2,1
  52. C
  53. C        IF NOT, MULTIPLY BY CONSTANT AND ADD TO OTHER ROW
  54. C
  55.     1 A(LBJ)=A(LAJ)*C+A(LBJ)
  56.       GO TO 3
  57. C
  58. C        OTHERWISE, MULTIPLY ROW BY CONSTANT
  59. C
  60.     2 A(LAJ)=A(LAJ)*C
  61.     3 CONTINUE
  62.       RETURN
  63.       END
  64.