anchor.diff:  integer :: i, j, n, nx, ny, ios, iseg
   character(len=1) :: dum
   character(len=16) :: dx_char, dy_char
  +character(len=512) :: input_line
   double precision :: lon, lat, dep, strike, dip, rake, slip, dx, dy, trup
   
   ! As we begin our journey, everything seems okay...
  
positive.code:     usgs_param_data%subflt(n+1:n+nx*ny,9) = dx*1.0d3
  
      ! Hypocenter
      read (34,*) (dum,j=1,10),usgs_param_data%hylo,dum,usgs_param_data%hyla
  
      ! Not sure what this block is actually...
      do j = 1,7
  
negative.code: ! Count the total number of sub-faults
  usgs_param_data%nflt = 0
  do iseg = 1,usgs_param_data%nseg
      ! First line defines number of sub-faults in segment
      read(34,'(A)',iostat=ios) input_line
      if (ios.ne.0) then
          write(stderr,*) 'read_usgs_param: error reading first line of seg, ',iseg
          ierr = 1
          return
      endif
  
      ! Parse line to get number of sub-faults
      read(input_line,*,iostat=ios) dum,dum,dum,dum,nx,dum,dum,dum,ny
      if (ios.ne.0) then
          write(stderr,*) 'read_usgs_param: error parsing line: '
          write(stderr,*) trim(input_line)
          write(stderr,*) 'as: _  _  _  _  nx  _  _  _  ny'
          ierr = 1
          return
      endif
  
      ! Skip 8 lines of segment header and segment sub-faults to get to next header
      usgs_param_data%nflt = usgs_param_data%nflt + nx*ny
      do j = 1,8+nx*ny
          read(34,'(A)',iostat=ios) input_line
          if (ios.ne.0) then
              write(stderr,*) 'read_usgs_param: reached end of file before expected'
          endif
      enddo
  enddo
  rewind(34)
  