home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frostbyte's 1980s DOS Shareware Collection
/
floppyshareware.zip
/
floppyshareware
/
DOOG
/
PCSSP2.ZIP
/
STATDSGN.ZIP
/
AVDAT.FOR
< prev
next >
Wrap
Text File
|
1985-11-29
|
4KB
|
116 lines
C
C ..................................................................
C
C SUBROUTINE AVDAT
C
C PURPOSE
C PLACE DATA FOR ANALYSIS OF VARIANCE IN PROPERLY DISTRIBUTED
C POSITIONS OF STORAGE. THIS SUBROUTINE IS NORMALLY FOLLOWED
C BY CALLS TO AVCAL AND MEANQ SUBROUTINES IN THE PERFORMANCE
C OF ANALYSIS OF VARIANCE FOR A COMPLETE FACTORIAL DESIGN.
C
C USAGE
C CALL AVDAT (K,LEVEL,N,X,L,ISTEP,KOUNT)
C
C DESCRIPTION OF PARAMETERS
C K - NUMBER OF VARIABLES (FACTORS). K MUST BE .GT. ONE.
C LEVEL - INPUT VECTOR OF LENGTH K CONTAINING LEVELS (CATE-
C GORIES) WITHIN EACH VARIABLE.
C N - TOTAL NUMBER OF DATA POINTS READ IN.
C X - WHEN THE SUBROUTINE IS CALLED, THIS VECTOR CONTAINS
C DATA IN LOCATIONS X(1) THROUGH X(N). UPON RETURNING
C TO THE CALLING ROUTINE, THE VECTOR CONTAINS THE DATA
C IN PROPERLY REDISTRIBUTED LOCATIONS OF VECTOR X.
C THE LENGTH OF VECTOR X IS CALCULATED BY (1) ADDING
C ONE TO EACH LEVEL OF VARIABLE AND (2) OBTAINING THE
C CUMULATIVE PRODUCT OF ALL LEVELS. (THE LENGTH OF
C X = (LEVEL(1)+1)*(LEVEL(2)+1)*...*(LEVEL(K)+1).)
C L - OUTPUT VARIABLE CONTAINING THE POSITION IN VECTOR X
C WHERE THE LAST INPUT DATA IS STORED.
C ISTEP - OUTPUT VECTOR OF LENGTH K CONTAINING CONTROL STEPS
C WHICH ARE USED TO LOCATE DATA IN PROPER POSITIONS
C OF VECTOR X.
C KOUNT - WORKING VECTOR OF LENGTH K.
C
C REMARKS
C INPUT DATA MUST BE ARRANGED IN THE FOLLOWING MANNER.
C CONSIDER THE 3-VARIABLE ANALYSIS OF VARIANCE DESIGN, WHERE
C ONE VARIABLE HAS 3 LEVELS AND THE OTHER TWO VARIABLES HAVE
C 2 LEVELS. THE DATA MAY BE REPRESENTED IN THE FORM X(I,J,K),
C I=1,2,3 J=1,2 K=1,2. IN ARRANGING DATA, THE INNER
C SUBSCRIPT, NAMELY I, CHANGES FIRST. WHEN I=3, THE NEXT
C INNER SUBSCRIPT, J, CHANGES AND SO ON UNTIL I=3, J=2, AND
C K=2.
C
C SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
C NONE
C
C METHOD
C THE METHOD IS BASED ON THE TECHNIQUE DISCUSSED BY H. O.
C HARTLEY IN 'MATHEMATICAL METHODS FOR DIGITAL COMPUTERS',
C EDITED BY A. RALSTON AND H. WILF, JOHN WILEY AND SONS,
C 1962, CHAPTER 20.
C
C ..................................................................
C
SUBROUTINE AVDAT (K,LEVEL,N,X,L,ISTEP,KOUNT)
DIMENSION LEVEL(1),X(1),ISTEP(1),KOUNT(1)
C
C ...............................................................
C
C IF A DOUBLE PRECISION VERSION OF THIS ROUTINE IS DESIRED, THE
C C IN COLUMN 1 SHOULD BE REMOVED FROM THE DOUBLE PRECISION
C STATEMENT WHICH FOLLOWS.
C
C DOUBLE PRECISION X
C
C THE C MUST ALSO BE REMOVED FROM DOUBLE PRECISION STATEMENTS
C APPEARING IN OTHER ROUTINES USED IN CONJUNCTION WITH THIS
C ROUTINE.
C
C ...............................................................
C
C CALCULATE TOTAL DATA AREA REQUIRED
C
M=LEVEL(1)+1
DO 105 I=2,K
105 M=M*(LEVEL(I)+1)
C
C MOVE DATA TO THE UPPER PART OF THE ARRAY X
C FOR THE PURPOSE OF REARRANGEMENT
C
N1=M+1
N2=N+1
DO 107 I=1,N
N1=N1-1
N2=N2-1
107 X(N1)=X(N2)
C
C CALCULATE MULTIPLIERS TO BE USED IN FINDING STORAGE LOCATIONS FOR
C INPUT DATA
C
ISTEP(1)=1
DO 110 I=2,K
110 ISTEP(I)=ISTEP(I-1)*(LEVEL(I-1)+1)
DO 115 I=1,K
115 KOUNT(I)=1
C
C PLACE DATA IN PROPER LOCATIONS
C
N1=N1-1
DO 135 I=1,N
L=KOUNT(1)
DO 120 J=2,K
120 L=L+ISTEP(J)*(KOUNT(J)-1)
N1=N1+1
X(L)=X(N1)
DO 130 J=1,K
IF(KOUNT(J)-LEVEL(J)) 124, 125, 124
124 KOUNT(J)=KOUNT(J)+1
GO TO 135
125 KOUNT(J)=1
130 CONTINUE
135 CONTINUE
RETURN
END