home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / fortran / library / ssp / matops / rtab.for < prev    next >
Encoding:
Text File  |  1985-11-29  |  2.5 KB  |  80 lines

  1. C
  2. C     ..................................................................
  3. C
  4. C        SUBROUTINE RTAB
  5. C
  6. C        PURPOSE
  7. C           TABULATE ROWS OF A MATRIX TO FORM A SUMMARY MATRIX
  8. C
  9. C        USAGE
  10. C           CALL RTAB(A,B,R,S,N,M,MS,L)
  11. C
  12. C        DESCRIPTION OF PARAMETERS
  13. C           A - NAME OF INPUT MATRIX
  14. C           B - NAME OF INPUT VECTOR OF LENGTH N CONTAINING KEY
  15. C           R - NAME OF OUTPUT MATRIX CONTAINING SUMMARY OF ROW DATA.
  16. C               IT IS INITIALLY SET TO ZERO BY THIS SUBROUTINE.
  17. C           S - NAME OF OUTPUT VECTOR OF LENGTH L+1 CONTAINING COUNTS
  18. C           N - NUMBER OF ROWS IN A
  19. C           M - NUMBER OF COLUMNS IN A AND R
  20. C           L - NUMBER OF ROWS IN R
  21. C           MS  - ONE DIGIT NUMBER FOR STORAGE MODE OF MATRIX A
  22. C                  0 - GENERAL
  23. C                  1 - SYMMETRIC
  24. C                  2 - DIAGONAL
  25. C
  26. C        REMARKS
  27. C           MATRIX R IS ALWAYS A GENERAL MATRIX
  28. C
  29. C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
  30. C           LOC
  31. C           RADD
  32. C
  33. C        METHOD
  34. C           ROWS OF DATA IN MATRIX A ARE TABULATED BASED ON THE KEY
  35. C           CONTAINED IN VECTOR B. THE FLOATING POINT NUMBER IN B(I) IS
  36. C           TRUNCATED TO FORM J. THE ITH ROW OF A IS ADDED TO THE JTH
  37. C           ROW OF R ELEMENT BY ELEMENT AND ONE IS ADDED TO S(J). IF J
  38. C           IS NOT BETWEEN ONE AND L, ONE IS ADDED TO S(L+1). THIS
  39. C           PROCEDURE IS REPEATED FOR EVERY ELEMENT IN VECTOR B.
  40. C           UPON COMPLETION, THE OUTPUT MATRIX R CONTAINS A SUMMARY OF
  41. C           ROW DATA AS SPECIFIED BY VECTOR B. EACH ELEMENT IN VECTOR S
  42. C           CONTAINS A COUNT OF THE NUMBER OF ROWS OF A USED TO FORM THE
  43. C           CORRESPONDING ROW OF R. ELEMENT S(L+1) CONTAINS A COUNT OF
  44. C           THE NUMBER OF ROWS OF A NOT INCLUDED IN R AS A RESULT OF J
  45. C           BEING LESS THAN ONE OR GREATER THAN L.
  46. C
  47. C     ..................................................................
  48. C
  49.       SUBROUTINE RTAB(A,B,R,S,N,M,MS,L)
  50.       DIMENSION A(1),B(1),R(1),S(1)
  51. C
  52. C        CLEAR OUTPUT AREAS
  53. C
  54.       CALL LOC(M,L,IT,M,L,0)
  55.       DO 10 IR=1,IT
  56.    10 R(IR)=0.0
  57.       DO 20 IS=1,L
  58.    20 S(IS)=0.0
  59.       S(L+1)=0.0
  60. C
  61.       DO 60 I=1,N
  62. C
  63. C        TEST FOR THE KEY OUTSIDE THE RANGE
  64. C
  65.       JR=B(I)
  66.       IF (JR-1) 50,40,30
  67.    30 IF (JR-L) 40,40,50
  68. C
  69. C
  70. C        ADD ROW OF A TO ROW OF R AND 1 TO COUNT
  71. C
  72.    40 CALL RADD (A,I,R,JR,N,M,MS,L)
  73.       S(JR)=S(JR)+1.0
  74.       GO TO 60
  75. C
  76.    50 S(L+1)=S(L+1)+1.0
  77.    60 CONTINUE
  78.       RETURN
  79.       END
  80.