anchor.diff:  C----------------------------------------------------------------------C
   
         SUBROUTINE gcmdln(fltf,obsf,smoof,smooth,damp,ofile,p,geo,haff,
  -     1                  invert,annf,ostyle,misfit,getdmp,fact)
  +     1                  invert,annf,ostyle,misfit,getdmp,fact,stscon,
  +     2                  lkfile)
         IMPLICIT NONE
  -      CHARACTER*80 fltf,obsf,tag,smoof,ofile,haff,annf
  +      CHARACTER*80 fltf,obsf,tag,smoof,ofile,haff,annf,lkfile
         INTEGER i,narg,indx
  -      REAL*8 smooth,damp,fact
  +      REAL*8 smooth,damp,fact,stscon
         INTEGER geo,p,invert,vrb,ostyle,misfit,getdmp
         COMMON /VERBOSE/ vrb
         fltf = 'none'
  
positive.code:       if (geo.eq.1) call geo2xy(obs,nobs,OBSMAX,flt,nflt,FLTMAX)
  
  C----
  C Compute Green's functions
  C----
        call green(gf,obs,nobs,OBSMAX,flt,nflt,FLTMAX,haf)
        if (vrb.eq.1) then
            write(0,'("GREENS FUNCTIONS")')
            write(0,'("----------------")')
            write(0,'(2A4,6A14)') 'sta','flt','gfssx','gfssy','gfssz',
  
negative.code:       LOGICAL ex
        REAL*8 smooth
        INTEGER OBSMAX,FLTMAX
        REAL*8 A(3*OBSMAX+4*FLTMAX,2*FLTMAX)
        REAL*8 b(3*OBSMAX+4*FLTMAX,1)
        INTEGER nsmoo,el,nnei,nei(FLTMAX)
        INTEGER i,j
        INTEGER n  ! rows in A, rows in b
        INTEGER m  ! columns in A, rows in x
        if (smooth.le.0.0d0) return
  C Check for input smoothing file
        if (smoof.eq.'none') then
  