anchor.diff:    !! Faster than text, so this is good for check pointing.
     !! @param[out] this the file being constructed.
     !! @param[in] file_name name of the file to read.
  -  SUBROUTINE ConstructFromBinary(this, file_name)
  +  !! @param[in] process_grid a process grid to host the matrix (optional).
  +  SUBROUTINE ConstructFromBinary(this, file_name, process_grid_)
       !! Parameters
       TYPE(DistributedSparseMatrix_t), INTENT(INOUT) :: this
  +    TYPE(ProcessGrid_t), INTENT(INOUT), OPTIONAL :: process_grid_
       CHARACTER(len=*), INTENT(IN) :: file_name
       !! File Handles
       INTEGER :: mpi_file_handler
  
positive.code:     LOGICAL :: error_occured
      INTEGER :: ierr
  
      this%process_grid = global_grid
  
      !! Setup Involves Just The Root Opening And Reading Parameter Data
      CALL StartTimer("MPI Read Text")
  
negative.code:     INTEGER :: mpi_status(MPI_STATUS_SIZE)
      INTEGER :: ierr
  
      IF (PRESENT(process_grid_)) THEN
        this%process_grid = process_grid_
      ELSE
        this%process_grid = global_grid
      END IF
  
      CALL StartTimer("MPI Read Binary")
      CALL MPI_Type_extent(MPI_INT,bytes_per_int,ierr)
  