Trailing-Edge
-
PDP-10 Archives
-
-
There are no other files named in the archive.
C MULTIVARIATE ANALYSIS OF VARIANCE AND COVARIANCE - OCTOBER 7,1966
C THIS IS A CONVERTED VERSION OF BMDX69 FOR THE 360/75 ORIGINALLY WRITTE
C IN FORTRAN TWO. SUBROUTINES LWH, PMEANS AND SS ARE IDENTICAL TO THOSE
C IN BMD08V, AND ANOVA IS IDENTICAL EXCEPT FOR ABOUT A DOZEN STATEMENTS.
DIMENSION IND(100)
COMMON/ANARG/FF(180),NI,NCM,KM,MT,NV,ILL
C
DIMENSION FIN(11),IN(11),AA(11),P(100),PL(11),A(99
1),B(50),C(100),D(100),E(100),G(100),P1(100),P2(100),MN(100),IL(100
2),S(5000),ID(100),J1(10)
DOUBLE PRECISION PROB,FINI,PF,PC,Q003HL,Q005HL,Q006HL
DOUBLE PRECISION P1,P2,Q007HL,Q009HL,Q010HL,AP,PA,Q008HL
INTEGER PCOV
DOUBLE PRECISION SPB
INTEGER AA,A,B,C,D,E,U,UNION,H,Q012CT,Q013CT,Q014CT
LOGICAL INCL
DIMENSION EE(10)
CALL USAGEB('BMDX69')
L=10
I=1
DO 500 J=1,10
AA(L)=I
I=2*I
500 L=L-1
Q012CT=I
Q013CT=2*I
Q014CT=4*I
DATA PROB,FINI/6HPROBLM,6HFINISH/
DATA Q003HL/6HINDEX /
C
DATA Q005HL/6HDESIGN/
DATA Q006HL/6H, /
DATA Q007HL/6H /
DATA Q008HL/6H( /
DATA Q009HL/6H) /
DATA Q010HL/6HMEAN /
DATA QMINUS/4H- /
DATA SPB/6HSUBPRO/
134 FORMAT ( '1BMDX69 - MULTIVARIATE ANALYSIS OF VARIANCE AND COVARIA
*NCE - REVISED ',
2'APRIL 14, 1969'
* / ' HEALTH SCIENCES COMPUTING FACILITY, UCLA' /
* '0PROBLEM CODE 'A6)
IIIII=1
KLV=-1
MTP=5
101 READ (5,100)PF,PC,NV,NI,KM,NF,MT,PCOV
IF(PF.EQ.PROB) GO TO 9143
GO TO 20
100 FORMAT(2A6,6I2)
7777 IF(PF.EQ.PROB)GO TO 111
110 IF(PF.EQ.FINI)GO TO 113
20 IF(KLV)2111,2111,7766
2111 KLV=1
GO TO (2101,2102,2103,2104,2105,2106,2107),IIIII
7766 READ (5,100)PF
118 FORMAT(13A6,A2)
GO TO 7777
113 IF(MTP.EQ.5)GO TO 117
116 REWIND MTP
117 STOP
2000 WRITE (6,2001)
2001 FORMAT(55H0 THE NUMBER OF ANALYSIS OF VARIANCE INDICES IS TOO BIG)
KLV=1
GO TO 101
111 KLV=-1
9143 IF(MT)102,102,103
102 MT=5
103 IF(MT-MTP) 9247,9248,9247
9247 REWIND MT
9248 IF(MT-MTP)104,107,104
104 IF(MTP.EQ.5)GO TO 107
106 REWIND MTP
107 MTP=MT
5013 IF(MT.EQ.5)GO TO 5114
5116 REWIND MT
5114 WRITE (6,134)PC
READ (5,191)AP, (J1(I),I=1,10)
IIIII=2
191 FORMAT(A6,10I3)
IF(AP.NE.Q003HL)GO TO 20
193 N=NI
IF(NI*(11-NI))2000,2000,2011
989 FORMAT(36X,10A3)
2011 DO 135 I=1,NI
IN(N)=J1(I)
135 N=N-1
IF(NF*(11-NF))7000,7000,200
3000 WRITE(6,4000)
4000 FORMAT(82H0THE NUMBER OF COMPONENTS IN THE ANALYSIS OF VARIANCE PA
1RT OF THE MODEL IS TOO BIG)
KLV=1
GO TO 101
5000 WRITE(6,6000)
6000 FORMAT(26H0VIOLATING RESTRICTION (B))
KLV=1
GO TO 101
7000 WRITE(6,9000)
9000 FORMAT(38H0THE NUMBER OF FORMAT CARDS IS TOO BIG)
KLV=1
GO TO 101
2101 WRITE(6,2121)
2121 FORMAT(32H0PROBLEM CARD IS OUT OF SEQUENCE)
GO TO 7766
2102 WRITE(6,2122)
2122 FORMAT(30H0INDEX CARD IS OUT OF SEQUENCE)
GO TO 7766
2103 WRITE(6,2123)
2123 FORMAT(31H0DESIGN CARD IS OUT OF SEQUENCE)
GO TO 7766
2104 WRITE(6,2124)
2124 FORMAT(74H0SUBPROBLEM CARD OR THE NEXT PROBLEM CARD OR FINISH CARD
1IS OUT OF SEQUENCE)
GO TO 7766
2105 WRITE(6,2125)
2125 FORMAT(33H0ILLEGAL CHARACTER ON DESIGN CARD)
GO TO 7766
2106 WRITE(6,2126)
2126 FORMAT(35H0WRONG SPECIFICATION ON DESIGN CARD)
GO TO 7766
2107 WRITE(6,2127)
2127 FORMAT(43H0DISAGREEMENT OF DESIGN CARD AND INDEX CARD)
GO TO 7766
200 NF=MAX0(1,NF)*20
READ (5,179)PA,(P(I),I=1,66)
IIIII=3
179 FORMAT(A6,66A1)
IF(PA.NE.Q005HL)GO TO 20
152 L=NI
M=0
IIIII=5
DO 31 I=1,10
FIN(I)=IN(I)
K=LWH(P(I))
GO TO (31,33,20,20,20,20,20,20),K
33 PL(L)=P(I)
M=M+1
EE(M)=P(I)
L=L-1
31 CONTINUE
IIIII=7
IF(L)20,32,20
32 WRITE (6,722) (EE(I),I=1,NI)
WRITE (6,723)(J1(I),I=1,NI)
722 FORMAT(17H0INDEX 10(4X,A1))
723 FORMAT(17H NUMBER OF LEVELS10I5)
WRITE (6,93)(P(I),I=1,66)
93 FORMAT(12H0DESIGN CARD 5X,72A1)
P(10)=','
CO=1.0
LB=-1
RB=-1.0
N=0
MO=10
MI=66
178 DO 4 I=MO,MI
IIIII=6
K=LWH(P(I))
GO TO (4,36,37,8,9,10,11,20),K
37 IF(CO)20,20,12
12 DO=1.0
CO=-1.0
PE=-1.0
LL=1
NL=0
N=N+1
A(N)=0
B(N)=0
GO TO 4
11 IF(DO)20,20,13
13 A(N)=Q012CT
DO=-1.0
GO TO 4
9 IF(RB)20,20,14
14 NL=1
CO=1.0
PE=1.0
RB=-1.0
GO TO 4
8 IF(LB)20,20,15
15 NL=-1
RB=1.0
LB=-1
CO=-1.0
PE=-1.0
GO TO 4
36 IF(LL)20,20,16
16 DO 17 M=1,NI
IF(P(I).EQ.PL(M)) GO TO 19
17 CONTINUE
GO TO 20
19 IF(NL) 21,22,23
22 A(N)=A(N)+Q013CT+AA(M)
NL=1
DO=-1.0
LB=1
CO=1.0
PE=1.0
GO TO 4
23 IF(B(N)/Q013CT.EQ.0) B(N)=B(N)+Q013CT
21 B(N)=B(N)+AA(M)
4 CONTINUE
READ (5,130)(P(I),I=1,72)
MO=1
MI=72
WRITE (6,471)(P(I),I=1,72)
471 FORMAT(18X,72A1)
GO TO 178
10 IF(PE)20,20,24
24 C(1)=Q013CT
D(1)=0
MN(1)=1
J=1
DO 51 K=1,N
J0=J
DO 51 I=1,J0
IF(.NOT.INCL(B(K),Q014CT-1-C(I)) .OR.
X .NOT.INCL(A(K),Q014CT-1-D(I))) GO TO 51
52 J=J+1
IF(J-100)2221,3000,3000
2221 MN(J)=0
D(J)=UNION(B(K),D(I))
C(J)=UNION(A(K),C(I))
E(J)=MOD(C(J)+D(J),Q012CT)
51 CONTINUE
NCM=J
DO 25 I=1,N
IF(MOD(A(I)/Q012CT,2).EQ.0) GO TO 25
26 H=MOD(A(I)+B(I),Q012CT)
DO 27 J=1,NCM
IF(E(J).EQ.H) GO TO 28
27 CONTINUE
GO TO 20
28 MN(J)=1
25 CONTINUE
E(1)=0
DO 53 I=1,NCM
C(I)=MOD(C(I),Q012CT)
D(I)=MOD(D(I),Q012CT)
53 G(I)=1024*(10*NBITS(E(I))+NBITS(C(I)))+C(I)
DO 86 I=1,NCM
X=1.E20
DO 89 K=I,NCM
IF(X-G(K))89,89,88
88 J=K
X=G(K)
89 CONTINUE
G(J)=G(I)
U=C(J)
C(J)=C(I)
C(I)=U
U=D(J)
D(J)=D(I)
D(I)=U
NUU=MN(I)
MN(I)=MN(J)
MN(J)=NUU
86 E(I)=C(I)+D(I)
DO 122 I=2,NCM
P2(I)=Q007HL
P1(I)=Q007HL
N=0
L=NI
DO 123 J=1,NI
IF(MOD(C(I)/AA(L),2).EQ.0) GO TO 123
124 N=N+1
IF(N.LE.6) CALL PUTCHR(P1(I),N,PL(L))
IF(N.GT.6) CALL PUTCHR(P2(I),N-6,PL(L))
123 L=L-1
C
IF(D(I)) 125,122,125
125 N=N+1
IF(N.LE.6) CALL PUTCHR(P1(I),N,Q008HL)
IF(N.GT.6) CALL PUTCHR(P2(I),N-6,Q008HL)
L=NI
DO 126 J=1,NI
IF(MOD(D(I)/AA(L),2) .EQ.0) GO TO 126
127 N=N+1
IF(N.LE.6) CALL PUTCHR(P1(I),N,PL(L))
IF(N.GT.6) CALL PUTCHR(P2(I),N-6,PL(L))
126 L=L-1
N=N+1
IF(N.LE.6) CALL PUTCHR(P1(I),N,Q009HL)
IF(N.GT.6) CALL PUTCHR(P2(I),N-6,Q009HL)
130 FORMAT(72A1)
122 CONTINUE
P1(1)=(+Q010HL)
P2(1)=(+Q007HL)
121 FORMAT(12A6)
DO 602 I=2,NCM
IF(MN(I))602,602,603
C
C
603 DO 601 J=1,I
601 IF(INCL(E(J),E(I))) MN(J)=1
602 CONTINUE
C
921 FORMAT(20A4)
READ(5,921)(FF (I),I=1,NF)
WRITE (6,5432)(FF(I),I=1,NF)
5432 FORMAT(21H0VARIABLE FORMAT 20A4/(21X,20A4))
M1P1=1
DO 90 I=M1P1,5000
90 S(I)=0.0
ILL=5000-M1P1
CALL ANOVA(AA,MN,E,IN,IL,S(M1P1),ID)
IF(ILL)5000,5000,2888
2888 NVV= (NV*(NV+1))/2
NN=NVV*NCM
DO 131 J=1,NV
DO 131 I=1,NCM
IF(MN(I))132,131,132
132 L1=IL(I)+J+M1P1-1
M=L1+MN(I)
131 CONTINUE
K=NVV+M1P1-1
R=QMINUS
IF(PCOV)8000,8001,8000
8000 DO 8002 I=2,NCM
8003 WRITE(6,8004)P1(I),P2(I)
8004 FORMAT( ////' CROSS PRODUCT MATRIX FOR COMPONENT',2X,2A6)
J2=0
8045 JI=J2+1
J2=MIN0(J2+10,NV)
WRITE(6,8046)(J,J=JI,J2)
8046 FORMAT(//' VARIABLE',10(I3, 9X))
M1=K+JI*(JI+1)/2
DO 8005 J=JI,NV
M2=M1+MIN0(J-JI,9)
WRITE(6,8006)J,(S(M),M=M1,M2)
8005 M1=M1+J
IF(J2.LT.NV)GO TO 8045
8002 K=K+NVV
8006 FORMAT(I3 ,10F12.5)
8001 MM=IL(1)+M1P1
DO 401 I=1,NV
L=IL(1)+I+M1P1-1
WRITE(6,400)I,S(L),I
400 FORMAT('-MEAN FOR VARIABLE',I3,F14.5/'0CELL MEANS FOR VARIABLE',
* I3)
DO 401 J=2,NCM
IF(MN(J))402,401,402
402 L1=IL(J)+I+M1P1-1
CALL PMEANS(E(J),AA,PL,IN,S(L1),NI,NV)
401 CONTINUE
KLV=0
1 READ (5,1028) PF,PC,(IND(I),I=7,66)
1028 FORMAT(2A6,60I1)
IF(PF.EQ.SPB) GO TO 1029
NV=10*IND(7)+IND(8)
NI=10*IND(9)+IND(10)
IIIII=4
KM=10*IND(11)+IND(12)
NF=10*IND(13)+IND(14)
MT=10*IND(15)+IND(16)
PCOV=10*IND(17)+IND(18)
GO TO 7777
1029 CALL CONV(PC,IND,6)
CALL COVAR(S(M1P1),ID,MN,IL,E,AA,PL,IN,IND,P1,P2)
GO TO 1
END
SUBROUTINE MULTIV(S,JND,JC,ID,T,MV,NC,P1,P2)
COMMON/ANARG/FF(180),NI,NCM,KM,MT,NV,ILL
DIMENSION S(2),JND(2),JC(2),ID(2),P1(2),P2(2),T(2),DT(100),IND(100
1),NP(100),KKK(100),X(100),KND(100)
DOUBLE PRECISIONP1,P2
MV1=MV+1
M6=NC+1
IF(NC)15,15,16
16 WRITE(6,17)(JC(I),I=M6,MV)
WRITE(6,18)(JC(I),I=1,NC)
GO TO 19
15 WRITE(6,25)(JC(I),I=M6,MV)
17 FORMAT(36H1MULTIVARIATE ANALYSIS OF COVARIANCE/20H0DEPENDENT VARIA
1BLES 20I5/(20X,20I5))
18 FORMAT(20H0COVARIATES 20I5/(20X,20I5))
25 FORMAT(34H1MULTIVARIATE ANALYSIS OF VARIANCE/20H0DEPENDENT VARIABL
1ES 20I5/(20X,20I5))
19 NVV=(NV*(NV+1))/2
WRITE(6,50)
50 FORMAT(1H-,'SOURCE LOG(GENERALIZED U-STATISTIC DEGREES
1OF APPROXIMATE DEGREES OF'/ 18X,
2 'VARIANCE)',22X,'FREEDOM F- STATISTIC FREEDOM'//)
C
MM=NVV
LL=(NCM-1)*NVV
DO 1 K=2,NCM
N=0
DO 2 I=1,MV
DO 2 J=1,MV
I1=MAX0(JC(I),JC(J))
I1=(I1*(I1-1))/2+JC(I)+JC(J)-I1
M1=MM+I1
L1=LL+I1
N=N+1
2 T(N)=S(M1)+S(L1)
MM=MM+NVV
NP(K)=0
CALL SOLVIT(T,MV,JND,1.E-6,NP(K),D)
L=1
DO 3 I=1,MV
X(I)=T(L)
L=L+MV1
IF(K-NCM)3,54,3
54 KND(I)=-I
CALL SOLVIT(T,MV,IND,1.E-6,KND(I),D)
3 IND(I)=1-JND(I)
KKK(K)=0
1 CALL SOLVIT(T,MV,IND,1.E-6,KKK(K),DT(K))
IP=MV-NC
DE=DT(NCM)+IP*ALOG(.5)
P=IP
PP=P*P
N=ID(NCM)-NP(NCM)
TN=N
NCM1=NCM-1
DO 4 I=2,NCM1
IQ=ID(I)-NP(I)+NP(NCM)
IF(KKK(I)-IP)30,31,30
30 WRITE(6,32)P1(I),P2(I)
32 FORMAT(A7,A6,6X,9HUNDEFINED)
GO TO 4
31 Q=IQ
QQ=Q*Q
IF(PP+QQ-5.)51,60,51
60 Z=1.
GO TO 52
51 Z=SQRT((PP*QQ-4.)/(PP+QQ-5.))
52 U=EXP(DE-DT(I))
Y=U**(1./Z)
D2=(TN-(P-Q+1.)*.5)*Z-P*Q*.5+1.
I1=P*Q
F=(1.-Y)/Y*D2/(P*Q)
WRITE(6,5)P1(I),P2(I),DT(I),U,IP,IQ,N,F,I1,D2
4 CONTINUE
5 FORMAT(1X,2A6,F10.5,6X,F10.6,4X,3I5,F12.4,I5,F8.2)
L=1
IF(NC)40,40,41
41 DO 42 I=1,NC
IF(KND(I))43,43,44
43 I1=0
IQ=0
U=1.
GO TO 45
44 I1=IP
IQ=1
U=X(I)/T(L)
45 D2=N-IP+1
F=(1.-U)/U*D2/P
GH=DE/U
L=L+MV1
42 WRITE(6,37)JC(I),GH,U,IP,IQ,N,F,I1,D2
37 FORMAT(' COVARIATE',I3,F10.5,6X,F10.6,4X,3I5,F12.4,I5,F8.2)
40 WRITE(6,5)P1(NCM),P2(NCM),DE
RETURN
END
SUBROUTINE COVAR(S,ID,MN,IL,Z,AA,PL,IN,IND,P1,P2)
COMMON/ANARG/FF(180),NI,NCM,KM,MT,NV,ILL
DIMENSION JC(100),NP(100),S(2),ID(2),P1(2),P2(2),IND(100),MN(2),I
1L(2),Z(2),JND(100)
DIMENSION AA(2),PL(2),IN(2)
DOUBLE PRECISION UQ,P1,P2,C,D,Q01,Q02,Q1,Q2
DATA Q01,Q02/6HCOVARI,6HATES /
DOUBLE PRECISION Q03,Q04
DATA Q03,Q04/6HFULL M,6HODEL /
Q1=P1(NCM)
Q2=P2(NCM)
NVV=(NV*(NV+1))/2
C
IF(NV.GT.66) READ (5,1) (IND(I),I=67,NV)
1 FORMAT(6X,66I1)
L=0
DO 250 I=1,NV
IF(IND(I)-2)250,251,250
251 L=L+1
JND(L)=0
JC(L)=I
250 CONTINUE
NC=L
DO 252 I=1,NV
IF(IND(I)-1)252,253,252
253 L=L+1
JND(L)=1
JC(L)=I
252 CONTINUE
MV=L
LLL=KM*NV+1
JD=JC(L)
IF(MV-NC-1)255,256,255
255 CALL MULTIV(S,JND,JC,ID,S(LLL+1),MV,NC,P1,P2)
RETURN
256 MM=0
IF(ILL-MV*(MV+NCM)-3) 2001,2001,2000
2001 ILL=0
WRITE(6,1111)UQ,JD,NC,(JC(I),I=1,NC)
1111 FORMAT(1H0,A6,22I3/(7X,22I3))
RETURN
2000 P1(NCM)=Q03
P2(NCM)=Q04
LL=(NCM-1)*NVV
NN=MV*MV+LLL
L0=NN
DO 2 NO=1,NCM
K=LLL
DO 3 I=1,MV
DO 3 J=1,MV
I1= MAX0 (JC(I),JC(J))
N=(I1*(I1-1))/2+JC(I)+JC(J)-I1
M1=MM+N
L1=LL+N
K=K+1
3 S(K)=S(L1)+S(M1)
R=S(K)/2.
MM=MM+NVV
NP(NO)=0
CALL SOLVIT(S(LLL+1),MV,JND,1.E-6,NP(NO),D)
K=MV+LLL
N=NN+1
NN=NN+MV
DO 2 I=N,NN
S(I)=S(K)
2 K=K+MV
WRITE(6,241)JD
241 FORMAT(1H1,'ANALYSIS OF COVARIANCE FOR DEPENDENT VARIABLE',I3//)
IF(NC.EQ.0)GO TO 12
WRITE(6,9008)
9008 FORMAT(11X,'REGRESSION COEFICIENTS UNDER EACH HYPOTHESIS')
C
I1=0
II=NCM
7 I0=I1+1
JJ= MIN0 (II,10)
I1=I1+JJ
II=II-JJ
WRITE(6,8)(P1(I),P2(I),I=I0,I1)
8 FORMAT(1H010X,20A6)
WRITE(6,9)
9 FORMAT(10H COVARIATE)
K0=L0+(I0-1)*MV+1
K1=L0+(I1-1)*MV+1
DO 10 I=1,NC
WRITE(6,11)JC(I),(S(K),K=K0,K1,MV)
11 FORMAT(I5,10F12.5)
K0=K0+1
10 K1=K1+1
IF(II)12,12,7
12 L=L0+MV
E=S(NN)/2.
DO 5 I=L,NN,MV
5 S(I)=S(I)-E
WRITE(6,14)
14 FORMAT(11H- SOURCE13X,48HSUM OF SQUARES DEGREES OF MEAN SQUA
1RE F/41X,7HFREEDOM//)
IDE=ID(NCM)-NP(NCM)
EM=E/FLOAT (IDE)
NM=NCM-1
DO 15 I=1,NM
IDI=ID(I)-NP(I)+NP(NCM)
T=S(L)/FLOAT (IDI)
F=T/EM
WRITE(6,16)P1(I),P2(I),S(L),IDI,T,F
16 FORMAT(6X,2A6,F18.4,I10,F16.4,F12.4)
15 L=L+MV
IF(NC.EQ.0)GO TO 9016
R=R-E
C=Q01
D=Q02
T=R/FLOAT (NP(NCM))
F=T/EM
WRITE(6,16)C,D,R,NP(NCM),T,F
J=LLL+1
K=LLL
DO 17 I=1,NC
K=K+MV
R=-S(K)*S(K)/S(J)/2.
J=J+MV+1
IDF=-I
CALL SOLVIT(S(LLL+1),MV,JND,1.E-6,IDF,D)
IF(IDF)994,994,995
994 R=0.
995 F=R/EM
17 WRITE(6,18)JC(I),R,IDF,R,F
18 FORMAT(6X,9HCOVARIATEI3,F18.4,I10,F16.4,F12.4)
9016 WRITE(6,16)Q1,Q2,E,IDE,EM
IF(NC.EQ.0)RETURN
P1(NCM)=Q1
P2(NCM)=Q2
K0=(NCM-1)*MV+L0
L=IL(1)
KKK=K0
A=0.
DO 50 I=1,NC
KKK=KKK+1
KK=L+JC(I)
50 A=A+S(KK)*S(KKK)
LZZ=0
DO 139 I=2,NCM
IF(MN(I))139,139,133
133 K=IL(I)
IF(LZZ)400,400,401
400 LZZ=1
WRITE(6,402)
402 FORMAT(20H-ADJUSTED CELL MEANS)
401 N=K0+MV
KK=IL(I)+MN(I)-NV
DO 135 L=K,KK,NV
M=L+JD
C=0.
KKK=K0
DO 136 II=1,NC
J=L+JC(II)
KKK=KKK+1
136 C=C+S(J)*S(KKK)
N=N+1
IF(ILL-N)2007,135,135
2007 WRITE(6,2008)P1(I),P2(I)
2008 FORMAT(80H0THIS PROBLEM IS TOO LARGE TO ALLOW COMPUTATION OF ADJUS
1TED MEANS FOR COMPONENT 2A6)
GO TO 139
135 S(N)=S(M)+A-C
L1=K0+MV+1
CALL PMEANS (Z(I),AA,PL,IN,S(L1),NI,1)
139 CONTINUE
RETURN
END
C SUBROUTINE ANOVA FOR BMD08V MARCH 1, 1966
SUBROUTINE ANOVA(AJ,MN,CW,IN,IL,S,ID)
DIMENSIONAJ(2),MN(2),CW(2),IN(2),IL(2),S(2),FF(180),ID(2),ST(100),
1IC(11,100),II(11),IJ(11,100),X(255),FP(100),SF(100),SG(100)
COMMON/ANARG/FF,NI,NCW,MK,MT,NV,ILL
LOGICAL INCL
INTEGER CW,AJ,QCT
QCT=2**10
IF(MT)500,500,501
500 DO 403 I=2,NCW
AJ(NI1)=QCT
CW(I)=CW(I)+QCT
J1=I-1
410 DO 404 J=1,J1
IF(.NOT.INCL(CW(J),CW(I))) GO TO 404
405 M=IL(I)-MT
L=IL(J)-MT
S(M)=S(M)-S(L)
404 CONTINUE
II(NI1)=-2
DO 408 K=1,NI1
IF(MOD(CW(I)/AJ(K),2).EQ.0) GO TO 408
402 II(K)=II(K)+1
IF(II(K))401,400,400
400 II(K)=-IN(K)
408 CONTINUE
401 DO 407 J=1,I
IF(.NOT.INCL(CW(J),CW(I))) GO TO 407
418 IL(J)=IL(J)+IJ(K,J)
407 CONTINUE
IF(NI1-K)410,403,410
403 CONTINUE
RETURN
501 KM=MK
DO 228 I=1,100
228 ST(I)=0.0
NVV=(NV*(NV+1))/2
NN=1
DO 51 I=1,NI
51 NN=NN*IN(I)
NI1=NI+1
DO 10 J=1,NCW
ID(J)=1
IL(J)=1
IO=1
DO 12 I=1,NI
IF(MOD(CW(J)/AJ(I),2).EQ.0) GO TO 13
52 IC(I,J)=1
ID(J)=ID(J)*IN(I)
GO TO 12
13 IO=I
IC(I,J)=0
12 CONTINUE
IF(MN(J))11,11,107
11 DO 14 K=IO,NI
14 IC(K,J)=-IC(K,J)
107 FP(J)=NN/ID(J)
10 IC(NI1,J)=-1
IN(NI1)=2
DO 7 I=1,NI1
DO 15 J=1,NCW
IF(IC(I,J)-1)16,17,16
17 IJ(I,J)=NV
IL(J)=IL(J)*IN(I)
GO TO 15
16 IJ(I,J)=(1-IL(J))*NV
15 CONTINUE
7 II(I)=-IN(I)
N=(NVV*NCW)/NV+1
DO 118 J=1,NCW
IF(MN(J))118,118,110
110 N=N+IL(J)
IL(J)=(N-IL(J))*NV
118 CONTINUE
MK=N+1
DO 119 J=1,NCW
IF(MN(J))111,111,119
111 N=N+IL(J)
IL(J)=(N-IL(J))*NV
119 CONTINUE
KU=KM
FQ=0.0
IF(N*NV-ILL)19,2000,2000
2000 ILL=0
RETURN
19 DO 23 M=1,NV
KU=KU+1
IF(KU-KM)22,22,21
21 READ (MT,FF)(X(K),K=1,KM)
KU=1
22 XK=X(KU)
ST(M)=ST(M)+XK
DO 23 J=1,NCW
N=IL(J)+M
23 S(N)=S(N)+XK
FQ=FQ+1.0
DO 20 I=1,NI1
II(I)=II(I)+1
IF(II(I))24,20,20
20 II(I)=-IN(I)
24 DO 25 J=2,NCW
IL(J)=IL(J)+IJ(I,J)
IF(IC(I,J))26,25,25
26 N=IL(J)
DO 222 K=1,NV
222 SG(K)=0.0
LL=-IJ(I,J)/NV+1
K0=(J-1)*NVV
GR=FP(J)/FQ
DO 27 L=1,LL
M=K0
DO 27 K=1,NV
N=N+1
SF(K)=S(N)-GR*ST(K)
SG(K)=SG(K)+SF(K)
DO 277 KK=1,K
M=M+1
277 S(M)=S(M)+SF(K)*SF(KK)
IF(I-NI1)60,27,60
60 S(N)=0.0
27 CONTINUE
GR=FQ/FP(J)-FLOAT(LL)
IF(GR)25,25,372
372 M=K0
DO 327 K=1,NV
DO 327 KK=1,K
M=M+1
327 S(M)=S(M)+SG(K)*SG(KK)/GR
25 CONTINUE
IF(I-NI1)19,30,19
30 K1=0
K=0
L0=IL(1)+1
L1=IL(1)+NV
DO 373 L=L0,L1
DO 373 LL=L0,L
K=K+1
373 S(K)=S(L)*S(LL)
DO 31 J=1,NCW
NM=NV-IJ(NI1,J)
MN(J)=MN(J)*NM
F=(NN*NV)/NM
K2=IL(J)+1
K3=IL(J)+NM
DO 70 K=K2,K3
70 S(K)=S(K)/F
F=NN/ID(J)
K0=K1+1
K1=K1+NVV
DO 31 K=K0,K1
31 S(K)=S(K)/F
L1=NVV
DO 32 J=2,NCW
J1=J-1
L0=L1+1
L1=L1+NVV
DO 32 K=1,J1
IF(.NOT.INCL(CW(K),CW(J))) GO TO 32
C FUNCTION LWH FOR BMDX69 MAY 14, 1968
33 IF(K-1)62,62,61
61 M=(K-1)*NVV
DO 34 L=L0,L1
M=M+1
34 S(L)=S(L)-S(M)
62 ID(J)=ID(J)-ID(K)
32 CONTINUE
RETURN
END
FUNCTION LWH(P)
DIMENSION A(17)
DATA A/' ',' ',',','(',')','.','$','=','+','-','*','/',1H',
*'=','+','(',')'/
DO 1 I=1,17
IF(P.EQ.A(I)) GO TO 2
1 CONTINUE
LWH=2
RETURN
2 IF(I.GE.16) I=I-12
LWH=MIN0(8,I)
RETURN
END
C SUBROUTINE PMEANS FOR BMD08V MARCH 1, 1966
SUBROUTINE PMEANS(E,A,PL,IN,S,NI,NV)
DIMENSION A(2),PL(2),S(2),LL(11),P(11),JO(11),IN(2)
INTEGER E,A
40 M=NI+1
DO 1 I=1,NI
IF(MOD(E/A(I),2).EQ.0) GO TO 1
2 M=M-1
P(M)=PL(I)
JO(M)=IN(I)
1 CONTINUE
NJ=NI-2
N=NI-M+1
JO1=JO(NI)
JO2=JO(NI-1)
L1=1-NV
IF(N-2)3,88,5
88 WRITE (6,127)P(NI),(I,I=1,JO1)
GO TO 89
5 DO 6 I=M,NI
6 LL(I)=1
11 WRITE (6,7)(P(K),LL(K),K=M,NJ)
7 FORMAT(1H08(4X,A1,2H =I3))
GO TO 8
9 I=NJ
DO 10 J=3,N
LL(I)=LL(I)+1
IF(LL(I)-JO(I))11,11,12
12 LL(I)=1
10 I=I-1
RETURN
8 WRITE (6,27)P(NI),(I,I=1,JO1)
27 FORMAT( 5X,A1,2H =I7,9I12, /(3X,10I12))
89 I=1
L0=L1+NV
L1=L1+JO1*NV
WRITE (6,24)P(NI-1),I,(S(L),L=L0,L1,NV)
24 FORMAT(1X,A1,2H =I3,10F12.5, /(7X,10F12.5))
DO 29 I=2,JO2
L0=L1+NV
L1=L1+JO1*NV
29 WRITE (6,25)I,(S(L),L=L0,L1,NV)
25 FORMAT(4X,I3,10F12.5, /(7X,10F12.5))
IF(N-2)37,37,9
3 L0=L1+NV
L1=L1+NV*JO1
WRITE (6,127)P(NI),(I,I=1,JO1)
127 FORMAT(1H04X,A1,2H =I7,9I12, /(3X,10I12))
WRITE (6,35)(S(L),L=L0,L1,NV)
35 FORMAT(7X,10F12.5)
37 RETURN
END
SUBROUTINE SOLVIT(A,N,IND,T,IDF,DT)
DIMENSION A(2),U(100),V(100),IN(100),IND(2)
N1=N
IF(IDF)20,30,30
20 I=-IDF
K0=(N+1)*I-N
IF(IN(I))21,21,22
22 DO 23 J=1,N1
IF(IN(J))24,24,23
24 K=(I-1)*N+J
K1=(N+1)*J-N
IF((A(K1)-A(K)*A(K)/A(K0))/V(I)-T)23,23,21
23 CONTINUE
IDF=1
RETURN
21 IDF=0
RETURN
30 IDF=0
DT=0.
K=0
J=1
DO 1 I=1,N1
V(I)=A(J)
J=J+N+1
IF(IND(I))1,41,1
41 K=I
1 IN(I)=IND(I)
G=1.
IF(K)18,18,19
19 T1=G
IDF=IDF+1
IN(K)=1
L=K
10 DO 11 I=1,K
U(I)=A(L)
A(L)=0.
11 L=L+N
X=U(K)
L=L-N
DO 12 I=K,N
U(I)=A(L)
A(L)=0.
12 L=L+1
U(K)=-1.
DT=DT+ALOG(X)
L=1
DO 8 I=1,N
P=U(I)/X
DO 48 J=I,N
A(L)=A(L)-U(J)*P
48 L=L+1
8 L=L+I
14 G=T
J=1
DO 15 I=1,N1
IF(IN(I))15,16,15
16 H=A(J)/V(I)
IF(H-G)15,15,17
17 G=H
K=I
15 J=J+N+1
IF(G-T)18,18,19
18 L=N
DO 31 I=1,N1
IF(IN(I))32,32,31
32 A(L)=0.
31 L=L+N
L=1
DO 55 I=1,N
K=L
DO 50 J=I,N
A(K)=A(L)
L=L+1
50 K=K+N
55 L=L+I
RETURN
END
FUNCTION NBITS(II)
K=II
NBITS=0
DO 1 I=1,10
IF(MOD(K,2).EQ.1) NBITS=NBITS+1
1 K=K/2
RETURN
END
INTEGER FUNCTION UNION(II,JJ)
UNION=0
L=1
DO 1 I=1,12
IF(MOD(II/L,2).NE.0 .OR. MOD(JJ/L,2).NE.0) UNION=UNION+L
1 L=L*2
RETURN
END
LOGICAL FUNCTION INCL(II,JJ)
INCL=.FALSE.
L=1
DO 1 I=1,12
IF(MOD(II/L,2).EQ.0) GO TO 1
IF(MOD(JJ/L,2).EQ.0) RETURN
1 L=L*2
INCL=.TRUE.
RETURN
END
SUBROUTINE CONV(A,IN,N)
DOUBLE PRECISION A
DIMENSION C(10),IN(10)
DATA C/'0','1','2','3','4','5','6','7','8','9'/
DO 1 I=1,N
CALL GETCHR(A,I,B)
IN(I)=0
DO 1 J=1,10
1 IF(B.EQ.C(J)) IN(I)=J-1
RETURN
END