anchor.diff:            write(*,*)
         endif
         write(*,*)
  -     1 'Usage: fltinv -obs OBSFILE -flt FLTFILE [-2|-3] ',
  +     1 'Usage: fltinv -obs OBSFILE -flt FLTFILE -2|-3 ',
        2         '[-LQR|SVD] [-smooth SMOOTH] [-smoof SMOOTHFILE] ',
        3         '[-damp DAMP] [-h]'
         write(*,*)
  
positive.code:           inquire(file=obsf,EXIST=ex)
            if (.not.ex) call usage('!! Error: no input file: '//obsf)
        endif
  
  C----
  C Count number of observations and input parameters, and read in data
  C NOTE TO ME: START WITH 2D INVERSION, THEN CHANGE TO FULLY 3D
  C----
        call linect(nobs,obsf)
        open(unit=21,file=obsf,status='old')
        do 101 i = 1,nobs
            ! 2D: y(m) z(m) uy(m) uz(m)
            ! 3D: x(m) y(m) z(m) ux(m) uy(m) uz(m)
            read(21,*) (obs(i,j),j=1,4)
    101 continue
        close(21)
  
        call linect(nflt,fltf)
        open(unit=22,file=fltf,status='old')
        do 102 i = 1,nflt
            ! 2D: y(m) z(m) dip(deg) wid(m) len(m)
            ! 3D: x(m) y(m) z(m) str(deg) dip(deg) rak(deg) wid(m) len(m)
            read(22,*) (flt(i,j),j=1,5)
    102 continue
        close(22)
  
  C----
  C Generate Green's functions and load A matrix and b vector (2D)
  C----
        call green2d(A,b,obs,flt,nobs,nflt)
  C      call green3d(A,obs,flt,nobs,nflt)
  
  C----
  C Add damping
  
negative.code:           inquire(file=fltf,EXIST=ex)
            if (.not.ex) call usage('!! Error: no input file: '//fltf)
        endif
  C Displacement observation file
        if (obsf.eq.'none') then
            write(*,*) '!! Error: Observation file unspecified'
            call usage('!! Use -obs OBSFILE to specify input file')
  