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

  1. C
  2. C     ..................................................................
  3. C
  4. C        SUBROUTINE BOUND
  5. C
  6. C        PURPOSE
  7. C           SELECT FROM A SET (OR A SUBSET) OF OBSERVATIONS THE NUMBER
  8. C           OF OBSERVATIONS UNDER, BETWEEN AND OVER TWO GIVEN BOUNDS
  9. C           FOR EACH VARIABLE
  10. C
  11. C        USAGE
  12. C           CALL BOUND (A,S,BLO,BHI,UNDER,BETW,OVER,NO,NV,IER)
  13. C
  14. C        DESCRIPTION OF PARAMETERS
  15. C           A     - OBSERVATION MATRIX, NO BY NV
  16. C           S     - VECTOR INDICATING SUBSET OF A. ONLY THOSE
  17. C                   OBSERVATIONS WITH A NON-ZERO S(J) ARE CONSIDERED.
  18. C                   VECTOR LENGTH IS NO.
  19. C           BLO   - INPUT VECTOR OF LOWER BOUNDS ON ALL VARIABLES.
  20. C                   VECTOR LENGTH IS NV.
  21. C           BHI   - INPUT VECTOR OF UPPER BOUNDS ON ALL VARIABLES.
  22. C                   VECTOR LENGTH IS NV.
  23. C           UNDER - OUTPUT VECTOR INDICATING, FOR EACH VARIABLE, NUMBER
  24. C                   OF OBSERVATIONS UNDER LOWER BOUNDS. VECTOR LENGTH
  25. C                   IS NV.
  26. C           BETW  - OUTPUT VECTOR INDICATING, FOR EACH VARIABLE, NUMBER
  27. C                   OF OBSERVATIONS EQUAL TO OR BETWEEN LOWER AND UPPER
  28. C                   BOUNDS. VECTOR LENGTH IS NV.
  29. C           OVER  - OUTPUT VECTOR INDICATING, FOR EACH VARIABLE, NUMBER
  30. C                   OF OBSERVATIONS OVER UPPER BOUNDS. VECTOR LENGTH
  31. C                   IS NV.
  32. C           NO    - NUMBER OF OBSERVATIONS
  33. C           NV    - NUMBER OF VARIABLES FOR EACH OBSERVATION
  34. C           IER   - ZERO, IF NO ERROR.
  35. C                 - 1, IF LOWER BOUND IS GREATER THAN THE UPPER BOUND
  36. C                   FOR SOME VARIABLE
  37. C
  38. C        REMARKS
  39. C           NONE
  40. C
  41. C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
  42. C           NONE
  43. C
  44. C        METHOD
  45. C           EACH ROW (OBSERVATION) OF MATRIX A WITH CORRESPONDING
  46. C           NON-ZERO ELEMENT IN S VECTOR IS TESTED. OBSERVATIONS ARE
  47. C           COMPARED WITH SPECIFIED LOWER AND UPPER VARIABLE BOUNDS AND
  48. C           A COUNT IS KEPT IN VECTORS UNDER, BETWEEN, AND OVER.
  49. C
  50. C     ..................................................................
  51. C
  52.       SUBROUTINE BOUND(A,S,BLO,BHI,UNDER,BETW,OVER,NO,NV)
  53.       DIMENSION A(1),S(1),BLO(1),BHI(1),UNDER(1),BETW(1),OVER(1)
  54. C
  55. C        CLEAR OUTPUT VECTORS.
  56. C
  57.       IER=0
  58.       DO 10 I=1,NV
  59.       IF (BLO(I)-BHI(I)) 10,10,11
  60.    11 IER=1
  61.       GO TO 12
  62.    10 CONTINUE
  63.       DO 1 K=1,NV
  64.       UNDER(K)=0.0
  65.       BETW(K)=0.0
  66.     1 OVER(K)=0.0
  67. C
  68. C        TEST SUBSET VECTOR
  69. C
  70.       DO 8 J=1,NO
  71.       IJ=J-NO
  72.       IF(S(J)) 2,8,2
  73. C
  74. C        COMPARE OBSERVATIONS WITH BOUNDS
  75. C
  76.     2 DO 7 I=1,NV
  77.       IJ=IJ+NO
  78.       IF(A(IJ)-BLO(I)) 5,3,3
  79.     3 IF(A(IJ)-BHI(I)) 4,4,6
  80. C
  81. C       COUNT
  82. C
  83.     4 BETW(I)=BETW(I)+1.0
  84.       GO TO 7
  85.     5 UNDER(I)=UNDER(I)+1.0
  86.       GO TO 7
  87.     6 OVER(I)=OVER(I)+1.0
  88.     7 CONTINUE
  89.     8 CONTINUE
  90.    12 RETURN
  91.       END
  92.