File: DLINRE.FT of Tape: Various/ETH/prog1
(Source file text) 

      SUBROUTINE LINREG(NR) 
C 
      COMMON/INI/ ANF(10,10),DANF(10,10),PH(10,10),DPH(10,10) 
     $,AF(10,10),DAF(10,10),ETA(10,10),DETA(10,10),EMU(10,10), 
     $T(10),DT(10),ANFM(10),DANFM(10)
CDC  $,F(10,512)
      COMMON/TESPAR/ A0M,DA0M,AMU0,AF0(10),ETA0(10),A0(10)
     $,TDJ(10),DTDJ(10),TDM,DTDM
      COMMON/PARAM/IDENT,HANG,HI,HF,DK,NP,PI,SQHI,DKHI,I0DH,H0AL
      COMMON/STEER/MR,ADENT(10),MF,FREQ(10),I0
      COMMON /LINE/ A,B,DA,DB,SA,SB,SAB,TD,AMU,RR,RMSD,CHI
      COMMON /REGRES/ XL(10),YL(10),DY(10)
      COMMON/FRERUN/ IF,JR,INIT,LS
      COMMON/ACCUR/ DDMU1,DDMU2,DCHI,ERRMU
C 
      DIMENSION V(10),P(10) 
C 
C     LINE FIT: Y=A*X+B TO N POINTS X(I),Y(I) 
C     DA,DB VARIANCES FROM LINE FIT 
C     SA,SB VARIANCES, SAB CORRELATION FROM DY(J) 
C     RR=REGRESSION COEFFICIENT, RMSD=ROOT MEAN SQUARE DEVIATION
      N=NR
      SX=0. 
      SY=0. 
      SXX=0.
      SXY=0.
      SYY=0.
      SP=0. 
      DO 60 J=1,N 
      P(J)=1. 
      IF (DY(J).EQ.0.) GO TO 72 
      P(J)=1./DY(J)**2
   72 SX=SX+XL(J)*P(J)
      SY=SY+YL(J)*P(J)
      SXX=SXX+XL(J)*XL(J)*P(J)
      SXY=SXY+XL(J)*YL(J)*P(J)
      SYY=SYY+YL(J)*YL(J)*P(J)
      SP=SP+P(J)
   60 CONTINUE
      D=SP*SXX-SX*SX
      A=(SP*SXY-SX*SY)/D
      B=(SY*SXX-SX*SXY)/D 
      AMU=-A
C     VARIANCES FROM LINE FIT 
      IF (N.GT.2) GO TO 75
      DA=0. 
      DB=0. 
      RR=0. 
      RMSD=0. 
      CHI=0.
      GO TO 76
   75 CONTINUE
      Q=0.
      QA=0. 
      DO 62 J=1,N 
      V(J)=YL(J)-XL(J)*A-B
      Q=Q+V(J)*V(J)*P(J)
      QA=QA+(V(J))**2 
   62 CONTINUE
      CHI=SQRT(Q/(N-2)) 
      C=SP*SYY-SY*SY
      DA=CHI*SQRT(SP/D) 
      DB=CHI*SQRT(SXX/D)
      RR=SQRT(A*A*D/C)
      RMSD=SQRT(QA/(N-2)) 
   76 CONTINUE
C     VARIANCES FROM DY(I)
      IF (DY(1).NE.0.) GO TO 77 
      SA=0. 
      SB=0. 
      SAB=0.
      RETURN
   77 SA=SP/D 
      SB=SXX/D
      SAB=SX/D
      RETURN
      END