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

  1. C
  2. C     ..................................................................
  3. C
  4. C        SUBROUTINE MTRA
  5. C
  6. C        PURPOSE
  7. C           TRANSPOSE A MATRIX
  8. C
  9. C        USAGE
  10. C           CALL MTRA(A,R,N,M,MS)
  11. C
  12. C        DESCRIPTION OF PARAMETERS
  13. C           A - NAME OF MATRIX TO BE TRANSPOSED
  14. C           R - NAME OF OUTPUT MATRIX
  15. C           N - NUMBER OF ROWS OF A AND COLUMNS OF R
  16. C           M - NUMBER OF COLUMNS OF A AND ROWS OF R
  17. C           MS  - ONE DIGIT NUMBER FOR STORAGE MODE OF MATRIX A (AND R)
  18. C                  0 - GENERAL
  19. C                  1 - SYMMETRIC
  20. C                  2 - DIAGONAL
  21. C
  22. C        REMARKS
  23. C           MATRIX R CANNOT BE IN THE SAME LOCATION AS MATRIX A
  24. C
  25. C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
  26. C           MCPY
  27. C
  28. C        METHOD
  29. C           TRANSPOSE N BY M MATRIX A TO FORM M BY N MATRIX R BY MOVING
  30. C           EACH ROW OF A INTO THE CORRESPONDING COLUMN OF R. IF MATRIX
  31. C           A IS SYMMETRIC OR DIAGONAL, MATRIX R IS THE SAME AS A.
  32. C
  33. C     ..................................................................
  34. C
  35.       SUBROUTINE MTRA(A,R,N,M,MS)
  36.       DIMENSION A(1),R(1)
  37. C
  38. C        IF MS IS 1 OR 2, COPY A
  39. C
  40.       IF(MS) 10,20,10
  41.    10 CALL MCPY(A,R,N,N,MS)
  42.       RETURN
  43. C
  44. C        TRANSPOSE GENERAL MATRIX
  45. C
  46.    20 IR=0
  47.       DO 30 I=1,N
  48.       IJ=I-N
  49.       DO 30 J=1,M
  50.       IJ=IJ+N
  51.       IR=IR+1
  52.    30 R(IR)=A(IJ)
  53.       RETURN
  54.       END
  55.