anchor.diff:  
   C----------------------------------------------------------------------C
   
  +      SUBROUTINE readvol(volf,nflt,evlo,evla,evdp,str,dip,dx,dy,
  +     1                   slip,typ)
  +      IMPLICIT none
  +      CHARACTER*40 volf,jnk
  +      CHARACTER*200 inline
  +      INTEGER nflt,FMAX
  +      PARAMETER (FMAX=1500)
  +      INTEGER typ(FMAX),i,f,ln
  +      REAL*8 evlo(FMAX),evla(FMAX),evdp(FMAX),str(FMAX),dip(FMAX),
  +     1       dx(FMAX),dy(FMAX),slip(FMAX)
  +      nflt = 0
  +      call linecount(volf,ln)
  +      open (unit=34,file=volf,status='old')
  +      f = 0
  +  341 f = f + 1
  +      i = nflt + f
  +C Check that faults do not overflow arrays before reading
  +      if (i.gt.FMAX) then
  +          write(*,*) '!! Error too many input faults (max:',FMAX,')'
  +          call usage('!! Reduce number of input faults or change FMAX')
  +      endif
  +      read (34,'(A200)',END=342) inline
  +          if(index(inline,'p').ne.0) then
  +              typ(i) = 0
  +              read(inline,*) jnk,evlo(i),evla(i),evdp(i),slip(i)
  +              str(i) = 0.0d0
  +              dip(i) = 0.0d0
  +              dx(i) = 0.0d0
  +              dy(i) = 0.0d0
  +          else
  +              typ(i) = 1
  +              read(inline,*) evlo(i),evla(i),evdp(i),str(i),dip(i),
  +     1                       slip(i),dy(i),dx(i)
  +              dx(i) = 1.0d3*dx(i)
  +              dy(i) = 1.0d3*dy(i)
  +          endif
  +          evdp(i) = 1.0d3*evdp(i)
  +          goto 341
  +  342 continue
  +      if (f-1.ne.ln) then
  +          call usage('!! Error: NFLT in -vol file not equal to NLINE')
  +      endif
  +      nflt = i - 1
  +!      print *,'nflt',nflt
  +!      do 101 i=1,nflt
  +!          print *,evlo(i),evla(i),evdp(i),slip(i)
  +!  101 continue
  +      close(34) 
  +      RETURN
  +      END
  +
  +C----------------------------------------------------------------------C
  +
         SUBROUTINE readhaff(haff,vp,vs,dens)
   C----
   C Read vp, vs, dens from half-space file, or use default values.
  
positive.code:      1       rak(FMAX),dx(FMAX),dy(FMAX),slip(FMAX)
        REAL*8 uN,uE,uZ,strain(3,3),stress(3,3),norml,shear,coul,estrs
        REAL*8 az,hdsp
        INTEGER kffm,kflt,kmag,ksta,khaf,ktrg
        INTEGER kdsp,kstn,ksts,knor,kshr,kcou,kgmt
        COMMON /ICHECK/ kffm,kflt,kmag,ksta,khaf,ktrg
        COMMON /OCHECK/ kdsp,kstn,ksts,knor,kshr,kcou,kgmt
  C     Open files specified for output
        if (kdsp.ne.0) open(unit=21,file=dspf,status='unknown')
  
negative.code:       CHARACTER*40 haff,staf,trgf
        LOGICAL ex
        INTEGER nsta,ntrg,ptr,i
        INTEGER kffm,kflt,kmag,ksta,khaf,ktrg,kvol
        INTEGER kdsp,kstn,ksts,knor,kshr,kcou,kgmt
        COMMON /ICHECK/ kffm,kflt,kmag,ksta,khaf,ktrg,kvol
        COMMON /OCHECK/ kdsp,kstn,ksts,knor,kshr,kcou,kgmt
  C Look for station file, count number of receivers
        if (ksta.eq.0) then
  