home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / fortran / library / ssp / statdsgn / avcal.for next >
Encoding:
Text File  |  1985-11-29  |  3.1 KB  |  103 lines

  1. C
  2. C     ..................................................................
  3. C
  4. C        SUBROUTINE AVCAL
  5. C
  6. C        PURPOSE
  7. C           PERFORM THE CALCULUS OF A FACTORIAL EXPERIMENT USING
  8. C           OPERATOR SIGMA AND OPERATOR DELTA.  THIS SUBROUTINE IS
  9. C           PRECEDED BY SUBROUTINE ADVAT AND FOLLOWED BY SUBROUTINE
  10. C           MEANQ IN THE PERFORMANCE OF ANALYSIS OF VARIANCE FOR A
  11. C           COMPLETE FACTORIAL DESIGN.
  12. C
  13. C        USAGE
  14. C           CALL AVCAL (K,LEVEL,X,L,ISTEP,LASTS)
  15. C
  16. C        DESCRIPTION OF PARAMETERS
  17. C           K     - NUMBER OF VARIABLES (FACTORS). K MUST BE .GT. ONE.
  18. C           LEVEL - INPUT VECTOR OF LENGTH K CONTAINING LEVELS (CATE-
  19. C                   GORIES) WITHIN EACH VARIABLE.
  20. C           X     - INPUT VECTOR CONTAINING DATA.  DATA HAVE BEEN PLACED
  21. C                   IN VECTOR X BY SUBROUTINE AVDAT.  THE LENGTH OF X
  22. C                   IS (LEVEL(1)+1)*(LEVEL(2)+1)*...*(LEVEL(K)+1).
  23. C           L     - THE POSITION IN VECTOR X WHERE THE LAST INPUT DATA
  24. C                   IS LOCATED.  L HAS BEEN CALCULATED BY SUBROUTINE
  25. C                   AVDAT.
  26. C           ISTEP - INPUT VECTOR OF LENGTH K CONTAINING STORAGE CONTROL
  27. C                   STEPS WHICH HAVE BEEN CALCULATED BY SUBROUTINE
  28. C                   AVDAT.
  29. C           LASTS - WORKING VECTOR OF LENGTH K.
  30. C
  31. C        REMARKS
  32. C           THIS SUBROUTINE MUST FOLLOW SUBROUTINE AVDAT.
  33. C
  34. C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
  35. C           NONE
  36. C
  37. C        METHOD
  38. C           THE METHOD IS BASED ON THE TECHNIQUE DISCUSSED BY H. O.
  39. C           HARTLEY IN 'MATHEMATICAL METHODS FOR DIGITAL COMPUTERS',
  40. C           EDITED BY A. RALSTON AND H. WILF, JOHN WILEY AND SONS,
  41. C           1962, CHAPTER 20.
  42. C
  43. C     ..................................................................
  44. C
  45.       SUBROUTINE AVCAL (K,LEVEL,X,L,ISTEP,LASTS)
  46.       DIMENSION LEVEL(1),X(1),ISTEP(1),LASTS(1)
  47. C
  48. C        ...............................................................
  49. C
  50. C        IF A DOUBLE PRECISION VERSION OF THIS ROUTINE IS DESIRED, THE
  51. C        C IN COLUMN 1 SHOULD BE REMOVED FROM THE DOUBLE PRECISION
  52. C        STATEMENT WHICH FOLLOWS.
  53. C
  54. C     DOUBLE PRECISION X,SUM
  55. C
  56. C        THE C MUST ALSO BE REMOVED FROM DOUBLE PRECISION STATEMENTS
  57. C        APPEARING IN OTHER ROUTINES USED IN CONJUNCTION WITH THIS
  58. C        ROUTINE.
  59. C
  60. C        ...............................................................
  61. C
  62. C     CALCULATE THE LAST DATA POSITION OF EACH FACTOR
  63. C
  64.       LASTS(1)=L+1
  65.       DO 145 I=2,K
  66.   145 LASTS(I)=LASTS(I-1)+ISTEP(I)
  67. C
  68. C     PERFORM CALCULUS OF OPERATION
  69. C
  70.   150 DO 175 I=1,K
  71.       L=1
  72.       LL=1
  73.       SUM=0.0
  74.       NN=LEVEL(I)
  75.       FN=NN
  76.       INCRE=ISTEP(I)
  77.       LAST=LASTS(I)
  78. C
  79. C     SIGMA OPERATION
  80. C
  81.   155 DO 160 J=1,NN
  82.       SUM=SUM+X(L)
  83.   160 L=L+INCRE
  84.       X(L)=SUM
  85. C
  86. C     DELTA OPERATION
  87. C
  88.       DO 165 J=1,NN
  89.       X(LL)=FN*X(LL)-SUM
  90.   165 LL=LL+INCRE
  91.       SUM=0.0
  92.       IF(L-LAST) 167, 175, 175
  93.   167 IF(L-LAST+INCRE) 168, 168, 170
  94.   168 L=L+INCRE
  95.       LL=LL+INCRE
  96.       GO TO 155
  97.   170 L=L+INCRE+1-LAST
  98.       LL=LL+INCRE+1-LAST
  99.       GO TO 155
  100.   175 CONTINUE
  101.       RETURN
  102.       END
  103.