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

  1. C
  2. C     ..................................................................
  3. C
  4. C        SUBROUTINE CTAB
  5. C
  6. C        PURPOSE
  7. C           TABULATE COLUMNS OF A MATRIX TO FORM A SUMMARY MATRIX
  8. C
  9. C        USAGE
  10. C           CALL CTAB(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 M CONTAINING KEY
  15. C           R - NAME OF OUTPUT MATRIX CONTAINING SUMMARY OF COLUMN 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 AND R
  19. C           M - NUMBER OF COLUMNS IN A
  20. C           L - NUMBER OF COLUMNS 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           CADD
  32. C
  33. C        METHOD
  34. C           COLUMNS 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 COLUMN OF A IS ADDED TO THE JTH
  37. C           COLUMN OF MATRIX R AND ONE IS ADDED TO S(J). IF THE VALUE OF
  38. C           J IS NOT BETWEEN 1 AND L, ONE IS ADDED TO S(L+1)
  39. C           UPON COMPLETION, THE OUTPUT MATRIX R CONTAINS A SUMMARY OF
  40. C           COLUMN DATA AS SPECIFIED BY VECTOR B. EACH ELEMENT IN VECTOR
  41. C           S CONTAINS A COUNT OF THE NUMBER OF COLUMNS OF A USED TO
  42. C           FORM R. ELEMENT S(L+1) CONTAINS THE NUMBER OF COLUMNS OF A
  43. C           NOT INCLUDED IN R AS A RESULT OF J BEING LESS THAN ONE OR
  44. C           GREATER THAN L.
  45. C
  46. C     ..................................................................
  47. C
  48.       SUBROUTINE CTAB(A,B,R,S,N,M,MS,L)
  49.       DIMENSION A(1),B(1),R(1),S(1)
  50. C
  51. C        CLEAR OUTPUT AREAS
  52. C
  53.       CALL LOC(N,L,IT,N,L,0)
  54.       DO 10 IR=1,IT
  55.    10 R(IR)=0.0
  56.       DO 20 IS=1,L
  57.    20 S(IS)=0.0
  58.       S(L+1)=0.0
  59. C
  60.       DO 60 I=1,M
  61. C
  62. C        TEST FOR THE KEY OUTSIDE THE RANGE
  63. C
  64.       JR=B(I)
  65.       IF (JR-1) 50,40,30
  66.    30 IF (JR-L) 40,40,50
  67. C
  68. C
  69. C        ADD COLUMN OF A TO COLUMN OF R AND 1 TO COUNT
  70. C
  71.    40 CALL CADD (A,I,R,JR,N,M,MS,L)
  72.       S(JR)=S(JR)+1.0
  73.       GO TO 60
  74. C
  75.    50 S(L+1)=S(L+1)+1.0
  76.    60 CONTINUE
  77.       RETURN
  78.       END
  79.