anchor.diff:          do i = 1, nd
   
               read(fid, '(A)') string_buf
  -            string_buf = trim(string_buf)
  +            if(string_buf(bigcharlen:bigcharlen) /= " ") stop "string_buf is too small"
  +            !string_buf = trim(string_buf)
               !print*, 'string_buf: ', string_buf
   
               ! "Clear" the buffer
  
positive.code: 
          read(file_unit_no, '(A)') local_buffer
          rewind(file_unit_no)
  
          file_columns =  count(transfer(local_buffer, 'a', len(local_buffer)) == ",") + 1
  
  
negative.code:         character(len=charlen), intent(in) :: filename
  
          integer :: fid, nd, i, nc, j
          ! Assume the lines will never have more than this many entries
          integer, parameter :: sb = 4096
          integer(ip) :: buffer(sb)
          integer(ip), parameter :: empty = -HUGE(1_ip)
          character(len=bigcharlen) :: string_buf
  
  
          open(newunit=fid, file=filename, action='read')
  