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

  1. C
  2. C     ..................................................................
  3. C
  4. C        SUBROUTINE SCMA
  5. C
  6. C        PURPOSE
  7. C           MULTIPLY COLUMN OF MATRIX BY A SCALAR AND ADD TO ANOTHER
  8. C           COLUMN OF THE SAME MATRIX
  9. C
  10. C        USAGE
  11. C           CALL SCMA(A,C,N,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           LA - COLUMN IN A TO BE MULTIPLIED BY SCALAR
  18. C           LB - COLUMN IN A TO WHICH PRODUCT IS ADDED
  19. C                IF 0 IS SPECIFIED, PRODUCT REPLACES ELEMENTS IN LA
  20. C
  21. C        REMARKS
  22. C           MATRIX A MUST BE A GENERAL MATRIX
  23. C
  24. C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
  25. C           NONE
  26. C
  27. C        METHOD
  28. C           EACH ELEMENT OF COLUMN LA IS MULTIPLIED BY SCALAR C AND THE
  29. C           PRODUCT IS ADDED TO THE CORRESPONDING ELEMENT OF COLUMN LB.
  30. C           COLUMN LA REMAINS UNAFFECTED BY THE OPERATION.
  31. C           IF PARAMETER LB CONTAINS ZERO, MULTIPLICATION BY THE SCALAR
  32. C           IS PERFORMED AND THE PRODUCT REPLACES ELEMENTS IN LA.
  33. C
  34. C     ..................................................................
  35. C
  36.       SUBROUTINE SCMA(A,C,N,LA,LB)
  37.       DIMENSION A(1)
  38. C
  39. C        LOCATE STARTING POINT OF BOTH COLUMNS
  40. C
  41.       ILA=N*(LA-1)
  42.       ILB=N*(LB-1)
  43. C
  44.       DO 3 I=1,N
  45.       ILA=ILA+1
  46.       ILB=ILB+1
  47. C
  48. C        CHECK LB FOR ZERO
  49. C
  50.       IF(LB) 1,2,1
  51. C
  52. C        IF NOT MULTIPLY BY CONSTANT AND ADD TO SECOND COLUMN
  53. C
  54.     1 A(ILB)=A(ILA)*C+A(ILB)
  55.       GO TO 3
  56. C
  57. C        OTHERWISE, MULTIPLY COLUMN BY CONSTANT
  58. C
  59.     2 A(ILA)=A(ILA)*C
  60.     3 CONTINUE
  61.       RETURN
  62.       END
  63.