anchor.diff:          close(point_gauges%static_output_unit)
   
           ! Initialise time-varying output files
  -        open(newunit=point_gauges%time_series_output_unit, file=point_gauges%time_series_output_file, &
  +        open(newunit=point_gauges%time_series_output_unit, &
  +            file=point_gauges%time_series_output_file, &
               access='stream', form='unformatted')
   
           ! Initialise gauge metadata file
  
positive.code:         ! Setup home-brew binary output
          !
          ! For simplicity, this routine only includes a netcdf filename as argument.
          ! If we are writing to a home-brew binary format, then we make file names from the 'netcdf' name
          point_gauges%static_output_file = trim(netcdf_gauge_output_file) // '_static' 
          point_gauges%time_series_output_file = trim(netcdf_gauge_output_file) // '_timeseries' 
          point_gauges%gauge_metadata_file = trim(netcdf_gauge_output_file) // '_metadata' 
  
          ! Save 'static' variables to home-brew binary
          open(newunit=point_gauges%static_output_unit, file=point_gauges%static_output_file, &
              access='stream', form='unformatted')
          do i = 1, n_gauges
              write(point_gauges%static_output_unit) &
  
negative.code:     !  wish to store once. e.g. [ELV], or [UH, VH, ELV]
      ! @param gauge_ids real array of size n_gauges giving an ID for each
      !  gauge. Make it REAL to avoid truncation issues for large IDs
      ! @param bounding_box If provided, only keep gauges inside a given bounding 
      ! box
      ! @param priority_gauges If provided, a logical array with one entry per 
      ! gauge. 
      ! Gauges with .TRUE. are retained, others are removed.
      !
      subroutine allocate_gauges(point_gauges, xy_coordinates, &
          time_series_var_indices, static_var_indices, gauge_ids, &
  