anchor.diff:      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
  +    read (34,'(A)') input_line
  +    read (input_line,*,iostat=ios) (dum,j=1,10),usgs_param_data%hylo,dum,usgs_param_data%hyla
  +    if (ios.ne.0) then
  +        write(0,*) 'read_usgs_param: could not read hypocenter for segment,',iseg,' but continuing...'
  +        usgs_param_data%hylo = -9999.0d0
  +        usgs_param_data%hyla = -9999.0d0
  +    endif
  +    !write(0,*) 'Segment:',iseg,' hypocenter: ',trim(input_line)
   
       ! Not sure what this block is actually...
       do j = 1,7
  
positive.code: ! Count the total number of sub-faults
  usgs_param_data%nflt = 0
  do iseg = 1,usgs_param_data%nseg
      read(34,*) dum,dum,dum,dum,nx,dum,dum,dum,ny
      usgs_param_data%nflt = usgs_param_data%nflt + nx*ny
      do j = 1,8+nx*ny
          read(34,*)
      enddo
  enddo
  rewind(34)
  
negative.code: n = 0
  
  ! First line with number of segments
  read (34,'(A)',iostat=ios) input_line
  read (input_line,*) dum,dum,dum,dum,usgs_param_data%nseg
  
  ! Read details of each segment
  do iseg = 1,usgs_param_data%nseg
  
      ! Sub-fault dimensions
      read (34,'(A)',iostat=ios) input_line
      !write(0,*) 'Segment:',iseg,' header: ',trim(input_line)
      if (ios.ne.0) then
          write(stderr,*) 'read_usgs_param: error reading first line of seg ',iseg
          ierr = 1
          return
      endif
  
      read (input_line,*,iostat=ios) dum,dum,dum,dum,nx,dum,dx_char,dum,ny,dum,dy_char
      if (ios.ne.0) then
          write(stderr,*) 'read_usgs_param: error parsing line: '
          write(stderr,*) trim(input_line)
          write(stderr,*) 'as: _  _  _  _  nx  _  dx_char  _  ny _ dy_char'
          ierr = 1
          return
      endif
      j = index(dx_char,'km')
      dx_char(j:j+1) = ''
      read(dx_char,*) dx
  