config: simplify regex
config: prefer str.replace(...) over re.sub(re.escape(...))

Some instances were not escaped, leading to failure when paths contain
special characters.  Combining re.sub with re.escape is rather perverse,
so just use str.replace instead.

Reported-by: David Moxey <d.moxey@imperial.ac.uk>
set the taolinesearch->reset to 0 when changing type
Vec: add missing Fortran enum
Vec: restore support for PETSC_VIEWER_NATIVE

It is useful for debugging to be able to write a DMDA Vec in PETSc
ordering instead of in native ordering.  This functionality was removed
in

  commit 742cafdd48f845c927348e65bdee73999c739268
  Author: Shri Abhyankar <abhyshr@mcs.anl.gov>
  Date:   Thu Jul 22 14:57:46 2010 -0500

      Removed PETSC_VIEWER_NATIVE related code

and discussed on petsc-dev in

  http://mid.mail-archive.com/8738qk1d3u.fsf@mcs.anl.gov

This commit partially reverts the above and adds a test.
PETSC_VIEWER_NATIVE is the documented way to write the Vec contents
without converting to natural ordering.  This interface should be
preserved until there is a cleaner alternative.

Reported-by: Gautam Bisht <gbisht@lbl.gov>
bug fixes, check for repeated model
MatZeroRows_MPI(B)AIJ: avoid nrows*comm_size complexity

If the rows are in reverse order, the old implementation would linear
search the ownership ranges for each row.  Use binary search instead.
MatZeroRows_MPI(B)AIJ: avoid communication when MAT_NO_OFF_PROC_ZERO_ROWS

This functionality existed prior to Matt's refactor to use PetscSF and
was considered useful to PFLOTRAN.

Reported-by: Glenn Hammond <gehammo@sandia.gov>
MatZeroRowsColumns_MPI(B)AIJ: avoid nrows*comm_size complexity

Switch from bad "trick" to short-circuited binary search.
Sys: PetscCheckPointer for PETSC_CHAR checks char*, not char**

By dereferencing char**, we access sizeof(void*) bytes of memory instead
of 1.  This may be invalid if a short string is placed at the end of a
page and causes warnings from gcc -fsanitize.
Sys: PetscCheckPointer PETSC_CHAR checks char*, not char**
MatZeroRows_MPIAIJ: cast to PetscInt* because clang attributes don't understand const

Clang provides the attribute pointer_with_type_tag, but even though
the argument is const in our function, the attribute does not
recognize this and thus warns about a mismatch.

Reported-by: Barry Smith <bsmith@mcs.anl.gov>
fix ISLocalToGlobalMappingCreateIS() to respect the block size of the IS
Added test case for it

Reported-by: Glenn Hammond <gehammo@sandia.gov>
link to download/index.html was wrong on external packages page

Reported-by: Martin Diehl <m.diehl@mpie.de>
Merge branch 'barry/fix-islocaltoglobalmappingcreateis-with-blocksize' into maint
fix for ISLocalToGlobalCreateIS() for bs > 0. Code copied a size for each index when it should be for each block index
this happended because the documentation for ISLocalToGlobalCreate() was wrong since it said the size was number of indices, not number of block indices
Merge branch 'barry/fix-islocaltoglobalmappingcreateis-with-blocksize' into maint
Placate static analyzer complaints about unreachable code

Henry Tufo's "shared separator" project is unlikely to be completed, at
least not by him, so delete the incomplete code fragment.

Reported-by: Patrick Sanan <patrick.sanan@gmail.com>
set converged reason for repeating models
update test output