Merge branch 'knepley/fix-cublas-init' into knepley/feature-closure-cache

* knepley/fix-cublas-init:
  Sys: Allow CUBLAS init to be turned off - This causes SEGV on my Air all the time
removed MatType argument from DMCreateMatrix() and DMCreateColoring() since information is obtained from DM
PetscSection: Added an index for optimization of closure queries
- Added PetscSectionGet/SetClosureIndex()
- The index is keyed to the DM which built it (use PetscObject)
- Only use a single key for now since a lot of checking would be slow
DMPlex: Added DMPlexCreateClosureIndex()
- Uses a PetscSection+IS and stashes in the original Section
DMPlex: Use closure index if available for DMPlexVecGetClosure()
SNES ex62: Use closure index
removed use of VecSetFromOptions() all over the placed, instead use MatGetVecs() or use dm->vectype to determine type
added DMGetVecType() and DMGetMatTYpe()
DMPlex: Added declaration of DMPlexCreateClosureIndex()
DMPlex: Change DMPlexDistribute() to give back the PetscSF
- This can be used to distribute sections and fields
DMPlex: Added DMPlexDistributeData() to distribute arbitrary data types
bfort: update to using MPI_Type_f2c() [for plexf.c]
DMPlex: add missing declarations DMPlexDistribute{Field,Data}

Fixes failing Fortran build.
mpiuni: add in MPI_Type_f2c()
Merge branch 'balay/update-sowing' into knepley/feature-plex-generic-distribute
KSPDGMRES: fix conditional variable declarations

Incorporate local BLAS/LAPACK variables with each #if !defined(missing)
case rather than trying to conditionally declare the variables at the
top of the function which is messy when several possibly missing
blas/lapack functions are used.

Reported-by: Loris Bennett <loris.bennett@fu-berlin.de>
Merge branch 'barry/fix-dgmres.c'

* barry/fix-dgmres.c:
  KSPDGMRES: fix conditional variable declarations
  PetscLayoutCreate doc: format code block and list
SNES runex19_draw: use -fieldsplit_x_velocity_pc_mg_galerkin

PCFieldSplit now sends a fully-functional DM into the split, but PCMG
does not know whether to use it to create an operator.  Since an
assembly function has not been provided for the split, we'll have to use
Galerkin.

Reported-by: Barry Smith <bsmith@mcs.anl.gov>
SNES runex19_draw: check output and report errors

Reported-by: Barry Smith <bsmith@mcs.anl.gov>
Merge branch 'master' into barry/dmvecmattypes
possible some messed up manual merges!

Conflicts:
	src/dm/impls/mesh/examples/tutorials/ex4f90.F
	src/dm/impls/mesh/mesh.c
	src/dm/impls/mesh/meshcreate.c
	src/dm/impls/mesh/section.c
	src/snes/examples/tutorials/ex10.c
	src/snes/examples/tutorials/ex12.c
	src/snes/examples/tutorials/ex52.c
	src/snes/examples/tutorials/ex62.c
	src/snes/utils/mesh/dmmeshsnes.c
DMPlex ExodusII: fix dm->vectype pointer syntax