SUBROUTINE TESTS(TITLE,DCC,BCC,CHIA,IDFA) C C COMPUTE chi-square TEST OF Model D2 VS Model B2 C AND TEST OF Model B2 VS Model A2 C C VARIABLES: C DCC=Model D2 COMPLETION CODE (0-SUCC, 1-FAILURE) C BCC=Model B2 COMPLETION CODE C M(I),N(I),NS(I),R(I),Z(I)...DEFINED IN Model B2 C XB(I)=X ARRAY FROM Model B2 C XD(I)=X ARRAY FROM Model D2 C PB(I)=P ARRAY FROM Model B2 C PD =P FROM Model D2 C IMPLICIT DOUBLE PRECISION (A-Z) INTEGER IDIM,IDIM9 PARAMETER (IDIM=50,IDIM9=IDIM*9) INTEGER YR(IDIM),I,J,S,DCC,BCC,IDFA,IDFB,IDFD,DAT1DF,BAT1DF, , MAXITR,DBL1DF,IPRNT CHARACTER*128 TITLE DIMENSION T(9,IDIM) COMMON/BLK1/M(IDIM),N(IDIM),NY(IDIM),Z(IDIM),R(IDIM),RY(IDIM), , NS(IDIM),SY(IDIM),YR COMMON /BLK3/S,FIMA,FIMD,FYMA,FYMD,EPSLON,MAXITR,IPRNT COMMON /BLK4/XAB(IDIM),XYB(IDIM),PB(IDIM),XAD(IDIM),XYD(IDIM), , PD(1) DATA DAT1DF,BAT1DF,DBL1DF,T/3*0,IDIM9*.0D0/ C IF(DCC.EQ.0.AND.BCC.EQ.0)RETURN WRITE(7,10)CHAR(12),TITLE 10 FORMAT(A1,A128) IF(DCC.EQ.0.OR.BCC.EQ.0)GO TO 20 DBL1DF=S-2 CALL TDBL1(S,R,NS,XAD,XAB,DBL1DF,7,T) CALL TDBL1(S,RY,SY,XYD,XYB,DBL1DF,8,T) CALL TDBL2(S,M,Z,PD,PB,XAD,XAB,DBL1DF,9,T) C 20 IF(DCC.EQ.0)GO TO 30 DAT1DF=3*S-7 CALL TDA1(S,R,NS,XAD,DAT1DF,1,T) CALL TDA1(S,RY,SY,XYD,DAT1DF,2,T) CALL TDA2(S,M,Z,PD,XAD,DAT1DF,3,T) 30 IF(BCC.EQ.0)GO TO 40 BAT1DF=2*S-5 CALL TDA1(S,R,NS,XAB,BAT1DF,4,T) CALL TDA1(S,RY,SY,XYB,BAT1DF,5,T) CALL TDA2(S,M,Z,PB,XAB,BAT1DF,6,T) 40 WRITE(7,50) 50 FORMAT(/14X,'Test of Model D2 vs Model A2',8X, , 'Test of Model B2 vs Model A2',8X, , 'Test of Model D2 vs Model B2'//' Period', , 2(' T1 T1'' T2 '), , ' T1 T1'' T2'/6X, , 2(' ------ ------ ------'), , ' ------ ------ ------') DO 60 I=1,S-1 WRITE(7,70)YR(I),(T(J,I),J=1,9) 60 IF(MOD(YR(I),5).EQ.0)WRITE(7,70) 70 FORMAT(I6,9F12.4) WRITE(7,80)(T(J,IDIM),J=1,9) 80 FORMAT(/' Total',9F12.4) DAT1=T(1,IDIM)+T(2,IDIM)+T(3,IDIM) BAT1=T(4,IDIM)+T(5,IDIM)+T(6,IDIM) DBL1=T(7,IDIM)+T(8,IDIM)+T(9,IDIM) WRITE(7,90)DAT1,BAT1,DBL1,DAT1DF,BAT1DF,DBL1DF, , CHIPRB(DAT1DF,DAT1),CHIPRB(BAT1DF,BAT1),CHIPRB(DBL1DF,DBL1) 90 FORMAT(/3(5X,'Total chi-square = ',F9.4,7X)/ / 3(5X,'Degrees of freedom = ',I5,11X)/ / 3(5X,'Probability = ',F9.4,7X)) IF(IDFA.LT.1)GO TO 140 CHIB=CHIA+BAT1 IDFB=BAT1DF+IDFA CHID=CHIA+DAT1 IDFD=DAT1DF+IDFA WRITE(7,100) WRITE(7,110)CHIA,IDFA,CHIPRB(IDFA,CHIA) IF(IDFB.GT.IDFA)WRITE(7,120)CHIB,IDFB,CHIPRB(IDFB,CHIB) IF(IDFD.GT.IDFA)WRITE(7,130)CHID,IDFD,CHIPRB(IDFD,CHID) 100 FORMAT(/' Goodness-of-fit tests:'// / ' Model Chi-square df Probability'/ / ' ----- ---------- -- -----------') 110 FORMAT(' A2 ',F10.2,I7,4X,F8.4) 120 FORMAT(/' B2 ',F10.2,I7,4X,F8.4) 130 FORMAT(/' D2 ',F10.2,I7,4X,F8.4) GO TO 160 140 WRITE(7,150) 150 FORMAT(/' Since no goodness-of-fit test statistic is available', ,' for Model A2,'/' goodness-of-fit test statistics for Models', ,' B2 and D2 were not computed.') 160 RETURN END