SUBROUTINE FTLFT
*-- Author : I.O. Skillicorn
      SUBROUTINE FTLFT(XS,YS,L,KEY,AS,BS,ES)
                                                                        
      DIMENSION XS(100),YS(100)                                         
      DOUBLE PRECISION X(100), Y(100)                                   
      DOUBLE PRECISION A, B, E                                          
      DOUBLE PRECISION SUMX, SUMY, SUMXY, SUMXX, SUMYY, COUNT           
      DOUBLE PRECISION XMED, YMED, SCARTX, SCARTY                       
                                                                        
      IF(L-2)25,1,1                                                     
                                                                        
   1  COUNT=0.0D0                                                       
      SUMX=0.0D0                                                        
      SUMY=0.0D0                                                        
      SUMXY=0.0D0                                                       
      SUMXX=0.0D0                                                       
      SUMYY=0.0D0                                                       
      DO10 J=1,L                                                        
      X(J) = DBLE(XS(J))                                                
      Y(J) = DBLE(YS(J))                                                
      IF(Y(J).EQ.0.0D0.AND.KEY.EQ.0)GOTO10                              
      SUMX=SUMX+X(J)                                                    
      SUMY=SUMY+Y(J)                                                    
      COUNT=COUNT+1.0D0                                                 
  10  CONTINUE                                                          
      IF(COUNT.LE.1.0D0)GOTO25                                          
      YMED=SUMY/COUNT                                                   
      XMED=SUMX/COUNT                                                   
      DO 20 J=1,L                                                       
      IF(Y(J).EQ.0.0D0.AND.KEY.EQ.0)GOTO20                              
      SCARTX=X(J)-XMED                                                  
      SCARTY=Y(J)-YMED                                                  
      SUMXY=SUMXY+SCARTX*SCARTY                                         
      SUMXX=SUMXX+SCARTX*SCARTX                                         
      SUMYY=SUMYY+SCARTY*SCARTY                                         
 20   CONTINUE                                                          
      IF(SUMXX.EQ.0.0D0)GOTO25                                          
      A=SUMXY/SUMXX                                                     
      B=YMED-A*XMED                                                     
      IF(COUNT.LT.3.0D0)GOTO101                                         
      E=(SUMYY-SUMXY*A)/(COUNT-2.0D0)                                   
      GOTO100                                                           
 25   A=0.0D0                                                           
      B=0.0D0                                                           
 101  E=0.0D0                                                           
 100  CONTINUE                                                          
      AS = A                                                            
      BS = B                                                            
      ES = E                                                            
      RETURN                                                            
      END                                                               
*                                                                                                             
*                                                                                                             
*                                                                                                             
*