      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
