Google
 

Trailing-Edge - PDP-10 Archives - decuslib10-11 - 43,50532/ridit.for
There are no other files named ridit.for in the archive.
c Ridit analysis program
c Updated July 1982
c By Peter J. Plourd II and Ardoth A. Hassler
c The Catholic University of America
c
c Ridit ("relative to an identified distribution") analysis
c was developed by Irwin D.J. Bross in 1958
c
c Input and Output Variables:
c
c	KT - Terminal input from user
c	KR - Input file containing data for calculations
c	KW - The output file
c
	COMMON NSAMP,AN(2),KR,KW
	DIMENSION OBS(25,2),FMT(16)
        NCOEF=9
        NSAMP=2
        AN(1)=0
        AN(2)=0
	KT=5
	KR=21
	KW=22
c
c The input and output files are opened
c
	WRITE(KT,5)
5	FORMAT(' *',$)
	READ (KT,7)INFIL
7	FORMAT(2A5)
        OPEN (UNIT=KR,FILE=INFIL)
	OPEN (UNIT=KW,FILE='RIDIT.LST')
c
c Data is read in from data file. Initially the number of cases
c then the format of the data, and finally the data is read in.
c
        READ(KR,10)N
10      FORMAT(I)
        READ(KR,20)FMT
20      FORMAT(16A5)
	READ(KR,25)WISE
25	FORMAT(A1)
        WRITE(KW,30)
30      FORMAT(22X,'RIDIT ANALYSIS'//24X,'INPUT DATA'//
     1  25X,'1',5X,'2',4X,'TOTAL'/)
	IF(WISE.EQ.'C'.OR.WISE.EQ.'c')GO TO 61
c
c The data is stored column wise and is read in here
c
        DO 60 I=1,N
        READ(KR,FMT)(OBS(I,J),J=1,2)
60      CONTINUE
	GO TO 66
c
c The data is stored row wise and is read in here
c
61	DO 65 J=1,2
	READ(KR,FMT)(OBS(I,J),I=1,N)
65	CONTINUE
c
c Summation of the case values
c
66	DO 69 I=1,N
        WRITE(KW,68)I,(OBS(I,J),J=1,2)
68      FORMAT(17X,I2,3X,F5.0,1X,F5.0)
        AN(1)=AN(1)+OBS(I,1)
        AN(2)=AN(2)+OBS(I,2)
69	CONTINUE
c
c Total value of the combined case
c
        TOT=AN(1)+AN(2)
        WRITE(KW,70)AN(1),AN(2),TOT
70      FORMAT(/12X,'TOTAL',5X,F5.0,1X,F5.0,3X,F5.0)

        CALL RIDIT(N,OBS)
c
c Processing is completed and the files are closed
c
	CLOSE(UNIT=KW)
        CLOSE(UNIT=KR)
	END
c
c The actual Ridit calculations are done in this subprogram
c and the results printed to the output file
c
	SUBROUTINE RIDIT(NCELLS,OBS)
c
c Written by Ardoth A. Hassler
c
c A brief description of the calculation of the Ridits for
c the identified distribution.
c
c  1.  The initial entries for the cell total are first halved,
c  2.  The entries are then totaled cumulatively, but offset by
c      one category.
c  3.  The sum of the values calculated in one and two.
c  4.  The first Ridit is calculated by taking the values from three
c      and dividing by the total sample size
c  5.  The sample Ridits are the product of the Identified Distribution
c      Ridits and the cell totals for the distribution.
c
c  Arrays:
c
c      Ridits - Identification Distribution Ridits
c      Amean - Mean values
c      Obs - Observation matrix
c
	COMMON NSAMP,AN(2),KR,KW
	DIMENSION RIDITS(10),AMEAN(2),OBS(25,2)
	J=1
        CUM=0.
	WRITE(KW,5)
5 	FORMAT(//25X,'RIDITS'/)
c
c Cumulative frequency of the cells, offset by one cell
c and add half of the cell total
c
 	DO 10 I=1,NCELLS
	IF(I.GT.1)CUM=CUM+OBS(I-1,J)
	RIDITS(I)=.5*OBS(I,J)+CUM
10	CONTINUE
c
c The Ridits are calculated and printed here
c
	DO 20 I=1,NCELLS
 	RIDITS(I)=RIDITS(I)/AN(J)
	RIDITX=RIDITS(I)*OBS(I,2)
	WRITE(KW,15)I,RIDITS(I),RIDITX
15	FORMAT(17X,I2,3X,F6.3,1X,F6.3)
20	CONTINUE
c
c Calculation of the samples mean value
c
	DO 40 J=1,NSAMP
	AMEAN(J)=0.
	DO 30 I=1,NCELLS
	AMEAN(J)=AMEAN(J)+RIDITS(I)*OBS(I,J)
30	CONTINUE
 	AMEAN(J)=AMEAN(J)/AN(J)
40	CONTINUE
c
c Standard error and Z value is calculated
c
 	SE=SQRT(AN(1)+AN(2))/(2.*SQRT(3*AN(1)*AN(2)))
 	Z=(AMEAN(2)-AMEAN(1))/SE

c
c Printing out of final results from the analysis
c
        WRITE(KW,50)AMEAN(1),AMEAN(2)
50      FORMAT(/12X,'MEAN',7X,F5.3,2X,F5.3)
	WRITE(KW,60)SE,Z
60      FORMAT(//14X,'Z:',F10.4//1X,'STANDARD ERROR:',F10.4)
	RETURN
	END