Index: /issm/trunk-jpl/Makefile.am
===================================================================
--- /issm/trunk-jpl/Makefile.am	(revision 26033)
+++ /issm/trunk-jpl/Makefile.am	(revision 26034)
@@ -1,3 +1,3 @@
-EXTRA_DIST = reconf scripts test m4 examples cron etc doc packages contributors.txt 
+EXTRA_DIST = reconf scripts test m4 examples cron etc doc packages contributors.txt
 SUBDIRS = src
 bin_SCRIPTS= README.rtf
Index: /issm/trunk-jpl/configure.ac
===================================================================
--- /issm/trunk-jpl/configure.ac	(revision 26033)
+++ /issm/trunk-jpl/configure.ac	(revision 26034)
@@ -3,6 +3,6 @@
 #AUTOCONF
 AC_INIT([Ice Sheet System Model (ISSM)],[4.19],[issm@jpl.nasa.gov],[issm],[http://issm.jpl.nasa.gov]) #Initializing configure
-AC_CONFIG_AUX_DIR([./aux-config])         #Put config files in aux-config
-AC_CONFIG_MACRO_DIR([m4])                 #m4 macros are located in m4
+AC_CONFIG_AUX_DIR([./aux-config])	# Put config files in aux-config
+AC_CONFIG_MACRO_DIR([m4])			# m4 macros are located in m4
 m4_include([m4/issm_options.m4])
 
@@ -16,19 +16,19 @@
 
 #Compilers
-AC_PROG_CC([icc cl icl gcc])
+AC_PROG_CC([gcc icc cl icl])
 AC_PROG_CPP
-AC_PROG_CXX([icpc cl icl g++])
-AC_PROG_F77([ifort g77 gfortran])
-AC_PROG_FC([ifort gfortran])
+AC_PROG_CXX([g++ icpc cl icl])
+AC_PROG_F77([g77 gfortran ifort])
+AC_PROG_FC([gfortran ifort])
 
 #AUTOMAKE
 #Initialize automake and declare foreign so that we don't need a ChangeLog, INSTALL, etc
 AM_INIT_AUTOMAKE([foreign])
-AC_CONFIG_HEADERS([./config.h])   #Config file must be config.h
-AM_SILENT_RULES([yes])           #Do not show compilation command by default
+AC_CONFIG_HEADERS([./config.h])		# Config file must be config.h
+AM_SILENT_RULES([yes])				# Do not show compilation command by default
 AM_PROG_AR
 
 #Libtool
-LT_INIT
+LT_INIT([win32-dll])
 
 #Run issm_options.m4
@@ -37,15 +37,15 @@
 #List all Makefiles
 AC_CONFIG_FILES([
-					  Makefile
-					  src/Makefile
-					  src/c/Makefile 
-					  src/wrappers/Makefile
-					  src/wrappers/python/Makefile
-					  src/wrappers/matlab/Makefile
-					  src/wrappers/javascript/Makefile
-					  src/mobile/Makefile
-					  src/mobile/native/Makefile
-					  src/m/Makefile
-					  ])
+	Makefile
+	src/Makefile
+	src/c/Makefile
+	src/wrappers/Makefile
+	src/wrappers/python/Makefile
+	src/wrappers/matlab/Makefile
+	src/wrappers/javascript/Makefile
+	src/mobile/Makefile
+	src/mobile/native/Makefile
+	src/m/Makefile
+])
 
 #End of configure.ac
Index: /issm/trunk-jpl/etc/environment.sh
===================================================================
--- /issm/trunk-jpl/etc/environment.sh	(revision 26033)
+++ /issm/trunk-jpl/etc/environment.sh	(revision 26034)
@@ -168,7 +168,25 @@
 } #}}}
 
+#######################
+# OS-specific handling
+#######################
+
+OS=$(uname -s)
+
+if [[ "${OS}" == MINGW* || "${OS}" == MSYS* ]]; then
+	# If this is a Windows build, we need to copy MSMPI to working $ISSM_DIR
+	MSMPI_ROOT="${ISSM_DIR}/MSMPI"
+	if [ ! -d "${MSMPI_ROOT}" ]; then
+		${ISSM_DIR}/scripts/win-msys2-create_local_msmpi_dir.sh
+	fi
+	export MSMPI_ROOT # Used in installation of ParMETIS, ScaLAPACK
+	path_prepend "${ISSM_DIR}/bin" # Lets dynamic linker find DLLs
+	cpath_prepend "${MSMPI_ROOT}/include"
+	library_path_prepend "${MSMPI_ROOT}/lib"
+fi
+
 # Windows compilers
-if [[ "$ISSM_ARCH" == "cygwin-intel" ]]; then
-	source $ISSM_DIR/externalpackages/windows/windows_environment.sh
+if [[ "${ISSM_ARCH}" == "cygwin-intel" ]]; then
+	source ${ISSM_DIR}/externalpackages/windows/windows_environment.sh
 fi
 
@@ -176,5 +194,12 @@
 path_append "${ISSM_DIR}/scripts"
 
-ISSM_EXT_DIR="${ISSM_DIR}/externalpackages" # Redefine this constant if externalpackages are installed to a different directory
+# Default path to external packages. Redefine this constant if they are 
+# installed to a different directory. Alternatively, export it on the command 
+# line or in a profile initialization file (that is why we check here if it is 
+# set already).
+#
+if [ -z "${ISSM_EXT_DIR+x}" ]; then
+	export ISSM_EXT_DIR="${ISSM_DIR}/externalpackages"
+fi
 
 #########################
@@ -253,16 +278,54 @@
 fi
 
-# NOTE: Check *must* come before PETSc as we prefer packages installed via 
-# 		PETSc
+# NOTE: The following checks *must* come before PETSc as we prefer packages 
+#		installed via PETSc
 #
-LAPACK_ROOT="${ISSM_DIR}/lapack/install"
+BLAS_ROOT="${ISSM_EXT_DIR}/blas/install"
+if [ -d "${BLAS_ROOT}" ]; then
+	export BLAS_ROOT # Used in installation of LAPACK, ScaLAPACK, PETSc
+	path_append "${BLAS_ROOT}/lib" # Lets dynamic linker find DLLs
+	library_path_append "${BLAS_ROOT}/lib"
+	ld_library_path_append "${BLAS_ROOT}/lib"
+fi
+
+LAPACK_ROOT="${ISSM_EXT_DIR}/lapack/install"
 if [ -d "${LAPACK_ROOT}" ]; then
+	export LAPACK_ROOT # Used in installation of ScaLAPACK, MUMPS, PETSc
+	path_append "${LAPACK_ROOT}/lib" # Lets dynamic linker find DLLs
+	library_path_append "${LAPACK_ROOT}/lib"
 	ld_library_path_append "${LAPACK_ROOT}/lib"
 fi
 
-# NOTE: Check *must* come before PETSc as we prefer packages installed via 
-# 		PETSc
-#
-ZLIB_ROOT="${ISSM_DIR}/zlib/install"
+METIS_ROOT="${ISSM_EXT_DIR}/metis/install"
+if [ -d "${METIS_ROOT}" ]; then
+	export METIS_ROOT # Used in installation of ParMETIS, Gmsh, PETSc
+	path_append "${METIS_ROOT}/lib" # Lets dynamic linker find DLLs
+	library_path_prepend "${METIS_ROOT}/lib"
+	ld_library_path_prepend "${METIS_ROOT}/lib"
+fi
+
+MUMPS_ROOT="${ISSM_EXT_DIR}/mumps/install"
+if [ -d "${MUMPS_ROOT}" ]; then
+	export MUMPS_ROOT # Used in installation of PETSc
+	path_append "${MUMPS_ROOT}/lib" # Lets dynamic linker find DLLs
+	library_path_append "${MUMPS_ROOT}/lib"
+fi
+
+PARMETIS_ROOT="${ISSM_EXT_DIR}/parmetis/install"
+if [ -d "${PARMETIS_ROOT}" ]; then
+	export PARMETIS_ROOT # Used in installation of MUMPS, PETSc
+	path_append "${PARMETIS_ROOT}/lib" # Lets dynamic linker find DLLs
+	library_path_prepend "${PARMETIS_ROOT}/lib"
+	ld_library_path_prepend "${PARMETIS_ROOT}/lib"
+fi
+
+SCALAPACK_ROOT="${ISSM_EXT_DIR}/scalapack/install"
+if [ -d "${SCALAPACK_ROOT}" ]; then
+	export SCALAPACK_ROOT # Used in installation of MUMPS, PETSc
+	path_append "${SCALAPACK_ROOT}/lib" # Lets dynamic linker find DLLs
+	library_path_append "${SCALAPACK_ROOT}/lib"
+fi
+
+ZLIB_ROOT="${ISSM_EXT_DIR}/zlib/install"
 if [ -d "${ZLIB_ROOT}" ]; then
 	export ZLIB_ROOT # Used in installation of NetCDF, GDAL, GMT
@@ -271,6 +334,8 @@
 
 PETSC_ROOT="${ISSM_EXT_DIR}/petsc/install"
-if [ -d "$PETSC_ROOT" ]; then
+if [ -d "${PETSC_ROOT}" ]; then
 	export PETSC_ROOT # Used in installation of Gmsh
+	path_append "${PETSC_ROOT}/lib" # Lets dynamic linker find DLLs
+	library_path_prepend "${PETSC_ROOT}/lib"
 	ld_library_path_prepend "${PETSC_ROOT}/lib"
 
@@ -446,4 +511,5 @@
 TRIANGLE_ROOT="${ISSM_EXT_DIR}/triangle/install"
 if [ -d "${TRIANGLE_ROOT}" ]; then
+	path_append "${TRIANGLE_ROOT}/lib" # Lets dynamic linker find DLLs
 	ld_library_path_append "${TRIANGLE_ROOT}/lib"
 	dyld_library_path_append "${TRIANGLE_ROOT}/lib"
Index: /issm/trunk-jpl/externalpackages/blas/configs/3.8/win/msys2/gcc/Makefile
===================================================================
--- /issm/trunk-jpl/externalpackages/blas/configs/3.8/win/msys2/gcc/Makefile	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/blas/configs/3.8/win/msys2/gcc/Makefile	(revision 26034)
@@ -0,0 +1,172 @@
+include make.inc
+
+#######################################################################
+#  This is the makefile to create a library for the BLAS.
+#  The files are grouped as follows:
+#
+#       SBLAS1 -- Single precision real BLAS routines
+#       CBLAS1 -- Single precision complex BLAS routines
+#       DBLAS1 -- Double precision real BLAS routines
+#       ZBLAS1 -- Double precision complex BLAS routines
+#
+#       CB1AUX -- Real BLAS routines called by complex routines
+#       ZB1AUX -- D.P. real BLAS routines called by d.p. complex
+#                 routines
+#
+#      ALLBLAS -- Auxiliary routines for Level 2 and 3 BLAS
+#
+#       SBLAS2 -- Single precision real BLAS2 routines
+#       CBLAS2 -- Single precision complex BLAS2 routines
+#       DBLAS2 -- Double precision real BLAS2 routines
+#       ZBLAS2 -- Double precision complex BLAS2 routines
+#
+#       SBLAS3 -- Single precision real BLAS3 routines
+#       CBLAS3 -- Single precision complex BLAS3 routines
+#       DBLAS3 -- Double precision real BLAS3 routines
+#       ZBLAS3 -- Double precision complex BLAS3 routines
+#
+#  The library can be set up to include routines for any combination
+#  of the four precisions.  To create or add to the library, enter make
+#  followed by one or more of the precisions desired.  Some examples:
+#       make single
+#       make single complex
+#       make single double complex complex16
+#  Note that these commands are not safe for parallel builds.
+#
+#  Alternatively, the commands
+#       make all
+#  or
+#       make
+#  without any arguments creates a library of all four precisions.
+#  The name of the library is held in BLASLIB, which is set in the
+#  make.inc
+#
+#  To remove the object files after the library is created, enter
+#       make clean
+#  To force the source files to be recompiled, enter, for example,
+#       make single FRC=FRC
+#
+#---------------------------------------------------------------------
+#
+#  Edward Anderson, University of Tennessee
+#  March 26, 1990
+#  Susan Ostrouchov,  September 30, 1994
+#  Julie Langou, March 2007
+#
+#######################################################################
+
+all: $(BLASLIB)
+ 
+#---------------------------------------------------------
+#  Comment out the next 6 definitions if you already have
+#  the Level 1 BLAS.
+#---------------------------------------------------------
+SBLAS1 = isamax.o sasum.o saxpy.o scopy.o sdot.o snrm2.o \
+	srot.o srotg.o sscal.o sswap.o sdsdot.o srotmg.o srotm.o
+$(SBLAS1): $(FRC)
+
+CBLAS1 = scabs1.o scasum.o scnrm2.o icamax.o caxpy.o ccopy.o \
+	cdotc.o cdotu.o csscal.o crotg.o cscal.o cswap.o csrot.o
+$(CBLAS1): $(FRC)
+
+DBLAS1 = idamax.o dasum.o daxpy.o dcopy.o ddot.o dnrm2.o \
+	drot.o drotg.o dscal.o dsdot.o dswap.o drotmg.o drotm.o
+$(DBLAS1): $(FRC)
+
+ZBLAS1 = dcabs1.o dzasum.o dznrm2.o izamax.o zaxpy.o zcopy.o \
+	zdotc.o zdotu.o zdscal.o zrotg.o zscal.o zswap.o zdrot.o
+$(ZBLAS1): $(FRC)
+
+CB1AUX = isamax.o sasum.o saxpy.o scopy.o snrm2.o sscal.o
+$(CB1AUX): $(FRC)
+
+ZB1AUX = idamax.o dasum.o daxpy.o dcopy.o dnrm2.o dscal.o
+$(ZB1AUX): $(FRC)
+
+#---------------------------------------------------------------------
+#  The following line defines auxiliary routines needed by both the
+#  Level 2 and Level 3 BLAS.  Comment it out only if you already have
+#  both the Level 2 and 3 BLAS.
+#---------------------------------------------------------------------
+ALLBLAS  = lsame.o xerbla.o
+$(ALLBLAS) : $(FRC)
+
+#---------------------------------------------------------
+#  Comment out the next 4 definitions if you already have
+#  the Level 2 BLAS.
+#---------------------------------------------------------
+SBLAS2 = sgemv.o sgbmv.o ssymv.o ssbmv.o sspmv.o \
+	strmv.o stbmv.o stpmv.o strsv.o stbsv.o stpsv.o \
+	sger.o ssyr.o sspr.o ssyr2.o sspr2.o
+$(SBLAS2): $(FRC)
+
+CBLAS2 = cgemv.o cgbmv.o chemv.o chbmv.o chpmv.o \
+	ctrmv.o ctbmv.o ctpmv.o ctrsv.o ctbsv.o ctpsv.o \
+	cgerc.o cgeru.o cher.o chpr.o cher2.o chpr2.o
+$(CBLAS2): $(FRC)
+
+DBLAS2 = dgemv.o dgbmv.o dsymv.o dsbmv.o dspmv.o \
+	dtrmv.o dtbmv.o dtpmv.o dtrsv.o dtbsv.o dtpsv.o \
+	dger.o dsyr.o dspr.o dsyr2.o dspr2.o
+$(DBLAS2): $(FRC)
+
+ZBLAS2 = zgemv.o zgbmv.o zhemv.o zhbmv.o zhpmv.o \
+	ztrmv.o ztbmv.o ztpmv.o ztrsv.o ztbsv.o ztpsv.o \
+	zgerc.o zgeru.o zher.o zhpr.o zher2.o zhpr2.o
+$(ZBLAS2): $(FRC)
+
+#---------------------------------------------------------
+#  Comment out the next 4 definitions if you already have
+#  the Level 3 BLAS.
+#---------------------------------------------------------
+SBLAS3 = sgemm.o ssymm.o ssyrk.o ssyr2k.o strmm.o strsm.o 
+$(SBLAS3): $(FRC)
+
+CBLAS3 = cgemm.o csymm.o csyrk.o csyr2k.o ctrmm.o ctrsm.o \
+	chemm.o cherk.o cher2k.o
+$(CBLAS3): $(FRC)
+
+DBLAS3 = dgemm.o dsymm.o dsyrk.o dsyr2k.o dtrmm.o dtrsm.o
+$(DBLAS3): $(FRC)
+
+ZBLAS3 = zgemm.o zsymm.o zsyrk.o zsyr2k.o ztrmm.o ztrsm.o \
+	zhemm.o zherk.o zher2k.o
+$(ZBLAS3): $(FRC)
+
+ALLOBJ=$(SBLAS1) $(SBLAS2) $(SBLAS3) $(DBLAS1) $(DBLAS2) $(DBLAS3) \
+	$(CBLAS1) $(CBLAS2) $(CBLAS3) $(ZBLAS1) \
+	$(ZBLAS2) $(ZBLAS3) $(ALLBLAS)
+
+$(BLASLIB): $(ALLOBJ)
+	$(FORTRAN) -shared -o $@ \
+		$(ALLOBJ) \
+		-Wl,--out-implib=$(IMP_LIB_NAME)
+
+single: $(SBLAS1) $(ALLBLAS) $(SBLAS2) $(SBLAS3)
+	$(ARCH) $(ARCHFLAGS) $(BLASLIB) $(SBLAS1) $(ALLBLAS) \
+	$(SBLAS2) $(SBLAS3)
+	$(RANLIB) $(BLASLIB)
+
+double: $(DBLAS1) $(ALLBLAS) $(DBLAS2) $(DBLAS3)
+	$(ARCH) $(ARCHFLAGS) $(BLASLIB) $(DBLAS1) $(ALLBLAS) \
+	$(DBLAS2) $(DBLAS3)
+	$(RANLIB) $(BLASLIB)
+
+complex: $(CBLAS1) $(CB1AUX) $(ALLBLAS) $(CBLAS2) $(CBLAS3)
+	$(ARCH) $(ARCHFLAGS) $(BLASLIB) $(CBLAS1) $(CB1AUX) \
+	$(ALLBLAS) $(CBLAS2) $(CBLAS3)
+	$(RANLIB) $(BLASLIB)
+
+complex16: $(ZBLAS1) $(ZB1AUX) $(ALLBLAS) $(ZBLAS2) $(ZBLAS3)
+	$(ARCH) $(ARCHFLAGS) $(BLASLIB) $(ZBLAS1) $(ZB1AUX) \
+	$(ALLBLAS) $(ZBLAS2) $(ZBLAS3)
+	$(RANLIB) $(BLASLIB)
+
+FRC:
+	@FRC=$(FRC)
+
+clean:
+	rm -f *.o
+
+.f.o: 
+	$(FORTRAN) $(OPTS) -c $< -o $@
Index: /issm/trunk-jpl/externalpackages/blas/configs/3.8/win/msys2/gcc/make.inc
===================================================================
--- /issm/trunk-jpl/externalpackages/blas/configs/3.8/win/msys2/gcc/make.inc	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/blas/configs/3.8/win/msys2/gcc/make.inc	(revision 26034)
@@ -0,0 +1,38 @@
+####################################################################
+#  BLAS make include file.                                         #
+#  March 2007                                                      #
+####################################################################
+#
+SHELL = /usr/bin/bash
+#
+#  The machine (platform) identifier to append to the library names
+#
+PLAT =
+#  
+#  Modify the FORTRAN and OPTS definitions to refer to the
+#  compiler and desired compiler options for your machine.  NOOPT
+#  refers to the compiler options desired when NO OPTIMIZATION is
+#  selected.  Define LOADER and LOADOPTS to refer to the loader and 
+#  desired load options for your machine.
+#
+FORTRAN  = gfortran
+OPTS     = -O2 -fPIC
+DRVOPTS  = $(OPTS)
+NOOPT    = -O0 -fPIC
+LOADER   = gfortran
+LOADOPTS =
+#
+#  The archiver and the flag(s) to use when building archive (library)
+#  If you system has no ranlib, set RANLIB = echo.
+#
+ARCH     = ar
+ARCHFLAGS= cr
+RANLIB   = ranlib
+
+MODULE			= blas
+IMP_LIB_NAME	= lib$(MODULE).dll.a
+LIB_NAME		= msys-$(MODULE).dll
+#
+#  The location and name of the Reference BLAS library.
+#
+BLASLIB = $(LIB_NAME)
Index: /issm/trunk-jpl/externalpackages/blas/configs/3.8/win/msys2/mingw64/Makefile
===================================================================
--- /issm/trunk-jpl/externalpackages/blas/configs/3.8/win/msys2/mingw64/Makefile	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/blas/configs/3.8/win/msys2/mingw64/Makefile	(revision 26034)
@@ -0,0 +1,172 @@
+include make.inc
+
+#######################################################################
+#  This is the makefile to create a library for the BLAS.
+#  The files are grouped as follows:
+#
+#       SBLAS1 -- Single precision real BLAS routines
+#       CBLAS1 -- Single precision complex BLAS routines
+#       DBLAS1 -- Double precision real BLAS routines
+#       ZBLAS1 -- Double precision complex BLAS routines
+#
+#       CB1AUX -- Real BLAS routines called by complex routines
+#       ZB1AUX -- D.P. real BLAS routines called by d.p. complex
+#                 routines
+#
+#      ALLBLAS -- Auxiliary routines for Level 2 and 3 BLAS
+#
+#       SBLAS2 -- Single precision real BLAS2 routines
+#       CBLAS2 -- Single precision complex BLAS2 routines
+#       DBLAS2 -- Double precision real BLAS2 routines
+#       ZBLAS2 -- Double precision complex BLAS2 routines
+#
+#       SBLAS3 -- Single precision real BLAS3 routines
+#       CBLAS3 -- Single precision complex BLAS3 routines
+#       DBLAS3 -- Double precision real BLAS3 routines
+#       ZBLAS3 -- Double precision complex BLAS3 routines
+#
+#  The library can be set up to include routines for any combination
+#  of the four precisions.  To create or add to the library, enter make
+#  followed by one or more of the precisions desired.  Some examples:
+#       make single
+#       make single complex
+#       make single double complex complex16
+#  Note that these commands are not safe for parallel builds.
+#
+#  Alternatively, the commands
+#       make all
+#  or
+#       make
+#  without any arguments creates a library of all four precisions.
+#  The name of the library is held in BLASLIB, which is set in the
+#  make.inc
+#
+#  To remove the object files after the library is created, enter
+#       make clean
+#  To force the source files to be recompiled, enter, for example,
+#       make single FRC=FRC
+#
+#---------------------------------------------------------------------
+#
+#  Edward Anderson, University of Tennessee
+#  March 26, 1990
+#  Susan Ostrouchov,  September 30, 1994
+#  Julie Langou, March 2007
+#
+#######################################################################
+
+all: $(BLASLIB)
+ 
+#---------------------------------------------------------
+#  Comment out the next 6 definitions if you already have
+#  the Level 1 BLAS.
+#---------------------------------------------------------
+SBLAS1 = isamax.o sasum.o saxpy.o scopy.o sdot.o snrm2.o \
+	srot.o srotg.o sscal.o sswap.o sdsdot.o srotmg.o srotm.o
+$(SBLAS1): $(FRC)
+
+CBLAS1 = scabs1.o scasum.o scnrm2.o icamax.o caxpy.o ccopy.o \
+	cdotc.o cdotu.o csscal.o crotg.o cscal.o cswap.o csrot.o
+$(CBLAS1): $(FRC)
+
+DBLAS1 = idamax.o dasum.o daxpy.o dcopy.o ddot.o dnrm2.o \
+	drot.o drotg.o dscal.o dsdot.o dswap.o drotmg.o drotm.o
+$(DBLAS1): $(FRC)
+
+ZBLAS1 = dcabs1.o dzasum.o dznrm2.o izamax.o zaxpy.o zcopy.o \
+	zdotc.o zdotu.o zdscal.o zrotg.o zscal.o zswap.o zdrot.o
+$(ZBLAS1): $(FRC)
+
+CB1AUX = isamax.o sasum.o saxpy.o scopy.o snrm2.o sscal.o
+$(CB1AUX): $(FRC)
+
+ZB1AUX = idamax.o dasum.o daxpy.o dcopy.o dnrm2.o dscal.o
+$(ZB1AUX): $(FRC)
+
+#---------------------------------------------------------------------
+#  The following line defines auxiliary routines needed by both the
+#  Level 2 and Level 3 BLAS.  Comment it out only if you already have
+#  both the Level 2 and 3 BLAS.
+#---------------------------------------------------------------------
+ALLBLAS  = lsame.o xerbla.o
+$(ALLBLAS) : $(FRC)
+
+#---------------------------------------------------------
+#  Comment out the next 4 definitions if you already have
+#  the Level 2 BLAS.
+#---------------------------------------------------------
+SBLAS2 = sgemv.o sgbmv.o ssymv.o ssbmv.o sspmv.o \
+	strmv.o stbmv.o stpmv.o strsv.o stbsv.o stpsv.o \
+	sger.o ssyr.o sspr.o ssyr2.o sspr2.o
+$(SBLAS2): $(FRC)
+
+CBLAS2 = cgemv.o cgbmv.o chemv.o chbmv.o chpmv.o \
+	ctrmv.o ctbmv.o ctpmv.o ctrsv.o ctbsv.o ctpsv.o \
+	cgerc.o cgeru.o cher.o chpr.o cher2.o chpr2.o
+$(CBLAS2): $(FRC)
+
+DBLAS2 = dgemv.o dgbmv.o dsymv.o dsbmv.o dspmv.o \
+	dtrmv.o dtbmv.o dtpmv.o dtrsv.o dtbsv.o dtpsv.o \
+	dger.o dsyr.o dspr.o dsyr2.o dspr2.o
+$(DBLAS2): $(FRC)
+
+ZBLAS2 = zgemv.o zgbmv.o zhemv.o zhbmv.o zhpmv.o \
+	ztrmv.o ztbmv.o ztpmv.o ztrsv.o ztbsv.o ztpsv.o \
+	zgerc.o zgeru.o zher.o zhpr.o zher2.o zhpr2.o
+$(ZBLAS2): $(FRC)
+
+#---------------------------------------------------------
+#  Comment out the next 4 definitions if you already have
+#  the Level 3 BLAS.
+#---------------------------------------------------------
+SBLAS3 = sgemm.o ssymm.o ssyrk.o ssyr2k.o strmm.o strsm.o 
+$(SBLAS3): $(FRC)
+
+CBLAS3 = cgemm.o csymm.o csyrk.o csyr2k.o ctrmm.o ctrsm.o \
+	chemm.o cherk.o cher2k.o
+$(CBLAS3): $(FRC)
+
+DBLAS3 = dgemm.o dsymm.o dsyrk.o dsyr2k.o dtrmm.o dtrsm.o
+$(DBLAS3): $(FRC)
+
+ZBLAS3 = zgemm.o zsymm.o zsyrk.o zsyr2k.o ztrmm.o ztrsm.o \
+	zhemm.o zherk.o zher2k.o
+$(ZBLAS3): $(FRC)
+
+ALLOBJ=$(SBLAS1) $(SBLAS2) $(SBLAS3) $(DBLAS1) $(DBLAS2) $(DBLAS3) \
+	$(CBLAS1) $(CBLAS2) $(CBLAS3) $(ZBLAS1) \
+	$(ZBLAS2) $(ZBLAS3) $(ALLBLAS)
+
+$(BLASLIB): $(ALLOBJ)
+	$(FORTRAN) -shared -o $@ \
+		$(ALLOBJ) \
+		-Wl,--out-implib=$(IMP_LIB_NAME)
+
+single: $(SBLAS1) $(ALLBLAS) $(SBLAS2) $(SBLAS3)
+	$(ARCH) $(ARCHFLAGS) $(BLASLIB) $(SBLAS1) $(ALLBLAS) \
+	$(SBLAS2) $(SBLAS3)
+	$(RANLIB) $(BLASLIB)
+
+double: $(DBLAS1) $(ALLBLAS) $(DBLAS2) $(DBLAS3)
+	$(ARCH) $(ARCHFLAGS) $(BLASLIB) $(DBLAS1) $(ALLBLAS) \
+	$(DBLAS2) $(DBLAS3)
+	$(RANLIB) $(BLASLIB)
+
+complex: $(CBLAS1) $(CB1AUX) $(ALLBLAS) $(CBLAS2) $(CBLAS3)
+	$(ARCH) $(ARCHFLAGS) $(BLASLIB) $(CBLAS1) $(CB1AUX) \
+	$(ALLBLAS) $(CBLAS2) $(CBLAS3)
+	$(RANLIB) $(BLASLIB)
+
+complex16: $(ZBLAS1) $(ZB1AUX) $(ALLBLAS) $(ZBLAS2) $(ZBLAS3)
+	$(ARCH) $(ARCHFLAGS) $(BLASLIB) $(ZBLAS1) $(ZB1AUX) \
+	$(ALLBLAS) $(ZBLAS2) $(ZBLAS3)
+	$(RANLIB) $(BLASLIB)
+
+FRC:
+	@FRC=$(FRC)
+
+clean:
+	rm -f *.o
+
+.f.o: 
+	$(FORTRAN) $(OPTS) -c $< -o $@
Index: /issm/trunk-jpl/externalpackages/blas/configs/3.8/win/msys2/mingw64/make.inc
===================================================================
--- /issm/trunk-jpl/externalpackages/blas/configs/3.8/win/msys2/mingw64/make.inc	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/blas/configs/3.8/win/msys2/mingw64/make.inc	(revision 26034)
@@ -0,0 +1,38 @@
+####################################################################
+#  BLAS make include file.                                         #
+#  March 2007                                                      #
+####################################################################
+#
+SHELL = /usr/bin/bash
+#
+#  The machine (platform) identifier to append to the library names
+#
+PLAT =
+#  
+#  Modify the FORTRAN and OPTS definitions to refer to the
+#  compiler and desired compiler options for your machine.  NOOPT
+#  refers to the compiler options desired when NO OPTIMIZATION is
+#  selected.  Define LOADER and LOADOPTS to refer to the loader and 
+#  desired load options for your machine.
+#
+FORTRAN  = gfortran
+OPTS     = -O2 -fPIC
+DRVOPTS  = $(OPTS)
+NOOPT    = -O0 -fPIC
+LOADER   = gfortran
+LOADOPTS =
+#
+#  The archiver and the flag(s) to use when building archive (library)
+#  If you system has no ranlib, set RANLIB = echo.
+#
+ARCH     = ar
+ARCHFLAGS= cr
+RANLIB   = ranlib
+
+MODULE			= blas
+IMP_LIB_NAME	= lib$(MODULE).dll.a
+LIB_NAME		= msys-$(MODULE).dll
+#
+#  The location and name of the Reference BLAS library.
+#
+BLASLIB = $(LIB_NAME)
Index: /issm/trunk-jpl/externalpackages/blas/install-3-win-msys2-gcc.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/blas/install-3-win-msys2-gcc.sh	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/blas/install-3-win-msys2-gcc.sh	(revision 26034)
@@ -0,0 +1,44 @@
+#!/bin/bash
+set -eu
+
+
+## Constants
+#
+VER=3.8.0
+
+PREFIX="${ISSM_DIR}/externalpackages/blas/install"
+
+MODULE="blas"
+IMP_LIB_NAME="lib${MODULE}.dll.a"
+LIB_NAME="msys-${MODULE}.dll"
+
+# Cleanup
+rm -rf ${PREFIX} src
+mkdir ${PREFIX} src
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/blas-${VER}.tgz" "blas-${VER}.tgz"
+
+# Unpack source
+tar -zxvf blas-${VER}.tgz
+
+# Move source into 'src' directory
+mv BLAS-${VER}/* src
+rm -rf BLAS-${VER}
+
+# Copy customized source and configuration files to 'src' directory
+cp configs/3.8/win/msys2/gcc/make.inc src
+cp configs/3.8/win/msys2/gcc/Makefile src
+
+# Compile
+cd src
+make
+
+# Install
+mkdir ${PREFIX}/lib
+cp ${IMP_LIB_NAME} ${PREFIX}/lib
+cp ${LIB_NAME} ${PREFIX}/lib
+
+# Create link to shared version of library so that libtool can find it
+cd ${PREFIX}/lib
+ln -s ./${LIB_NAME} ./libblas.dll
Index: /issm/trunk-jpl/externalpackages/blas/install-3-win-msys2-mingw.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/blas/install-3-win-msys2-mingw.sh	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/blas/install-3-win-msys2-mingw.sh	(revision 26034)
@@ -0,0 +1,44 @@
+#!/bin/bash
+set -eu
+
+
+## Constants
+#
+VER=3.8.0
+
+PREFIX="${ISSM_DIR}/externalpackages/blas/install"
+
+MODULE="blas"
+IMP_LIB_NAME="lib${MODULE}.dll.a"
+LIB_NAME="msys-${MODULE}.dll"
+
+# Cleanup
+rm -rf ${PREFIX} src
+mkdir ${PREFIX} src
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/blas-${VER}.tgz" "blas-${VER}.tgz"
+
+# Unpack source
+tar -zxvf blas-${VER}.tgz
+
+# Move source into 'src' directory
+mv BLAS-${VER}/* src
+rm -rf BLAS-${VER}
+
+# Copy customized source and configuration files to 'src' directory
+cp configs/3.8/win/msys2/mingw/make.inc src
+cp configs/3.8/win/msys2/mingw/Makefile src
+
+# Compile
+cd src
+make
+
+# Install
+mkdir ${PREFIX}/lib
+cp ${IMP_LIB_NAME} ${PREFIX}/lib
+cp ${LIB_NAME} ${PREFIX}/lib
+
+# Create link to shared version of library so that libtool can find it
+cd ${PREFIX}/lib
+ln -s ./${LIB_NAME} ./libblas.dll
Index: /issm/trunk-jpl/externalpackages/chaco/configs/win/msys2/mingw64/src/code/Makefile
===================================================================
--- /issm/trunk-jpl/externalpackages/chaco/configs/win/msys2/mingw64/src/code/Makefile	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/chaco/configs/win/msys2/mingw64/src/code/Makefile	(revision 26034)
@@ -0,0 +1,106 @@
+DEST_DIR = 	../exec
+DEST=		${DEST_DIR}/chaco
+CC = 		gcc
+IFLAG =		-Imain
+CFLAGS =	-fPIC -fno-omit-frame-pointer -pthread -fexceptions -g -I/mingw64/x86_64-w64-mingw32/include -I/usr/include -Wno-implicit-function-declaration
+OFLAGS =	-O2
+
+FILES.c=	main/user_params.c main/interface.c main/main.c \
+		submain/balance.c submain/divide.c submain/submain.c \
+		input/input_assign.c \
+		input/check_input.c input/input.c input/input_geom.c \
+		input/input_graph.c input/read_params.c input/reflect_input.c \
+		input/read_val.c \
+		graph/check_graph.c graph/free_graph.c \
+		graph/reformat.c graph/subgraph.c graph/graph_out.c \
+		inertial/eigenvec2.c inertial/eigenvec3.c inertial/inertial.c \
+		inertial/inertial1d.c inertial/inertial2d.c \
+		inertial/inertial3d.c inertial/make_subgeom.c \
+		klspiff/buckets.c klspiff/buckets_bi.c klspiff/buckets1.c \
+		klspiff/bilistops.c klspiff/coarsen_kl.c klspiff/count_weights.c \
+		klspiff/compress_ewgts.c klspiff/kl_init.c klspiff/kl_output.c \
+		klspiff/klspiff.c klspiff/make_bndy_list.c \
+		klspiff/make_kl_list.c klspiff/nway_kl.c \
+		klvspiff/bpm_improve.c klvspiff/bucketsv.c \
+		klvspiff/clear_dvals.c klvspiff/coarsen_klv.c \
+		klvspiff/countup_vtx_sep.c klvspiff/find_bndy.c klvspiff/flow.c \
+		klvspiff/klv_init.c klvspiff/klvspiff.c klvspiff/make_bpgraph.c \
+		klvspiff/make_sep_list.c klvspiff/matching.c klvspiff/nway_klv.c \
+		klvspiff/flatten.c \
+		coarsen/coarsen.c coarsen/interpolate.c coarsen/makefgraph.c \
+		coarsen/makeccoords.c \
+		coarsen/coarsen1.c coarsen/makev2cv.c \
+		coarsen/maxmatch.c coarsen/maxmatch1.c coarsen/maxmatch2.c \
+		coarsen/maxmatch3.c coarsen/maxmatch4.c coarsen/maxmatch5.c \
+		connect/add_edges.c connect/connected.c connect/find_edges.c \
+		eigen/bidir.c eigen/bisect.c eigen/checkeig.c \
+		eigen/checkeig_ext.c \
+		eigen/checkorth.c eigen/cksturmcnt.c eigen/mkeigvecs.c\
+		eigen/eigensolve.c eigen/get_extval.c eigen/get_ritzvals.c \
+		eigen/lanczos_FO.c eigen/lanczos_SO.c eigen/lanczos_SO_float.c \
+		eigen/lanczos_ext.c eigen/lanczos_ext_float.c eigen/lanc_seconds.c\
+		eigen/lanpause.c eigen/makeorthlnk.c eigen/mkscanlist.c \
+		eigen/orthog1.c eigen/orthogonalize.c eigen/orthogvec.c \
+		eigen/ql.c eigen/rqi.c eigen/rqi_ext.c eigen/scale_diag.c \
+		eigen/scanmax.c eigen/scanmin.c eigen/solistout.c \
+                eigen/sorthog.c eigen/splarax.c eigen/sturmcnt.c \
+		eigen/Tevec.c eigen/tri_solve.c eigen/warnings.c \
+		symmlq/aprod.c symmlq/msolve.c symmlq/pow_dd.c \
+		symmlq/symmlq.c symmlq/symmlqblas.c \
+		tinvit/tinvit.c tinvit/pythag.c tinvit/epslon.c \
+		optimize/determinant.c optimize/func2d.c \
+		optimize/func3d.c optimize/opt2d.c optimize/opt3d.c \
+		assign/assign.c assign/assign_out.c assign/mapper.c \
+		assign/median.c assign/merge_assign.c \
+		assign/rec_median.c assign/rotate.c assign/y2x.c \
+		bpmatch/checkbp.c bpmatch/inits2d.c bpmatch/inits3d.c \
+		bpmatch/genvals2d.c bpmatch/genvals3d.c bpmatch/map2d.c \
+		bpmatch/map3d.c bpmatch/movevtxs.c \
+		bpmatch/sorts2d.c bpmatch/sorts3d.c \
+		refine_map/compute_cube_edata.c refine_map/compute_cube_vdata.c \
+		refine_map/refine_cube.c refine_map/update_cube_edata.c \
+		refine_map/update_cube_vdata.c refine_map/find_edge_cube.c \
+		refine_map/init_cube_edata.c refine_map/compute_mesh_edata.c \
+		refine_map/compute_mesh_vdata.c refine_map/find_edge_mesh.c \
+		refine_map/init_mesh_edata.c refine_map/refine_mesh.c \
+		refine_map/update_mesh_edata.c refine_map/update_mesh_vdata.c \
+		refine_map/refine_map.c refine_map/make_comm_graph.c \
+		refine_part/refine_part.c refine_part/kl_refine.c \
+		refine_part/make_maps_ref.c refine_part/make_terms_ref.c \
+		internal/force_internal.c internal/improve_internal.c \
+		internal/check_internal.c \
+		misc/define_subcubes.c misc/define_submeshes.c \
+		misc/divide_procs.c misc/merge_goals.c misc/make_term_props.c \
+		misc/count.c misc/countup.c misc/countup_cube.c \
+		misc/countup_mesh.c misc/make_subgoal.c \
+		misc/find_maxdeg.c misc/make_maps.c misc/make_setlists.c \
+		misc/sequence.c misc/perturb.c misc/simple_part.c \
+		misc/time_kernels.c misc/timing.c \
+		util/affirm.c util/array_alloc_2D.c util/bit_reverse.c \
+		util/checkpnt.c util/cpvec.c util/dot.c \
+		util/doubleout.c util/input_int.c util/gray.c \
+		util/machine_params.c util/makevwsqrt.c util/mkvec.c util/norm.c \
+                util/normalize.c util/mergesort.c \
+                util/randomize.c util/smalloc.c util/bail.c \
+		util/scadd.c util/seconds.c util/setvec.c util/shell_sort.c \
+		util/strout.c util/tri_prod.c util/true_or_false.c \
+		util/update.c  util/vecout.c util/vecran.c \
+                util/vecscale.c 
+
+FILES.o=	$(FILES.c:.c=.o) 
+
+
+${DEST}:	${FILES.o} Makefile
+		${CC} ${OFLAGS} ${FILES.o} -lm -L/lib/w32api -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -o ${DEST}
+
+lint:
+		lint ${IFLAG} ${FILES.c} -lm
+
+alint:
+		alint ${IFLAG} ${FILES.c} -lm
+
+clean:
+		rm -f */*.o ${DEST_DIR}/core
+
+.c.o:
+		${CC} -c ${IFLAG} ${CFLAGS} -o $*.o $*.c
Index: /issm/trunk-jpl/externalpackages/chaco/configs/win/msys2/mingw64/src/code/Makefile.patch
===================================================================
--- /issm/trunk-jpl/externalpackages/chaco/configs/win/msys2/mingw64/src/code/Makefile.patch	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/chaco/configs/win/msys2/mingw64/src/code/Makefile.patch	(revision 26034)
@@ -0,0 +1,11 @@
+--- ./src/code/Makefile	2016-02-16 19:39:30.000000000 -0800
++++ ./Makefile	2016-02-16 19:37:49.000000000 -0800
+@@ -6,7 +6,7 @@
+ #CFLAGS =	-O2
+ #OFLAGS =	-O2
+ #CFLAGS =	-fPIC -fno-omit-frame-pointer -D_GNU_SOURCE -pthread -fexceptions
+-CFLAGS =	-fPIC -fno-omit-frame-pointer -pthread -fexceptions -g
++CFLAGS =	-fPIC -fno-omit-frame-pointer -pthread -fexceptions -g -I/mingw64/x86_64-w64-mingw32/include -I/usr/include -Wno-implicit-function-declaration
+ #CFLAGS =	-fPIC -fno-omit-frame-pointer -pthread -fexceptions -DMATLAB
+ OFLAGS =	-O2 
+ #AR =             /usr/ccs/bin/ar rcv   # for solaris 2
Index: /issm/trunk-jpl/externalpackages/chaco/configs/win/msys2/mingw64/src/code/main/interface.c
===================================================================
--- /issm/trunk-jpl/externalpackages/chaco/configs/win/msys2/mingw64/src/code/main/interface.c	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/chaco/configs/win/msys2/mingw64/src/code/main/interface.c	(revision 26034)
@@ -0,0 +1,234 @@
+/* This software was developed by Bruce Hendrickson and Robert Leland   *
+ * at Sandia National Laboratories under US Department of Energy        *
+ * contract DE-AC04-76DP00789 and is copyrighted by Sandia Corporation. */
+
+#include <stdio.h>
+#include "defs.h"
+#include "structs.h"
+
+int       Using_Main = FALSE;	/* Is main routine being called? */
+
+int       interface(nvtxs, start, adjacency, vwgts, ewgts, x, y, z,
+		              outassignname, outfilename,
+		              assignment,
+		              architecture, ndims_tot, mesh_dims, goal,
+		              global_method, local_method, rqi_flag, vmax, ndims,
+		              eigtol, seed)
+int       nvtxs;		/* number of vertices in full graph */
+int      *start;		/* start of edge list for each vertex */
+int      *adjacency;		/* edge list data */
+int      *vwgts;		/* weights for all vertices */
+float    *ewgts;		/* weights for all edges */
+float    *x, *y, *z;		/* coordinates for inertial method */
+char     *outassignname;	/* name of assignment output file */
+char     *outfilename;		/* output file name */
+short    *assignment;		/* set number of each vtx (length n) */
+int       architecture;		/* 0 => hypercube, d => d-dimensional mesh */
+int       ndims_tot;		/* total number of cube dimensions to divide */
+int       mesh_dims[3];		/* dimensions of mesh of processors */
+double   *goal;			/* desired set sizes for each set */
+int       global_method;	/* global partitioning algorithm */
+int       local_method;		/* local partitioning algorithm */
+int       rqi_flag;		/* should I use RQI/Symmlq eigensolver? */
+int       vmax;			/* how many vertices to coarsen down to? */
+int       ndims;		/* number of eigenvectors (2^d sets) */
+double    eigtol;		/* tolerance on eigenvectors */
+long      seed;			/* for random graph mutations */
+{
+    extern char *PARAMS_FILENAME;	/* name of file with parameter updates */
+    extern int MAKE_VWGTS;	/* make vertex weights equal to degrees? */
+    extern int MATCH_TYPE;      /* matching routine to use */
+    extern int FREE_GRAPH;	/* free graph data structure after reformat? */
+    extern int DEBUG_PARAMS;	/* debug flag for reading parameters */
+    extern int DEBUG_TRACE;	/* trace main execution path */
+    extern double start_time;	/* time routine is entered */
+    extern double reformat_time;/* time spent reformatting graph */
+    FILE     *params_file;	/* file for reading new parameters */
+    struct vtx_data **graph;	/* graph data structure */
+    double    vwgt_sum;		/* sum of vertex weights */
+    double    time;		/* timing variable */
+    float   **coords;		/* coordinates for vertices if used */
+    int      *vptr;		/* loops through vertex weights */
+    int       flag;		/* return code from balance */
+    int       nedges;		/* number of edges in graph */
+    int       using_vwgts;	/* are vertex weights being used? */
+    int       using_ewgts;	/* are edge weights being used? */
+    int       nsets_tot;	/* total number of sets being created */
+    int       igeom;		/* geometric dimension for inertial method */
+    int       default_goal;	/* using default goals? */
+    int       i;		/* loop counter */
+    double    seconds();
+    double   *smalloc_ret();
+    int       sfree(), submain(), reformat();
+    void      free_graph(), read_params(), strout();
+
+    if (DEBUG_TRACE > 0) {
+	printf("<Entering interface>\n");
+    }
+
+    flag = 0;
+    graph = NULL;
+    coords = NULL;
+
+    if (!Using_Main) {		/* If not using main, need to read parameters file. */
+	start_time = seconds();
+	params_file = fopen(PARAMS_FILENAME, "r");
+	if (params_file == NULL && DEBUG_PARAMS > 1) {
+	    printf("Parameter file `%s' not found; using default parameters.\n",
+		   PARAMS_FILENAME);
+	}
+	read_params(params_file);
+    }
+
+    if (goal == NULL) {	/* If not passed in, default goals have equal set sizes. */
+	default_goal = TRUE;
+	if (architecture == 0)
+	    nsets_tot = 1 << ndims_tot;
+	else if (architecture == 1) 
+	    nsets_tot = mesh_dims[0];
+	else if (architecture == 2) 
+	    nsets_tot = mesh_dims[0] * mesh_dims[1];
+	else if (architecture > 2) 
+	    nsets_tot = mesh_dims[0] * mesh_dims[1] * mesh_dims[2];
+
+	if (MAKE_VWGTS && start != NULL) {
+	    vwgt_sum = start[nvtxs] - start[0] + nvtxs;
+	}
+	else if (vwgts == NULL) {
+	    vwgt_sum = nvtxs;
+	}
+	else {
+	    vwgt_sum = 0;
+	    vptr = vwgts;
+	    for (i = nvtxs; i; i--)
+		vwgt_sum += *(vptr++);
+	}
+
+	vwgt_sum /= nsets_tot;
+	goal = (double *) smalloc_ret((unsigned) nsets_tot * sizeof(double));
+	if (goal == NULL) {
+	    strout("\nERROR: No room to make goals.\n");
+	    flag = 1;
+	    goto skip;
+	}
+	for (i = 0; i < nsets_tot; i++)
+	    goal[i] = vwgt_sum;
+    }
+    else {
+	default_goal = FALSE;
+    }
+
+    if (MAKE_VWGTS) {
+	/* Generate vertex weights equal to degree of node. */
+	if (vwgts != NULL) {
+	    strout("WARNING: Vertex weights being overwritten by vertex degrees.");
+	}
+	vwgts = (int *) smalloc_ret((unsigned) nvtxs * sizeof(int));
+	if (vwgts == NULL) {
+	    strout("\nERROR: No room to make vertex weights.\n");
+	    flag = 1;
+	    goto skip;
+	}
+	if (start != NULL) {
+	    for (i = 0; i < nvtxs; i++)
+	        vwgts[i] = 1 + start[i + 1] - start[i];
+	}
+	else {
+	    for (i = 0; i < nvtxs; i++)
+	        vwgts[i] = 1;
+	}
+    }
+
+    using_vwgts = (vwgts != NULL);
+    using_ewgts = (ewgts != NULL);
+
+    if (start != NULL || vwgts != NULL) {	/* Reformat into our data structure. */
+	time = seconds();
+	flag = reformat(start, adjacency, nvtxs, &nedges, vwgts, ewgts, &graph);
+
+	if (flag) {
+	    strout("\nERROR: No room to reformat graph.\n");
+	    goto skip;
+	}
+
+	reformat_time += seconds() - time;
+    }
+    else {
+	nedges = 0;
+    }
+
+    if (FREE_GRAPH) {		/* Free old graph data structures. */
+	sfree((char *) start);
+	sfree((char *) adjacency);
+	if (vwgts != NULL)
+	    sfree((char *) vwgts);
+	if (ewgts != NULL)
+	    sfree((char *) ewgts);
+	start = NULL;
+	adjacency = NULL;
+	vwgts = NULL;
+	ewgts = NULL;
+    }
+
+
+    if (global_method == 3 ||
+        (MATCH_TYPE == 5 && (global_method == 1 || 
+			     (global_method == 2 && rqi_flag)))) {
+	if (x == NULL) {
+	    igeom = 0;
+	}
+	else {			/* Set up coordinate data structure. */
+	    coords = (float **) smalloc_ret((unsigned) 3 * sizeof(float *));
+	    if (coords == NULL) {
+		strout("\nERROR: No room to make coordinate array.\n");
+		flag = 1;
+		goto skip;
+	    }
+	    /* Minus 1's are to allow remainder of program to index with 1. */
+	    coords[0] = x - 1;
+	    igeom = 1;
+	    if (y != NULL) {
+		coords[1] = y - 1;
+		igeom = 2;
+		if (z != NULL) {
+		    coords[2] = z - 1;
+		    igeom = 3;
+		}
+	    }
+	}
+    }
+    else {
+	igeom = 0;
+    }
+
+    /* Subtract from assignment to allow code to index from 1. */
+    assignment = assignment - 1;
+    flag = submain(graph, nvtxs, nedges, using_vwgts, using_ewgts, igeom, coords,
+		   outassignname, outfilename,
+		   assignment, goal,
+		   architecture, ndims_tot, mesh_dims,
+		   global_method, local_method, rqi_flag, vmax, ndims,
+		   eigtol, seed);
+
+skip:
+    if (coords != NULL)
+	sfree((char *) coords);
+
+    if (default_goal)
+	sfree((char *) goal);
+
+    if (graph != NULL)
+	free_graph(graph);
+
+    if (flag && FREE_GRAPH) {
+	sfree((char *) start);
+	sfree((char *) adjacency);
+	sfree((char *) vwgts);
+	sfree((char *) ewgts);
+    }
+
+    if (!Using_Main && params_file != NULL)
+	fclose(params_file);
+
+    return (flag);
+}
Index: /issm/trunk-jpl/externalpackages/chaco/configs/win/msys2/mingw64/src/code/util/bail.c
===================================================================
--- /issm/trunk-jpl/externalpackages/chaco/configs/win/msys2/mingw64/src/code/util/bail.c	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/chaco/configs/win/msys2/mingw64/src/code/util/bail.c	(revision 26034)
@@ -0,0 +1,27 @@
+/* This software was developed by Bruce Hendrickson and Robert Leland   *
+ * at Sandia National Laboratories under US Department of Energy        *
+ * contract DE-AC04-76DP00789 and is copyrighted by Sandia Corporation. */
+
+#include	<stdlib.h>
+#include	<stdio.h>
+#include	<string.h>
+#include	"defs.h"
+
+/* Wrapper for exit() - print message and exit with status code. Exit code
+   of 0 indicates normal termination. Exit code of 1 indicates early 
+   termination following detection of some problem. Call with bail(NULL,status) 
+   to suppress message. */ 
+void      bail(msg, status)
+char     *msg;
+int       status;
+{
+    extern FILE *Output_File;		/* Output file or NULL */
+
+    if (msg != NULL && (int) strlen(msg) > 0) {
+        printf("%s\n", msg);
+	if (Output_File != NULL) {
+            fprintf(Output_File, "%s\n", msg);
+	}
+    }
+    exit(status);
+}
Index: /issm/trunk-jpl/externalpackages/lapack/configs/3.9/win/msys2/mingw/CMakeLists.txt
===================================================================
--- /issm/trunk-jpl/externalpackages/lapack/configs/3.9/win/msys2/mingw/CMakeLists.txt	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/lapack/configs/3.9/win/msys2/mingw/CMakeLists.txt	(revision 26034)
@@ -0,0 +1,450 @@
+cmake_minimum_required(VERSION 2.8.12)
+
+project(LAPACK Fortran C)
+
+set(LAPACK_MAJOR_VERSION 3)
+set(LAPACK_MINOR_VERSION 9)
+set(LAPACK_PATCH_VERSION 0)
+set(
+  LAPACK_VERSION
+  ${LAPACK_MAJOR_VERSION}.${LAPACK_MINOR_VERSION}.${LAPACK_PATCH_VERSION}
+  )
+
+# Add the CMake directory for custon CMake modules
+set(CMAKE_MODULE_PATH "${LAPACK_SOURCE_DIR}/CMAKE" ${CMAKE_MODULE_PATH})
+
+# Export all symbols on Windows when building shared libraries
+SET(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
+
+# Set a default build type if none was specified
+if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
+  message(STATUS "Setting build type to 'Release' as none was specified.")
+  set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." FORCE)
+  # Set the possible values of build type for cmake-gui
+  set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo" "Coverage")
+endif()
+
+# Coverage
+set(_is_coverage_build 0)
+set(_msg "Checking if build type is 'Coverage'")
+message(STATUS "${_msg}")
+if(NOT CMAKE_CONFIGURATION_TYPES)
+  string(TOLOWER ${CMAKE_BUILD_TYPE} _build_type_lc)
+  if(${_build_type_lc} STREQUAL "coverage")
+    set(_is_coverage_build 1)
+  endif()
+endif()
+message(STATUS "${_msg}: ${_is_coverage_build}")
+
+if(_is_coverage_build)
+  message(STATUS "Adding coverage")
+  find_package(codecov)
+endif()
+
+# By default static library
+option(BUILD_SHARED_LIBS "Build shared libraries" OFF)
+
+include(GNUInstallDirs)
+
+# Updated OSX RPATH settings
+# In response to CMake 3.0 generating warnings regarding policy CMP0042,
+# the OSX RPATH settings have been updated per recommendations found
+# in the CMake Wiki:
+#  http://www.cmake.org/Wiki/CMake_RPATH_handling#Mac_OS_X_and_the_RPATH
+set(CMAKE_MACOSX_RPATH ON)
+set(CMAKE_SKIP_BUILD_RPATH FALSE)
+set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
+list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES ${CMAKE_INSTALL_FULL_LIBDIR} isSystemDir)
+if("${isSystemDir}" STREQUAL "-1")
+  set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR})
+  set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
+endif()
+
+
+# Configure the warning and code coverage suppression file
+configure_file(
+  "${LAPACK_SOURCE_DIR}/CTestCustom.cmake.in"
+  "${LAPACK_BINARY_DIR}/CTestCustom.cmake"
+  @ONLY
+)
+
+include(PreventInSourceBuilds)
+include(PreventInBuildInstalls)
+
+if(UNIX)
+  if(CMAKE_Fortran_COMPILER_ID STREQUAL Intel)
+    list(APPEND CMAKE_Fortran_FLAGS -fp-model strict)
+  endif()
+  if(CMAKE_Fortran_COMPILER_ID STREQUAL XL)
+    list(APPEND CMAKE_Fortran_FLAGS -qnosave -qstrict=none)
+  endif()
+# Delete libmtsk in linking sequence for Sun/Oracle Fortran Compiler.
+# This library is not present in the Sun package SolarisStudio12.3-linux-x86-bin
+  string(REPLACE \;mtsk\; \; CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES "${CMAKE_Fortran_IMPLICIT_LINK_LIBRARIES}")
+endif()
+
+if(CMAKE_Fortran_COMPILER_ID STREQUAL Compaq)
+  if(WIN32)
+    if(CMAKE_GENERATOR STREQUAL "NMake Makefiles")
+      get_filename_component(CMAKE_Fortran_COMPILER_CMDNAM ${CMAKE_Fortran_COMPILER} NAME_WE)
+      message(STATUS "Using Compaq Fortran compiler with command name ${CMAKE_Fortran_COMPILER_CMDNAM}")
+      set(cmd ${CMAKE_Fortran_COMPILER_CMDNAM})
+      string(TOLOWER "${cmd}" cmdlc)
+      if(cmdlc STREQUAL "df")
+        message(STATUS "Assume the Compaq Visual Fortran Compiler is being used")
+        set(CMAKE_Fortran_USE_RESPONSE_FILE_FOR_OBJECTS 1)
+        set(CMAKE_Fortran_USE_RESPONSE_FILE_FOR_INCLUDES 1)
+        #This is a workaround that is needed to avoid forward-slashes in the
+        #filenames listed in response files from incorrectly being interpreted as
+        #introducing compiler command options
+        if(${BUILD_SHARED_LIBS})
+          message(FATAL_ERROR "Making of shared libraries with CVF has not been tested.")
+        endif()
+        set(str "NMake version 9 or later should be used. NMake version 6.0 which is\n")
+        set(str "${str}   included with the CVF distribution fails to build Lapack because\n")
+        set(str "${str}   the number of source files exceeds the limit for NMake v6.0\n")
+        message(STATUS ${str})
+        set(CMAKE_Fortran_LINK_EXECUTABLE "LINK /out:<TARGET> <LINK_FLAGS> <LINK_LIBRARIES> <OBJECTS>")
+      endif()
+    endif()
+  endif()
+endif()
+
+
+# --------------------------------------------------
+set(LAPACK_INSTALL_EXPORT_NAME lapack-targets)
+
+macro(lapack_install_library lib)
+  install(TARGETS ${lib}
+    EXPORT ${LAPACK_INSTALL_EXPORT_NAME}
+    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Development
+    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT RuntimeLibraries
+    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT RuntimeLibraries
+  )
+endmacro()
+
+set(PKG_CONFIG_DIR ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+
+# --------------------------------------------------
+# Testing
+option(BUILD_TESTING "Build tests" ${_is_coverage_build})
+include(CTest)
+message(STATUS "Build tests: ${BUILD_TESTING}")
+
+# lapack_testing.py uses features from python 2.7 and greater
+if(BUILD_TESTING)
+  set(_msg "Looking for Python >= 2.7 needed for summary tests")
+  message(STATUS "${_msg}")
+  find_package(PythonInterp 2.7 QUIET)
+  if(PYTHONINTERP_FOUND)
+    message(STATUS "${_msg} - found (${PYTHON_VERSION_STRING})")
+  else()
+    message(STATUS "${_msg} - not found (skipping summary tests)")
+  endif()
+endif()
+
+# --------------------------------------------------
+# Organize output files.  On Windows this also keeps .dll files next
+# to the .exe files that need them, making tests easy to run.
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${LAPACK_BINARY_DIR}/bin)
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LAPACK_BINARY_DIR}/lib)
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LAPACK_BINARY_DIR}/lib)
+
+# --------------------------------------------------
+# Check for any necessary platform specific compiler flags
+include(CheckLAPACKCompilerFlags)
+CheckLAPACKCompilerFlags()
+
+# --------------------------------------------------
+# Check second function
+
+include(CheckTimeFunction)
+set(TIME_FUNC NONE ${TIME_FUNC})
+CHECK_TIME_FUNCTION(NONE TIME_FUNC)
+CHECK_TIME_FUNCTION(INT_CPU_TIME TIME_FUNC)
+CHECK_TIME_FUNCTION(EXT_ETIME TIME_FUNC)
+CHECK_TIME_FUNCTION(EXT_ETIME_ TIME_FUNC)
+CHECK_TIME_FUNCTION(INT_ETIME TIME_FUNC)
+message(STATUS "--> Will use second_${TIME_FUNC}.f and dsecnd_${TIME_FUNC}.f as timing function.")
+
+set(SECOND_SRC ${LAPACK_SOURCE_DIR}/INSTALL/second_${TIME_FUNC}.f)
+set(DSECOND_SRC ${LAPACK_SOURCE_DIR}/INSTALL/dsecnd_${TIME_FUNC}.f)
+
+# deprecated LAPACK and LAPACKE routines
+option(BUILD_DEPRECATED "Build deprecated routines" OFF)
+message(STATUS "Build deprecated routines: ${BUILD_DEPRECATED}")
+
+# --------------------------------------------------
+# Precision to build
+# By default all precisions are generated
+option(BUILD_SINGLE "Build single precision real" ON)
+option(BUILD_DOUBLE "Build double precision real" ON)
+option(BUILD_COMPLEX "Build single precision complex" ON)
+option(BUILD_COMPLEX16 "Build double precision complex" ON)
+message(STATUS "Build single precision real: ${BUILD_SINGLE}")
+message(STATUS "Build double precision real: ${BUILD_DOUBLE}")
+message(STATUS "Build single precision complex: ${BUILD_COMPLEX}")
+message(STATUS "Build double precision complex: ${BUILD_COMPLEX16}")
+
+if(NOT (BUILD_SINGLE OR BUILD_DOUBLE OR BUILD_COMPLEX OR BUILD_COMPLEX16))
+  message(FATAL_ERROR "Nothing to build, no precision selected.
+  Please enable at least one of these:
+  BUILD_SINGLE, BUILD_DOUBLE, BUILD_COMPLEX, BUILD_COMPLEX16.")
+endif()
+
+# --------------------------------------------------
+# Subdirectories that need to be processed
+option(USE_OPTIMIZED_BLAS "Whether or not to use an optimized BLAS library instead of included netlib BLAS" OFF)
+
+# Check the usage of the user provided BLAS libraries
+if(BLAS_ROOT)
+  include(CheckFortranFunctionExists)
+  set(CMAKE_FIND_LIBRARY_PREFIXES "lib" "msys-" "")
+  set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll" ".so")
+  find_library(BLAS blas PATHS ${BLAS_ROOT}/lib)
+  set(CMAKE_REQUIRED_LIBRARIES ${BLAS})
+  CHECK_FORTRAN_FUNCTION_EXISTS("dgemm" BLAS_FOUND)
+  unset(CMAKE_REQUIRED_LIBRARIES)
+  if(BLAS_FOUND)
+    message(STATUS "--> BLAS supplied by user is WORKING, will use ${BLAS}.")
+    set(BLAS_LIBRARIES blas)
+  else()
+    message(ERROR "--> BLAS supplied by user is not WORKING, CANNOT USE ${BLAS}.")
+    message(ERROR "-->     Will use REFERENCE BLAS (by default)")
+    message(ERROR "-->     Or Correct your BLAS_LIBRARIES entry ")
+    message(ERROR "-->     Or Consider checking USE_OPTIMIZED_BLAS")
+  endif()
+
+# User did not provide a BLAS Library but specified to search for one
+elseif(USE_OPTIMIZED_BLAS)
+  find_package(BLAS)
+endif()
+
+# Neither user specified or optimized BLAS libraries can be used
+if(NOT BLAS_FOUND)
+  message(STATUS "Using supplied NETLIB BLAS implementation")
+  add_subdirectory(BLAS)
+  set(BLAS_LIBRARIES blas)
+else()
+  set(CMAKE_EXE_LINKER_FLAGS
+    "${CMAKE_EXE_LINKER_FLAGS} ${BLAS_LINKER_FLAGS}"
+    CACHE STRING "Linker flags for executables" FORCE)
+  set(CMAKE_MODULE_LINKER_FLAGS
+    "${CMAKE_MODULE_LINKER_FLAGS} ${BLAS_LINKER_FLAGS}"
+    CACHE STRING "Linker flags for modules" FORCE)
+  set(CMAKE_SHARED_LINKER_FLAGS
+    "${CMAKE_SHARED_LINKER_FLAGS} ${BLAS_LINKER_FLAGS}"
+    CACHE STRING "Linker flags for shared libs" FORCE)
+endif()
+
+
+# --------------------------------------------------
+# CBLAS
+option(CBLAS "Build CBLAS" OFF)
+
+if(CBLAS)
+  add_subdirectory(CBLAS)
+endif()
+
+# --------------------------------------------------
+# XBLAS
+
+option(USE_XBLAS "Build extended precision (needs XBLAS)" OFF)
+if(USE_XBLAS)
+  find_library(XBLAS_LIBRARY NAMES xblas)
+endif()
+
+option(USE_OPTIMIZED_LAPACK "Whether or not to use an optimized LAPACK library instead of included netlib LAPACK" OFF)
+
+# --------------------------------------------------
+# LAPACK
+# User did not provide a LAPACK Library but specified to search for one
+if(USE_OPTIMIZED_LAPACK)
+  find_package(LAPACK)
+endif()
+
+# Check the usage of the user provided or automatically found LAPACK libraries
+if(LAPACK_LIBRARIES)
+  include(CheckFortranFunctionExists)
+  set(CMAKE_REQUIRED_LIBRARIES ${LAPACK_LIBRARIES})
+  # Check if new routine of 3.4.0 is in LAPACK_LIBRARIES
+  CHECK_FORTRAN_FUNCTION_EXISTS("dgeqrt" LATESTLAPACK_FOUND)
+  unset(CMAKE_REQUIRED_LIBRARIES)
+  if(LATESTLAPACK_FOUND)
+    message(STATUS "--> LAPACK supplied by user is WORKING, will use ${LAPACK_LIBRARIES}.")
+  else()
+    message(ERROR "--> LAPACK supplied by user is not WORKING or is older than LAPACK 3.4.0, CANNOT USE ${LAPACK_LIBRARIES}.")
+    message(ERROR "-->     Will use REFERENCE LAPACK (by default)")
+    message(ERROR "-->     Or Correct your LAPACK_LIBRARIES entry ")
+    message(ERROR "-->     Or Consider checking USE_OPTIMIZED_LAPACK")
+  endif()
+endif()
+
+# Neither user specified or optimized LAPACK libraries can be used
+if(NOT LATESTLAPACK_FOUND)
+  message(STATUS "Using supplied NETLIB LAPACK implementation")
+  set(LAPACK_LIBRARIES lapack)
+  add_subdirectory(SRC)
+else()
+  set(CMAKE_EXE_LINKER_FLAGS
+    "${CMAKE_EXE_LINKER_FLAGS} ${LAPACK_LINKER_FLAGS}"
+    CACHE STRING "Linker flags for executables" FORCE)
+  set(CMAKE_MODULE_LINKER_FLAGS
+    "${CMAKE_MODULE_LINKER_FLAGS} ${LAPACK_LINKER_FLAGS}"
+    CACHE STRING "Linker flags for modules" FORCE)
+  set(CMAKE_SHARED_LINKER_FLAGS
+    "${CMAKE_SHARED_LINKER_FLAGS} ${LAPACK_LINKER_FLAGS}"
+    CACHE STRING "Linker flags for shared libs" FORCE)
+endif()
+
+if(BUILD_TESTING)
+  add_subdirectory(TESTING)
+endif()
+
+# --------------------------------------------------
+# LAPACKE
+option(LAPACKE "Build LAPACKE" OFF)
+
+# LAPACKE has also the interface to some routines from tmglib,
+# if LAPACKE_WITH_TMG is selected, we need to add those routines to LAPACKE
+option(LAPACKE_WITH_TMG "Build LAPACKE with tmglib routines" OFF)
+if(LAPACKE_WITH_TMG)
+  set(LAPACKE ON)
+endif()
+if(BUILD_TESTING OR LAPACKE_WITH_TMG) #already included, avoid double inclusion
+  add_subdirectory(TESTING/MATGEN)
+endif()
+
+if(LAPACKE)
+  add_subdirectory(LAPACKE)
+endif()
+
+#-------------------------------------
+# BLAS++ / LAPACK++
+option(BLAS++ "Build BLAS++" OFF)
+option(LAPACK++ "Build LAPACK++" OFF)
+ 
+ 
+function(_display_cpp_implementation_msg name)
+  string(TOLOWER ${name} name_lc)
+  message(STATUS "${name}++ enable")
+  message(STATUS "----------------")
+  message(STATUS "Thank you for your interest in ${name}++, a newly developed C++ API for ${name} library")
+  message(STATUS "The objective of ${name}++ is to provide a convenient, performance oriented API for development in the C++ language, that, for the most part, preserves established conventions, while, at the same time, takes advantages of modern C++ features, such as: namespaces, templates, exceptions, etc.")
+  message(STATUS "We are still working on integrating ${name}++ in our library. For the moment, you can download directly ${name_lc}++ from https://bitbucket.org/icl/${name_lc}pp")
+  message(STATUS "For support ${name}++ related question, please email: slate-user@icl.utk.edu")
+  message(STATUS "----------------")
+endfunction()
+if(BLAS++)
+  _display_cpp_implementation_msg("BLAS")
+endif()
+if(LAPACK++)
+  _display_cpp_implementation_msg("LAPACK")
+endif()
+
+# --------------------------------------------------
+# CPACK Packaging
+
+set(CPACK_PACKAGE_NAME "LAPACK")
+set(CPACK_PACKAGE_VENDOR "University of Tennessee, Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd")
+set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "LAPACK- Linear Algebra Package")
+set(CPACK_PACKAGE_VERSION_MAJOR ${LAPACK_MAJOR_VERSION})
+set(CPACK_PACKAGE_VERSION_MINOR ${LAPACK_MINOR_VERSION})
+set(CPACK_PACKAGE_VERSION_PATCH ${LAPACK_PATCH_VERSION})
+set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
+set(CPACK_MONOLITHIC_INSTALL ON)
+set(CPACK_PACKAGE_INSTALL_DIRECTORY "LAPACK")
+if(WIN32 AND NOT UNIX)
+  # There is a bug in NSI that does not handle full unix paths properly. Make
+  # sure there is at least one set of four (4) backlasshes.
+  set(CPACK_NSIS_HELP_LINK "http:\\\\\\\\http://icl.cs.utk.edu/lapack-forum")
+  set(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\www.netlib.org/lapack")
+  set(CPACK_NSIS_CONTACT "lapack@eecs.utk.edu")
+  set(CPACK_NSIS_MODIFY_PATH ON)
+  set(CPACK_NSIS_DISPLAY_NAME "LAPACK-${LAPACK_VERSION}")
+  set(CPACK_PACKAGE_RELOCATABLE "true")
+else()
+  set(CPACK_GENERATOR "TGZ")
+  set(CPACK_SOURCE_GENERATOR TGZ)
+  set(CPACK_SOURCE_PACKAGE_FILE_NAME "lapack-${LAPACK_VERSION}")
+  set(CPACK_SOURCE_IGNORE_FILES ~$ .svn ${CPACK_SOURCE_IGNORE_FILES})
+endif()
+include(CPack)
+
+
+# --------------------------------------------------
+
+if(NOT BLAS_FOUND)
+  set(ALL_TARGETS ${ALL_TARGETS} blas)
+endif()
+
+if(NOT LATESTLAPACK_FOUND)
+  set(ALL_TARGETS ${ALL_TARGETS} lapack)
+endif()
+
+if(BUILD_TESTING OR LAPACKE_WITH_TMG)
+  set(ALL_TARGETS ${ALL_TARGETS} tmglib)
+endif()
+
+# Export lapack targets, not including lapacke, from the
+# install tree, if any.
+set(_lapack_config_install_guard_target "")
+if(ALL_TARGETS)
+  install(EXPORT lapack-targets
+    DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/lapack-${LAPACK_VERSION}
+    COMPONENT Development
+    )
+
+  # Choose one of the lapack targets to use as a guard for
+  # lapack-config.cmake to load targets from the install tree.
+  list(GET ALL_TARGETS 0 _lapack_config_install_guard_target)
+endif()
+
+# Include cblas in targets exported from the build tree.
+if(CBLAS)
+  set(ALL_TARGETS ${ALL_TARGETS} cblas)
+endif()
+
+# Include lapacke in targets exported from the build tree.
+if(LAPACKE)
+  set(ALL_TARGETS ${ALL_TARGETS} lapacke)
+endif()
+
+# Export lapack and lapacke targets from the build tree, if any.
+set(_lapack_config_build_guard_target "")
+if(ALL_TARGETS)
+  export(TARGETS ${ALL_TARGETS} FILE lapack-targets.cmake)
+
+  # Choose one of the lapack or lapacke targets to use as a guard
+  # for lapack-config.cmake to load targets from the build tree.
+  list(GET ALL_TARGETS 0 _lapack_config_build_guard_target)
+endif()
+
+configure_file(${LAPACK_SOURCE_DIR}/CMAKE/lapack-config-build.cmake.in
+  ${LAPACK_BINARY_DIR}/lapack-config.cmake @ONLY)
+
+
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/lapack.pc.in ${CMAKE_CURRENT_BINARY_DIR}/lapack.pc @ONLY)
+  install(FILES
+  ${CMAKE_CURRENT_BINARY_DIR}/lapack.pc
+  DESTINATION ${PKG_CONFIG_DIR}
+  COMPONENT Development
+  )
+
+configure_file(${LAPACK_SOURCE_DIR}/CMAKE/lapack-config-install.cmake.in
+  ${LAPACK_BINARY_DIR}/CMakeFiles/lapack-config.cmake @ONLY)
+
+include(CMakePackageConfigHelpers)
+write_basic_package_version_file(
+  ${LAPACK_BINARY_DIR}/lapack-config-version.cmake
+  VERSION ${LAPACK_VERSION}
+  COMPATIBILITY SameMajorVersion
+  )
+
+install(FILES
+  ${LAPACK_BINARY_DIR}/CMakeFiles/lapack-config.cmake
+  ${LAPACK_BINARY_DIR}/lapack-config-version.cmake
+  DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/lapack-${LAPACK_VERSION}
+  COMPONENT Development
+  )
+  
Index: /issm/trunk-jpl/externalpackages/lapack/install-3-win-msys2-gcc.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/lapack/install-3-win-msys2-gcc.sh	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/lapack/install-3-win-msys2-gcc.sh	(revision 26034)
@@ -0,0 +1,49 @@
+#!/bin/bash
+set -eu
+
+
+## Constants
+#
+VER="3.9.0"
+
+PREFIX="${ISSM_DIR}/externalpackages/lapack/install"
+
+# Cleanup
+rm -rf ${PREFIX} build src
+mkdir ${PREFIX} build src
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/lapack-${VER}.tar.gz" "lapack-${VER}.tar.gz"
+
+# Unpack source
+tar -zxvf lapack-${VER}.tar.gz
+
+# Move source into 'src' directory
+mv lapack-${VER}/* src
+rm -rf lapack-${VER}
+
+# Configure
+#
+cd build
+cmake \
+	-DBUILD_SHARED_LIBS=ON \
+	-DCMAKE_C_COMPILER=/usr/bin/gcc \
+	-DCMAKE_Fortran_COMPILER=/usr/bin/gfortran \
+	-DBLAS_LIBRARIES="-L${BLAS_ROOT}/lib -lblas" \
+	../src
+
+# Compile
+make
+
+# Copy libraries to lib directory (on Windows, CMake installs .dll files next
+# to the .exe files that need them, making tests easy to run, so let's not 
+# change the CMake configuration).
+mkdir ${PREFIX}/lib
+cp bin/msys-* ${PREFIX}/lib
+
+# Create link to versioned library
+cd ${PREFIX}/lib
+ln -s msys-lapack-3.dll msys-lapack.dll
+
+# Create link to shared version of library so that libtool can find it
+ln -s msys-lapack-3.dll liblapack.dll
Index: /issm/trunk-jpl/externalpackages/lapack/install-3-win-msys2-mingw.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/lapack/install-3-win-msys2-mingw.sh	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/lapack/install-3-win-msys2-mingw.sh	(revision 26034)
@@ -0,0 +1,54 @@
+#!/bin/bash
+set -eu
+
+
+# TODO:
+# - Modify configuration/makefiles so that dll rather than so is produced.
+#
+
+## Constants
+#
+VER="3.9.0"
+
+PREFIX="${ISSM_DIR}/externalpackages/lapack/install"
+
+# Cleanup
+rm -rf ${PREFIX} build src
+mkdir ${PREFIX} build src
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/lapack-${VER}.tar.gz" "lapack-${VER}.tar.gz"
+
+# Unpack source
+tar -zxvf lapack-${VER}.tar.gz
+
+# Move source into 'src' directory
+mv lapack-${VER}/* src
+rm -rf lapack-${VER}
+
+# Configure
+#
+cd build
+cmake \
+	-DBUILD_SHARED_LIBS=ON \
+	-DCMAKE_C_COMPILER=/mingw64/bin/gcc \
+	-DCMAKE_Fortran_COMPILER=/mingw64/bin/gfortran \
+	-DBLAS_LIBRARIES="-L${BLAS_ROOT}/lib -lblas" \
+	../src
+
+# Compile
+make
+
+# Copy libraries to lib directory (on Windows, CMake installs .dll files next
+# to the .exe files that need them, making tests easy to run, so let's not 
+# change the CMake configuration).
+mkdir ${PREFIX}/lib
+cp lib/liblapack.* ${PREFIX}/lib
+
+# # Create link to versioned library
+# cd ${PREFIX}/lib
+# ln -s msys-lapack-3.dll msys-lapack.dll
+
+# Create link to shared version of library so that libtool can find it
+cd ${PREFIX}/lib
+ln -s liblapack.so liblapack.dll
Index: /issm/trunk-jpl/externalpackages/metis/configs/5.1/win/msys2/GKlib/gk_arch.h
===================================================================
--- /issm/trunk-jpl/externalpackages/metis/configs/5.1/win/msys2/GKlib/gk_arch.h	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/metis/configs/5.1/win/msys2/GKlib/gk_arch.h	(revision 26034)
@@ -0,0 +1,73 @@
+/*!
+\file gk_arch.h
+\brief This file contains various architecture-specific declerations
+
+\date   Started 3/27/2007
+\author George
+\version\verbatim $Id: gk_arch.h 10711 2011-08-31 22:23:04Z karypis $ \endverbatim
+*/
+
+#ifndef _GK_ARCH_H_
+#define _GK_ARCH_H_
+
+/*************************************************************************
+* Architecture-specific differences in header files
+**************************************************************************/
+#ifdef LINUX
+#if !defined(__USE_XOPEN)
+#define __USE_XOPEN
+#endif
+#if !defined(_XOPEN_SOURCE)
+#define _XOPEN_SOURCE 600
+#endif
+#if !defined(__USE_XOPEN2K)
+#define __USE_XOPEN2K
+#endif
+#endif
+
+
+#ifdef HAVE_EXECINFO_H
+#include <execinfo.h>
+#endif
+
+
+#ifdef __MSC__ 
+  #include "ms_stdint.h"
+  #include "ms_inttypes.h"
+  #include "ms_stat.h"
+#else
+#ifndef SUNOS
+  #include <stdint.h>
+#endif
+  #include <inttypes.h>
+  #include <sys/types.h>
+  #ifndef __MINGW32__
+  #include <sys/resource.h>
+  #endif
+  #include <sys/time.h>
+#endif
+
+
+/*************************************************************************
+* Architecture-specific modifications
+**************************************************************************/
+#ifdef WIN32
+typedef ptrdiff_t ssize_t;
+#endif
+
+
+#ifdef SUNOS
+#define PTRDIFF_MAX  INT64_MAX
+#endif
+
+#ifdef __MSC__
+/* MSC does not have rint() function */
+#define rint(x) ((int)((x)+0.5))  
+
+/* MSC does not have INFINITY defined */
+#ifndef INFINITY
+#define INFINITY FLT_MAX
+#endif
+#endif
+
+#endif
Index: /issm/trunk-jpl/externalpackages/metis/configs/5.1/win/msys2/GKlib/gk_getopt.h
===================================================================
--- /issm/trunk-jpl/externalpackages/metis/configs/5.1/win/msys2/GKlib/gk_getopt.h	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/metis/configs/5.1/win/msys2/GKlib/gk_getopt.h	(revision 26034)
@@ -0,0 +1,53 @@
+/*!
+\file gk_getopt.h
+\brief This file contains GNU's externs/structs/prototypes
+
+\date   Started 3/27/2007
+\author George
+\version\verbatim $Id: gk_getopt.h 10711 2011-08-31 22:23:04Z karypis $ \endverbatim
+*/
+
+#ifndef _GK_GETOPT_H_
+#define _GK_GETOPT_H_
+
+
+/* Externals from getopt.c */
+extern char *gk_optarg;
+extern int gk_optind;
+extern int gk_opterr;
+extern int gk_optopt;
+
+
+/*! \brief The structure that stores the information about the command-line options 
+
+This structure describes a single long option name for the sake of 
+gk_getopt_long(). The argument <tt>long_options</tt> must be an array 
+of these structures, one for each long option. Terminate the array with 
+an element containing all zeros.
+*/
+struct gk_option {
+  char *name;       /*!< This field is the name of the option. */
+  int has_arg;      /*!< This field says whether the option takes an argument. 
+                         It is an integer, and there are three legitimate values: 
+                         no_argument, required_argument and optional_argument. 
+                         */
+  int *flag;        /*!< See the discussion on ::gk_option#val */
+  int val;          /*!< These fields control how to report or act on the option 
+                         when it occurs. 
+                         
+                         If flag is a null pointer, then the val is a value which 
+                         identifies this option. Often these values are chosen 
+                         to uniquely identify particular long options.
+
+                         If flag is not a null pointer, it should be the address 
+                         of an int variable which is the flag for this option. 
+                         The value in val is the value to store in the flag to 
+                         indicate that the option was seen. */
+};
+
+/* Names for the values of the `has_arg' field of `struct gk_option'.  */
+#define no_argument		0
+#define required_argument	1
+#define optional_argument	2
+
+#endif
Index: /issm/trunk-jpl/externalpackages/metis/configs/5.1/win/msys2/Makefile
===================================================================
--- /issm/trunk-jpl/externalpackages/metis/configs/5.1/win/msys2/Makefile	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/metis/configs/5.1/win/msys2/Makefile	(revision 26034)
@@ -0,0 +1,133 @@
+# Configuration options.
+gdb        = not-set
+assert     = not-set
+assert2    = not-set
+debug      = not-set
+gprof      = not-set
+openmp     = not-set
+prefix     = not-set
+gklib_path = not-set
+windows    = not-set
+shared     = not-set
+cc         = not-set
+cxx        = not-set
+ar         = not-set
+gcc-ar     = not-set
+ranlib     = not-set
+gcc-ranlib = not-set
+linker     = not-set
+nm         = not-set
+objcopy    = not-set
+objdump    = not-set
+rc         = not-set
+strip      = not-set
+
+
+# Basically proxies everything to the builddir cmake.
+
+cputype = $(shell uname -m | sed "s/\\ /_/g")
+systype = $(shell uname -s)
+
+BUILDDIR = build/$(systype)-$(cputype)
+
+# Process configuration options.
+CONFIG_FLAGS = -DCMAKE_VERBOSE_MAKEFILE=1
+ifeq ($(gklib_path), not-set)
+    gklib_path = GKlib
+endif
+CONFIG_FLAGS += -DGKLIB_PATH=$(abspath $(gklib_path))
+ifneq ($(gdb), not-set)
+    CONFIG_FLAGS += -DGDB=$(gdb)
+endif
+ifneq ($(assert), not-set)
+    CONFIG_FLAGS += -DASSERT=$(assert)
+endif
+ifneq ($(assert2), not-set)
+    CONFIG_FLAGS += -DASSERT2=$(assert2)
+endif
+ifneq ($(debug), not-set)
+    CONFIG_FLAGS += -DDEBUG=$(debug)
+endif
+ifneq ($(gprof), not-set)
+    CONFIG_FLAGS += -DGPROF=$(gprof)
+endif
+ifneq ($(openmp), not-set)
+    CONFIG_FLAGS += -DOPENMP=$(openmp)
+endif
+ifneq ($(prefix), not-set)
+    CONFIG_FLAGS += -DCMAKE_INSTALL_PREFIX=$(prefix)
+endif
+ifneq ($(windows), not-set)
+    CONFIG_FLAGS += -DMSVC=0
+endif
+ifneq ($(shared), not-set)
+    CONFIG_FLAGS += -DSHARED=1 -DCMAKE_SHARED_LINKER_FLAGS=-Wl,--no-undefined
+endif
+ifneq ($(cc), not-set)
+    CONFIG_FLAGS += -DCMAKE_C_COMPILER=$(cc)
+endif
+ifneq ($(cxx), not-set)
+    CONFIG_FLAGS += -DCMAKE_CXX_COMPILER=$(cxx)
+endif
+ifneq ($(ar), not-set)
+    CONFIG_FLAGS += -DCMAKE_AR=$(ar)
+endif
+ifneq ($(gcc-ar), not-set)
+    CONFIG_FLAGS += -DCMAKE_C_COMPILER_AR=$(gcc-ar) -DCMAKE_CXX_COMPILER_AR=$(gcc-ar)
+endif
+ifneq ($(ranlib), not-set)
+    CONFIG_FLAGS += -DCMAKE_RANLIB=$(ranlib)
+endif
+ifneq ($(gcc-ranlib), not-set)
+    CONFIG_FLAGS += -DCMAKE_C_COMPILER_RANLIB=$(gcc-ranlib) -DCMAKE_CXX_COMPILER_RANLIB=$(gcc-ranlib)
+endif
+ifneq ($(linker), not-set)
+    CONFIG_FLAGS += -DCMAKE_LINKER=$(linker)
+endif
+ifneq ($(nm), not-set)
+    CONFIG_FLAGS += -DCMAKE_NM=$(nm)
+endif
+ifneq ($(objcopy), not-set)
+    CONFIG_FLAGS += -DCMAKE_OBJCOPY=$(objcopy)
+endif
+ifneq ($(objdump), not-set)
+    CONFIG_FLAGS += -DCMAKE_OBJDUMP=$(objdump)
+endif
+ifneq ($(rc), not-set)
+    CONFIG_FLAGS += -DCMAKE_RC_COMPILER=$(rc)
+endif
+ifneq ($(strip), not-set)
+    CONFIG_FLAGS += -DCMAKE_STRIP=$(strip)
+endif
+
+VERNUM=5.1.0
+PKGNAME=metis-$(VERNUM)
+
+define run-config
+mkdir -p $(BUILDDIR)
+cd $(BUILDDIR) && cmake $(CURDIR) $(CONFIG_FLAGS)
+endef
+
+all clean install:
+	@if [ ! -f $(BUILDDIR)/Makefile ]; then \
+		more BUILD.txt; \
+	else \
+	  	make -C $(BUILDDIR) $@ $(MAKEFLAGS); \
+	fi
+
+uninstall:
+	xargs rm < $(BUILDDIR)/install_manifest.txt
+
+config: distclean
+	$(run-config)
+
+distclean:
+	rm -rf $(BUILDDIR)
+
+remake:
+	find . -name CMakeLists.txt -exec touch {} ';'
+
+dist:
+	utils/mkdist.sh $(PKGNAME)
+
+.PHONY: config distclean all clean install uninstall remake dist
Index: /issm/trunk-jpl/externalpackages/metis/install-5-win-msys2-gcc.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/metis/install-5-win-msys2-gcc.sh	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/metis/install-5-win-msys2-gcc.sh	(revision 26034)
@@ -0,0 +1,68 @@
+#!/bin/bash
+set -eu
+
+
+# TODO
+# - Move installation of GKlib to $PREFIX to Makefile instead of simply copying 
+#	it
+#
+
+## Constants
+#
+VER=5.1.0
+
+PREFIX="${ISSM_DIR}/externalpackages/metis/install"
+
+# Cleanup
+rm -rf ${PREFIX} src
+mkdir ${PREFIX} src
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/metis-${VER}.tar.gz" "metis-${VER}.tar.gz"
+
+# Unpack source
+tar -zxvf metis-$VER.tar.gz
+
+# Move source into 'src' directory
+mv metis-${VER}/* src
+rm -rf metis-${VER}
+
+# Copy customized source and configuration files to 'src' directory
+cp configs/5.1/win/msys2/Makefile src
+cp configs/5.1/win/msys2/gcc/GKlib/gk_arch.h src/GKlib
+cp configs/5.1/win/msys2/gcc/GKlib/gk_getopt.h src/GKlib
+
+# Configure
+cd src
+make config \
+	prefix=${PREFIX} \
+	shared=1 \
+	cc=/usr/bin/gcc \
+	cxx=/usr/bin/g++
+
+# Compile and install
+if [ $# -eq 0 ]; then
+	make
+	make install
+else
+	make -j $1
+	make -j $1 install
+fi
+
+# Install GKlib
+cp -R GKlib ${PREFIX}
+
+# Create link to shared version of library so that libtool can find it
+#
+# NOTE: MSYS2 needs to be run as administrator for this to work.
+#
+cd ${PREFIX}/lib
+ln -s ./msys-metis.dll ./libmetis.dll
+
+# Create link to lib directory (PETSc, by default, looks for libraries in 
+# lib64/ if it detects that 64-bit integers are being used)
+#
+# NOTE: MSYS2 needs to be run as administrator for this to work.
+#
+cd ${PREFIX}
+ln -s ./lib ./lib64
Index: /issm/trunk-jpl/externalpackages/metis/install-5-win-msys2-mingw.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/metis/install-5-win-msys2-mingw.sh	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/metis/install-5-win-msys2-mingw.sh	(revision 26034)
@@ -0,0 +1,65 @@
+#!/bin/bash
+set -eu
+
+
+# TODO
+# - Move installation of GKlib to $PREFIX to Makefile instead of simply copying 
+#	it
+#
+
+## Constants
+#
+VER=5.1.0
+
+PREFIX="${ISSM_DIR}/externalpackages/metis/install"
+
+# Cleanup
+rm -rf ${PREFIX} src
+mkdir ${PREFIX} src
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/metis-${VER}.tar.gz" "metis-${VER}.tar.gz"
+
+# Unpack source
+tar -zxvf metis-$VER.tar.gz
+
+# Move source into 'src' directory
+mv metis-${VER}/* src
+rm -rf metis-${VER}
+
+# Copy customized source and configuration files to 'src' directory
+cp configs/5.1/win/msys2/Makefile src
+cp configs/5.1/win/msys2/GKlib/gk_arch.h src/GKlib
+cp configs/5.1/win/msys2/GKlib/gk_getopt.h src/GKlib
+
+# Configure
+cd src
+make config \
+	prefix=${PREFIX} \
+	shared=1 \
+	cc=/mingw64/bin/gcc \
+	cxx=/mingw64/bin/g++
+
+# Compile and install
+if [ $# -eq 0 ]; then
+	make
+	make install
+else
+	make -j $1
+	make -j $1 install
+fi
+
+# Install GKlib
+cp -R GKlib ${PREFIX}
+
+# Create link to lib directory (PETSc, by default, looks for libraries in 
+# lib64/ if it detects that 64-bit integers are being used)
+#
+# NOTE: MSYS2 needs to be run as administrator for this to work.
+#
+cd ${PREFIX}
+ln -s ./lib ./lib64
+
+# Create link to shared version of library so that libtool can find it
+cd ${PREFIX}/lib
+ln -s libmetis.so libmetis.dll
Index: /issm/trunk-jpl/externalpackages/mumps/configs/5.3/win/msys2/gcc/msmpi/Makefile.inc
===================================================================
--- /issm/trunk-jpl/externalpackages/mumps/configs/5.3/win/msys2/gcc/msmpi/Makefile.inc	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/mumps/configs/5.3/win/msys2/gcc/msmpi/Makefile.inc	(revision 26034)
@@ -0,0 +1,189 @@
+#
+#  This file is part of MUMPS 5.3.5, released
+#  on Thu Oct 22 09:29:08 UTC 2020
+#
+################################################################################
+#
+#   Makefile.inc.generic
+#
+#   This defines some parameters dependent on your platform; you should
+#   look for the approriate file in the directory ./Make.inc/ and copy it
+#   into a file called Makefile.inc. For example, from the MUMPS root
+#   directory, use 
+#   "cp Make.inc/Makefile.inc.generic ./Makefile.inc"
+#   (see the main README file for details)
+#
+#   If you do not find any suitable Makefile in Makefile.inc, use this file:
+#   "cp Make.inc/Makefile.inc.generic ./Makefile.inc" and modify it according
+#   to the comments given below. If you manage to build MUMPS on a new platform,
+#   and think that this could be useful to others, you may want to send us
+#   the corresponding Makefile.inc file.
+#
+################################################################################
+
+
+########################################################################
+#Begin orderings
+#
+# NOTE that PORD is distributed within MUMPS by default. It is recommended to
+# install other orderings. For that, you need to obtain the corresponding package
+# and modify the variables below accordingly.
+# For example, to have Metis available within MUMPS:
+#          1/ download Metis and compile it
+#          2/ uncomment (suppress # in first column) lines
+#             starting with LMETISDIR,  LMETIS
+#          3/ add -Dmetis in line ORDERINGSF
+#             ORDERINGSF  = -Dpord -Dmetis
+#          4/ Compile and install MUMPS
+#             make clean; make   (to clean up previous installation)
+#
+#          Metis/ParMetis and SCOTCH/PT-SCOTCH (ver 6.0 and later) orderings are recommended.
+#
+
+#SCOTCHDIR  = ${HOME}/scotch_6.0
+#ISCOTCH    = -I$(SCOTCHDIR)/include
+#
+# You have to choose one among the following two lines depending on
+# the type of analysis you want to perform. If you want to perform only
+# sequential analysis choose the first (remember to add -Dscotch in the ORDERINGSF
+# variable below); for both parallel and sequential analysis choose the second 
+# line (remember to add -Dptscotch in the ORDERINGSF variable below)
+
+#LSCOTCH    = -L$(SCOTCHDIR)/lib -lesmumps -lscotch -lscotcherr
+#LSCOTCH    = -L$(SCOTCHDIR)/lib -lptesmumps -lptscotch -lptscotcherr
+
+
+LPORDDIR = $(topdir)/PORD/lib
+IPORD    = -I$(topdir)/PORD/include
+LPORD    = -L$(LPORDDIR) -lpord
+
+LMSMPIDIR = ${MSMPI_ROOT}/lib
+IMSMPIDIR = -I${MSMPI_ROOT}/include
+
+#LMETISDIR = /opt/metis-5.1.0/build/Linux-x86_64/libmetis
+#IMETIS    = /opt/metis-5.1.0/include
+
+# You have to choose one among the following two lines depending on
+# the type of analysis you want to perform. If you want to perform only
+# sequential analysis choose the first (remember to add -Dmetis in the ORDERINGSF
+# variable below); for both parallel and sequential analysis choose the second 
+# line (remember to add -Dparmetis in the ORDERINGSF variable below)
+
+#LMETIS    = -L$(LMETISDIR) -lmetis
+#LMETIS    = -L$(LMETISDIR) -lparmetis -lmetis
+
+LMETISDIR		= ${METIS_ROOT}/lib
+IMETIS			= -I${METIS_ROOT}/include
+LPARMETISDIR	= ${PARMETIS_ROOT}/lib
+IPARMETIS		= -I${PARMETIS_ROOT}/include
+
+LMETIS    = -L$(LPARMETISDIR) -lparmetis -L$(LMSMPIDIR) -lmsmpi -L$(LMETISDIR) -lmetis
+
+# The following variables will be used in the compilation process.
+# Please note that -Dptscotch and -Dparmetis imply -Dscotch and -Dmetis respectively.
+# If you want to use Metis 4.X or an older version, you should use -Dmetis4 instead of -Dmetis
+# or in addition with -Dparmetis (if you are using parmetis 3.X or older).
+#ORDERINGSF = -Dscotch -Dmetis -Dpord -Dptscotch -Dparmetis
+#ORDERINGSF  = -Dpord
+ORDERINGSF  = -Dmetis -Dpord -Dparmetis
+ORDERINGSC  = $(ORDERINGSF)
+
+# LORDERINGS = $(LMETIS) $(LPORD) $(LSCOTCH)
+# IORDERINGSF = $(ISCOTCH)
+# IORDERINGSC = $(IMETIS) $(IPORD) $(ISCOTCH)
+LORDERINGS = $(LPARMETIS) $(LMETIS)  $(LPORD) $(LSCOTCH)
+IORDERINGSF = $(ISCOTCH)
+IORDERINGSC = $(IPARMETIS) $(IMETIS) $(IPORD) $(ISCOTCH)
+
+#End orderings
+########################################################################
+
+########################################################################
+# DEFINE HERE SOME COMMON COMMANDS, THE COMPILER NAMES, ETC...
+
+# PLAT : use it to add a default suffix to the generated libraries
+PLAT    = 
+# Library extension, + C and Fortran "-o" option
+# may be different under Windows
+LIBEXT  = .dll
+OUTC    = -o 
+OUTF    = -o 
+# RM : remove files
+RM      = /usr/bin/rm -f
+# CC : C compiler
+CC      = /usr/bin/gcc
+# FC : Fortran 90 compiler
+FC      = /usr/bin/gfortran
+# FL : Fortran linker
+FL      = /usr/bin/gfortran
+# AR : Archive object in a library
+#      keep a space at the end if options have to be separated from lib name
+AR      = /usr/bin/ar cr 
+# RANLIB : generate index of an archive file
+#   (optionnal use "RANLIB = echo" in case of problem)
+RANLIB  = /usr/bin/ranlib
+#RANLIB  = echo
+
+# DEFINE HERE YOUR LAPACK LIBRARY
+
+LAPACK = -L${LAPACK_ROOT}/lib -llapack
+
+# SCALAP should define the SCALAPACK and BLACS libraries.
+SCALAP  = -L${SCALAPACK_ROOT}/lib -lscalapack
+
+# INCLUDE DIRECTORY FOR MPI
+INCPAR  = $(IMSMPIDIR)
+
+# LIBRARIES USED BY THE PARALLEL VERSION OF MUMPS: $(SCALAP) and MPI
+LIBPAR  = $(SCALAP) $(LAPACK) -L$(LMSMPIDIR) -lmsmpi
+
+# The parallel version is not concerned by the next two lines.
+# They are related to the sequential library provided by MUMPS,
+# to use instead of ScaLAPACK and MPI.
+INCSEQ  = -I$(topdir)/libseq
+LIBSEQ  = $(LAPACK) -L$(topdir)/libseq -lmpiseq
+
+# DEFINE HERE YOUR BLAS LIBRARY
+
+LIBBLAS = -L${BLAS_ROOT}/lib -lblas
+
+# DEFINE HERE YOUR PTHREAD LIBRARY
+LIBOTHERS = -lpthread
+
+# FORTRAN/C COMPATIBILITY:
+#  Use:
+#    -DAdd_ if your Fortran compiler adds an underscore at the end
+#              of symbols,
+#     -DAdd__ if your Fortran compiler adds 2 underscores,
+#
+#     -DUPPER if your Fortran compiler uses uppercase symbols
+#
+#     leave empty if your Fortran compiler does not change the symbols.
+#
+
+CDEFS = -DAdd_
+
+#COMPILER OPTIONS
+#
+# NOTE:
+# - Added -fallow-argument-mismatch option to OPTF in order to clear "Error: 
+#	Rank mismatch between actual argument at [...]"
+# - Added -fallow-invalid-boz option to OPTF in order to clear "Error: BOZ 
+#	literal constant at [...]"
+#
+OPTF    = -O -fPIC -fallow-argument-mismatch -fallow-invalid-boz
+OPTC    = -O -fPIC -I.
+OPTL    = -O
+
+# CHOOSE BETWEEN USING THE SEQUENTIAL OR THE PARALLEL VERSION.
+
+#Sequential:
+#INCS = $(INCSEQ)
+#LIBS = $(LIBSEQ)
+#LIBSEQNEEDED = libseqneeded
+
+#Parallel:
+INCS = $(INCPAR)
+LIBS = $(LIBPAR)
+LIBSEQNEEDED = libseqneeded # NOTE: Create libmpiseq because PETSc looks for it (rather than patching PETSc config tests)
+
Index: /issm/trunk-jpl/externalpackages/mumps/configs/5.3/win/msys2/gcc/msmpi/PORD/lib/Makefile
===================================================================
--- /issm/trunk-jpl/externalpackages/mumps/configs/5.3/win/msys2/gcc/msmpi/PORD/lib/Makefile	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/mumps/configs/5.3/win/msys2/gcc/msmpi/PORD/lib/Makefile	(revision 26034)
@@ -0,0 +1,34 @@
+
+# To compile directly, uncomment the line below.
+# include ../Make.in
+#
+# Otherwise, adequate variables for CC, CFLAGS, AR and RANLIB must be passed to 
+# make.
+#
+
+INCLUDES = -I../include
+
+# NOTE:
+#- CFLAGS = $(OPTC) (see ../../src/Makefile; OPTC is set in ../../Makefile.inc)
+#
+COPTIONS = $(INCLUDES) $(CFLAGS) $(OPTFLAGS)
+
+OBJS = graph.o gbipart.o gbisect.o ddcreate.o ddbisect.o nestdiss.o \
+       multisector.o gelim.o bucket.o tree.o \
+       symbfac.o interface.o sort.o minpriority.o 
+
+# NOTE: numfac.c read.c mapping.c triangular.c matrix.c kernel.c were not 
+# directly used by MUMPS and have been removed from the original SPACE 
+# package.
+
+.c.o:
+	$(CC) $(COPTIONS) -c $*.c $(OUTC) $*.o
+
+libpord$(LIBEXT):$(OBJS)
+	$(CC) -shared $(OUTC) $@ $(OBJS)
+
+clean:
+	$(RM) *.o
+
+realclean:
+	$(RM) *.o libpord*
Index: /issm/trunk-jpl/externalpackages/mumps/configs/5.3/win/msys2/gcc/msmpi/libseq/Makefile
===================================================================
--- /issm/trunk-jpl/externalpackages/mumps/configs/5.3/win/msys2/gcc/msmpi/libseq/Makefile	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/mumps/configs/5.3/win/msys2/gcc/msmpi/libseq/Makefile	(revision 26034)
@@ -0,0 +1,25 @@
+#
+#  This file is part of MUMPS 5.3.5, released
+#  on Thu Oct 22 09:29:08 UTC 2020
+#
+all: libmpiseq
+
+.PHONY: all libmpiseq clean
+
+include ../Makefile.inc
+
+libmpiseq: libmpiseq$(PLAT)$(LIBEXT)
+
+# NOTE:
+# - We need to use Fortran compiler or otherwise link in Fortran libraries 
+#   using C compiler (which does not make a lot of sense, but is possible)
+#
+libmpiseq$(PLAT)$(LIBEXT): mpi.o mpic.o elapse.o
+	$(FC) -shared $(OUTF) $@ mpi.o mpic.o elapse.o
+.f.o:
+	$(FC) $(OPTF)              -c $*.f $(OUTF)$*.o
+.c.o:
+	$(CC) $(OPTC) $(CDEFS) -I. -c $*.c $(OUTC)$*.o
+
+clean:
+	$(RM) *.o *$(LIBEXT)
Index: /issm/trunk-jpl/externalpackages/mumps/configs/5.3/win/msys2/gcc/msmpi/src/Makefile
===================================================================
--- /issm/trunk-jpl/externalpackages/mumps/configs/5.3/win/msys2/gcc/msmpi/src/Makefile	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/mumps/configs/5.3/win/msys2/gcc/msmpi/src/Makefile	(revision 26034)
@@ -0,0 +1,425 @@
+#
+#  This file is part of MUMPS 5.3.5, released
+#  on Thu Oct 22 09:29:08 UTC 2020
+#
+#
+topdir = ..
+libdir = $(topdir)/lib
+incdir = $(topdir)/include
+
+default: d
+
+.PHONY: default s d c z mumps_lib clean
+
+s:
+	$(MAKE) ARITH=s mumps_lib
+d:
+	$(MAKE) ARITH=d mumps_lib
+c:
+	$(MAKE) ARITH=c mumps_lib
+z:
+	$(MAKE) ARITH=z mumps_lib
+
+include $(topdir)/Makefile.inc
+
+mumps_lib:    $(incdir)/mumps_int_def.h \
+              $(libdir)/libmumps_common$(PLAT)$(LIBEXT) \
+              $(libdir)/lib$(ARITH)mumps$(PLAT)$(LIBEXT)
+
+# Build $(incdir)/mumps_int_def.h, needed by mumps_c_types.h
+$(incdir)/mumps_int_def.h: build_mumps_int_def 
+	./build_mumps_int_def > $(incdir)/mumps_int_def.h
+build_mumps_int_def:build_mumps_int_def.o
+	$(CC) $(OPTL) build_mumps_int_def.o -o build_mumps_int_def
+
+OBJS_COMMON_MOD = \
+        ana_omp_m.o\
+        ana_blk_m.o\
+        ana_orderings_wrappers_m.o\
+        double_linked_list.o\
+        fac_asm_build_sort_index_ELT_m.o\
+        fac_asm_build_sort_index_m.o\
+        fac_descband_data_m.o\
+        fac_future_niv2_mod.o\
+        fac_ibct_data_m.o\
+        fac_maprow_data_m.o\
+        front_data_mgt_m.o\
+        lr_common.o \
+        mumps_comm_ibcast.o\
+        mumps_l0_omp_m.o\
+        mumps_memory_mod.o\
+        mumps_mpitoomp_m.o\
+        mumps_ooc_common.o\
+        mumps_static_mapping.o\
+        omp_tps_common_m.o
+
+
+OBJS_COMMON_OTHER = \
+        ana_blk.o\
+        ana_orderings.o\
+        ana_set_ordering.o\
+        ana_AMDMF.o\
+        bcast_errors.o\
+        estim_flops.o\
+        mumps_type_size.o \
+        mumps_type2_blocking.o \
+        mumps_version.o \
+        mumps_print_defined.o \
+        mumps_common.o\
+        mumps_pord.o\
+        mumps_metis.o\
+        mumps_metis64.o\
+        mumps_metis_int.o\
+        mumps_scotch.o\
+        mumps_scotch64.o\
+        mumps_scotch_int.o\
+        mumps_size.o\
+        mumps_io.o\
+        mumps_io_basic.o\
+        mumps_io_thread.o\
+        mumps_io_err.o\
+        mumps_numa.o \
+        mumps_thread.o \
+        mumps_save_restore_C.o \
+        mumps_config_file_C.o \
+        mumps_thread_affinity.o \
+        tools_common.o \
+        sol_common.o
+
+OBJS_MOD =   \
+        $(ARITH)ana_aux.o \
+        $(ARITH)ana_aux_par.o \
+        $(ARITH)ana_lr.o\
+        $(ARITH)fac_asm_master_ELT_m.o\
+        $(ARITH)fac_asm_master_m.o\
+        $(ARITH)fac_front_aux.o\
+        $(ARITH)fac_front_LU_type1.o\
+        $(ARITH)fac_front_LU_type2.o\
+        $(ARITH)fac_front_LDLT_type1.o\
+        $(ARITH)fac_front_LDLT_type2.o\
+        $(ARITH)fac_front_type2_aux.o\
+        $(ARITH)fac_sispointers_m.o\
+        $(ARITH)fac_lr.o\
+        $(ARITH)fac_mem_dynamic.o\
+        $(ARITH)fac_omp_m.o\
+        $(ARITH)fac_par_m.o\
+        $(ARITH)fac_sol_l0omp_m.o\
+        $(ARITH)lr_core.o\
+        $(ARITH)lr_stats.o\
+        $(ARITH)lr_type.o\
+        $(ARITH)mumps_comm_buffer.o\
+        $(ARITH)mumps_config_file.o\
+        $(ARITH)mumps_load.o\
+        $(ARITH)mumps_lr_data_m.o\
+        $(ARITH)mumps_ooc_buffer.o\
+        $(ARITH)mumps_ooc.o\
+        $(ARITH)mumps_sol_es.o\
+        $(ARITH)mumps_save_restore.o\
+        $(ARITH)mumps_save_restore_files.o\
+        $(ARITH)mumps_struc_def.o\
+        $(ARITH)omp_tps_m.o\
+        $(ARITH)sol_lr.o\
+        $(ARITH)sol_omp_m.o\
+        $(ARITH)static_ptr_m.o
+
+OBJS_OTHER = \
+        $(ARITH)ini_driver.o\
+        $(ARITH)ana_driver.o\
+        $(ARITH)fac_driver.o\
+        $(ARITH)sol_driver.o\
+        $(ARITH)sol_distrhs.o\
+        $(ARITH)end_driver.o\
+        $(ARITH)ana_aux_ELT.o\
+        $(ARITH)ana_dist_m.o\
+        $(ARITH)ana_LDLT_preprocess.o\
+        $(ARITH)ana_reordertree.o\
+        $(ARITH)arrowheads.o\
+        $(ARITH)bcast_int.o\
+        $(ARITH)fac_asm_ELT.o\
+        $(ARITH)fac_asm.o\
+        $(ARITH)fac_b.o\
+        $(ARITH)fac_distrib_distentry.o\
+        $(ARITH)fac_distrib_ELT.o\
+        $(ARITH)fac_lastrtnelind.o\
+        $(ARITH)fac_mem_alloc_cb.o\
+        $(ARITH)fac_mem_compress_cb.o\
+        $(ARITH)fac_mem_free_block_cb.o\
+        $(ARITH)fac_mem_stack_aux.o\
+        $(ARITH)fac_mem_stack.o\
+        $(ARITH)fac_process_band.o\
+        $(ARITH)fac_process_blfac_slave.o\
+        $(ARITH)fac_process_blocfacto_LDLT.o\
+        $(ARITH)fac_process_blocfacto.o\
+        $(ARITH)fac_process_bf.o\
+        $(ARITH)fac_process_end_facto_slave.o\
+        $(ARITH)fac_process_contrib_type1.o\
+        $(ARITH)fac_process_contrib_type2.o\
+        $(ARITH)fac_process_contrib_type3.o\
+        $(ARITH)fac_process_maprow.o\
+        $(ARITH)fac_process_master2.o\
+        $(ARITH)fac_process_message.o\
+        $(ARITH)fac_process_root2slave.o\
+        $(ARITH)fac_process_root2son.o\
+        $(ARITH)fac_process_rtnelind.o\
+        $(ARITH)fac_root_parallel.o\
+        $(ARITH)fac_scalings.o\
+        $(ARITH)fac_determinant.o\
+        $(ARITH)fac_scalings_simScaleAbs.o\
+        $(ARITH)fac_scalings_simScale_util.o\
+        $(ARITH)fac_sol_pool.o\
+        $(ARITH)fac_type3_symmetrize.o\
+        $(ARITH)ini_defaults.o\
+        $(ARITH)mumps_c.o\
+        $(ARITH)mumps_driver.o\
+        $(ARITH)mumps_f77.o\
+        $(ARITH)mumps_gpu.o\
+        $(ARITH)mumps_iXamax.o\
+        $(ARITH)ana_mtrans.o\
+        $(ARITH)ooc_panel_piv.o\
+        $(ARITH)rank_revealing.o\
+        $(ARITH)sol_aux.o\
+        $(ARITH)sol_bwd_aux.o\
+        $(ARITH)sol_bwd.o\
+        $(ARITH)sol_c.o\
+        $(ARITH)sol_fwd_aux.o\
+        $(ARITH)sol_fwd.o\
+        $(ARITH)sol_matvec.o\
+        $(ARITH)sol_root_parallel.o\
+        $(ARITH)tools.o\
+        $(ARITH)type3_root.o
+
+# NOTE:
+# - We need to use Fortran compiler or otherwise link in Fortran libraries 
+#	using C compiler (which does not make a lot of sense, but is possible)
+# - In case of "Makefile:[line_number]: *** missing separator.  Stop.", ensure 
+#	that $(FC) is preceded by a tab and not four spaces
+#
+$(libdir)/libmumps_common$(PLAT)$(LIBEXT):      $(OBJS_COMMON_MOD) $(OBJS_COMMON_OTHER)
+	$(FC) -shared $(OUTF) $@ \
+		$? $(LORDERINGS) $(LIBS) $(LIBLAPACK) $(LIBBLAS) $(LIBOTHERS) \
+		-Wl,--out-implib=$(libdir)/libmumps_common$(PLAT).dll.a
+
+$(libdir)/lib$(ARITH)mumps$(PLAT)$(LIBEXT):    $(OBJS_MOD) $(OBJS_OTHER)
+	$(FC) -shared $(OUTF) $@ \
+		$? -L$(libdir) -lmumps_common$(PLAT) $(LORDERINGS) $(LIBS) $(LIBLAPACK) $(LIBBLAS) $(LIBOTHERS) \
+		-Wl,--out-implib=$(libdir)/lib$(ARITH)mumps$(PLAT).dll.a
+
+# Dependencies between modules:
+# i) arithmetic-dependent modules:
+$(ARITH)ana_aux.o:              $(ARITH)mumps_struc_def.o \
+                                mumps_static_mapping.o \
+                                ana_orderings_wrappers_m.o \
+                                ana_blk_m.o
+$(ARITH)ana_aux_par.o:          $(ARITH)mumps_struc_def.o \
+                                mumps_memory_mod.o \
+                                ana_orderings_wrappers_m.o
+$(ARITH)ana_lr.o:                $(ARITH)lr_core.o\
+                                $(ARITH)lr_stats.o\
+                                lr_common.o\
+                                ana_orderings_wrappers_m.o \
+                                ana_blk_m.o 
+$(ARITH)fac_asm_master_ELT_m.o: omp_tps_common_m.o \
+                                fac_ibct_data_m.o \
+                                fac_asm_build_sort_index_ELT_m.o \
+                                lr_common.o \
+                                $(ARITH)fac_mem_dynamic.o \
+                                $(ARITH)lr_core.o \
+                                $(ARITH)ana_lr.o \
+                                $(ARITH)mumps_lr_data_m.o \
+                                $(ARITH)mumps_struc_def.o \
+                                $(ARITH)omp_tps_m.o \
+                                $(ARITH)mumps_comm_buffer.o \
+                                $(ARITH)mumps_load.o
+$(ARITH)fac_asm_master_m.o:     omp_tps_common_m.o \
+                                fac_ibct_data_m.o \
+                                fac_asm_build_sort_index_m.o \
+                                lr_common.o \
+                                $(ARITH)fac_mem_dynamic.o \
+                                $(ARITH)lr_core.o \
+                                $(ARITH)ana_lr.o \
+                                $(ARITH)mumps_lr_data_m.o \
+                                $(ARITH)mumps_struc_def.o \
+                                $(ARITH)omp_tps_m.o \
+                                $(ARITH)mumps_comm_buffer.o \
+                                $(ARITH)mumps_load.o
+
+$(ARITH)fac_front_aux.o:        $(ARITH)lr_type.o\
+                                $(ARITH)lr_stats.o\
+                                $(ARITH)mumps_comm_buffer.o\
+                                $(ARITH)mumps_load.o\
+                                $(ARITH)mumps_ooc.o\
+                                mumps_ooc_common.o\
+                                mumps_l0_omp_m.o
+
+$(ARITH)fac_front_LU_type1.o   : $(ARITH)fac_front_aux.o\
+                                 $(ARITH)mumps_ooc.o\
+                                 $(ARITH)fac_lr.o\
+                                 $(ARITH)lr_type.o\
+                                 $(ARITH)lr_stats.o\
+                                 $(ARITH)ana_lr.o\
+                                 $(ARITH)mumps_lr_data_m.o\
+                                 mumps_l0_omp_m.o
+
+$(ARITH)fac_front_LU_type2.o   : $(ARITH)fac_front_aux.o\
+                                 $(ARITH)fac_front_type2_aux.o\
+                                 $(ARITH)mumps_ooc.o\
+                                 $(ARITH)mumps_comm_buffer.o\
+                                 mumps_comm_ibcast.o\
+                                 $(ARITH)fac_lr.o\
+                                 $(ARITH)lr_core.o\
+                                 $(ARITH)lr_type.o\
+                                 $(ARITH)lr_stats.o\
+                                 $(ARITH)ana_lr.o\
+                                 $(ARITH)mumps_lr_data_m.o\
+                                 $(ARITH)mumps_struc_def.o
+
+$(ARITH)fac_front_LDLT_type1.o : $(ARITH)fac_front_aux.o\
+                                 $(ARITH)mumps_ooc.o\
+                                 $(ARITH)fac_lr.o\
+                                 $(ARITH)lr_type.o\
+                                 $(ARITH)lr_stats.o\
+                                 $(ARITH)ana_lr.o\
+                                 $(ARITH)mumps_lr_data_m.o\
+                                 mumps_l0_omp_m.o
+
+$(ARITH)fac_front_LDLT_type2.o : $(ARITH)fac_front_aux.o\
+                                 $(ARITH)fac_front_type2_aux.o\
+                                 $(ARITH)mumps_ooc.o\
+                                 $(ARITH)mumps_comm_buffer.o\
+                                 $(ARITH)mumps_load.o\
+                                 $(ARITH)fac_lr.o\
+                                 $(ARITH)lr_type.o\
+                                 $(ARITH)lr_stats.o\
+                                 $(ARITH)ana_lr.o\
+                                 $(ARITH)mumps_lr_data_m.o\
+                                 $(ARITH)mumps_struc_def.o
+
+$(ARITH)fac_front_type2_aux.o : mumps_ooc_common.o\
+                                $(ARITH)fac_front_aux.o\
+                                $(ARITH)lr_type.o\
+                                $(ARITH)mumps_struc_def.o\
+                                $(ARITH)mumps_comm_buffer.o\
+                                $(ARITH)mumps_load.o\
+                                mumps_comm_ibcast.o\
+                                fac_ibct_data_m.o
+
+$(ARITH)fac_lr.o:               $(ARITH)lr_core.o\
+                                $(ARITH)lr_type.o\
+                                $(ARITH)mumps_lr_data_m.o\
+                                $(ARITH)lr_stats.o
+
+$(ARITH)fac_mem_dynamic.o:      $(ARITH)mumps_load.o\
+                                $(ARITH)static_ptr_m.o
+
+$(ARITH)fac_omp_m.o:            $(ARITH)fac_asm_master_m.o\
+                                $(ARITH)fac_asm_master_ELT_m.o\
+                                $(ARITH)fac_front_LU_type1.o\
+                                $(ARITH)fac_front_LDLT_type1.o\
+                                $(ARITH)mumps_load.o\
+                                $(ARITH)omp_tps_m.o\
+                                $(ARITH)lr_stats.o\
+                                $(ARITH)mumps_struc_def.o\
+                                omp_tps_common_m.o\
+                                mumps_l0_omp_m.o
+
+$(ARITH)fac_sol_l0omp_m.o:      $(ARITH)mumps_struc_def.o
+
+$(ARITH)fac_omp_m.o:            $(ARITH)mumps_struc_def.o \
+                                $(ARITH)fac_mem_dynamic.o\
+                                $(ARITH)omp_tps_m.o\
+                                omp_tps_common_m.o
+
+$(ARITH)fac_par_m.o:            $(ARITH)mumps_load.o\
+                                $(ARITH)mumps_ooc.o\
+                                $(ARITH)fac_asm_master_m.o\
+                                $(ARITH)fac_asm_master_ELT_m.o\
+                                $(ARITH)omp_tps_m.o\
+                                $(ARITH)fac_front_LU_type1.o\
+                                $(ARITH)fac_front_LU_type2.o\
+                                $(ARITH)fac_front_LDLT_type1.o\
+                                $(ARITH)fac_front_LDLT_type2.o\
+                                $(ARITH)fac_mem_dynamic.o\
+                                $(ARITH)mumps_struc_def.o\
+                                $(ARITH)lr_stats.o\
+                                omp_tps_common_m.o\
+                                mumps_l0_omp_m.o
+
+$(ARITH)lr_core.o:              $(ARITH)lr_type.o\
+                                $(ARITH)mumps_lr_data_m.o\
+                                $(ARITH)lr_stats.o\
+                                lr_common.o
+
+$(ARITH)lr_stats.o:             $(ARITH)lr_type.o
+
+$(ARITH)mumps_comm_buffer.o:    mumps_comm_ibcast.o \
+                                $(ARITH)lr_type.o \
+                                $(ARITH)lr_core.o \
+                                $(ARITH)mumps_lr_data_m.o \
+                                fac_ibct_data_m.o
+
+$(ARITH)mumps_config_file.o:    $(ARITH)mumps_struc_def.o
+
+$(ARITH)mumps_load.o:           $(ARITH)mumps_comm_buffer.o \
+                                $(ARITH)mumps_struc_def.o \
+                                fac_future_niv2_mod.o
+
+$(ARITH)mumps_lr_data_m.o:      $(ARITH)lr_type.o\
+                                front_data_mgt_m.o
+
+$(ARITH)mumps_ooc_buffer.o:     mumps_ooc_common.o
+
+$(ARITH)mumps_ooc.o:            $(ARITH)mumps_struc_def.o \
+                                $(ARITH)mumps_ooc_buffer.o \
+                                mumps_ooc_common.o
+
+$(ARITH)mumps_sol_es.o:         $(ARITH)lr_type.o \
+                                $(ARITH)mumps_lr_data_m.o
+
+$(ARITH)mumps_save_restore.o:   $(ARITH)mumps_struc_def.o \
+                                $(ARITH)mumps_save_restore_files.o \
+                                $(ARITH)mumps_lr_data_m.o \
+                                $(ARITH)mumps_ooc.o \
+                                $(ARITH)fac_sol_l0omp_m.o \
+                                front_data_mgt_m.o
+
+$(ARITH)mumps_save_restore_files.o : $(ARITH)mumps_struc_def.o
+
+$(ARITH)sol_lr.o:               $(ARITH)lr_type.o\
+                                $(ARITH)lr_stats.o\
+                                $(ARITH)mumps_lr_data_m.o
+
+$(ARITH)sol_omp_m.o:            $(ARITH)mumps_struc_def.o
+
+
+
+
+
+# Dependencies between modules:
+# ii) arithmetic-independent modules:
+
+ana_omp_m.o:                     double_linked_list.o
+fac_asm_build_sort_index_ELT_m.o:omp_tps_common_m.o
+fac_asm_build_sort_index_m.o:    omp_tps_common_m.o
+fac_descband_data_m.o:           front_data_mgt_m.o
+fac_ibct_data_m.o:               front_data_mgt_m.o
+fac_maprow_data_m.o:             front_data_mgt_m.o
+mumps_comm_ibcast.o:             fac_future_niv2_mod.o
+mumps_static_mapping.o:          lr_common.o
+
+
+# Compile modules before the rest
+$(OBJS_COMMON_OTHER):$(OBJS_COMMON_MOD)
+$(OBJS_OTHER):$(OBJS_COMMON_MOD) $(OBJS_MOD)
+
+.SUFFIXES: .c .F .o
+.F.o:
+	$(FC) $(OPTF) -I. -I../include $(INCS) $(IORDERINGSF) $(ORDERINGSF) -c $*.F $(OUTF) $*.o
+.c.o:
+	$(CC) $(OPTC) -I../include $(INCS) $(CDEFS) $(IORDERINGSC) $(ORDERINGSC) -c $*.c $(OUTC) $*.o
+
+$(ARITH)mumps_c.o:	mumps_c.c
+	$(CC) $(OPTC) -I../include $(INCS) $(CDEFS) -DMUMPS_ARITH=MUMPS_ARITH_$(ARITH) \
+	      $(IORDERINGSC) $(ORDERINGSC) -c mumps_c.c $(OUTC) $@
+
+clean:
+	$(RM) *.o *.mod $(incdir)/mumps_int_def.h
Index: /issm/trunk-jpl/externalpackages/mumps/configs/5.3/win/msys2/mingw64/msmpi/Makefile.inc
===================================================================
--- /issm/trunk-jpl/externalpackages/mumps/configs/5.3/win/msys2/mingw64/msmpi/Makefile.inc	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/mumps/configs/5.3/win/msys2/mingw64/msmpi/Makefile.inc	(revision 26034)
@@ -0,0 +1,189 @@
+#
+#  This file is part of MUMPS 5.3.5, released
+#  on Thu Oct 22 09:29:08 UTC 2020
+#
+################################################################################
+#
+#   Makefile.inc.generic
+#
+#   This defines some parameters dependent on your platform; you should
+#   look for the approriate file in the directory ./Make.inc/ and copy it
+#   into a file called Makefile.inc. For example, from the MUMPS root
+#   directory, use 
+#   "cp Make.inc/Makefile.inc.generic ./Makefile.inc"
+#   (see the main README file for details)
+#
+#   If you do not find any suitable Makefile in Makefile.inc, use this file:
+#   "cp Make.inc/Makefile.inc.generic ./Makefile.inc" and modify it according
+#   to the comments given below. If you manage to build MUMPS on a new platform,
+#   and think that this could be useful to others, you may want to send us
+#   the corresponding Makefile.inc file.
+#
+################################################################################
+
+
+########################################################################
+#Begin orderings
+#
+# NOTE that PORD is distributed within MUMPS by default. It is recommended to
+# install other orderings. For that, you need to obtain the corresponding package
+# and modify the variables below accordingly.
+# For example, to have Metis available within MUMPS:
+#          1/ download Metis and compile it
+#          2/ uncomment (suppress # in first column) lines
+#             starting with LMETISDIR,  LMETIS
+#          3/ add -Dmetis in line ORDERINGSF
+#             ORDERINGSF  = -Dpord -Dmetis
+#          4/ Compile and install MUMPS
+#             make clean; make   (to clean up previous installation)
+#
+#          Metis/ParMetis and SCOTCH/PT-SCOTCH (ver 6.0 and later) orderings are recommended.
+#
+
+#SCOTCHDIR  = ${HOME}/scotch_6.0
+#ISCOTCH    = -I$(SCOTCHDIR)/include
+#
+# You have to choose one among the following two lines depending on
+# the type of analysis you want to perform. If you want to perform only
+# sequential analysis choose the first (remember to add -Dscotch in the ORDERINGSF
+# variable below); for both parallel and sequential analysis choose the second 
+# line (remember to add -Dptscotch in the ORDERINGSF variable below)
+
+#LSCOTCH    = -L$(SCOTCHDIR)/lib -lesmumps -lscotch -lscotcherr
+#LSCOTCH    = -L$(SCOTCHDIR)/lib -lptesmumps -lptscotch -lptscotcherr
+
+
+LPORDDIR = $(topdir)/PORD/lib
+IPORD    = -I$(topdir)/PORD/include
+LPORD    = -L$(LPORDDIR) -lpord
+
+LMSMPIDIR = ${MSMPI_ROOT}/lib
+IMSMPIDIR = -I${MSMPI_ROOT}/include
+
+#LMETISDIR = /opt/metis-5.1.0/build/Linux-x86_64/libmetis
+#IMETIS    = /opt/metis-5.1.0/include
+
+# You have to choose one among the following two lines depending on
+# the type of analysis you want to perform. If you want to perform only
+# sequential analysis choose the first (remember to add -Dmetis in the ORDERINGSF
+# variable below); for both parallel and sequential analysis choose the second 
+# line (remember to add -Dparmetis in the ORDERINGSF variable below)
+
+#LMETIS    = -L$(LMETISDIR) -lmetis
+#LMETIS    = -L$(LMETISDIR) -lparmetis -lmetis
+
+LMETISDIR		= ${METIS_ROOT}/lib
+IMETIS			= -I${METIS_ROOT}/include
+LPARMETISDIR	= ${PARMETIS_ROOT}/lib
+IPARMETIS		= -I${PARMETIS_ROOT}/include
+
+LMETIS    = -L$(LPARMETISDIR) -lparmetis -L$(LMSMPIDIR) -lmsmpi -L$(LMETISDIR) -lmetis
+
+# The following variables will be used in the compilation process.
+# Please note that -Dptscotch and -Dparmetis imply -Dscotch and -Dmetis respectively.
+# If you want to use Metis 4.X or an older version, you should use -Dmetis4 instead of -Dmetis
+# or in addition with -Dparmetis (if you are using parmetis 3.X or older).
+#ORDERINGSF = -Dscotch -Dmetis -Dpord -Dptscotch -Dparmetis
+#ORDERINGSF  = -Dpord
+ORDERINGSF  = -Dmetis -Dpord -Dparmetis
+ORDERINGSC  = $(ORDERINGSF)
+
+# LORDERINGS = $(LMETIS) $(LPORD) $(LSCOTCH)
+# IORDERINGSF = $(ISCOTCH)
+# IORDERINGSC = $(IMETIS) $(IPORD) $(ISCOTCH)
+LORDERINGS = $(LPARMETIS) $(LMETIS)  $(LPORD) $(LSCOTCH)
+IORDERINGSF = $(ISCOTCH)
+IORDERINGSC = $(IPARMETIS) $(IMETIS) $(IPORD) $(ISCOTCH)
+
+#End orderings
+########################################################################
+
+########################################################################
+# DEFINE HERE SOME COMMON COMMANDS, THE COMPILER NAMES, ETC...
+
+# PLAT : use it to add a default suffix to the generated libraries
+PLAT    = 
+# Library extension, + C and Fortran "-o" option
+# may be different under Windows
+LIBEXT  = .dll
+OUTC    = -o 
+OUTF    = -o 
+# RM : remove files
+RM      = /usr/bin/rm -f
+# CC : C compiler
+CC      = /mingw64/bin/gcc
+# FC : Fortran 90 compiler
+FC      = /mingw64/bin/gfortran
+# FL : Fortran linker
+FL      = /mingw64/bin/gfortran
+# AR : Archive object in a library
+#      keep a space at the end if options have to be separated from lib name
+AR      = /mingw64/bin/ar cr 
+# RANLIB : generate index of an archive file
+#   (optionnal use "RANLIB = echo" in case of problem)
+RANLIB  = /mingw64/bin/ranlib
+#RANLIB  = echo
+
+# DEFINE HERE YOUR LAPACK LIBRARY
+
+LAPACK = -L${LAPACK_ROOT}/lib -llapack
+
+# SCALAP should define the SCALAPACK and BLACS libraries.
+SCALAP  = -L${SCALAPACK_ROOT}/lib -lscalapack
+
+# INCLUDE DIRECTORY FOR MPI
+INCPAR  = $(IMSMPIDIR)
+
+# LIBRARIES USED BY THE PARALLEL VERSION OF MUMPS: $(SCALAP) and MPI
+LIBPAR  = $(SCALAP) $(LAPACK) -L$(LMSMPIDIR) -lmsmpi
+
+# The parallel version is not concerned by the next two lines.
+# They are related to the sequential library provided by MUMPS,
+# to use instead of ScaLAPACK and MPI.
+INCSEQ  = -I$(topdir)/libseq
+LIBSEQ  = $(LAPACK) -L$(topdir)/libseq -lmpiseq
+
+# DEFINE HERE YOUR BLAS LIBRARY
+
+LIBBLAS = -L${BLAS_ROOT}/lib -lblas
+
+# DEFINE HERE YOUR PTHREAD LIBRARY
+LIBOTHERS = -lpthread
+
+# FORTRAN/C COMPATIBILITY:
+#  Use:
+#    -DAdd_ if your Fortran compiler adds an underscore at the end
+#              of symbols,
+#     -DAdd__ if your Fortran compiler adds 2 underscores,
+#
+#     -DUPPER if your Fortran compiler uses uppercase symbols
+#
+#     leave empty if your Fortran compiler does not change the symbols.
+#
+
+CDEFS = -DAdd_
+
+#COMPILER OPTIONS
+#
+# NOTE:
+# - Added -fallow-argument-mismatch option to OPTF in order to clear "Error: 
+#	Rank mismatch between actual argument at [...]"
+# - Added -fallow-invalid-boz option to OPTF in order to clear "Error: BOZ 
+#	literal constant at [...]"
+#
+OPTF    = -O -fPIC -fallow-argument-mismatch -fallow-invalid-boz
+OPTC    = -O -fPIC -I.
+OPTL    = -O
+
+# CHOOSE BETWEEN USING THE SEQUENTIAL OR THE PARALLEL VERSION.
+
+#Sequential:
+#INCS = $(INCSEQ)
+#LIBS = $(LIBSEQ)
+#LIBSEQNEEDED = libseqneeded
+
+#Parallel:
+INCS = $(INCPAR)
+LIBS = $(LIBPAR)
+LIBSEQNEEDED = libseqneeded # NOTE: Create libmpiseq because PETSc looks for it (rather than patching PETSc config tests)
+
Index: /issm/trunk-jpl/externalpackages/mumps/configs/5.3/win/msys2/mingw64/msmpi/PORD/lib/Makefile
===================================================================
--- /issm/trunk-jpl/externalpackages/mumps/configs/5.3/win/msys2/mingw64/msmpi/PORD/lib/Makefile	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/mumps/configs/5.3/win/msys2/mingw64/msmpi/PORD/lib/Makefile	(revision 26034)
@@ -0,0 +1,34 @@
+
+# To compile directly, uncomment the line below.
+# include ../Make.in
+#
+# Otherwise, adequate variables for CC, CFLAGS, AR and RANLIB must be passed to 
+# make.
+#
+
+INCLUDES = -I../include
+
+# NOTE:
+#- CFLAGS = $(OPTC) (see ../../src/Makefile; OPTC is set in ../../Makefile.inc)
+#
+COPTIONS = $(INCLUDES) $(CFLAGS) $(OPTFLAGS)
+
+OBJS = graph.o gbipart.o gbisect.o ddcreate.o ddbisect.o nestdiss.o \
+       multisector.o gelim.o bucket.o tree.o \
+       symbfac.o interface.o sort.o minpriority.o 
+
+# NOTE: numfac.c read.c mapping.c triangular.c matrix.c kernel.c were not 
+# directly used by MUMPS and have been removed from the original SPACE 
+# package.
+
+.c.o:
+	$(CC) $(COPTIONS) -c $*.c $(OUTC) $*.o
+
+libpord$(LIBEXT):$(OBJS)
+	$(CC) -shared $(OUTC) $@ $(OBJS)
+
+clean:
+	$(RM) *.o
+
+realclean:
+	$(RM) *.o libpord*
Index: /issm/trunk-jpl/externalpackages/mumps/configs/5.3/win/msys2/mingw64/msmpi/libseq/Makefile
===================================================================
--- /issm/trunk-jpl/externalpackages/mumps/configs/5.3/win/msys2/mingw64/msmpi/libseq/Makefile	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/mumps/configs/5.3/win/msys2/mingw64/msmpi/libseq/Makefile	(revision 26034)
@@ -0,0 +1,25 @@
+#
+#  This file is part of MUMPS 5.3.5, released
+#  on Thu Oct 22 09:29:08 UTC 2020
+#
+all: libmpiseq
+
+.PHONY: all libmpiseq clean
+
+include ../Makefile.inc
+
+libmpiseq: libmpiseq$(PLAT)$(LIBEXT)
+
+# NOTE:
+# - We need to use Fortran compiler or otherwise link in Fortran libraries 
+#   using C compiler (which does not make a lot of sense, but is possible)
+#
+libmpiseq$(PLAT)$(LIBEXT): mpi.o mpic.o elapse.o
+	$(FC) -shared $(OUTF) $@ mpi.o mpic.o elapse.o
+.f.o:
+	$(FC) $(OPTF)              -c $*.f $(OUTF)$*.o
+.c.o:
+	$(CC) $(OPTC) $(CDEFS) -I. -c $*.c $(OUTC)$*.o
+
+clean:
+	$(RM) *.o *$(LIBEXT)
Index: /issm/trunk-jpl/externalpackages/mumps/configs/5.3/win/msys2/mingw64/msmpi/src/Makefile
===================================================================
--- /issm/trunk-jpl/externalpackages/mumps/configs/5.3/win/msys2/mingw64/msmpi/src/Makefile	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/mumps/configs/5.3/win/msys2/mingw64/msmpi/src/Makefile	(revision 26034)
@@ -0,0 +1,425 @@
+#
+#  This file is part of MUMPS 5.3.5, released
+#  on Thu Oct 22 09:29:08 UTC 2020
+#
+#
+topdir = ..
+libdir = $(topdir)/lib
+incdir = $(topdir)/include
+
+default: d
+
+.PHONY: default s d c z mumps_lib clean
+
+s:
+	$(MAKE) ARITH=s mumps_lib
+d:
+	$(MAKE) ARITH=d mumps_lib
+c:
+	$(MAKE) ARITH=c mumps_lib
+z:
+	$(MAKE) ARITH=z mumps_lib
+
+include $(topdir)/Makefile.inc
+
+mumps_lib:    $(incdir)/mumps_int_def.h \
+              $(libdir)/libmumps_common$(PLAT)$(LIBEXT) \
+              $(libdir)/lib$(ARITH)mumps$(PLAT)$(LIBEXT)
+
+# Build $(incdir)/mumps_int_def.h, needed by mumps_c_types.h
+$(incdir)/mumps_int_def.h: build_mumps_int_def 
+	./build_mumps_int_def > $(incdir)/mumps_int_def.h
+build_mumps_int_def:build_mumps_int_def.o
+	$(CC) $(OPTL) build_mumps_int_def.o -o build_mumps_int_def
+
+OBJS_COMMON_MOD = \
+        ana_omp_m.o\
+        ana_blk_m.o\
+        ana_orderings_wrappers_m.o\
+        double_linked_list.o\
+        fac_asm_build_sort_index_ELT_m.o\
+        fac_asm_build_sort_index_m.o\
+        fac_descband_data_m.o\
+        fac_future_niv2_mod.o\
+        fac_ibct_data_m.o\
+        fac_maprow_data_m.o\
+        front_data_mgt_m.o\
+        lr_common.o \
+        mumps_comm_ibcast.o\
+        mumps_l0_omp_m.o\
+        mumps_memory_mod.o\
+        mumps_mpitoomp_m.o\
+        mumps_ooc_common.o\
+        mumps_static_mapping.o\
+        omp_tps_common_m.o
+
+
+OBJS_COMMON_OTHER = \
+        ana_blk.o\
+        ana_orderings.o\
+        ana_set_ordering.o\
+        ana_AMDMF.o\
+        bcast_errors.o\
+        estim_flops.o\
+        mumps_type_size.o \
+        mumps_type2_blocking.o \
+        mumps_version.o \
+        mumps_print_defined.o \
+        mumps_common.o\
+        mumps_pord.o\
+        mumps_metis.o\
+        mumps_metis64.o\
+        mumps_metis_int.o\
+        mumps_scotch.o\
+        mumps_scotch64.o\
+        mumps_scotch_int.o\
+        mumps_size.o\
+        mumps_io.o\
+        mumps_io_basic.o\
+        mumps_io_thread.o\
+        mumps_io_err.o\
+        mumps_numa.o \
+        mumps_thread.o \
+        mumps_save_restore_C.o \
+        mumps_config_file_C.o \
+        mumps_thread_affinity.o \
+        tools_common.o \
+        sol_common.o
+
+OBJS_MOD =   \
+        $(ARITH)ana_aux.o \
+        $(ARITH)ana_aux_par.o \
+        $(ARITH)ana_lr.o\
+        $(ARITH)fac_asm_master_ELT_m.o\
+        $(ARITH)fac_asm_master_m.o\
+        $(ARITH)fac_front_aux.o\
+        $(ARITH)fac_front_LU_type1.o\
+        $(ARITH)fac_front_LU_type2.o\
+        $(ARITH)fac_front_LDLT_type1.o\
+        $(ARITH)fac_front_LDLT_type2.o\
+        $(ARITH)fac_front_type2_aux.o\
+        $(ARITH)fac_sispointers_m.o\
+        $(ARITH)fac_lr.o\
+        $(ARITH)fac_mem_dynamic.o\
+        $(ARITH)fac_omp_m.o\
+        $(ARITH)fac_par_m.o\
+        $(ARITH)fac_sol_l0omp_m.o\
+        $(ARITH)lr_core.o\
+        $(ARITH)lr_stats.o\
+        $(ARITH)lr_type.o\
+        $(ARITH)mumps_comm_buffer.o\
+        $(ARITH)mumps_config_file.o\
+        $(ARITH)mumps_load.o\
+        $(ARITH)mumps_lr_data_m.o\
+        $(ARITH)mumps_ooc_buffer.o\
+        $(ARITH)mumps_ooc.o\
+        $(ARITH)mumps_sol_es.o\
+        $(ARITH)mumps_save_restore.o\
+        $(ARITH)mumps_save_restore_files.o\
+        $(ARITH)mumps_struc_def.o\
+        $(ARITH)omp_tps_m.o\
+        $(ARITH)sol_lr.o\
+        $(ARITH)sol_omp_m.o\
+        $(ARITH)static_ptr_m.o
+
+OBJS_OTHER = \
+        $(ARITH)ini_driver.o\
+        $(ARITH)ana_driver.o\
+        $(ARITH)fac_driver.o\
+        $(ARITH)sol_driver.o\
+        $(ARITH)sol_distrhs.o\
+        $(ARITH)end_driver.o\
+        $(ARITH)ana_aux_ELT.o\
+        $(ARITH)ana_dist_m.o\
+        $(ARITH)ana_LDLT_preprocess.o\
+        $(ARITH)ana_reordertree.o\
+        $(ARITH)arrowheads.o\
+        $(ARITH)bcast_int.o\
+        $(ARITH)fac_asm_ELT.o\
+        $(ARITH)fac_asm.o\
+        $(ARITH)fac_b.o\
+        $(ARITH)fac_distrib_distentry.o\
+        $(ARITH)fac_distrib_ELT.o\
+        $(ARITH)fac_lastrtnelind.o\
+        $(ARITH)fac_mem_alloc_cb.o\
+        $(ARITH)fac_mem_compress_cb.o\
+        $(ARITH)fac_mem_free_block_cb.o\
+        $(ARITH)fac_mem_stack_aux.o\
+        $(ARITH)fac_mem_stack.o\
+        $(ARITH)fac_process_band.o\
+        $(ARITH)fac_process_blfac_slave.o\
+        $(ARITH)fac_process_blocfacto_LDLT.o\
+        $(ARITH)fac_process_blocfacto.o\
+        $(ARITH)fac_process_bf.o\
+        $(ARITH)fac_process_end_facto_slave.o\
+        $(ARITH)fac_process_contrib_type1.o\
+        $(ARITH)fac_process_contrib_type2.o\
+        $(ARITH)fac_process_contrib_type3.o\
+        $(ARITH)fac_process_maprow.o\
+        $(ARITH)fac_process_master2.o\
+        $(ARITH)fac_process_message.o\
+        $(ARITH)fac_process_root2slave.o\
+        $(ARITH)fac_process_root2son.o\
+        $(ARITH)fac_process_rtnelind.o\
+        $(ARITH)fac_root_parallel.o\
+        $(ARITH)fac_scalings.o\
+        $(ARITH)fac_determinant.o\
+        $(ARITH)fac_scalings_simScaleAbs.o\
+        $(ARITH)fac_scalings_simScale_util.o\
+        $(ARITH)fac_sol_pool.o\
+        $(ARITH)fac_type3_symmetrize.o\
+        $(ARITH)ini_defaults.o\
+        $(ARITH)mumps_c.o\
+        $(ARITH)mumps_driver.o\
+        $(ARITH)mumps_f77.o\
+        $(ARITH)mumps_gpu.o\
+        $(ARITH)mumps_iXamax.o\
+        $(ARITH)ana_mtrans.o\
+        $(ARITH)ooc_panel_piv.o\
+        $(ARITH)rank_revealing.o\
+        $(ARITH)sol_aux.o\
+        $(ARITH)sol_bwd_aux.o\
+        $(ARITH)sol_bwd.o\
+        $(ARITH)sol_c.o\
+        $(ARITH)sol_fwd_aux.o\
+        $(ARITH)sol_fwd.o\
+        $(ARITH)sol_matvec.o\
+        $(ARITH)sol_root_parallel.o\
+        $(ARITH)tools.o\
+        $(ARITH)type3_root.o
+
+# NOTE:
+# - We need to use Fortran compiler or otherwise link in Fortran libraries 
+#	using C compiler (which does not make a lot of sense, but is possible)
+# - In case of "Makefile:[line_number]: *** missing separator.  Stop.", ensure 
+#	that $(FC) is preceded by a tab and not four spaces
+#
+$(libdir)/libmumps_common$(PLAT)$(LIBEXT):      $(OBJS_COMMON_MOD) $(OBJS_COMMON_OTHER)
+	$(FC) -shared $(OUTF) $@ \
+		$? $(LORDERINGS) $(LIBS) $(LIBLAPACK) $(LIBBLAS) $(LIBOTHERS) \
+		-Wl,--out-implib=$(libdir)/libmumps_common$(PLAT).dll.a
+
+$(libdir)/lib$(ARITH)mumps$(PLAT)$(LIBEXT):    $(OBJS_MOD) $(OBJS_OTHER)
+	$(FC) -shared $(OUTF) $@ \
+		$? -L$(libdir) -lmumps_common$(PLAT) $(LORDERINGS) $(LIBS) $(LIBLAPACK) $(LIBBLAS) $(LIBOTHERS) \
+		-Wl,--out-implib=$(libdir)/lib$(ARITH)mumps$(PLAT).dll.a
+
+# Dependencies between modules:
+# i) arithmetic-dependent modules:
+$(ARITH)ana_aux.o:              $(ARITH)mumps_struc_def.o \
+                                mumps_static_mapping.o \
+                                ana_orderings_wrappers_m.o \
+                                ana_blk_m.o
+$(ARITH)ana_aux_par.o:          $(ARITH)mumps_struc_def.o \
+                                mumps_memory_mod.o \
+                                ana_orderings_wrappers_m.o
+$(ARITH)ana_lr.o:                $(ARITH)lr_core.o\
+                                $(ARITH)lr_stats.o\
+                                lr_common.o\
+                                ana_orderings_wrappers_m.o \
+                                ana_blk_m.o 
+$(ARITH)fac_asm_master_ELT_m.o: omp_tps_common_m.o \
+                                fac_ibct_data_m.o \
+                                fac_asm_build_sort_index_ELT_m.o \
+                                lr_common.o \
+                                $(ARITH)fac_mem_dynamic.o \
+                                $(ARITH)lr_core.o \
+                                $(ARITH)ana_lr.o \
+                                $(ARITH)mumps_lr_data_m.o \
+                                $(ARITH)mumps_struc_def.o \
+                                $(ARITH)omp_tps_m.o \
+                                $(ARITH)mumps_comm_buffer.o \
+                                $(ARITH)mumps_load.o
+$(ARITH)fac_asm_master_m.o:     omp_tps_common_m.o \
+                                fac_ibct_data_m.o \
+                                fac_asm_build_sort_index_m.o \
+                                lr_common.o \
+                                $(ARITH)fac_mem_dynamic.o \
+                                $(ARITH)lr_core.o \
+                                $(ARITH)ana_lr.o \
+                                $(ARITH)mumps_lr_data_m.o \
+                                $(ARITH)mumps_struc_def.o \
+                                $(ARITH)omp_tps_m.o \
+                                $(ARITH)mumps_comm_buffer.o \
+                                $(ARITH)mumps_load.o
+
+$(ARITH)fac_front_aux.o:        $(ARITH)lr_type.o\
+                                $(ARITH)lr_stats.o\
+                                $(ARITH)mumps_comm_buffer.o\
+                                $(ARITH)mumps_load.o\
+                                $(ARITH)mumps_ooc.o\
+                                mumps_ooc_common.o\
+                                mumps_l0_omp_m.o
+
+$(ARITH)fac_front_LU_type1.o   : $(ARITH)fac_front_aux.o\
+                                 $(ARITH)mumps_ooc.o\
+                                 $(ARITH)fac_lr.o\
+                                 $(ARITH)lr_type.o\
+                                 $(ARITH)lr_stats.o\
+                                 $(ARITH)ana_lr.o\
+                                 $(ARITH)mumps_lr_data_m.o\
+                                 mumps_l0_omp_m.o
+
+$(ARITH)fac_front_LU_type2.o   : $(ARITH)fac_front_aux.o\
+                                 $(ARITH)fac_front_type2_aux.o\
+                                 $(ARITH)mumps_ooc.o\
+                                 $(ARITH)mumps_comm_buffer.o\
+                                 mumps_comm_ibcast.o\
+                                 $(ARITH)fac_lr.o\
+                                 $(ARITH)lr_core.o\
+                                 $(ARITH)lr_type.o\
+                                 $(ARITH)lr_stats.o\
+                                 $(ARITH)ana_lr.o\
+                                 $(ARITH)mumps_lr_data_m.o\
+                                 $(ARITH)mumps_struc_def.o
+
+$(ARITH)fac_front_LDLT_type1.o : $(ARITH)fac_front_aux.o\
+                                 $(ARITH)mumps_ooc.o\
+                                 $(ARITH)fac_lr.o\
+                                 $(ARITH)lr_type.o\
+                                 $(ARITH)lr_stats.o\
+                                 $(ARITH)ana_lr.o\
+                                 $(ARITH)mumps_lr_data_m.o\
+                                 mumps_l0_omp_m.o
+
+$(ARITH)fac_front_LDLT_type2.o : $(ARITH)fac_front_aux.o\
+                                 $(ARITH)fac_front_type2_aux.o\
+                                 $(ARITH)mumps_ooc.o\
+                                 $(ARITH)mumps_comm_buffer.o\
+                                 $(ARITH)mumps_load.o\
+                                 $(ARITH)fac_lr.o\
+                                 $(ARITH)lr_type.o\
+                                 $(ARITH)lr_stats.o\
+                                 $(ARITH)ana_lr.o\
+                                 $(ARITH)mumps_lr_data_m.o\
+                                 $(ARITH)mumps_struc_def.o
+
+$(ARITH)fac_front_type2_aux.o : mumps_ooc_common.o\
+                                $(ARITH)fac_front_aux.o\
+                                $(ARITH)lr_type.o\
+                                $(ARITH)mumps_struc_def.o\
+                                $(ARITH)mumps_comm_buffer.o\
+                                $(ARITH)mumps_load.o\
+                                mumps_comm_ibcast.o\
+                                fac_ibct_data_m.o
+
+$(ARITH)fac_lr.o:               $(ARITH)lr_core.o\
+                                $(ARITH)lr_type.o\
+                                $(ARITH)mumps_lr_data_m.o\
+                                $(ARITH)lr_stats.o
+
+$(ARITH)fac_mem_dynamic.o:      $(ARITH)mumps_load.o\
+                                $(ARITH)static_ptr_m.o
+
+$(ARITH)fac_omp_m.o:            $(ARITH)fac_asm_master_m.o\
+                                $(ARITH)fac_asm_master_ELT_m.o\
+                                $(ARITH)fac_front_LU_type1.o\
+                                $(ARITH)fac_front_LDLT_type1.o\
+                                $(ARITH)mumps_load.o\
+                                $(ARITH)omp_tps_m.o\
+                                $(ARITH)lr_stats.o\
+                                $(ARITH)mumps_struc_def.o\
+                                omp_tps_common_m.o\
+                                mumps_l0_omp_m.o
+
+$(ARITH)fac_sol_l0omp_m.o:      $(ARITH)mumps_struc_def.o
+
+$(ARITH)fac_omp_m.o:            $(ARITH)mumps_struc_def.o \
+                                $(ARITH)fac_mem_dynamic.o\
+                                $(ARITH)omp_tps_m.o\
+                                omp_tps_common_m.o
+
+$(ARITH)fac_par_m.o:            $(ARITH)mumps_load.o\
+                                $(ARITH)mumps_ooc.o\
+                                $(ARITH)fac_asm_master_m.o\
+                                $(ARITH)fac_asm_master_ELT_m.o\
+                                $(ARITH)omp_tps_m.o\
+                                $(ARITH)fac_front_LU_type1.o\
+                                $(ARITH)fac_front_LU_type2.o\
+                                $(ARITH)fac_front_LDLT_type1.o\
+                                $(ARITH)fac_front_LDLT_type2.o\
+                                $(ARITH)fac_mem_dynamic.o\
+                                $(ARITH)mumps_struc_def.o\
+                                $(ARITH)lr_stats.o\
+                                omp_tps_common_m.o\
+                                mumps_l0_omp_m.o
+
+$(ARITH)lr_core.o:              $(ARITH)lr_type.o\
+                                $(ARITH)mumps_lr_data_m.o\
+                                $(ARITH)lr_stats.o\
+                                lr_common.o
+
+$(ARITH)lr_stats.o:             $(ARITH)lr_type.o
+
+$(ARITH)mumps_comm_buffer.o:    mumps_comm_ibcast.o \
+                                $(ARITH)lr_type.o \
+                                $(ARITH)lr_core.o \
+                                $(ARITH)mumps_lr_data_m.o \
+                                fac_ibct_data_m.o
+
+$(ARITH)mumps_config_file.o:    $(ARITH)mumps_struc_def.o
+
+$(ARITH)mumps_load.o:           $(ARITH)mumps_comm_buffer.o \
+                                $(ARITH)mumps_struc_def.o \
+                                fac_future_niv2_mod.o
+
+$(ARITH)mumps_lr_data_m.o:      $(ARITH)lr_type.o\
+                                front_data_mgt_m.o
+
+$(ARITH)mumps_ooc_buffer.o:     mumps_ooc_common.o
+
+$(ARITH)mumps_ooc.o:            $(ARITH)mumps_struc_def.o \
+                                $(ARITH)mumps_ooc_buffer.o \
+                                mumps_ooc_common.o
+
+$(ARITH)mumps_sol_es.o:         $(ARITH)lr_type.o \
+                                $(ARITH)mumps_lr_data_m.o
+
+$(ARITH)mumps_save_restore.o:   $(ARITH)mumps_struc_def.o \
+                                $(ARITH)mumps_save_restore_files.o \
+                                $(ARITH)mumps_lr_data_m.o \
+                                $(ARITH)mumps_ooc.o \
+                                $(ARITH)fac_sol_l0omp_m.o \
+                                front_data_mgt_m.o
+
+$(ARITH)mumps_save_restore_files.o : $(ARITH)mumps_struc_def.o
+
+$(ARITH)sol_lr.o:               $(ARITH)lr_type.o\
+                                $(ARITH)lr_stats.o\
+                                $(ARITH)mumps_lr_data_m.o
+
+$(ARITH)sol_omp_m.o:            $(ARITH)mumps_struc_def.o
+
+
+
+
+
+# Dependencies between modules:
+# ii) arithmetic-independent modules:
+
+ana_omp_m.o:                     double_linked_list.o
+fac_asm_build_sort_index_ELT_m.o:omp_tps_common_m.o
+fac_asm_build_sort_index_m.o:    omp_tps_common_m.o
+fac_descband_data_m.o:           front_data_mgt_m.o
+fac_ibct_data_m.o:               front_data_mgt_m.o
+fac_maprow_data_m.o:             front_data_mgt_m.o
+mumps_comm_ibcast.o:             fac_future_niv2_mod.o
+mumps_static_mapping.o:          lr_common.o
+
+
+# Compile modules before the rest
+$(OBJS_COMMON_OTHER):$(OBJS_COMMON_MOD)
+$(OBJS_OTHER):$(OBJS_COMMON_MOD) $(OBJS_MOD)
+
+.SUFFIXES: .c .F .o
+.F.o:
+	$(FC) $(OPTF) -I. -I../include $(INCS) $(IORDERINGSF) $(ORDERINGSF) -c $*.F $(OUTF) $*.o
+.c.o:
+	$(CC) $(OPTC) -I../include $(INCS) $(CDEFS) $(IORDERINGSC) $(ORDERINGSC) -c $*.c $(OUTC) $*.o
+
+$(ARITH)mumps_c.o:	mumps_c.c
+	$(CC) $(OPTC) -I../include $(INCS) $(CDEFS) -DMUMPS_ARITH=MUMPS_ARITH_$(ARITH) \
+	      $(IORDERINGSC) $(ORDERINGSC) -c mumps_c.c $(OUTC) $@
+
+clean:
+	$(RM) *.o *.mod $(incdir)/mumps_int_def.h
Index: /issm/trunk-jpl/externalpackages/mumps/install-5-win-msys2-gcc-msmpi.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/mumps/install-5-win-msys2-gcc-msmpi.sh	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/mumps/install-5-win-msys2-gcc-msmpi.sh	(revision 26034)
@@ -0,0 +1,61 @@
+#!/bin/bash
+set -eu
+
+
+# Sources:
+# - https://www.scivision.dev/windows-mpi-msys2/
+#
+# NOTE:
+# - Source is pulled from https://github.com/scivision/mumps/releases, which 
+#	provides patches to the releases from developer (http://mumps-solver.org/)
+#
+# TODO:
+# - Create install alias in Makefiles
+# - Alternatively, use cmake rather than make
+#
+
+## Constants
+#
+VER=5.3.5.2
+
+PREFIX="${ISSM_DIR}/externalpackages/mumps/install"
+
+# Cleanup
+rm -rf ${PREFIX} src
+mkdir ${PREFIX} src src/lib
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/mumps-${VER}.tar.gz" "mumps-${VER}.tar.gz"
+
+# Unpack source
+tar -zxvf mumps-${VER}.tar.gz
+
+# Move source into 'src' directory
+mv mumps-${VER}/* src
+rm -rf mumps-${VER}
+
+# Copy customized source and configuration files to 'src' directory
+cp configs/5.3/win/msys2/gcc/msmpi/Makefile.inc src
+cp configs/5.3/win/msys2/gcc/msmpi/libseq/Makefile src/libseq
+cp configs/5.3/win/msys2/gcc/msmpi/PORD/lib/Makefile src/PORD/lib
+cp configs/5.3/win/msys2/gcc/msmpi/src/Makefile src/src
+
+# Compile
+cd src
+if [ $# -eq 0 ]; then
+	make all
+else
+	make -j $1 all
+fi
+
+# Install
+mkdir ${PREFIX}/lib
+cp lib/lib* ${PREFIX}/lib
+cp libseq/lib* ${PREFIX}/lib
+mkdir ${PREFIX}/include
+cp include/* ${PREFIX}/include
+
+# Create link to lib directory (PETSc, by default, looks for libraries in 
+# lib64/ if it detects that 64-bit integers are being used).
+cd ${PREFIX}
+ln -s lib lib64
Index: /issm/trunk-jpl/externalpackages/mumps/install-5-win-msys2-mingw-msmpi.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/mumps/install-5-win-msys2-mingw-msmpi.sh	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/mumps/install-5-win-msys2-mingw-msmpi.sh	(revision 26034)
@@ -0,0 +1,61 @@
+#!/bin/bash
+set -eu
+
+
+# Sources:
+# - https://www.scivision.dev/windows-mpi-msys2/
+#
+# NOTE:
+# - Source is pulled from https://github.com/scivision/mumps/releases, which 
+#	provides patches to the releases from developer (http://mumps-solver.org/)
+#
+# TODO:
+# - Create install alias in Makefiles
+# - Alternatively, use cmake rather than make
+#
+
+## Constants
+#
+VER=5.3.5.2
+
+PREFIX="${ISSM_DIR}/externalpackages/mumps/install"
+
+# Cleanup
+rm -rf ${PREFIX} src
+mkdir ${PREFIX} src src/lib
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/mumps-${VER}.tar.gz" "mumps-${VER}.tar.gz"
+
+# Unpack source
+tar -zxvf mumps-${VER}.tar.gz
+
+# Move source into 'src' directory
+mv mumps-${VER}/* src
+rm -rf mumps-${VER}
+
+# Copy customized source and configuration files to 'src' directory
+cp configs/5.3/win/msys2/mingw64/msmpi/Makefile.inc src
+cp configs/5.3/win/msys2/mingw64/msmpi/libseq/Makefile src/libseq
+cp configs/5.3/win/msys2/mingw64/msmpi/PORD/lib/Makefile src/PORD/lib
+cp configs/5.3/win/msys2/mingw64/msmpi/src/Makefile src/src
+
+# Compile
+cd src
+if [ $# -eq 0 ]; then
+	make all
+else
+	make -j $1 all
+fi
+
+# Install
+mkdir ${PREFIX}/lib
+cp lib/lib* ${PREFIX}/lib
+cp libseq/lib* ${PREFIX}/lib
+mkdir ${PREFIX}/include
+cp include/* ${PREFIX}/include
+
+# Create link to lib directory (PETSc, by default, looks for libraries in 
+# lib64/ if it detects that 64-bit integers are being used).
+cd ${PREFIX}
+ln -s lib lib64
Index: /issm/trunk-jpl/externalpackages/parmetis/compil.log
===================================================================
--- /issm/trunk-jpl/externalpackages/parmetis/compil.log	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/parmetis/compil.log	(revision 26034)
@@ -0,0 +1,524 @@
+File parmetis-4.0.3.tar.gz already exists and will not be downloaded...
+parmetis-4.0.3/
+parmetis-4.0.3/build/
+parmetis-4.0.3/BUILD.txt
+parmetis-4.0.3/Changelog
+parmetis-4.0.3/CMakeLists.txt
+parmetis-4.0.3/Graphs/
+parmetis-4.0.3/include/
+parmetis-4.0.3/Install.txt
+parmetis-4.0.3/libparmetis/
+parmetis-4.0.3/LICENSE.txt
+parmetis-4.0.3/Makefile
+parmetis-4.0.3/manual/
+parmetis-4.0.3/metis/
+parmetis-4.0.3/programs/
+parmetis-4.0.3/programs/adaptgraph.c
+parmetis-4.0.3/programs/CMakeLists.txt
+parmetis-4.0.3/programs/io.c
+parmetis-4.0.3/programs/mtest.c
+parmetis-4.0.3/programs/otest.c
+parmetis-4.0.3/programs/parmetis.c
+parmetis-4.0.3/programs/parmetisbin.h
+parmetis-4.0.3/programs/plotorder.pl
+parmetis-4.0.3/programs/pometis.c
+parmetis-4.0.3/programs/proto.h
+parmetis-4.0.3/programs/ptest.c
+parmetis-4.0.3/metis/build/
+parmetis-4.0.3/metis/BUILD-Windows.txt
+parmetis-4.0.3/metis/BUILD.txt
+parmetis-4.0.3/metis/Changelog
+parmetis-4.0.3/metis/CMakeLists.txt
+parmetis-4.0.3/metis/GKlib/
+parmetis-4.0.3/metis/include/
+parmetis-4.0.3/metis/Install.txt
+parmetis-4.0.3/metis/libmetis/
+parmetis-4.0.3/metis/LICENSE.txt
+parmetis-4.0.3/metis/Makefile
+parmetis-4.0.3/metis/programs/
+parmetis-4.0.3/metis/vsgen.bat
+parmetis-4.0.3/metis/programs/CMakeLists.txt
+parmetis-4.0.3/metis/programs/cmdline_gpmetis.c
+parmetis-4.0.3/metis/programs/cmdline_m2gmetis.c
+parmetis-4.0.3/metis/programs/cmdline_mpmetis.c
+parmetis-4.0.3/metis/programs/cmdline_ndmetis.c
+parmetis-4.0.3/metis/programs/cmpfillin.c
+parmetis-4.0.3/metis/programs/defs.h
+parmetis-4.0.3/metis/programs/gpmetis.c
+parmetis-4.0.3/metis/programs/graphchk.c
+parmetis-4.0.3/metis/programs/io.c
+parmetis-4.0.3/metis/programs/m2gmetis.c
+parmetis-4.0.3/metis/programs/metisbin.h
+parmetis-4.0.3/metis/programs/mpmetis.c
+parmetis-4.0.3/metis/programs/ndmetis.c
+parmetis-4.0.3/metis/programs/proto.h
+parmetis-4.0.3/metis/programs/smbfactor.c
+parmetis-4.0.3/metis/programs/stat.c
+parmetis-4.0.3/metis/programs/struct.h
+parmetis-4.0.3/metis/libmetis/auxapi.c
+parmetis-4.0.3/metis/libmetis/balance.c
+parmetis-4.0.3/metis/libmetis/bucketsort.c
+parmetis-4.0.3/metis/libmetis/checkgraph.c
+parmetis-4.0.3/metis/libmetis/CMakeLists.txt
+parmetis-4.0.3/metis/libmetis/coarsen.c
+parmetis-4.0.3/metis/libmetis/compress.c
+parmetis-4.0.3/metis/libmetis/contig.c
+parmetis-4.0.3/metis/libmetis/debug.c
+parmetis-4.0.3/metis/libmetis/defs.h
+parmetis-4.0.3/metis/libmetis/fm.c
+parmetis-4.0.3/metis/libmetis/fortran.c
+parmetis-4.0.3/metis/libmetis/frename.c
+parmetis-4.0.3/metis/libmetis/gklib.c
+parmetis-4.0.3/metis/libmetis/gklib_defs.h
+parmetis-4.0.3/metis/libmetis/gklib_rename.h
+parmetis-4.0.3/metis/libmetis/graph.c
+parmetis-4.0.3/metis/libmetis/initpart.c
+parmetis-4.0.3/metis/libmetis/kmetis.c
+parmetis-4.0.3/metis/libmetis/kwayfm.c
+parmetis-4.0.3/metis/libmetis/kwayrefine.c
+parmetis-4.0.3/metis/libmetis/macros.h
+parmetis-4.0.3/metis/libmetis/mcutil.c
+parmetis-4.0.3/metis/libmetis/mesh.c
+parmetis-4.0.3/metis/libmetis/meshpart.c
+parmetis-4.0.3/metis/libmetis/metislib.h
+parmetis-4.0.3/metis/libmetis/minconn.c
+parmetis-4.0.3/metis/libmetis/mincover.c
+parmetis-4.0.3/metis/libmetis/mmd.c
+parmetis-4.0.3/metis/libmetis/ometis.c
+parmetis-4.0.3/metis/libmetis/options.c
+parmetis-4.0.3/metis/libmetis/parmetis.c
+parmetis-4.0.3/metis/libmetis/pmetis.c
+parmetis-4.0.3/metis/libmetis/proto.h
+parmetis-4.0.3/metis/libmetis/refine.c
+parmetis-4.0.3/metis/libmetis/rename.h
+parmetis-4.0.3/metis/libmetis/separator.c
+parmetis-4.0.3/metis/libmetis/sfm.c
+parmetis-4.0.3/metis/libmetis/srefine.c
+parmetis-4.0.3/metis/libmetis/stat.c
+parmetis-4.0.3/metis/libmetis/stdheaders.h
+parmetis-4.0.3/metis/libmetis/struct.h
+parmetis-4.0.3/metis/libmetis/timing.c
+parmetis-4.0.3/metis/libmetis/util.c
+parmetis-4.0.3/metis/libmetis/wspace.c
+parmetis-4.0.3/metis/include/CMakeLists.txt
+parmetis-4.0.3/metis/include/metis.h
+parmetis-4.0.3/metis/GKlib/b64.c
+parmetis-4.0.3/metis/GKlib/blas.c
+parmetis-4.0.3/metis/GKlib/BUILD.txt
+parmetis-4.0.3/metis/GKlib/CMakeLists.txt
+parmetis-4.0.3/metis/GKlib/conf/
+parmetis-4.0.3/metis/GKlib/csr.c
+parmetis-4.0.3/metis/GKlib/error.c
+parmetis-4.0.3/metis/GKlib/evaluate.c
+parmetis-4.0.3/metis/GKlib/fkvkselect.c
+parmetis-4.0.3/metis/GKlib/fs.c
+parmetis-4.0.3/metis/GKlib/getopt.c
+parmetis-4.0.3/metis/GKlib/gk_arch.h
+parmetis-4.0.3/metis/GKlib/gk_defs.h
+parmetis-4.0.3/metis/GKlib/gk_externs.h
+parmetis-4.0.3/metis/GKlib/gk_getopt.h
+parmetis-4.0.3/metis/GKlib/gk_macros.h
+parmetis-4.0.3/metis/GKlib/gk_mkblas.h
+parmetis-4.0.3/metis/GKlib/gk_mkmemory.h
+parmetis-4.0.3/metis/GKlib/gk_mkpqueue.h
+parmetis-4.0.3/metis/GKlib/gk_mkpqueue2.h
+parmetis-4.0.3/metis/GKlib/gk_mkrandom.h
+parmetis-4.0.3/metis/GKlib/gk_mksort.h
+parmetis-4.0.3/metis/GKlib/gk_mkutils.h
+parmetis-4.0.3/metis/GKlib/gk_proto.h
+parmetis-4.0.3/metis/GKlib/gk_struct.h
+parmetis-4.0.3/metis/GKlib/gk_types.h
+parmetis-4.0.3/metis/GKlib/GKlib.h
+parmetis-4.0.3/metis/GKlib/GKlibSystem.cmake
+parmetis-4.0.3/metis/GKlib/gkregex.c
+parmetis-4.0.3/metis/GKlib/gkregex.h
+parmetis-4.0.3/metis/GKlib/graph.c
+parmetis-4.0.3/metis/GKlib/htable.c
+parmetis-4.0.3/metis/GKlib/io.c
+parmetis-4.0.3/metis/GKlib/itemsets.c
+parmetis-4.0.3/metis/GKlib/Makefile
+parmetis-4.0.3/metis/GKlib/mcore.c
+parmetis-4.0.3/metis/GKlib/memory.c
+parmetis-4.0.3/metis/GKlib/ms_inttypes.h
+parmetis-4.0.3/metis/GKlib/ms_stat.h
+parmetis-4.0.3/metis/GKlib/ms_stdint.h
+parmetis-4.0.3/metis/GKlib/omp.c
+parmetis-4.0.3/metis/GKlib/pdb.c
+parmetis-4.0.3/metis/GKlib/pqueue.c
+parmetis-4.0.3/metis/GKlib/random.c
+parmetis-4.0.3/metis/GKlib/rw.c
+parmetis-4.0.3/metis/GKlib/seq.c
+parmetis-4.0.3/metis/GKlib/sort.c
+parmetis-4.0.3/metis/GKlib/string.c
+parmetis-4.0.3/metis/GKlib/test/
+parmetis-4.0.3/metis/GKlib/timers.c
+parmetis-4.0.3/metis/GKlib/tokenizer.c
+parmetis-4.0.3/metis/GKlib/util.c
+parmetis-4.0.3/metis/GKlib/test/CMakeLists.txt
+parmetis-4.0.3/metis/GKlib/test/fis.c
+parmetis-4.0.3/metis/GKlib/test/gkgraph.c
+parmetis-4.0.3/metis/GKlib/test/gksort.c
+parmetis-4.0.3/metis/GKlib/test/Makefile.in.old
+parmetis-4.0.3/metis/GKlib/test/Makefile.old
+parmetis-4.0.3/metis/GKlib/test/rw.c
+parmetis-4.0.3/metis/GKlib/test/strings.c
+parmetis-4.0.3/metis/GKlib/conf/check_thread_storage.c
+parmetis-4.0.3/manual/manual.pdf
+parmetis-4.0.3/libparmetis/akwayfm.c
+parmetis-4.0.3/libparmetis/ametis.c
+parmetis-4.0.3/libparmetis/balancemylink.c
+parmetis-4.0.3/libparmetis/CMakeLists.txt
+parmetis-4.0.3/libparmetis/comm.c
+parmetis-4.0.3/libparmetis/csrmatch.c
+parmetis-4.0.3/libparmetis/ctrl.c
+parmetis-4.0.3/libparmetis/debug.c
+parmetis-4.0.3/libparmetis/defs.h
+parmetis-4.0.3/libparmetis/diffutil.c
+parmetis-4.0.3/libparmetis/frename.c
+parmetis-4.0.3/libparmetis/gkmetis.c
+parmetis-4.0.3/libparmetis/gkmpi.c
+parmetis-4.0.3/libparmetis/graph.c
+parmetis-4.0.3/libparmetis/initbalance.c
+parmetis-4.0.3/libparmetis/initmsection.c
+parmetis-4.0.3/libparmetis/initpart.c
+parmetis-4.0.3/libparmetis/kmetis.c
+parmetis-4.0.3/libparmetis/kwayrefine.c
+parmetis-4.0.3/libparmetis/macros.h
+parmetis-4.0.3/libparmetis/match.c
+parmetis-4.0.3/libparmetis/mdiffusion.c
+parmetis-4.0.3/libparmetis/mesh.c
+parmetis-4.0.3/libparmetis/mmetis.c
+parmetis-4.0.3/libparmetis/move.c
+parmetis-4.0.3/libparmetis/msetup.c
+parmetis-4.0.3/libparmetis/node_refine.c
+parmetis-4.0.3/libparmetis/ometis.c
+parmetis-4.0.3/libparmetis/parmetislib.h
+parmetis-4.0.3/libparmetis/proto.h
+parmetis-4.0.3/libparmetis/pspases.c
+parmetis-4.0.3/libparmetis/redomylink.c
+parmetis-4.0.3/libparmetis/remap.c
+parmetis-4.0.3/libparmetis/rename.h
+parmetis-4.0.3/libparmetis/renumber.c
+parmetis-4.0.3/libparmetis/rmetis.c
+parmetis-4.0.3/libparmetis/selectq.c
+parmetis-4.0.3/libparmetis/serial.c
+parmetis-4.0.3/libparmetis/stat.c
+parmetis-4.0.3/libparmetis/struct.h
+parmetis-4.0.3/libparmetis/timer.c
+parmetis-4.0.3/libparmetis/util.c
+parmetis-4.0.3/libparmetis/wave.c
+parmetis-4.0.3/libparmetis/weird.c
+parmetis-4.0.3/libparmetis/wspace.c
+parmetis-4.0.3/libparmetis/xyzpart.c
+parmetis-4.0.3/include/CMakeLists.txt
+parmetis-4.0.3/include/parmetis.h
+parmetis-4.0.3/Graphs/bricks.hex3d
+parmetis-4.0.3/Graphs/rotor.graph
+parmetis-4.0.3/Graphs/rotor.graph.xyz
+rm -rf build/MSYS_NT-10.0-17763-x86_64
+mkdir -p build/MSYS_NT-10.0-17763-x86_64
+cd build/MSYS_NT-10.0-17763-x86_64 && cmake /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src -DCMAKE_VERBOSE_MAKEFILE=1 -DGKLIB_PATH=/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -DMETIS_PATH=/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install -DLOCAL_MSMPI=1 -DMSMPI_ROOT=/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI -DCMAKE_INSTALL_PREFIX=/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/install -DSHARED=1 -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/g++
+CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
+  Compatibility with CMake < 2.8.12 will be removed from a future version of
+  CMake.
+
+  Update the VERSION argument <min> value or use a ...<max> suffix to tell
+  CMake that the project does not need compatibility with older versions.
+
+
+-- The C compiler identification is GNU 10.2.0
+-- The CXX compiler identification is GNU 10.2.0
+CMake Warning at /usr/share/cmake-3.19.3/Modules/Platform/MSYS.cmake:15 (message):
+  CMake no longer defines WIN32 on MSYS!
+
+  (1) If you are just trying to build this project, ignore this warning or
+  quiet it by setting CMAKE_LEGACY_CYGWIN_WIN32=0 in your environment or in
+  the CMake cache.  If later configuration or build errors occur then this
+  project may have been written under the assumption that MSYS is WIN32.  In
+  that case, set CMAKE_LEGACY_CYGWIN_WIN32=1 instead.
+
+  (2) If you are developing this project, add the line
+
+    set(CMAKE_LEGACY_CYGWIN_WIN32 0) # Remove when CMake >= 2.8.4 is required
+
+  at the top of your top-level CMakeLists.txt file or set the minimum
+  required version of CMake to 2.8.4 or higher.  Then teach your project to
+  build on Cygwin without WIN32.
+Call Stack (most recent call first):
+  /usr/share/cmake-3.19.3/Modules/CMakeSystemSpecificInformation.cmake:27 (include)
+  CMakeLists.txt:2 (project)
+
+
+-- Detecting C compiler ABI info
+-- Detecting C compiler ABI info - done
+-- Check for working C compiler: /usr/bin/gcc - skipped
+-- Detecting C compile features
+-- Detecting C compile features - done
+-- Detecting CXX compiler ABI info
+-- Detecting CXX compiler ABI info - done
+-- Check for working CXX compiler: /usr/bin/g++ - skipped
+-- Detecting CXX compile features
+-- Detecting CXX compile features - done
+-- Looking for execinfo.h
+-- Looking for execinfo.h - not found
+-- Looking for getline
+-- Looking for getline - found
+-- checking for thread-local storage - found
+-- Found user-supplied METIS: /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/lib/libmetis.dll
+-- MSMPI: /c/Windows/System32/msmpi.dll
+-- Configuring done
+-- Generating done
+-- Build files have been written to: /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64
+make[1]: warning: -j4 forced in submake: resetting jobserver mode.
+make[1]: Entering directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+/usr/bin/cmake.exe -S/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src -B/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64 --check-build-system CMakeFiles/Makefile.cmake 0
+/usr/bin/cmake.exe -E cmake_progress_start /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/CMakeFiles /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64//CMakeFiles/progress.marks
+make  -f CMakeFiles/Makefile2 all
+make[2]: Entering directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+make  -f libparmetis/CMakeFiles/parmetis.dir/build.make libparmetis/CMakeFiles/parmetis.dir/depend
+make[3]: Entering directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64 && /usr/bin/cmake.exe -E cmake_depends "Unix Makefiles" /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64 /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis/CMakeFiles/parmetis.dir/DependInfo.cmake --color=
+Scanning dependencies of target parmetis
+make[3]: Leaving directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+make  -f libparmetis/CMakeFiles/parmetis.dir/build.make libparmetis/CMakeFiles/parmetis.dir/build
+make[3]: Entering directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+[  1%] Building C object libparmetis/CMakeFiles/parmetis.dir/akwayfm.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/akwayfm.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/akwayfm.c
+[  3%] Building C object libparmetis/CMakeFiles/parmetis.dir/ametis.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/ametis.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/ametis.c
+[  5%] Building C object libparmetis/CMakeFiles/parmetis.dir/balancemylink.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/balancemylink.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/balancemylink.c
+[  7%] Building C object libparmetis/CMakeFiles/parmetis.dir/comm.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/comm.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/comm.c
+/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/balancemylink.c: In function ‘libparmetis__BalanceMyLink’:
+/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/balancemylink.c:324:5: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
+  324 |     if (where[i] != home[i])
+      |     ^~
+/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/balancemylink.c:327:7: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
+  327 |       for (j=xadj[i]; j<xadj[i+1]; j++) {
+      |       ^~~
+[  9%] Building C object libparmetis/CMakeFiles/parmetis.dir/csrmatch.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/csrmatch.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/csrmatch.c
+[ 11%] Building C object libparmetis/CMakeFiles/parmetis.dir/ctrl.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/ctrl.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/ctrl.c
+[ 12%] Building C object libparmetis/CMakeFiles/parmetis.dir/debug.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/debug.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/debug.c
+[ 14%] Building C object libparmetis/CMakeFiles/parmetis.dir/diffutil.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/diffutil.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/diffutil.c
+[ 16%] Building C object libparmetis/CMakeFiles/parmetis.dir/frename.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/frename.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/frename.c
+[ 18%] Building C object libparmetis/CMakeFiles/parmetis.dir/gkmetis.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/gkmetis.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/gkmetis.c
+[ 20%] Building C object libparmetis/CMakeFiles/parmetis.dir/gkmpi.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/gkmpi.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/gkmpi.c
+[ 22%] Building C object libparmetis/CMakeFiles/parmetis.dir/graph.c.o
+[ 24%] Building C object libparmetis/CMakeFiles/parmetis.dir/initbalance.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/graph.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/graph.c
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/initbalance.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/initbalance.c
+[ 25%] Building C object libparmetis/CMakeFiles/parmetis.dir/initmsection.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/initmsection.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/initmsection.c
+[ 27%] Building C object libparmetis/CMakeFiles/parmetis.dir/initpart.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/initpart.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/initpart.c
+[ 29%] Building C object libparmetis/CMakeFiles/parmetis.dir/kmetis.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/kmetis.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/kmetis.c
+[ 31%] Building C object libparmetis/CMakeFiles/parmetis.dir/kwayrefine.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/kwayrefine.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/kwayrefine.c
+[ 33%] Building C object libparmetis/CMakeFiles/parmetis.dir/match.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/match.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/match.c
+[ 35%] Building C object libparmetis/CMakeFiles/parmetis.dir/mdiffusion.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/mdiffusion.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/mdiffusion.c
+[ 37%] Building C object libparmetis/CMakeFiles/parmetis.dir/mesh.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/mesh.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/mesh.c
+[ 38%] Building C object libparmetis/CMakeFiles/parmetis.dir/mmetis.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/mmetis.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/mmetis.c
+[ 40%] Building C object libparmetis/CMakeFiles/parmetis.dir/move.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/move.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/move.c
+[ 42%] Building C object libparmetis/CMakeFiles/parmetis.dir/msetup.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/msetup.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/msetup.c
+[ 44%] Building C object libparmetis/CMakeFiles/parmetis.dir/node_refine.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/node_refine.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/node_refine.c
+[ 46%] Building C object libparmetis/CMakeFiles/parmetis.dir/ometis.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/ometis.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/ometis.c
+[ 48%] Building C object libparmetis/CMakeFiles/parmetis.dir/pspases.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/pspases.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/pspases.c
+[ 50%] Building C object libparmetis/CMakeFiles/parmetis.dir/redomylink.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/redomylink.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/redomylink.c
+[ 51%] Building C object libparmetis/CMakeFiles/parmetis.dir/remap.c.o
+[ 53%] Building C object libparmetis/CMakeFiles/parmetis.dir/renumber.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/renumber.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/renumber.c
+[ 55%] Building C object libparmetis/CMakeFiles/parmetis.dir/rmetis.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/remap.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/remap.c
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/rmetis.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/rmetis.c
+[ 57%] Building C object libparmetis/CMakeFiles/parmetis.dir/selectq.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/selectq.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/selectq.c
+[ 59%] Building C object libparmetis/CMakeFiles/parmetis.dir/serial.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/serial.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/serial.c
+[ 61%] Building C object libparmetis/CMakeFiles/parmetis.dir/stat.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/stat.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/stat.c
+[ 62%] Building C object libparmetis/CMakeFiles/parmetis.dir/timer.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/timer.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/timer.c
+[ 64%] Building C object libparmetis/CMakeFiles/parmetis.dir/util.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/util.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/util.c
+[ 66%] Building C object libparmetis/CMakeFiles/parmetis.dir/wave.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/wave.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/wave.c
+[ 68%] Building C object libparmetis/CMakeFiles/parmetis.dir/weird.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/weird.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/weird.c
+/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/wave.c: In function ‘libparmetis__WavefrontDiffusion’:
+/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/wave.c:253:1: warning: label ‘CleanUpAndExit’ defined but not used [-Wunused-label]
+  253 | CleanUpAndExit:
+      | ^~~~~~~~~~~~~~
+[ 70%] Building C object libparmetis/CMakeFiles/parmetis.dir/wspace.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/wspace.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/wspace.c
+[ 72%] Building C object libparmetis/CMakeFiles/parmetis.dir/xyzpart.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/gcc -Dparmetis_EXPORTS -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis.dir/xyzpart.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis/xyzpart.c
+[ 74%] Linking C shared library msys-parmetis.dll
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis && /usr/bin/cmake.exe -E cmake_link_script CMakeFiles/parmetis.dir/link.txt --verbose=1
+/usr/bin/gcc  -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -shared -Wl,--enable-auto-import -o msys-parmetis.dll -Wl,--out-implib,libparmetis.dll.a -Wl,--major-image-version,0,--minor-image-version,0 CMakeFiles/parmetis.dir/akwayfm.c.o CMakeFiles/parmetis.dir/ametis.c.o CMakeFiles/parmetis.dir/balancemylink.c.o CMakeFiles/parmetis.dir/comm.c.o CMakeFiles/parmetis.dir/csrmatch.c.o CMakeFiles/parmetis.dir/ctrl.c.o CMakeFiles/parmetis.dir/debug.c.o CMakeFiles/parmetis.dir/diffutil.c.o CMakeFiles/parmetis.dir/frename.c.o CMakeFiles/parmetis.dir/gkmetis.c.o CMakeFiles/parmetis.dir/gkmpi.c.o CMakeFiles/parmetis.dir/graph.c.o CMakeFiles/parmetis.dir/initbalance.c.o CMakeFiles/parmetis.dir/initmsection.c.o CMakeFiles/parmetis.dir/initpart.c.o CMakeFiles/parmetis.dir/kmetis.c.o CMakeFiles/parmetis.dir/kwayrefine.c.o CMakeFiles/parmetis.dir/match.c.o CMakeFiles/parmetis.dir/mdiffusion.c.o CMakeFiles/parmetis.dir/mesh.c.o CMakeFiles/parmetis.dir/mmetis.c.o CMakeFiles/parmetis.dir/move.c.o CMakeFiles/parmetis.dir/msetup.c.o CMakeFiles/parmetis.dir/node_refine.c.o CMakeFiles/parmetis.dir/ometis.c.o CMakeFiles/parmetis.dir/pspases.c.o CMakeFiles/parmetis.dir/redomylink.c.o CMakeFiles/parmetis.dir/remap.c.o CMakeFiles/parmetis.dir/renumber.c.o CMakeFiles/parmetis.dir/rmetis.c.o CMakeFiles/parmetis.dir/selectq.c.o CMakeFiles/parmetis.dir/serial.c.o CMakeFiles/parmetis.dir/stat.c.o CMakeFiles/parmetis.dir/timer.c.o CMakeFiles/parmetis.dir/util.c.o CMakeFiles/parmetis.dir/wave.c.o CMakeFiles/parmetis.dir/weird.c.o CMakeFiles/parmetis.dir/wspace.c.o CMakeFiles/parmetis.dir/xyzpart.c.o  -lmetis /c/Windows/System32/msmpi.dll 
+make[3]: Leaving directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+[ 74%] Built target parmetis
+make  -f programs/CMakeFiles/pometis.dir/build.make programs/CMakeFiles/pometis.dir/depend
+make  -f programs/CMakeFiles/parmetis_prog.dir/build.make programs/CMakeFiles/parmetis_prog.dir/depend
+make  -f programs/CMakeFiles/mtest.dir/build.make programs/CMakeFiles/mtest.dir/depend
+make  -f programs/CMakeFiles/ptest.dir/build.make programs/CMakeFiles/ptest.dir/depend
+make[3]: Entering directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64 && /usr/bin/cmake.exe -E cmake_depends "Unix Makefiles" /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/programs /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64 /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/programs /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/programs/CMakeFiles/pometis.dir/DependInfo.cmake --color=
+make[3]: Entering directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64 && /usr/bin/cmake.exe -E cmake_depends "Unix Makefiles" /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/programs /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64 /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/programs /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/programs/CMakeFiles/parmetis_prog.dir/DependInfo.cmake --color=
+make[3]: Entering directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64 && /usr/bin/cmake.exe -E cmake_depends "Unix Makefiles" /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/programs /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64 /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/programs /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/programs/CMakeFiles/mtest.dir/DependInfo.cmake --color=
+make[3]: Entering directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64 && /usr/bin/cmake.exe -E cmake_depends "Unix Makefiles" /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/programs /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64 /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/programs /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/programs/CMakeFiles/ptest.dir/DependInfo.cmake --color=
+Scanning dependencies of target pometis
+make[3]: Leaving directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+Scanning dependencies of target mtest
+make  -f programs/CMakeFiles/pometis.dir/build.make programs/CMakeFiles/pometis.dir/build
+make[3]: Leaving directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+Scanning dependencies of target parmetis_prog
+make[3]: Leaving directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+make  -f programs/CMakeFiles/mtest.dir/build.make programs/CMakeFiles/mtest.dir/build
+Scanning dependencies of target ptest
+make  -f programs/CMakeFiles/parmetis_prog.dir/build.make programs/CMakeFiles/parmetis_prog.dir/build
+make[3]: Leaving directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+make[3]: Entering directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+make[3]: Entering directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+make  -f programs/CMakeFiles/ptest.dir/build.make programs/CMakeFiles/ptest.dir/build
+make[3]: Entering directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+make[3]: Entering directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+[ 75%] Building C object programs/CMakeFiles/pometis.dir/pometis.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/programs && /usr/bin/gcc  -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/programs/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/pometis.dir/pometis.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/programs/pometis.c
+[ 77%] Building C object programs/CMakeFiles/mtest.dir/mtest.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/programs && /usr/bin/gcc  -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/programs/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/mtest.dir/mtest.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/programs/mtest.c
+[ 79%] Building C object programs/CMakeFiles/ptest.dir/ptest.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/programs && /usr/bin/gcc  -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/programs/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/ptest.dir/ptest.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/programs/ptest.c
+[ 81%] Building C object programs/CMakeFiles/parmetis_prog.dir/parmetis.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/programs && /usr/bin/gcc  -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/programs/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis_prog.dir/parmetis.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/programs/parmetis.c
+/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/programs/ptest.c: In function ‘TestParMetis_GPart’:
+/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/programs/ptest.c:166:5: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
+  166 |     if (mype == 0)
+      |     ^~
+/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/programs/ptest.c:169:7: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
+  169 |       ParMETIS_V3_PartGeom(graph.vtxdist, &ndims, xyz, part, &comm);
+      |       ^~~~~~~~~~~~~~~~~~~~
+[ 83%] Building C object programs/CMakeFiles/pometis.dir/io.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/programs && /usr/bin/gcc  -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/programs/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/pometis.dir/io.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/programs/io.c
+[ 85%] Building C object programs/CMakeFiles/mtest.dir/io.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/programs && /usr/bin/gcc  -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/programs/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/mtest.dir/io.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/programs/io.c
+[ 87%] Building C object programs/CMakeFiles/parmetis_prog.dir/io.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/programs && /usr/bin/gcc  -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/programs/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis_prog.dir/io.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/programs/io.c
+[ 88%] Building C object programs/CMakeFiles/ptest.dir/io.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/programs && /usr/bin/gcc  -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/programs/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/ptest.dir/io.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/programs/io.c
+[ 90%] Linking C executable pometis.exe
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/programs && /usr/bin/cmake.exe -E cmake_link_script CMakeFiles/pometis.dir/link.txt --verbose=1
+/usr/bin/gcc  -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -Wl,--enable-auto-import CMakeFiles/pometis.dir/pometis.c.o CMakeFiles/pometis.dir/io.c.o -o pometis.exe -Wl,--out-implib,libpometis.dll.a -Wl,--major-image-version,0,--minor-image-version,0  ../libparmetis/libparmetis.dll.a -lmetis /c/Windows/System32/msmpi.dll 
+[ 92%] Linking C executable mtest.exe
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/programs && /usr/bin/cmake.exe -E cmake_link_script CMakeFiles/mtest.dir/link.txt --verbose=1
+/usr/bin/gcc  -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -Wl,--enable-auto-import CMakeFiles/mtest.dir/mtest.c.o CMakeFiles/mtest.dir/io.c.o -o mtest.exe -Wl,--out-implib,libmtest.dll.a -Wl,--major-image-version,0,--minor-image-version,0  ../libparmetis/libparmetis.dll.a -lmetis /c/Windows/System32/msmpi.dll 
+[ 94%] Building C object programs/CMakeFiles/parmetis_prog.dir/adaptgraph.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/programs && /usr/bin/gcc  -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/programs/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/parmetis_prog.dir/adaptgraph.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/programs/adaptgraph.c
+[ 96%] Building C object programs/CMakeFiles/ptest.dir/adaptgraph.c.o
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/programs && /usr/bin/gcc  -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/GKlib -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/metis/install/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/MSMPI/include -I/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/programs/. -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -o CMakeFiles/ptest.dir/adaptgraph.c.o -c /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/programs/adaptgraph.c
+make[3]: Leaving directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+make[3]: Leaving directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+[ 96%] Built target pometis
+[ 96%] Built target mtest
+[ 98%] Linking C executable parmetis.exe
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/programs && /usr/bin/cmake.exe -E cmake_link_script CMakeFiles/parmetis_prog.dir/link.txt --verbose=1
+/usr/bin/gcc  -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -Wl,--enable-auto-import CMakeFiles/parmetis_prog.dir/parmetis.c.o CMakeFiles/parmetis_prog.dir/io.c.o CMakeFiles/parmetis_prog.dir/adaptgraph.c.o -o parmetis.exe -Wl,--out-implib,libparmetis.dll.a -Wl,--major-image-version,0,--minor-image-version,0  ../libparmetis/libparmetis.dll.a -lmetis /c/Windows/System32/msmpi.dll 
+[100%] Linking C executable ptest.exe
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/programs && /usr/bin/cmake.exe -E cmake_link_script CMakeFiles/ptest.dir/link.txt --verbose=1
+/usr/bin/gcc  -DLINUX -D_FILE_OFFSET_BITS=64 -std=c99 -fno-strict-aliasing -fPIC -Wall -pedantic -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -DNDEBUG -DNDEBUG2 -DHAVE_GETLINE -O3 -Wl,--enable-auto-import CMakeFiles/ptest.dir/ptest.c.o CMakeFiles/ptest.dir/io.c.o CMakeFiles/ptest.dir/adaptgraph.c.o -o ptest.exe -Wl,--out-implib,libptest.dll.a -Wl,--major-image-version,0,--minor-image-version,0  ../libparmetis/libparmetis.dll.a -lmetis /c/Windows/System32/msmpi.dll 
+make[3]: Leaving directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+[100%] Built target parmetis_prog
+make[3]: Leaving directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+[100%] Built target ptest
+make[2]: Leaving directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+/usr/bin/cmake.exe -E cmake_progress_start /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/CMakeFiles 0
+make[1]: Leaving directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+make[1]: warning: -j4 forced in submake: resetting jobserver mode.
+make[1]: Entering directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+/usr/bin/cmake.exe -S/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src -B/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64 --check-build-system CMakeFiles/Makefile.cmake 0
+/usr/bin/cmake.exe -E cmake_progress_start /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/CMakeFiles /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64//CMakeFiles/progress.marks
+make  -f CMakeFiles/Makefile2 all
+make[2]: Entering directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+make  -f libparmetis/CMakeFiles/parmetis.dir/build.make libparmetis/CMakeFiles/parmetis.dir/depend
+make[3]: Entering directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64 && /usr/bin/cmake.exe -E cmake_depends "Unix Makefiles" /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/libparmetis /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64 /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/libparmetis/CMakeFiles/parmetis.dir/DependInfo.cmake --color=
+make[3]: Leaving directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+make  -f libparmetis/CMakeFiles/parmetis.dir/build.make libparmetis/CMakeFiles/parmetis.dir/build
+make[3]: Entering directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+make[3]: Nothing to be done for 'libparmetis/CMakeFiles/parmetis.dir/build'.
+make[3]: Leaving directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+[ 74%] Built target parmetis
+make  -f programs/CMakeFiles/pometis.dir/build.make programs/CMakeFiles/pometis.dir/depend
+make  -f programs/CMakeFiles/parmetis_prog.dir/build.make programs/CMakeFiles/parmetis_prog.dir/depend
+make  -f programs/CMakeFiles/mtest.dir/build.make programs/CMakeFiles/mtest.dir/depend
+make[3]: Entering directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64 && /usr/bin/cmake.exe -E cmake_depends "Unix Makefiles" /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/programs /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64 /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/programs /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/programs/CMakeFiles/pometis.dir/DependInfo.cmake --color=
+make[3]: Entering directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64 && /usr/bin/cmake.exe -E cmake_depends "Unix Makefiles" /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/programs /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64 /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/programs /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/programs/CMakeFiles/parmetis_prog.dir/DependInfo.cmake --color=
+make  -f programs/CMakeFiles/ptest.dir/build.make programs/CMakeFiles/ptest.dir/depend
+make[3]: Entering directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64 && /usr/bin/cmake.exe -E cmake_depends "Unix Makefiles" /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/programs /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64 /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/programs /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/programs/CMakeFiles/ptest.dir/DependInfo.cmake --color=
+make[3]: Entering directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+cd /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64 && /usr/bin/cmake.exe -E cmake_depends "Unix Makefiles" /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/programs /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64 /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/programs /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/programs/CMakeFiles/mtest.dir/DependInfo.cmake --color=
+make[3]: Leaving directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+make[3]: Leaving directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+make  -f programs/CMakeFiles/parmetis_prog.dir/build.make programs/CMakeFiles/parmetis_prog.dir/build
+make  -f programs/CMakeFiles/pometis.dir/build.make programs/CMakeFiles/pometis.dir/build
+make[3]: Entering directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+make[3]: Nothing to be done for 'programs/CMakeFiles/parmetis_prog.dir/build'.
+make[3]: Leaving directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+make[3]: Entering directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+make[3]: Nothing to be done for 'programs/CMakeFiles/pometis.dir/build'.
+make[3]: Leaving directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+make[3]: Leaving directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+make[3]: Leaving directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+make  -f programs/CMakeFiles/ptest.dir/build.make programs/CMakeFiles/ptest.dir/build
+make  -f programs/CMakeFiles/mtest.dir/build.make programs/CMakeFiles/mtest.dir/build
+make[3]: Entering directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+make[3]: Nothing to be done for 'programs/CMakeFiles/ptest.dir/build'.
+make[3]: Leaving directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+[ 79%] Built target pometis
+[ 87%] Built target parmetis_prog
+make[3]: Entering directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+make[3]: Nothing to be done for 'programs/CMakeFiles/mtest.dir/build'.
+make[3]: Leaving directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+[ 94%] Built target ptest
+[100%] Built target mtest
+make[2]: Leaving directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+/usr/bin/cmake.exe -E cmake_progress_start /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64/CMakeFiles 0
+make  -f CMakeFiles/Makefile2 preinstall
+make[2]: Entering directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+make[2]: Nothing to be done for 'preinstall'.
+make[2]: Leaving directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
+Install the project...
+/usr/bin/cmake.exe -P cmake_install.cmake
+-- Install configuration: ""
+-- Installing: /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/install/include/parmetis.h
+-- Installing: /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/install/lib/libparmetis.dll.a
+-- Installing: /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/install/lib/msys-parmetis.dll
+-- Installing: /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/install/bin/ptest.exe
+-- Installing: /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/install/bin/mtest.exe
+-- Installing: /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/install/bin/parmetis.exe
+-- Installing: /c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/install/bin/pometis.exe
+make[1]: Leaving directory '/c/Users/jdq/Repos/issm/issm/trunk-jpl-working/externalpackages/parmetis/src/build/MSYS_NT-10.0-17763-x86_64'
Index: /issm/trunk-jpl/externalpackages/parmetis/configs/4.0/win/msys2/CMakeLists.txt
===================================================================
--- /issm/trunk-jpl/externalpackages/parmetis/configs/4.0/win/msys2/CMakeLists.txt	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/parmetis/configs/4.0/win/msys2/CMakeLists.txt	(revision 26034)
@@ -0,0 +1,45 @@
+cmake_minimum_required(VERSION 2.8)
+project(ParMETIS)
+
+set(GKLIB_PATH METIS/GKlib CACHE PATH "path to GKlib")
+set(METIS_PATH METIS CACHE PATH "path to METIS")
+
+# Symlink ./metis to wherever metis is. This allows files to be
+# included from metis/libmetis/.
+#execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${METIS_PATH} metis)
+
+# Search for MPI.
+# GK commented this out as it seems to be creating problems
+# include(FindMPI)
+# if(NOT MPI_FOUND)
+#   message(FATAL_ERROR "mpi is not found")
+# endif()
+# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${MPI_COMPILE_FLAGS}")
+
+# Prepare libraries.
+if(SHARED)
+  set(ParMETIS_LIBRARY_TYPE SHARED)
+else()
+  set(ParMETIS_LIBRARY_TYPE STATIC)
+endif()
+
+include(${GKLIB_PATH}/GKlibSystem.cmake)
+
+# List of paths that the compiler will search for header files.
+# i.e., the -I equivalent
+include_directories(include)
+include_directories(${GKLIB_PATH})
+include_directories(${METIS_PATH}/include)
+
+if(LOCAL_MSMPI)
+	include_directories(${MSMPI_ROOT}/include)
+endif()
+
+# List of directories that cmake will look for CMakeLists.txt
+#add_subdirectory(${METIS_PATH}/libmetis ${CMAKE_BINARY_DIR}/libmetis)
+add_subdirectory(include)
+add_subdirectory(libparmetis)
+add_subdirectory(programs)
+
+# This is for testing during development and is not being distributed
+#add_subdirectory(test)
Index: /issm/trunk-jpl/externalpackages/parmetis/configs/4.0/win/msys2/Makefile
===================================================================
--- /issm/trunk-jpl/externalpackages/parmetis/configs/4.0/win/msys2/Makefile	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/parmetis/configs/4.0/win/msys2/Makefile	(revision 26034)
@@ -0,0 +1,133 @@
+# Configuration options.
+gdb              = not-set
+assert           = not-set
+assert2          = not-set
+debug            = not-set
+openmp           = not-set
+prefix           = not-set
+gklib_path       = not-set
+metis_path       = not-set
+msmpi_root       = not-set
+shared           = not-set
+cc               = mpicc
+cxx              = mpicxx
+ar               = not-set
+gcc-ar           = not-set
+ranlib           = not-set
+gcc-ranlib       = not-set
+linker           = not-set
+nm               = not-set
+objcopy          = not-set
+objdump          = not-set
+rc               = not-set
+strip            = not-set
+
+
+# Basically proxies everything to the builddir cmake.
+
+PKGNAME = parmetis-4.0.3
+
+cputype = $(shell uname -m | sed "s/\\ /_/g")
+systype = $(shell uname -s)
+
+BUILDDIR = build/$(systype)-$(cputype)
+
+# Process configuration options.
+CONFIG_FLAGS = -DCMAKE_VERBOSE_MAKEFILE=1
+ifeq ($(gklib_path), not-set)
+    gklib_path = metis/GKlib
+endif
+ifeq ($(metis_path), not-set)
+    metis_path = metis
+endif
+CONFIG_FLAGS += -DGKLIB_PATH=$(abspath $(gklib_path)) -DMETIS_PATH=$(abspath $(metis_path))
+ifneq ($(local_msmpi), not-set)
+    CONFIG_FLAGS += -DLOCAL_MSMPI=1 -DMSMPI_ROOT=$(abspath $(msmpi_root))
+endif
+ifneq ($(gdb), not-set)
+    CONFIG_FLAGS += -DGDB=$(gdb)
+endif
+ifneq ($(assert), not-set)
+    CONFIG_FLAGS += -DASSERT=$(assert)
+endif
+ifneq ($(assert2), not-set)
+    CONFIG_FLAGS += -DASSERT2=$(assert2)
+endif
+ifneq ($(debug), not-set)
+    CONFIG_FLAGS += -DDEBUG=$(debug)
+endif
+ifneq ($(openmp), not-set)
+    CONFIG_FLAGS += -DOPENMP=$(openmp)
+endif
+ifneq ($(prefix), not-set)
+    CONFIG_FLAGS += -DCMAKE_INSTALL_PREFIX=$(prefix)
+endif
+ifneq ($(shared), not-set)
+    CONFIG_FLAGS += -DSHARED=1
+endif
+ifneq ($(cc), not-set)
+    CONFIG_FLAGS += -DCMAKE_C_COMPILER=$(cc)
+endif
+ifneq ($(cxx), not-set)
+    CONFIG_FLAGS += -DCMAKE_CXX_COMPILER=$(cxx)
+endif
+ifneq ($(ar), not-set)
+    CONFIG_FLAGS += -DCMAKE_AR=$(ar)
+endif
+ifneq ($(gcc-ar), not-set)
+    CONFIG_FLAGS += -DCMAKE_C_COMPILER_AR=$(gcc-ar) -DCMAKE_CXX_COMPILER_AR=$(gcc-ar)
+endif
+ifneq ($(ranlib), not-set)
+    CONFIG_FLAGS += -DCMAKE_RANLIB=$(ranlib)
+endif
+ifneq ($(gcc-ranlib), not-set)
+    CONFIG_FLAGS += -DCMAKE_C_COMPILER_RANLIB=$(gcc-ranlib) -DCMAKE_CXX_COMPILER_RANLIB=$(gcc-ranlib)
+endif
+ifneq ($(linker), not-set)
+    CONFIG_FLAGS += -DCMAKE_LINKER=$(linker)
+endif
+ifneq ($(nm), not-set)
+    CONFIG_FLAGS += -DCMAKE_NM=$(nm)
+endif
+ifneq ($(objcopy), not-set)
+    CONFIG_FLAGS += -DCMAKE_OBJCOPY=$(objcopy)
+endif
+ifneq ($(objdump), not-set)
+    CONFIG_FLAGS += -DCMAKE_OBJDUMP=$(objdump)
+endif
+ifneq ($(rc), not-set)
+    CONFIG_FLAGS += -DCMAKE_RC_COMPILER=$(rc)
+endif
+ifneq ($(strip), not-set)
+    CONFIG_FLAGS += -DCMAKE_STRIP=$(strip)
+endif
+
+define run-config
+mkdir -p $(BUILDDIR)
+cd $(BUILDDIR) && cmake $(CURDIR) $(CONFIG_FLAGS)
+endef
+
+all clean install:
+	@if [ ! -f $(BUILDDIR)/Makefile ]; then \
+		more BUILD.txt; \
+	else \
+	  	make -C $(BUILDDIR) $@ $(MAKEFLAGS); \
+	fi
+
+uninstall:
+	xargs rm < $(BUILDDIR)/install_manifest.txt
+
+config: distclean
+	$(run-config)
+
+distclean:
+	rm -rf $(BUILDDIR)
+
+remake:
+	find . -name CMakeLists.txt -exec touch {} ';'
+
+dist:
+	util/mkdist.sh $(PKGNAME)
+
+
+.PHONY: config distclean dist all clean install uninstall remake
Index: /issm/trunk-jpl/externalpackages/parmetis/configs/4.0/win/msys2/gcc/libparmetis/CMakeLists.txt
===================================================================
--- /issm/trunk-jpl/externalpackages/parmetis/configs/4.0/win/msys2/gcc/libparmetis/CMakeLists.txt	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/parmetis/configs/4.0/win/msys2/gcc/libparmetis/CMakeLists.txt	(revision 26034)
@@ -0,0 +1,32 @@
+# Include directories for library code.
+include_directories(.)
+# Find sources.
+file(GLOB parmetis_sources *.c)
+# Create libparmetis
+add_library(parmetis ${ParMETIS_LIBRARY_TYPE} ${parmetis_sources})
+
+# Link with metis and MPI libraries.
+set(CMAKE_FIND_LIBRARY_PREFIXES "lib" "msys-" "")
+set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll" ".so")
+find_library(METIS metis PATHS ${METIS_PATH}/lib)
+if(METIS)
+	message("-- Found user-supplied METIS: ${METIS}")
+	target_link_libraries(parmetis ${METIS})
+else(METIS)
+	target_link_libraries(parmetis metis)
+endif()
+
+if(LOCAL_MSMPI)
+	# Add local MS-MPI libraries
+	find_library(MSMPI msmpi PATHS ${MSMPI_ROOT}/lib)
+	message(STATUS "MSMPI: ${MSMPI}")
+	target_link_libraries(parmetis ${MSMPI})
+else(LOCAL_MSMPI)
+	target_link_libraries(parmetis ${MPI_LIBRARIES})
+	set_target_properties(parmetis PROPERTIES LINK_FLAGS "${MPI_LINK_FLAGS}")
+endif()
+
+install(TARGETS parmetis
+  LIBRARY DESTINATION lib
+  RUNTIME DESTINATION lib
+  ARCHIVE DESTINATION lib)
Index: /issm/trunk-jpl/externalpackages/parmetis/configs/4.0/win/msys2/include/parmetis.h
===================================================================
--- /issm/trunk-jpl/externalpackages/parmetis/configs/4.0/win/msys2/include/parmetis.h	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/parmetis/configs/4.0/win/msys2/include/parmetis.h	(revision 26034)
@@ -0,0 +1,159 @@
+/*
+ * Copyright 1997-2003, Regents of the University of Minnesota
+ *
+ * parmetis.h
+ *
+ * This file contains function prototypes and constrant definitions for 
+ * ParMETIS
+ *
+ * Started 7/21/03
+ * George
+ *
+ */
+
+#ifndef __parmetis_h__
+#define __parmetis_h__
+
+#include <mpi.h>
+#include <metis.h>
+
+#if IDXTYPEWIDTH == 32
+  /*#define IDX_T         MPI_INT32_T */
+  #define IDX_T         MPI_INT
+  #define KEEP_BIT      0x40000000L
+#elif IDXTYPEWIDTH == 64
+  /*#define IDX_T         MPI_INT64_T */
+  #define IDX_T         MPI_LONG_LONG_INT
+  #define KEEP_BIT      0x4000000000000000LL
+#else
+  #error "Incorrect user-supplied value fo IDXTYPEWIDTH"
+#endif
+
+
+#if REALTYPEWIDTH == 32
+  #define REAL_T        MPI_FLOAT
+#elif REALTYPEWIDTH == 64
+  #define REAL_T        MPI_DOUBLE
+#else
+  #error "Incorrect user-supplied value fo REALTYPEWIDTH"
+#endif
+
+
+
+/*************************************************************************
+* Constants 
+**************************************************************************/
+#define PARMETIS_MAJOR_VERSION        4
+#define PARMETIS_MINOR_VERSION        0
+#define PARMETIS_SUBMINOR_VERSION     3
+
+
+/*************************************************************************
+* Function prototypes
+**************************************************************************/
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*-------------------------------------------------------------------
+* API Introduced with Release 3.0 (current API) 
+*--------------------------------------------------------------------*/
+int __cdecl ParMETIS_V3_PartKway(
+             idx_t *vtxdist, idx_t *xadj, idx_t *adjncy, idx_t *vwgt, 
+	     idx_t *adjwgt, idx_t *wgtflag, idx_t *numflag, idx_t *ncon, idx_t *nparts, 
+	     real_t *tpwgts, real_t *ubvec, idx_t *options, idx_t *edgecut, idx_t *part, 
+	     MPI_Comm *comm);
+
+int __cdecl ParMETIS_V3_PartGeomKway(
+             idx_t *vtxdist, idx_t *xadj, idx_t *adjncy, idx_t *vwgt, 
+	     idx_t *adjwgt, idx_t *wgtflag, idx_t *numflag, idx_t *ndims, real_t *xyz, 
+	     idx_t *ncon, idx_t *nparts, real_t *tpwgts, real_t *ubvec, idx_t *options, 
+	     idx_t *edgecut, idx_t *part, MPI_Comm *comm);
+
+int __cdecl ParMETIS_V3_PartGeom(
+             idx_t *vtxdist, idx_t *ndims, real_t *xyz, idx_t *part, MPI_Comm *comm);
+
+int __cdecl ParMETIS_V3_RefineKway(
+             idx_t *vtxdist, idx_t *xadj, idx_t *adjncy, idx_t *vwgt, 
+	     idx_t *adjwgt, idx_t *wgtflag, idx_t *numflag, idx_t *ncon, idx_t *nparts, 
+	     real_t *tpwgts, real_t *ubvec, idx_t *options, idx_t *edgecut, 
+	     idx_t *part, MPI_Comm *comm);
+
+int __cdecl ParMETIS_V3_AdaptiveRepart(
+             idx_t *vtxdist, idx_t *xadj, idx_t *adjncy, idx_t *vwgt, 
+	     idx_t *vsize, idx_t *adjwgt, idx_t *wgtflag, idx_t *numflag, idx_t *ncon, 
+	     idx_t *nparts, real_t *tpwgts, real_t *ubvec, real_t *ipc2redist, 
+	     idx_t *options, idx_t *edgecut, idx_t *part, MPI_Comm *comm);
+
+int __cdecl ParMETIS_V3_Mesh2Dual(
+             idx_t *elmdist, idx_t *eptr, idx_t *eind, idx_t *numflag, 
+	     idx_t *ncommonnodes, idx_t **xadj, idx_t **adjncy, MPI_Comm *comm);
+
+int __cdecl ParMETIS_V3_PartMeshKway(
+             idx_t *elmdist, idx_t *eptr, idx_t *eind, idx_t *elmwgt, 
+	     idx_t *wgtflag, idx_t *numflag, idx_t *ncon, idx_t *ncommonnodes, idx_t *nparts, 
+	     real_t *tpwgts, real_t *ubvec, idx_t *options, idx_t *edgecut, idx_t *part, 
+	     MPI_Comm *comm);
+
+int __cdecl ParMETIS_V3_NodeND(
+             idx_t *vtxdist, idx_t *xadj, idx_t *adjncy, idx_t *numflag, 
+	     idx_t *options, idx_t *order, idx_t *sizes, MPI_Comm *comm);
+
+int __cdecl ParMETIS_V32_NodeND(
+             idx_t *vtxdist, idx_t *xadj, idx_t *adjncy, idx_t *vwgt,
+             idx_t *numflag, idx_t *mtype, idx_t *rtype, idx_t *p_nseps, idx_t *s_nseps,
+             real_t *ubfrac, idx_t *seed, idx_t *dbglvl, idx_t *order, 
+             idx_t *sizes, MPI_Comm *comm);
+
+int __cdecl ParMETIS_SerialNodeND(
+             idx_t *vtxdist, idx_t *xadj, idx_t *adjncy, idx_t *numflag, 
+             idx_t *options, idx_t *order, idx_t *sizes, MPI_Comm *comm);
+
+#ifdef __cplusplus
+}
+#endif
+
+
+/*------------------------------------------------------------------------
+* Enum type definitions 
+*-------------------------------------------------------------------------*/
+/*! Operation type codes */
+typedef enum {
+  PARMETIS_OP_KMETIS,
+  PARMETIS_OP_GKMETIS,
+  PARMETIS_OP_GMETIS,
+  PARMETIS_OP_RMETIS,
+  PARMETIS_OP_AMETIS,
+  PARMETIS_OP_OMETIS,
+  PARMETIS_OP_M2DUAL,
+  PARMETIS_OP_MKMETIS
+} pmoptype_et;
+
+
+/*************************************************************************
+* Various constants used for the different parameters
+**************************************************************************/
+/* Matching types */
+#define PARMETIS_MTYPE_LOCAL     1    /* Restrict matching to within processor vertices */
+#define PARMETIS_MTYPE_GLOBAL    2    /* Remote vertices can be matched */
+
+/* Separator refinement types */
+#define PARMETIS_SRTYPE_GREEDY    1    /* Vertices are visted from highest to lowest gain */
+#define PARMETIS_SRTYPE_2PHASE    2    /* Separators are refined in a two-phase fashion using
+                                          PARMETIS_SRTYPE_GREEDY for the 2nd phase */
+
+/* Coupling types for ParMETIS_V3_RefineKway & ParMETIS_V3_AdaptiveRepart */
+#define PARMETIS_PSR_COUPLED    1    /* # of partitions == # of processors */
+#define PARMETIS_PSR_UNCOUPLED  2    /* # of partitions != # of processors */
+
+
+/* Debug levels (fields should be ORed) */
+#define PARMETIS_DBGLVL_TIME        1      /* Perform timing analysis */
+#define PARMETIS_DBGLVL_INFO        2      /* Perform timing analysis */
+#define PARMETIS_DBGLVL_PROGRESS    4      /* Show the coarsening progress */
+#define PARMETIS_DBGLVL_REFINEINFO  8      /* Show info on communication during folding */
+#define PARMETIS_DBGLVL_MATCHINFO   16     /* Show info on matching */
+#define PARMETIS_DBGLVL_RMOVEINFO   32     /* Show info on communication during folding */
+#define PARMETIS_DBGLVL_REMAP       64     /* Determines if remapping will take place */
+
+#endif 
Index: /issm/trunk-jpl/externalpackages/parmetis/configs/4.0/win/msys2/mingw64/libparmetis/CMakeLists.txt
===================================================================
--- /issm/trunk-jpl/externalpackages/parmetis/configs/4.0/win/msys2/mingw64/libparmetis/CMakeLists.txt	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/parmetis/configs/4.0/win/msys2/mingw64/libparmetis/CMakeLists.txt	(revision 26034)
@@ -0,0 +1,32 @@
+# Include directories for library code.
+include_directories(.)
+# Find sources.
+file(GLOB parmetis_sources *.c)
+# Create libparmetis
+add_library(parmetis ${ParMETIS_LIBRARY_TYPE} ${parmetis_sources})
+
+# Link with metis and MPI libraries.
+set(CMAKE_FIND_LIBRARY_PREFIXES "lib" "msys-" "")
+set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll" ".so")
+find_library(METIS metis PATHS ${METIS_PATH}/lib)
+if(METIS)
+	message("-- Found user-supplied METIS: ${METIS}")
+	target_link_libraries(parmetis ${METIS})
+else(METIS)
+	target_link_libraries(parmetis metis)
+endif()
+
+if(LOCAL_MSMPI)
+	# Add local MS-MPI libraries
+	find_library(MSMPI msmpi PATHS ${MSMPI_ROOT}/lib)
+	message(STATUS "MSMPI: ${MSMPI}")
+	target_link_libraries(parmetis ${MSMPI})
+else(LOCAL_MSMPI)
+	target_link_libraries(parmetis ${MPI_LIBRARIES})
+	set_target_properties(parmetis PROPERTIES LINK_FLAGS "${MPI_LINK_FLAGS}")
+endif()
+
+install(TARGETS parmetis
+  LIBRARY DESTINATION lib
+  RUNTIME DESTINATION lib
+  ARCHIVE DESTINATION lib)
Index: /issm/trunk-jpl/externalpackages/parmetis/install-4-win-msys2-gcc-msmpi.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/parmetis/install-4-win-msys2-gcc-msmpi.sh	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/parmetis/install-4-win-msys2-gcc-msmpi.sh	(revision 26034)
@@ -0,0 +1,68 @@
+#!/bin/bash
+set -eu
+
+
+# NOTE:
+# - This configuration depends on the successful installation of METIS via 
+# 	$ISSM_DIR/externalpackages/metis/install-5-win-msys2-gcc-msmpi.sh
+# - METIS_ROOT and MSMPI_ROOT should be available after etc/environment.sh is 
+#	sourced
+#
+
+## Constants
+#
+VER=4.0.3
+
+PREFIX="${ISSM_DIR}/externalpackages/parmetis/install"
+
+GKLIB_ROOT="${METIS_ROOT}/GKlib"
+
+# Cleanup
+rm -rf ${PREFIX} src
+mkdir ${PREFIX} src
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/parmetis-${VER}.tar.gz" "parmetis-${VER}.tar.gz"
+
+# Unpack source
+tar -zxvf parmetis-${VER}.tar.gz
+
+# Move source into 'src' directory
+mv parmetis-${VER}/* src
+rm -rf parmetis-${VER}
+
+# Copy customized source and configuration files to 'src' directory
+cp configs/4.0/win/msys2/CMakeLists.txt src
+cp configs/4.0/win/msys2/Makefile src
+cp configs/4.0/win/msys2/include/parmetis.h src/include
+cp configs/4.0/win/msys2/gcc/libparmetis/CMakeLists.txt src/libparmetis
+
+# Configure
+cd src
+make config \
+	prefix=${PREFIX} \
+	shared=1 \
+	cc=/usr/bin/gcc \
+	cxx=/usr/bin/g++ \
+	metis_path=${METIS_ROOT} \
+	gklib_path=${GKLIB_ROOT} \
+	local_msmpi=1 \
+	msmpi_root=${MSMPI_ROOT}
+
+# Compile and install
+if [ $# -eq 0 ]; then
+	make
+	make install
+else
+	make -j $1
+	make -j $1 install
+fi
+
+# Create link to shared version of library so that libtool can find it
+cd ${PREFIX}/lib
+ln -s ./msys-parmetis.dll ./libparmetis.dll
+
+# Create link to lib directory (PETSc, by default, looks for libraries in 
+# lib64/ if it detects that 64-bit integers are being used)
+cd ${PREFIX}
+ln -s ./lib ./lib64
Index: /issm/trunk-jpl/externalpackages/parmetis/install-4-win-msys2-mingw-msmpi.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/parmetis/install-4-win-msys2-mingw-msmpi.sh	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/parmetis/install-4-win-msys2-mingw-msmpi.sh	(revision 26034)
@@ -0,0 +1,68 @@
+#!/bin/bash
+set -eu
+
+
+# NOTE:
+# - This configuration depends on the successful installation of METIS via 
+# 	$ISSM_DIR/externalpackages/metis/install-5-win-msys2-gcc-msmpi.sh
+# - METIS_ROOT and MSMPI_ROOT should be available after etc/environment.sh is 
+#	sourced
+#
+
+## Constants
+#
+VER=4.0.3
+
+PREFIX="${ISSM_DIR}/externalpackages/parmetis/install"
+
+GKLIB_ROOT="${METIS_ROOT}/GKlib"
+
+# Cleanup
+rm -rf ${PREFIX} src
+mkdir ${PREFIX} src
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/parmetis-${VER}.tar.gz" "parmetis-${VER}.tar.gz"
+
+# Unpack source
+tar -zxvf parmetis-${VER}.tar.gz
+
+# Move source into 'src' directory
+mv parmetis-${VER}/* src
+rm -rf parmetis-${VER}
+
+# Copy customized source and configuration files to 'src' directory
+cp configs/4.0/win/msys2/CMakeLists.txt src
+cp configs/4.0/win/msys2/Makefile src
+cp configs/4.0/win/msys2/include/parmetis.h src/include
+cp configs/4.0/win/msys2/mingw64/libparmetis/CMakeLists.txt src/libparmetis
+
+# Configure
+cd src
+make config \
+	prefix=${PREFIX} \
+	shared=1 \
+	cc=/mingw64/bin/gcc \
+	cxx=/mingw64/bin/g++ \
+	metis_path=${METIS_ROOT} \
+	gklib_path=${GKLIB_ROOT} \
+	local_msmpi=1 \
+	msmpi_root=${MSMPI_ROOT}
+
+# Compile and install
+if [ $# -eq 0 ]; then
+	make
+	make install
+else
+	make -j $1
+	make -j $1 install
+fi
+
+# Create link to lib directory (PETSc, by default, looks for libraries in 
+# lib64/ if it detects that 64-bit integers are being used)
+cd ${PREFIX}
+ln -s ./lib ./lib64
+
+# Create link to shared version of library so that libtool can find it
+cd ${PREFIX}/lib
+ln -s libparmetis.so libparmetis.dll
Index: /issm/trunk-jpl/externalpackages/petsc/install-3.12-win-msys2-gcc-msmpi.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/petsc/install-3.12-win-msys2-gcc-msmpi.sh	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/petsc/install-3.12-win-msys2-gcc-msmpi.sh	(revision 26034)
@@ -0,0 +1,65 @@
+#!/bin/bash
+set -u # NOTE: Do not set -e as it will cause this script to fail when there are errors in underlying Python scripts
+
+
+## Constants
+#
+VER="3.12.3"
+
+PETSC_DIR="${ISSM_DIR}/externalpackages/petsc/src" # DO NOT CHANGE THIS
+PREFIX="${ISSM_DIR}/externalpackages/petsc/install" # Set to location where external package should be installed
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/petsc-lite-${VER}.tar.gz" "petsc-${VER}.tar.gz"
+
+# Unpack source
+tar -zxvf petsc-${VER}.tar.gz
+
+# Cleanup
+rm -rf ${PREFIX} ${PETSC_DIR}
+mkdir ${PETSC_DIR}
+
+# Move source to $PETSC_DIR
+mv petsc-${VER}/* ${PETSC_DIR}
+rm -rf petsc-${VER}
+
+# Configure
+#
+# - Added -fallow-argument-mismatch option to FFLAGS in order to clear "Error: 
+#	Rank mismatch between actual argument at [...]"
+# - Added -fallow-invalid-boz option to FFLAGS in order to clear "Error: BOZ 
+#	literal constant at [...]"
+#
+cd ${PETSC_DIR}
+./config/configure.py \
+	--prefix="${PREFIX}" \
+	--PETSC_DIR="${PETSC_DIR}" \
+	--FFLAGS="-fallow-argument-mismatch -fallow-invalid-boz" \
+	--with-debugging=0 \
+	--with-valgrind=0 \
+	--with-x=0 \
+	--with-ssl=0 \
+	--with-pic=1 \
+	--with-mpiexec="/c/PROGRA~1/MICROS~1/Bin/mpiexec.exe" \
+	--with-mpi-lib="-L${MSMPI_ROOT}/lib -lmsmpi" \
+	--with-mpi-include="${MSMPI_ROOT}/include" \
+	--with-metis-dir=${METIS_ROOT} \
+	--with-parmetis-dir=${PARMETIS_ROOT} \
+	--with-blas-lib="-L${BLAS_ROOT}/lib -lblas" \
+	--known-64-bit-blas-indices=0 \
+	--with-lapack-lib="-L${LAPACK_ROOT}/lib -llapack" \
+	--with-scalapack-dir=${SCALAPACK_ROOT} \
+	--with-mumps-dir=${MUMPS_ROOT}
+
+# Compile and install
+make
+make install
+
+# NOTE:
+# - Hack to recover from failed installation (appears to happen only on Windows 
+#	when reproducing symbolic links in destination directory) rather than 
+#	trying to patch src/config/install.py
+#
+if [ $? -ne 0 ]; then
+	make install
+fi
Index: /issm/trunk-jpl/externalpackages/petsc/install-3.14-win-msys2-mingw-msmpi.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/petsc/install-3.14-win-msys2-mingw-msmpi.sh	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/petsc/install-3.14-win-msys2-mingw-msmpi.sh	(revision 26034)
@@ -0,0 +1,94 @@
+#!/bin/bash
+set -u # NOTE: Do not set -e as it will cause this script to fail when there are errors in underlying Python scripts
+
+# NOTE:
+# - You must install various needed packages with,
+#
+#		pacman -S autoconf make automake-wrapper bison git mingw-w64-x86_64-freeglut mingw-w64-x86_64-toolchain patch python perl pkg-config pkgfile rebase tar time tzcode unzip which mingw-w64-x86_64-libmicroutils
+#
+# then remove the MinGW 64-bit version of Python (and depdendent packages) with,
+#
+#		pacman -R mingw-w64-x86_64-gdb-multiarch mingw-w64-x86_64-gdb mingw-w64-x86_64-python
+#
+# - You must use MSYS2 MinGW 64-bit version of cmake to be able to install 
+#	external packages correctly,
+#
+#		pacman -R mingw-w64-x86_64-cmake
+#
+# Sources:
+# - https://gitlab.com/petsc/petsc/-/issues/820#note_487483240
+#
+
+## Constants
+#
+VER="3.14.4"
+
+MAKEFILE_GENERATOR='-G "MSYS Makefiles"'
+PETSC_DIR="${ISSM_DIR}/externalpackages/petsc/src" # DO NOT CHANGE THIS
+PREFIX="${ISSM_DIR}/externalpackages/petsc/install" # Set to location where external package should be installed
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/petsc-lite-${VER}.tar.gz" "petsc-${VER}.tar.gz"
+
+# Unpack source
+tar -zxvf petsc-${VER}.tar.gz
+
+# Cleanup
+rm -rf ${PREFIX} ${PETSC_DIR}
+mkdir ${PETSC_DIR}
+
+# Move source to $PETSC_DIR
+mv petsc-${VER}/* ${PETSC_DIR}
+rm -rf petsc-${VER}
+
+# Configure
+# - Cannot use --with-fpic option when compiling static libs,
+#
+#		Cannot determine compiler PIC flags if shared libraries is turned off
+#		Either run using --with-shared-libraries or --with-pic=0 and supply the
+#		compiler PIC flag via CFLAGS, CXXXFLAGS, and FCFLAGS
+#
+# - Added -fallow-argument-mismatch option to FFLAGS in order to clear "Error: 
+#	Rank mismatch between actual argument at [...]"
+# - Added -fallow-invalid-boz option to FFLAGS in order to clear "Error: BOZ 
+#	literal constant at [...]"
+# - Argument to --with-mpi-include must be a list or it gets expanded 
+#	incorrectly
+#
+cd ${PETSC_DIR}
+./config/configure.py \
+	--prefix="${PREFIX}" \
+	--PETSC_DIR="${PETSC_DIR}" \
+	--CFLAGS="-fPIC -Wno-error=implicit-function-declaration" \
+	--CXXFLAGS="-fPIC" \
+	--FFLAGS="-fPIC -fallow-argument-mismatch -fallow-invalid-boz" \
+	--with-shared-libraries=0 \
+	--with-debugging=0 \
+	--with-valgrind=0 \
+	--with-x=0 \
+	--with-ssl=0 \
+	--with-proc-filesystem=0 \
+	--with-mpiexec="/c/PROGRA~1/MICROS~1/Bin/mpiexec.exe" \
+	--with-mpi-lib="-L${MSMPI_ROOT}/lib -lmsmpi" \
+	--with-mpi-include="${MSMPI_ROOT}/include" \
+	--download-fblaslapack=1 \
+	--download-metis=1 \
+	--download-metis-cmake-arguments="${MAKEFILE_GENERATOR}" \
+	--download-parmetis=1 \
+	--download-parmetis-cmake-arguments="${MAKEFILE_GENERATOR}" \
+	--download-scalapack=1 \
+	--download-scalapack-cmake-arguments="${MAKEFILE_GENERATOR}" \
+	--download-mumps=1
+
+# Compile and install
+make
+make install
+
+# # NOTE:
+# # - Hack to recover from failed installation (appears to happen only on Windows 
+# #	when reproducing symbolic links in destination directory) rather than 
+# #	trying to patch src/config/install.py
+# #
+# if [ $? -ne 0 ]; then
+# 	make install
+# fi
Index: /issm/trunk-jpl/externalpackages/scalapack/configs/2.1/win/msys2/gcc/msmpi/CMakeLists.txt
===================================================================
--- /issm/trunk-jpl/externalpackages/scalapack/configs/2.1/win/msys2/gcc/msmpi/CMakeLists.txt	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/scalapack/configs/2.1/win/msys2/gcc/msmpi/CMakeLists.txt	(revision 26034)
@@ -0,0 +1,277 @@
+cmake_minimum_required(VERSION 2.8)
+project(SCALAPACK C Fortran)
+# Configure the warning and code coverage suppression file
+configure_file( 
+  "${SCALAPACK_SOURCE_DIR}/CMAKE/CTestCustom.cmake.in"
+  "${SCALAPACK_BINARY_DIR}/CTestCustom.cmake"
+  COPYONLY
+)
+
+# Add the CMake directory for custon CMake modules
+set(CMAKE_MODULE_PATH "${SCALAPACK_SOURCE_DIR}/CMAKE" ${CMAKE_MODULE_PATH})
+
+if (UNIX)
+   if ( "${CMAKE_Fortran_COMPILER}" MATCHES "ifort" )
+  set( CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fltconsistency -fp_port" )
+   endif ()
+endif ()
+
+#
+#   MPI
+#
+if (LOCAL_MSMPI)
+  set(CMAKE_FIND_LIBRARY_PREFIXES "msys-" "")
+  set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll")
+  find_library(MSMPI msmpi PATHS ${MSMPI_ROOT}/lib)
+  if(MSMPI)
+    message(STATUS "--> Using MS-MPI library ${MSMPI}")
+  else(MSMPI)
+    message(FATAL_ERROR "MS-MPI library not found at ${MSMPI_ROOT}/lib")
+  endif()
+
+  include_directories("${MSMPI_ROOT}/include")
+endif()
+
+if (UNIX)
+   if ( "${CMAKE_Fortran_COMPILER}" MATCHES "ifort" )
+  set( CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fltconsistency -fp_port" )
+   endif ()
+endif ()
+
+macro(SCALAPACK_install_library lib)
+  install(TARGETS ${lib} EXPORT scalapack-targets
+    ARCHIVE DESTINATION lib${LIB_SUFFIX}
+    LIBRARY DESTINATION lib${LIB_SUFFIX}
+    RUNTIME DESTINATION Testing
+  )
+endmacro()
+
+# --------------------------------------------------
+# Testing
+SET(DART_TESTING_TIMEOUT 600)
+
+enable_testing()
+include(CTest)
+enable_testing()
+# --------------------------------------------------
+
+# Organize output files.  On Windows this also keeps .dll files next
+# to the .exe files that need them, making tests easy to run.
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${SCALAPACK_BINARY_DIR}/TESTING)
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${SCALAPACK_BINARY_DIR}/lib)
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${SCALAPACK_BINARY_DIR}/lib)
+
+# --------------------------------------------------
+# Check for any necessary platform specific compiler flags
+include( CheckBLACSCompilerFlags )
+CheckBLACSCompilerFlags()
+
+set(prefix ${CMAKE_INSTALL_PREFIX})
+set(libdir ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX})
+set(PKG_CONFIG_DIR ${libdir}/pkgconfig)
+
+# --------------------------------------------------
+# BLACS Internal variables
+#
+#   Fortran Mangling, MPI Tests and BLACS settings
+#
+include(FortranMangling)
+COMPILE(install_COMPILED)
+
+FORTRAN_MANGLING(CDEFS)
+#MESSAGE(STATUS "Setting CDEFS = ${CDEFS}")
+#set(CDEFS ${CDEFS} CACHE STRING "Fortran Mangling" FORCE)
+MESSAGE(STATUS "=========")
+
+# --------------------------------------------------
+# Compiler Flags
+ADD_DEFINITIONS( "-D${CDEFS}")
+
+# --------------------------------------------------
+# ScaLAPACK needs BLAS and LAPACK
+
+option(USE_OPTIMIZED_LAPACK_BLAS "Whether or not to search for optimized LAPACK and BLAS libraries on your machine (if not found, Reference LAPACK and BLAS will be downloaded and installed)" ON)
+
+message(STATUS "CHECKING BLAS AND LAPACK LIBRARIES")
+
+IF(BLAS_LIBRARIES)
+  include(CheckFortranFunctionExists)
+  message(STATUS "--> BLAS supplied by user is ${BLAS_LIBRARIES}.")
+  set(CMAKE_REQUIRED_LIBRARIES ${BLAS_LIBRARIES})
+  CHECK_FORTRAN_FUNCTION_EXISTS("dgemm" BLAS_FOUND)
+  unset(CMAKE_REQUIRED_LIBRARIES)
+  message(STATUS "--> BLAS routine dgemm is found: ${BLAS_FOUND}.")
+ENDIF()
+
+IF(LAPACK_LIBRARIES)
+  include(CheckFortranFunctionExists)
+  message(STATUS "--> LAPACK supplied by user is ${LAPACK_LIBRARIES}.")
+  set(CMAKE_REQUIRED_LIBRARIES ${LAPACK_LIBRARIES})
+  CHECK_FORTRAN_FUNCTION_EXISTS("dgesv" LAPACK_FOUND)
+  unset(CMAKE_REQUIRED_LIBRARIES)
+  message(STATUS "--> LAPACK routine dgesv is found: ${LAPACK_FOUND}.")
+ENDIF()
+
+if(BLAS_FOUND AND LAPACK_FOUND)
+  message(STATUS "--> LAPACK supplied by user is WORKING, will use ${LAPACK_LIBRARIES}.")
+else(LAPACK_FOUND)
+   if(USE_OPTIMIZED_LAPACK_BLAS)
+      message(STATUS "--> Searching for optimized LAPACK and BLAS libraries on your machine.")
+      find_package(LAPACK)
+   ENDIF(USE_OPTIMIZED_LAPACK_BLAS)
+   if(NOT LAPACK_FOUND)
+      message(STATUS "--> LAPACK and BLAS were not found. Reference LAPACK and BLAS will be downloaded and installed")
+      include(ExternalProject)
+      ExternalProject_Add(
+		lapack
+		URL http://www.netlib.org/lapack/lapack.tgz
+		CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=${SCALAPACK_BINARY_DIR}
+        PREFIX ${SCALAPACK_BINARY_DIR}/dependencies
+      )
+	  if (UNIX)
+         SET(LAPACK_LIBRARIES ${SCALAPACK_BINARY_DIR}/lib/liblapack.a CACHE STRING "LAPACK library" FORCE)
+         SET(BLAS_LIBRARIES ${SCALAPACK_BINARY_DIR}/lib/libblas.a CACHE STRING "BLAS library" FORCE)
+	  else (UNIX) # On Windows
+         SET(LAPACK_LIBRARIES ${SCALAPACK_BINARY_DIR}/lib/liblapack.lib CACHE STRING "LAPACK library" FORCE)
+         SET(BLAS_LIBRARIES ${SCALAPACK_BINARY_DIR}/lib/libblas.lib CACHE STRING "BLAS library" FORCE)
+      endif (UNIX)
+   ENDIF()
+ENDIF()
+
+message(STATUS "BLAS library: ${BLAS_LIBRARIES}")
+message(STATUS "LAPACK library: ${LAPACK_LIBRARIES}")
+
+MESSAGE(STATUS "=========")
+
+# --------------------------------------------------
+# By default static library
+OPTION(BUILD_SHARED_LIBS "Build shared libraries" OFF )
+OPTION(BUILD_STATIC_LIBS "Build static libraries" ON )
+
+# --------------------------------------------------
+# Subdirectories that need to be processed
+   
+macro(append_subdir_files variable dirname)
+get_directory_property(holder DIRECTORY ${dirname} DEFINITION ${variable})
+foreach(depfile ${holder})
+  list(APPEND ${variable} "${dirname}/${depfile}")
+endforeach()
+endmacro()
+
+
+#
+# BLACS
+#
+add_subdirectory(BLACS)
+append_subdir_files(blacs "BLACS/SRC")
+
+#
+# TOOLS
+#
+add_subdirectory(TOOLS)
+append_subdir_files(tools TOOLS)
+append_subdir_files(tools-C TOOLS)
+append_subdir_files(extra_lapack "TOOLS/LAPACK")
+
+#
+# PBLAS
+#
+add_subdirectory(PBLAS)
+append_subdir_files(pblas "PBLAS/SRC")
+append_subdir_files(pblas-F "PBLAS/SRC")
+append_subdir_files(pbblas "PBLAS/SRC/PBBLAS")
+append_subdir_files(ptzblas "PBLAS/SRC/PTZBLAS")
+append_subdir_files(ptools "PBLAS/SRC/PTOOLS")
+
+#
+# REDIST
+#
+add_subdirectory(REDIST)
+append_subdir_files(redist "REDIST/SRC")
+
+#
+# SRC
+#
+add_subdirectory(SRC)
+append_subdir_files(src "SRC")
+append_subdir_files(src-C "SRC")
+
+if (UNIX)
+   add_library(scalapack ${blacs} ${tools} ${tools-C} ${extra_lapack} ${pblas} ${pblas-F} ${ptzblas} ${ptools} ${pbblas} ${redist} ${src} ${src-C})
+   target_link_libraries( scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MSMPI})
+   scalapack_install_library(scalapack)
+else (UNIX) # Need to separate Fortran and C Code
+   OPTION(BUILD_SHARED_LIBS "Build shared libraries" ON )
+   add_library(scalapack ${blacs} ${tools-C} ${pblas} ${ptools} ${redist} ${src-C})
+   target_link_libraries( scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MSMPI})
+   add_library(scalapack-F ${pblas-F} ${pbblas} ${ptzblas} ${tools} ${src} ${extra_lapack})
+   target_link_libraries( scalapack-F ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MSMPI})
+   scalapack_install_library(scalapack)
+   scalapack_install_library(scalapack-F)
+endif (UNIX)
+add_subdirectory(TESTING)
+
+# --------------------------------------------------
+# CPACK Packaging 
+
+SET(CPACK_PACKAGE_NAME "ScaLAPACK")
+SET(CPACK_PACKAGE_VENDOR "University of Tennessee, Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd")
+SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "ScaLAPACK- Linear Algebra Package")
+set(SCALAPACK_VERSION 2.0.2)
+set(CPACK_PACKAGE_VERSION_MAJOR 2)
+set(CPACK_PACKAGE_VERSION_MINOR 0)
+set(CPACK_PACKAGE_VERSION_PATCH 2)
+set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
+SET(CPACK_PACKAGE_INSTALL_DIRECTORY "SCALAPACK")
+IF(WIN32 AND NOT UNIX)
+  # There is a bug in NSI that does not handle full unix paths properly. Make
+  # sure there is at least one set of four (4) backslashes.
+  SET(CPACK_NSIS_HELP_LINK "http:\\\\\\\\http://icl.cs.utk.edu/lapack-forum")
+  SET(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\www.netlib.org/scalapack")
+  SET(CPACK_NSIS_CONTACT "scalapack@eecs.utk.edu")
+  SET(CPACK_NSIS_MODIFY_PATH ON)
+  SET(CPACK_NSIS_DISPLAY_NAME "SCALAPACK-${SCALAPACK_VERSION}")
+  set(CPACK_PACKAGE_RELOCATABLE "true")
+ELSE(WIN32 AND NOT UNIX)
+  SET(CPACK_GENERATOR "TGZ")
+  SET(CPACK_SOURCE_GENERATOR TGZ)
+  SET(CPACK_SOURCE_PACKAGE_FILE_NAME "scalapack-${SCALAPACK_VERSION}" )
+  SET(CPACK_SOURCE_IGNORE_FILES ~$ .svn ${CPACK_SOURCE_IGNORE_FILES} )
+ENDIF(WIN32 AND NOT UNIX)
+INCLUDE(CPack)
+
+
+# --------------------------------------------------
+
+
+export(TARGETS scalapack FILE scalapack-targets.cmake)
+
+if( NOT LAPACK_FOUND )
+ install(FILES
+  ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES}
+  DESTINATION lib
+   )
+endif( NOT LAPACK_FOUND )
+
+configure_file(${SCALAPACK_SOURCE_DIR}/CMAKE/scalapack-config-version.cmake.in
+  ${SCALAPACK_BINARY_DIR}/scalapack-config-version.cmake @ONLY)
+configure_file(${SCALAPACK_SOURCE_DIR}/CMAKE/scalapack-config-build.cmake.in
+  ${SCALAPACK_BINARY_DIR}/scalapack-config.cmake @ONLY)
+
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scalapack.pc.in ${CMAKE_CURRENT_BINARY_DIR}/scalapack.pc)
+ install(FILES
+  ${CMAKE_CURRENT_BINARY_DIR}/scalapack.pc
+  DESTINATION ${PKG_CONFIG_DIR}
+   )
+
+configure_file(${SCALAPACK_SOURCE_DIR}/CMAKE/scalapack-config-install.cmake.in
+  ${SCALAPACK_BINARY_DIR}/CMakeFiles/scalapack-config.cmake @ONLY)
+install(FILES
+  ${SCALAPACK_BINARY_DIR}/CMakeFiles/scalapack-config.cmake
+  ${SCALAPACK_BINARY_DIR}/scalapack-config-version.cmake
+  DESTINATION lib/cmake/scalapack-${SCALAPACK_VERSION}
+  )
+
+install(EXPORT scalapack-targets
+  DESTINATION lib/cmake/scalapack-${SCALAPACK_VERSION})
+
Index: /issm/trunk-jpl/externalpackages/scalapack/configs/2.1/win/msys2/mingw64/msmpi/BLACS/SRC/src-C.c.in
===================================================================
--- /issm/trunk-jpl/externalpackages/scalapack/configs/2.1/win/msys2/mingw64/msmpi/BLACS/SRC/src-C.c.in	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/scalapack/configs/2.1/win/msys2/mingw64/msmpi/BLACS/SRC/src-C.c.in	(revision 26034)
@@ -0,0 +1,2 @@
+#define CallFromC
+#include "./@src@"
Index: /issm/trunk-jpl/externalpackages/scalapack/configs/2.1/win/msys2/mingw64/msmpi/CMakeLists.txt
===================================================================
--- /issm/trunk-jpl/externalpackages/scalapack/configs/2.1/win/msys2/mingw64/msmpi/CMakeLists.txt	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/scalapack/configs/2.1/win/msys2/mingw64/msmpi/CMakeLists.txt	(revision 26034)
@@ -0,0 +1,323 @@
+cmake_minimum_required(VERSION 2.8)
+project(SCALAPACK C Fortran)
+# Configure the warning and code coverage suppression file
+configure_file( 
+  "${SCALAPACK_SOURCE_DIR}/CMAKE/CTestCustom.cmake.in"
+  "${SCALAPACK_BINARY_DIR}/CTestCustom.cmake"
+  COPYONLY
+)
+
+# Add the CMake directory for custon CMake modules
+set(CMAKE_MODULE_PATH "${SCALAPACK_SOURCE_DIR}/CMAKE" ${CMAKE_MODULE_PATH})
+
+if (UNIX)
+   if ( "${CMAKE_Fortran_COMPILER}" MATCHES "ifort" )
+  set( CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fltconsistency -fp_port" )
+   endif ()
+endif ()
+
+#
+#   MPI
+#
+# #set(MPI_BASE_DIR "/Users/julie/opt/openmpi/" CACHE PATH "MPI Path")
+# #set(MPI_BASE_DIR "/Users/julie/opt/mpich2/" CACHE PATH "MPI Path")
+# set(CMAKE_PREFIX_PATH "${MPI_BASE_DIR};${CMAKE_PREFIX_PATH}")
+# #set(MPI_COMPILER ${MPI_BASE_DIR}/bin/mpicc)
+
+# find_package(MPI)
+# if (MPI_FOUND)
+#    message(STATUS "Found MPI_LIBRARY : ${MPI_FOUND} ")
+#    INCLUDE_DIRECTORIES(${MPI_INCLUDE_PATH})
+
+#    find_program(MPI_C_COMPILER
+#       NAMES mpicc
+#       HINTS "${MPI_BASE_DIR}"
+#       PATH_SUFFIXES bin
+#       DOC "MPI C compiler.")
+#    MARK_AS_ADVANCED(MPI_C_COMPILER)
+#    if ("${MPI_C_COMPILER}" STREQUAL "MPI_C_COMPILER-NOTFOUND")
+#       message(ERROR "--> MPI C Compiler NOT FOUND (please set MPI_BASE_DIR accordingly")
+#    else()
+#       message(STATUS "--> MPI C Compiler : ${MPI_C_COMPILER}")
+#       SET(CMAKE_C_COMPILER "${MPI_C_COMPILER}")
+#       message(STATUS "--> C Compiler : ${CMAKE_C_COMPILER}")
+#    endif()
+#    find_program(MPI_Fortran_COMPILER
+#       NAMES mpif77
+#       HINTS "${MPI_BASE_DIR}"
+#       PATH_SUFFIXES bin
+#       DOC "MPI Fortran compiler.")
+#    MARK_AS_ADVANCED(MPI_Fortran_COMPILER)
+   
+   
+
+#    if ("${MPI_Fortran_COMPILER}" STREQUAL "MPI_Fortran_COMPILER-NOTFOUND")
+#       message(ERROR "--> MPI Fortran Compiler NOT FOUND (please set MPI_BASE_DIR accordingly")
+#    else()
+#       message(STATUS "--> MPI Fortran Compiler : ${MPI_Fortran_COMPILER}")
+#       SET(Fortran_COMPILER "${CMAKE_Fortran_COMPILER}")
+#       SET(CMAKE_Fortran_COMPILER "${MPI_Fortran_COMPILER}")
+#       message(STATUS "--> Fortran Compiler : ${CMAKE_Fortran_COMPILER}")
+#    endif()
+   
+# else()
+#    message(STATUS "Found MPI_LIBRARY : ${MPI_FOUND} ")
+#    set(MPI_BASE_DIR ${MPI_BASE_DIR} CACHE PATH "MPI Path")
+#    UNSET(MPIEXEC CACHE)
+#    UNSET(MPIEXEC_POSTFLAGS CACHE)
+#    UNSET(MPIEXEC_PREFLAGS CACHE)
+#    UNSET(MPIEXEC_MAX_NUMPROCS CACHE)
+#    UNSET(MPIEXEC_NUMPROC_FLAG CACHE)
+#    UNSET(MPI_COMPILE_FLAGS CACHE)
+#    UNSET(MPI_LINK_FLAGS CACHE)
+#    UNSET(MPI_INCLUDE_PATH CACHE)
+#    message(FATAL_ERROR "--> MPI Library NOT FOUND -- please set MPI_BASE_DIR accordingly --")
+# endif()
+
+if (LOCAL_MSMPI)
+  set(CMAKE_FIND_LIBRARY_PREFIXES "msys-" "")
+  set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll")
+  find_library(MSMPI msmpi PATHS "${MSMPI_ROOT}/lib")
+  if(MSMPI)
+    message(STATUS "--> Using MS-MPI library ${MSMPI}")
+  else(MSMPI)
+    message(FATAL_ERROR "MS-MPI library not found at ${MSMPI_PATH}/lib")
+  endif()
+
+  include_directories("${MSMPI_ROOT}/include")
+endif()
+
+if (UNIX)
+   if ( "${CMAKE_Fortran_COMPILER}" MATCHES "ifort" )
+  set( CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fltconsistency -fp_port" )
+   endif ()
+endif ()
+
+macro(SCALAPACK_install_library lib)
+  install(TARGETS ${lib} EXPORT scalapack-targets
+    ARCHIVE DESTINATION lib${LIB_SUFFIX}
+    LIBRARY DESTINATION lib${LIB_SUFFIX}
+    RUNTIME DESTINATION Testing
+  )
+endmacro()
+
+# --------------------------------------------------
+# Testing
+SET(DART_TESTING_TIMEOUT 600)
+
+enable_testing()
+include(CTest)
+enable_testing()
+# --------------------------------------------------
+
+# Organize output files.  On Windows this also keeps .dll files next
+# to the .exe files that need them, making tests easy to run.
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${SCALAPACK_BINARY_DIR}/TESTING)
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${SCALAPACK_BINARY_DIR}/lib)
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${SCALAPACK_BINARY_DIR}/lib)
+
+# --------------------------------------------------
+# Check for any necessary platform specific compiler flags
+include( CheckBLACSCompilerFlags )
+CheckBLACSCompilerFlags()
+
+set(prefix ${CMAKE_INSTALL_PREFIX})
+set(libdir ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX})
+set(PKG_CONFIG_DIR ${libdir}/pkgconfig)
+
+# --------------------------------------------------
+# BLACS Internal variables
+#
+#   Fortran Mangling, MPI Tests and BLACS settings
+#
+include(FortranMangling)
+COMPILE(install_COMPILED)
+
+FORTRAN_MANGLING(CDEFS)
+#MESSAGE(STATUS "Setting CDEFS = ${CDEFS}")
+#set(CDEFS ${CDEFS} CACHE STRING "Fortran Mangling" FORCE)
+MESSAGE(STATUS "=========")
+
+# --------------------------------------------------
+# Compiler Flags
+ADD_DEFINITIONS( "-D${CDEFS}")
+
+# --------------------------------------------------
+# ScaLAPACK needs BLAS and LAPACK
+
+option(USE_OPTIMIZED_LAPACK_BLAS "Whether or not to search for optimized LAPACK and BLAS libraries on your machine (if not found, Reference LAPACK and BLAS will be downloaded and installed)" ON)
+
+message(STATUS "CHECKING BLAS AND LAPACK LIBRARIES")
+
+IF(LAPACK_LIBRARIES)
+  include(CheckFortranFunctionExists)
+  message(STATUS "--> LAPACK supplied by user is ${LAPACK_LIBRARIES}.")
+  set(CMAKE_REQUIRED_LIBRARIES ${LAPACK_LIBRARIES})
+  CHECK_FORTRAN_FUNCTION_EXISTS("dgesv" LAPACK_FOUND)
+  unset( CMAKE_REQUIRED_LIBRARIES )
+  message(STATUS "--> LAPACK routine dgesv is found: ${LAPACK_FOUND}.")
+ENDIF()
+
+if(LAPACK_FOUND)
+      message(STATUS "--> LAPACK supplied by user is WORKING, will use ${LAPACK_LIBRARIES}.")
+else(LAPACK_FOUND)
+   if(USE_OPTIMIZED_LAPACK_BLAS)
+      message(STATUS "--> Searching for optimized LAPACK and BLAS libraries on your machine.")
+      find_package(LAPACK)
+   ENDIF(USE_OPTIMIZED_LAPACK_BLAS)
+   if(NOT LAPACK_FOUND)
+      message(STATUS "--> LAPACK and BLAS were not found. Reference LAPACK and BLAS will be downloaded and installed")
+      include(ExternalProject)
+      ExternalProject_Add(
+		lapack
+		URL http://www.netlib.org/lapack/lapack.tgz
+		CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=${SCALAPACK_BINARY_DIR}
+        PREFIX ${SCALAPACK_BINARY_DIR}/dependencies
+      )
+	  if (UNIX)
+         SET(LAPACK_LIBRARIES ${SCALAPACK_BINARY_DIR}/lib/liblapack.a CACHE STRING "LAPACK library" FORCE)
+         SET(BLAS_LIBRARIES ${SCALAPACK_BINARY_DIR}/lib/libblas.a CACHE STRING "BLAS library" FORCE)
+	  else (UNIX) # On Windows
+         SET(LAPACK_LIBRARIES ${SCALAPACK_BINARY_DIR}/lib/liblapack.lib CACHE STRING "LAPACK library" FORCE)
+         SET(BLAS_LIBRARIES ${SCALAPACK_BINARY_DIR}/lib/libblas.lib CACHE STRING "BLAS library" FORCE)
+      endif (UNIX)
+   ENDIF()
+ENDIF()
+
+message(STATUS "BLAS library: ${BLAS_LIBRARIES}")
+message(STATUS "LAPACK library: ${LAPACK_LIBRARIES}")
+
+MESSAGE(STATUS "=========")
+
+# --------------------------------------------------
+# By default static library
+OPTION(BUILD_SHARED_LIBS "Build shared libraries" OFF )
+OPTION(BUILD_STATIC_LIBS "Build static libraries" ON )
+
+# --------------------------------------------------
+# Subdirectories that need to be processed
+   
+macro(append_subdir_files variable dirname)
+get_directory_property(holder DIRECTORY ${dirname} DEFINITION ${variable})
+foreach(depfile ${holder})
+  list(APPEND ${variable} "${dirname}/${depfile}")
+endforeach()
+endmacro()
+
+
+#
+# BLACS
+#
+add_subdirectory(BLACS)
+append_subdir_files(blacs "BLACS/SRC")
+
+#
+# TOOLS
+#
+add_subdirectory(TOOLS)
+append_subdir_files(tools TOOLS)
+append_subdir_files(tools-C TOOLS)
+append_subdir_files(extra_lapack "TOOLS/LAPACK")
+
+#
+# PBLAS
+#
+add_subdirectory(PBLAS)
+append_subdir_files(pblas "PBLAS/SRC")
+append_subdir_files(pblas-F "PBLAS/SRC")
+append_subdir_files(pbblas "PBLAS/SRC/PBBLAS")
+append_subdir_files(ptzblas "PBLAS/SRC/PTZBLAS")
+append_subdir_files(ptools "PBLAS/SRC/PTOOLS")
+
+#
+# REDIST
+#
+add_subdirectory(REDIST)
+append_subdir_files(redist "REDIST/SRC")
+
+#
+# SRC
+#
+add_subdirectory(SRC)
+append_subdir_files(src "SRC")
+append_subdir_files(src-C "SRC")
+
+# if (UNIX)
+   add_library(scalapack ${blacs} ${tools} ${tools-C} ${extra_lapack} ${pblas} ${pblas-F} ${ptzblas} ${ptools} ${pbblas} ${redist} ${src} ${src-C})
+   target_link_libraries( scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MSMPI})
+   scalapack_install_library(scalapack)
+# else (UNIX) # Need to separate Fortran and C Code
+#    OPTION(BUILD_SHARED_LIBS "Build shared libraries" ON )
+#    add_library(scalapack ${blacs} ${tools-C} ${pblas} ${ptools} ${redist} ${src-C})
+#    target_link_libraries( scalapack ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
+#    add_library(scalapack-F ${blacs} ${pblas-F} ${pbblas} ${ptzblas} ${tools} ${src} ${extra_lapack} )
+#    target_link_libraries( scalapack-F ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES} ${MSMPI})
+#    scalapack_install_library(scalapack)
+#    scalapack_install_library(scalapack-F)
+# endif (UNIX)
+add_subdirectory(TESTING)
+
+# --------------------------------------------------
+# CPACK Packaging 
+
+SET(CPACK_PACKAGE_NAME "ScaLAPACK")
+SET(CPACK_PACKAGE_VENDOR "University of Tennessee, Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd")
+SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "ScaLAPACK- Linear Algebra Package")
+set(SCALAPACK_VERSION 2.1.0)
+set(CPACK_PACKAGE_VERSION_MAJOR 2)
+set(CPACK_PACKAGE_VERSION_MINOR 1)
+set(CPACK_PACKAGE_VERSION_PATCH 0)
+set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
+SET(CPACK_PACKAGE_INSTALL_DIRECTORY "SCALAPACK")
+IF(WIN32 AND NOT UNIX)
+  # There is a bug in NSI that does not handle full unix paths properly. Make
+  # sure there is at least one set of four (4) backlasshes.
+  SET(CPACK_NSIS_HELP_LINK "http:\\\\\\\\http://icl.cs.utk.edu/lapack-forum")
+  SET(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\www.netlib.org/scalapack")
+  SET(CPACK_NSIS_CONTACT "scalapack@eecs.utk.edu")
+  SET(CPACK_NSIS_MODIFY_PATH ON)
+  SET(CPACK_NSIS_DISPLAY_NAME "SCALAPACK-${SCALAPACK_VERSION}")
+  set(CPACK_PACKAGE_RELOCATABLE "true")
+ELSE(WIN32 AND NOT UNIX)
+  SET(CPACK_GENERATOR "TGZ")
+  SET(CPACK_SOURCE_GENERATOR TGZ)
+  SET(CPACK_SOURCE_PACKAGE_FILE_NAME "scalapack-${SCALAPACK_VERSION}" )
+  SET(CPACK_SOURCE_IGNORE_FILES ~$ .svn ${CPACK_SOURCE_IGNORE_FILES} )
+ENDIF(WIN32 AND NOT UNIX)
+INCLUDE(CPack)
+
+
+# --------------------------------------------------
+
+
+export(TARGETS scalapack FILE scalapack-targets.cmake)
+
+if( NOT LAPACK_FOUND )
+ install(FILES
+  ${BLAS_LIBRARIES} ${LAPACK_LIBRARIES}
+  DESTINATION lib
+   )
+endif( NOT LAPACK_FOUND )
+
+configure_file(${SCALAPACK_SOURCE_DIR}/CMAKE/scalapack-config-version.cmake.in
+  ${SCALAPACK_BINARY_DIR}/scalapack-config-version.cmake @ONLY)
+configure_file(${SCALAPACK_SOURCE_DIR}/CMAKE/scalapack-config-build.cmake.in
+  ${SCALAPACK_BINARY_DIR}/scalapack-config.cmake @ONLY)
+
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scalapack.pc.in ${CMAKE_CURRENT_BINARY_DIR}/scalapack.pc)
+ install(FILES
+  ${CMAKE_CURRENT_BINARY_DIR}/scalapack.pc
+  DESTINATION ${PKG_CONFIG_DIR}
+   )
+
+configure_file(${SCALAPACK_SOURCE_DIR}/CMAKE/scalapack-config-install.cmake.in
+  ${SCALAPACK_BINARY_DIR}/CMakeFiles/scalapack-config.cmake @ONLY)
+install(FILES
+  ${SCALAPACK_BINARY_DIR}/CMakeFiles/scalapack-config.cmake
+  ${SCALAPACK_BINARY_DIR}/scalapack-config-version.cmake
+  DESTINATION lib/cmake/scalapack-${SCALAPACK_VERSION}
+  )
+
+install(EXPORT scalapack-targets
+  DESTINATION lib/cmake/scalapack-${SCALAPACK_VERSION})
+
Index: /issm/trunk-jpl/externalpackages/scalapack/install-2-win-msys2-gcc-msmpi.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/scalapack/install-2-win-msys2-gcc-msmpi.sh	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/scalapack/install-2-win-msys2-gcc-msmpi.sh	(revision 26034)
@@ -0,0 +1,70 @@
+#!/bin/bash
+set -eu
+
+
+# NOTE:
+# - This configuration depends on the successful installation of METIS via 
+# 	$ISSM_DIR/externalpackages/metis/install-5-win-msys2-gcc-msmpi.sh
+# - MSMPI_ROOT should be available after etc/environment.sh is 
+#	sourced
+#
+
+## Constants
+#
+VER=2.1.0
+
+PREFIX="${ISSM_DIR}/externalpackages/scalapack/install"
+
+# Cleanup
+rm -rf ${PREFIX} src
+mkdir ${PREFIX} src
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/scalapack-${VER}.tgz" "scalapack-${VER}.tgz"
+
+# Unpack source
+tar -zxvf scalapack-${VER}.tgz
+
+# Move source into 'src' directory
+mv scalapack-${VER}/* src
+rm -rf scalapack-${VER}
+
+# Copy customized source and configuration files to 'src' directory
+cp configs/2.1/win/msys2/gcc/msmpi/CMakeLists.txt src
+
+# Compile
+#
+# NOTE:
+# - The CMakeLists.txt copied above is really just hacked from the original to 
+#	push through library and include paths, especially in the case of the 
+#	MS-MPI assets
+# - Added -fallow-argument-mismatch option to CMAKE_Fortran_FLAGS in order to 
+#	clear "Error: Rank mismatch between actual argument at [...]"
+# - Added -fallow-invalid-boz option to CMAKE_Fortran_FLAGS in order to clear 
+#	"Error: BOZ literal constant at [...]"
+#
+# TODO:
+# - Modify CMakeLists.txt to allow for more flexibility in configuration
+#
+cd src
+cmake \
+	-DCMAKE_INSTALL_PREFIX=${PREFIX} \
+	-DBUILD_SHARED_LIBS=ON \
+	-DCMAKE_C_COMPILER=/usr/bin/gcc \
+	-DCMAKE_Fortran_COMPILER=/usr/bin/gfortran \
+	-DCMAKE_Fortran_FLAGS="-fallow-argument-mismatch -fallow-invalid-boz" \
+	-DLOCAL_MSMPI=1 \
+	-DMSMPI_ROOT="${MSMPI_ROOT}" \
+	-DBLAS_LIBRARIES="-L${BLAS_ROOT}/lib -lblas" \
+	-DLAPACK_LIBRARIES="-L${LAPACK_ROOT}/lib -llapack" \
+	.
+
+make
+
+# Install
+mkdir ${PREFIX}/lib
+cp TESTING/msys-scalapack.dll ${PREFIX}/lib
+
+# Create link to shared version of library so that libtool can find it
+cd ${PREFIX}/lib
+ln -s ./msys-scalapack.dll ./libscalapack.dll
Index: /issm/trunk-jpl/externalpackages/scalapack/install-2-win-msys2-mingw-msmpi.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/scalapack/install-2-win-msys2-mingw-msmpi.sh	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/scalapack/install-2-win-msys2-mingw-msmpi.sh	(revision 26034)
@@ -0,0 +1,73 @@
+#!/bin/bash
+set -eu
+
+
+# NOTE:
+# - This configuration depends on the successful installation of METIS via 
+# 	$ISSM_DIR/externalpackages/metis/install-5-win-msys2-gcc-msmpi.sh
+# - MSMPI_ROOT should be available after etc/environment.sh is 
+#	sourced
+#
+
+## Constants
+#
+VER=2.1.0
+
+PREFIX="${ISSM_DIR}/externalpackages/scalapack/install"
+
+# Cleanup
+rm -rf ${PREFIX} src
+mkdir ${PREFIX} src
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/scalapack-${VER}.tgz" "scalapack-${VER}.tgz"
+
+# Unpack source
+tar -zxvf scalapack-${VER}.tgz
+
+# Move source into 'src' directory
+mv scalapack-${VER}/* src
+rm -rf scalapack-${VER}
+
+# Copy customized source and configuration files to 'src' directory
+cp configs/2.1/win/msys2/mingw64/msmpi/CMakeLists.txt src
+cp configs/2.1/win/msys2/mingw64/msmpi/BLACS/SRC/src-C.c.in src/BLACS/SRC
+
+# Compile
+#
+# NOTE:
+# - The CMakeLists.txt copied above is really just hacked from the original to 
+#	push through library and include paths, especially in the case of the 
+#	MS-MPI assets
+# - Added -fallow-argument-mismatch option to CMAKE_Fortran_FLAGS in order to 
+#	clear "Error: Rank mismatch between actual argument at [...]"
+# - Added -fallow-invalid-boz option to CMAKE_Fortran_FLAGS in order to clear 
+#	"Error: BOZ literal constant at [...]"
+#
+# TODO:
+# - Modify CMakeLists.txt to allow for more flexibility in configuration
+#
+cd src
+cmake \
+	-DCMAKE_INSTALL_PREFIX=${PREFIX} \
+	-DBUILD_SHARED_LIBS=ON \
+	-DBUILD_STATIC_LIBS=OFF \
+	-DCMAKE_C_COMPILER=/mingw64/bin/gcc \
+	-DCMAKE_C_FLAGS="-Wno-error=implicit-function-declaration" \
+	-DCMAKE_Fortran_COMPILER=/mingw64/bin/gfortran \
+	-DCMAKE_Fortran_FLAGS="-fallow-argument-mismatch -fallow-invalid-boz" \
+	-DLOCAL_MSMPI=1 \
+	-DMSMPI_ROOT="${MSMPI_ROOT}" \
+	-DBLAS_LIBRARIES="-L${BLAS_ROOT}/lib -lblas" \
+	-DLAPACK_LIBRARIES="-L${LAPACK_ROOT}/lib -llapack" \
+	.
+
+make
+
+# Install
+mkdir ${PREFIX}/lib
+cp lib/libscalapack.* ${PREFIX}/lib
+
+# Create link to shared version of library so that libtool can find it
+cd ${PREFIX}/lib
+ln -s liblapack.so liblapack.dll
Index: /issm/trunk-jpl/externalpackages/triangle/configs/win/msys2/gcc/configure.make
===================================================================
--- /issm/trunk-jpl/externalpackages/triangle/configs/win/msys2/gcc/configure.make	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/triangle/configs/win/msys2/gcc/configure.make	(revision 26034)
@@ -0,0 +1,6 @@
+CC=gcc
+CSWITCHES=$(CFLAGS) -DNO_TIMER -fpic
+TRILIBDEFS=-DTRILIBRARY
+STATIC_LIB_EXT=a
+SHARED_LIB_EXT=dll
+OBJ_EXT=o
Index: /issm/trunk-jpl/externalpackages/triangle/configs/win/msys2/mingw64/configure.make
===================================================================
--- /issm/trunk-jpl/externalpackages/triangle/configs/win/msys2/mingw64/configure.make	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/triangle/configs/win/msys2/mingw64/configure.make	(revision 26034)
@@ -0,0 +1,6 @@
+CC=gcc
+CSWITCHES=$(CFLAGS) -DNO_TIMER -fpic
+TRILIBDEFS=-DTRILIBRARY
+STATIC_LIB_EXT=a
+SHARED_LIB_EXT=dll
+OBJ_EXT=o
Index: /issm/trunk-jpl/externalpackages/triangle/install-win-msys2-gcc.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/triangle/install-win-msys2-gcc.sh	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/triangle/install-win-msys2-gcc.sh	(revision 26034)
@@ -0,0 +1,34 @@
+#!/bin/bash
+set -eu
+
+
+# Constants
+#
+export PREFIX="${ISSM_DIR}/externalpackages/triangle/install" # Set to location where external package should be installed
+
+# Cleanup
+rm -rf ${PREFIX} src
+mkdir -p ${PREFIX} ${PREFIX}/include ${PREFIX}/lib src
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/triangle.zip" "triangle.zip"
+
+# Unpack source
+unzip triangle.zip -d src
+
+# Copy customized source files to 'src' directory
+cp configs/makefile src
+cp configs/triangle.h src
+cp configs/win/msys2/gcc/configure.make src
+
+# Compile
+cd src
+make shared
+
+# Install
+cd ..
+cp src/libtriangle.* ${PREFIX}/lib
+cp src/triangle.h ${PREFIX}/include
+
+# Cleanup
+rm -rf src
Index: /issm/trunk-jpl/externalpackages/triangle/install-win-msys2-mingw.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/triangle/install-win-msys2-mingw.sh	(revision 26034)
+++ /issm/trunk-jpl/externalpackages/triangle/install-win-msys2-mingw.sh	(revision 26034)
@@ -0,0 +1,34 @@
+#!/bin/bash
+set -eu
+
+
+# Constants
+#
+export PREFIX="${ISSM_DIR}/externalpackages/triangle/install" # Set to location where external package should be installed
+
+# Cleanup
+rm -rf ${PREFIX} src
+mkdir -p ${PREFIX} ${PREFIX}/include ${PREFIX}/lib src
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/triangle.zip" "triangle.zip"
+
+# Unpack source
+unzip triangle.zip -d src
+
+# Copy customized source files to 'src' directory
+cp configs/makefile src
+cp configs/triangle.h src
+cp configs/win/msys2/mingw64/configure.make src
+
+# Compile
+cd src
+make shared
+
+# Install
+cd ..
+cp src/libtriangle.* ${PREFIX}/lib
+cp src/triangle.h ${PREFIX}/include
+
+# Cleanup
+rm -rf src
Index: /issm/trunk-jpl/jenkins/jenkins.sh
===================================================================
--- /issm/trunk-jpl/jenkins/jenkins.sh	(revision 26033)
+++ /issm/trunk-jpl/jenkins/jenkins.sh	(revision 26034)
@@ -7,4 +7,8 @@
 # members of the ISSM development team.
 #
+# NOTE:
+# - Variable OS is set in environment by running 
+#	`source $ISSM_DIR/etc/environment.sh`.
+#
 # TODO:
 # - Rename TEMP to something more descriptive (ensure first that other parts of
@@ -14,7 +18,7 @@
 
 echo "Cleaning up execution directory"
-rm -rf $ISSM_DIR/execution/*
-rm -rf $ISSM_DIR/nightlylog
-mkdir $ISSM_DIR/nightlylog
+rm -rf ${ISSM_DIR}/execution/*
+rm -rf ${ISSM_DIR}/nightlylog
+mkdir ${ISSM_DIR}/nightlylog
 
 #Server URI
@@ -53,11 +57,4 @@
 fi
 
-#Get Operating system (OS) name{{{
-OS=$(uname -s)
-if [[ $OS == CYGWIN* ]]; then
-	OS="win";
-fi
-#}}}
-
 #Install ISSM
 #Determining installation type depending on svn changes{{{
@@ -65,6 +62,6 @@
 echo "             Determining Installation type            "
 echo "======================================================";
-if [ -a $ISSM_DIR/svn_revision_old ]; then
-	SVN_PREVIOUS=$(cat $ISSM_DIR/svn_revision_old)
+if [ -a ${ISSM_DIR}/svn_revision_old ]; then
+	SVN_PREVIOUS=$(cat ${ISSM_DIR}/svn_revision_old)
 	SVN_CURRENT=$SVN_REVISION_1
 	echo "Previous revision number: $SVN_PREVIOUS"
@@ -74,5 +71,5 @@
 	#
 
-	#svn --non-interactive --no-auth-cache --trust-server-cert diff -r $SVN_PREVIOUS:$SVN_CURRENT --summarize $ISSM_DIR | awk '{print $NF}' > $ISSM_DIR/TEMP
+	#svn --non-interactive --no-auth-cache --trust-server-cert diff -r $SVN_PREVIOUS:$SVN_CURRENT --summarize ${ISSM_DIR} | awk '{print $NF}' > ${ISSM_DIR}/TEMP
 
 	# Get list of changes from Jenkins itself as svn requires credentials
@@ -81,13 +78,13 @@
 
 	# Process html page and get the list of files that has changed (tricky...)
-	#cat changes | grep '="The file was modified"' | sed -e 's/.*<\/td><td><a>\(.*\)<\/a><\/td><td>.*/\1/' > $ISSM_DIR/TEMP
+	#cat changes | grep '="The file was modified"' | sed -e 's/.*<\/td><td><a>\(.*\)<\/a><\/td><td>.*/\1/' > ${ISSM_DIR}/TEMP
 	#cat changes | grep 'document_edit' |sed -e 's/document_edit.png/document_edit.png\
-		#/g' | sed -e 's/.*<\/a><\/td><td>\(.*\)<\/td><\/tr>.*/\1/' | grep -v 'document_edit.png' > $ISSM_DIR/TEMP
-	cat changes | tr " " "\n" | grep trunk | sed -e 's/.*<a>\(.*\)<\/a>.*/\1/' > $ISSM_DIR/TEMP
+		#/g' | sed -e 's/.*<\/a><\/td><td>\(.*\)<\/td><\/tr>.*/\1/' | grep -v 'document_edit.png' > ${ISSM_DIR}/TEMP
+	cat changes | tr " " "\n" | grep trunk | sed -e 's/.*<a>\(.*\)<\/a>.*/\1/' > ${ISSM_DIR}/TEMP
 
 	# Print list of changed files
 	echo "   "
 	echo "List of updated files"
-	cat $ISSM_DIR/TEMP
+	cat ${ISSM_DIR}/TEMP
 	echo "   "
 
@@ -99,5 +96,5 @@
 	# If the contents of the externalpackages directory were modified in any
 	# way, check for changed external packages
-	if [ ! -z "$(cat $ISSM_DIR/TEMP | grep externalpackages)" ]; then
+	if [ ! -z "$(cat ${ISSM_DIR}/TEMP | grep externalpackages)" ]; then
 		echo "  -- checking for changed externalpackages... yes"
 		ISSM_EXTERNALPACKAGES="yes"
@@ -109,6 +106,6 @@
 	# If the Makefile or m4 diirectory were changed in any way or if certain
 	# binary files from a previous compilation do not exist, reconfigure
-	if [ ! -z "$(cat $ISSM_DIR/TEMP | grep -e "Makefile.am" -e "m4" )" ] ||
-		[ ! -f "$ISSM_DIR/bin/issm.exe" ] && [ ! -f "$ISSM_DIR/bin/issm-bin.js" ] ||
+	if [ ! -z "$(cat ${ISSM_DIR}/TEMP | grep -e "Makefile.am" -e "m4" )" ] ||
+		[ ! -f "${ISSM_DIR}/bin/issm.exe" ] && [ ! -f "${ISSM_DIR}/bin/issm-bin.js" ] ||
 		[ "$ISSM_EXTERNALPACKAGES" == "yes" ]; then
 		echo "  -- checking for reconfiguration... yes"
@@ -120,5 +117,5 @@
 
 	# If source files were changed in any way, recompile
-	if [ ! -z "$(cat $ISSM_DIR/TEMP | grep -e "\.cpp" -e "\.h" )" ] ||
+	if [ ! -z "$(cat ${ISSM_DIR}/TEMP | grep -e "\.cpp" -e "\.h" )" ] ||
 		[ "$ISSM_RECONFIGURE" == "yes" ]; then
 		echo "  -- checking for recompilation... yes"
@@ -131,5 +128,5 @@
 	# Cleanup
 	rm changes
-	rm $ISSM_DIR/TEMP
+	rm ${ISSM_DIR}/TEMP
 else
 	echo "Previous revision not found, this must be a fresh install"
@@ -144,5 +141,5 @@
 echo " "
 echo "Recording current svn version: $SVN_REVISION_1"
-echo $SVN_REVISION_1 > $ISSM_DIR/svn_revision_old
+echo $SVN_REVISION_1 > ${ISSM_DIR}/svn_revision_old
 #}}}
 
@@ -154,14 +151,14 @@
 
 #Jenkins XML files for individual packages
-EXTERNAL_TEST_FILE="$ISSM_DIR/nightlylog/results/external.xml"
-mkdir -p $ISSM_DIR/nightlylog/results
+EXTERNAL_TEST_FILE="${ISSM_DIR}/nightlylog/results/external.xml"
+mkdir -p ${ISSM_DIR}/nightlylog/results
 echo "<testsuite tests=\"$NUMPACKAGES\">" > $EXTERNAL_TEST_FILE
 
 # Need a source here for when builds start midway through installation of externalpackages.
-source $ISSM_DIR/etc/environment.sh
-
-if [ "$OS" == "win" ]; then
+source ${ISSM_DIR}/etc/environment.sh
+
+if [ "${OS}" == CYGWIN* ]; then
 	echo " == WINDOWS ENVIRONMENT DETECTED =="
-	source $ISSM_DIR/externalpackages/windows/windows_environment.sh
+	source ${ISSM_DIR}/externalpackages/windows/windows_environment.sh
 fi
 
@@ -175,6 +172,6 @@
 
 	#install if requested or if previous install has not been successful
-	if [ "$ISSM_EXTERNALPACKAGES" == "yes" ]; then # NOTE: Removed check on if 'install' directory exist
-		cd $ISSM_DIR/externalpackages/$PACKAGENAME
+	if [ "${ISSM_EXTERNALPACKAGES}" == "yes" ]; then # NOTE: Removed check on if 'install' directory exist
+		cd ${ISSM_DIR}/externalpackages/$PACKAGENAME
 
 		echo "======================================================";
@@ -183,5 +180,5 @@
 
 		./$PACKAGEINST $NUMCPUS_INSTALL &> compil.log
-		if [ $? -ne 0 ] && [ "$PACKAGENAME" != "boost" ]; then
+		if [ $? -ne 0 ] && [ "${PACKAGENAME}" != "boost" ]; then
 			cat compil.log
 			echo "======================================================";
@@ -197,5 +194,5 @@
 			echo "<testcase classname=\"externalpackages\" name=\"$PACKAGENAME\"/>" >> $EXTERNAL_TEST_FILE
 		fi
-		source $ISSM_DIR/etc/environment.sh
+		source ${ISSM_DIR}/etc/environment.sh
 
 		#If external package is rebuilt, we also need to recompile
@@ -220,9 +217,9 @@
 
 # Source here to include any newly installed externalpackages on the path.
-source $ISSM_DIR/etc/environment.sh
-
-if [ "$OS" == "win" ]; then
+source ${ISSM_DIR}/etc/environment.sh
+
+if [ "${OS}" == CYGWIN* ]; then
 	echo " == WINDOWS ENVIRONMENT DETECTED =="
-	source $ISSM_DIR/externalpackages/windows/windows_environment.sh
+	source ${ISSM_DIR}/externalpackages/windows/windows_environment.sh
 fi
 
@@ -244,12 +241,12 @@
 	#export EMCC_DEBUG=1 # Uncomment to enable debugging
 	export EMCC_CFLAGS="-s ERROR_ON_UNDEFINED_SYMBOLS=0" # Required after v1.38.14 to avoid undefined symbol warnings from our Fortran object files being treated as errors
-	source $ISSM_DIR/externalpackages/emscripten/install/emsdk_env.sh
+	source ${ISSM_DIR}/externalpackages/emscripten/install/emsdk_env.sh
 fi
 
 #}}}
 #ISSM compilation yes/no                (ISSM_COMPILATION) {{{
-if [ "$ISSM_COMPILATION" == "yes" ]; then
+if [ "${ISSM_COMPILATION}" == "yes" ]; then
 	cd $ISSM_DIR
-	if [ "$ISSM_RECONFIGURE" == "yes" ]; then
+	if [ "${ISSM_RECONFIGURE}" == "yes" ]; then
 		echo "======================================================";
 		echo "             Cleaning up and reconfiguring            "
@@ -262,5 +259,5 @@
 			exit 1
 		fi
-		eval "./configure $ISSM_CONFIG"
+		eval "./configure ${ISSM_CONFIG}"
 		if [ $? -ne 0 ]; then
 			echo "ISSM configuration failed (see options below)"
@@ -276,7 +273,11 @@
 	echo "======================================================"
 	if [ $NUMCPUS_INSTALL -gt 1 ]; then
-		echo "Making with " $NUMCPUS_INSTALL " cpus"
+		echo "Making with ${NUMCPUS_INSTALL} cpus"
+
+		# To debug compilation/linking, add 'V=1' option to the call to make
+		#make -j $NUMCPUS_INSTALL V=1
 		make -j $NUMCPUS_INSTALL
 	else
+		#make V=1
 		make
 	fi
@@ -292,6 +293,5 @@
 	fi
 	make install
-elif [ "$ISSM_COMPILATION" == "no" ]
-then
+elif [ "${ISSM_COMPILATION}" == "no" ]; then
 	echo "Skipping ISSM compilation"
 else
@@ -311,11 +311,11 @@
 	for (( i=1;i<=$NUMCPUS_RUN;i++ )); do
 		#Launch matlab and the nightly run script
-		cat > $ISSM_DIR/nightlylog/matlab_run$i.m << EOF
+		cat > ${ISSM_DIR}/nightlylog/matlab_run$i.m << EOF
 		warning off %necessary to avoid a log of several Go for parallel runs
 		try,
-			$(if [ "$MATLAB_NROPTIONS" = "" ]; then
-				echo "runme('output','nightly','rank',$i,'numprocs',$NUMCPUS_RUN);"
+			$(if [ "${MATLAB_NROPTIONS}" = "" ]; then
+				echo "runme('output','nightly','rank',${i},'numprocs',${NUMCPUS_RUN});"
 			else
-				echo "runme($MATLAB_NROPTIONS,'output','nightly','rank',$i,'numprocs',$NUMCPUS_RUN);"
+				echo "runme(${MATLAB_NROPTIONS},'output','nightly','rank',${i},'numprocs',${NUMCPUS_RUN});"
 			fi)
 		catch me,
@@ -332,34 +332,42 @@
 EOF
 		cd $ISSM_DIR/test/NightlyRun
-		if [ "$OS" = "win" ]; then
-			$MATLAB_PATH/bin/matlab -nodisplay -nosplash -r "addpath $ISSM_DIR_WIN/src/m/dev; devpath; addpath $ISSM_DIR_WIN/nightlylog/; matlab_run$i" -logfile $ISSM_DIR_WIN/nightlylog/matlab_log$i.log &
+		if [[ "${OS}" == CYGWIN* || "${OS}" == MINGW* ]]; then
+			$MATLAB_PATH/bin/matlab -nodesktop -nosplash -nojvm -r "addpath ${ISSM_DIR_WIN}/src/m/dev; devpath; addpath ${ISSM_DIR_WIN}/nightlylog; matlab_run$i" -logfile ${ISSM_DIR_WIN}/nightlylog/matlab_log$i.log &
 		else
-			$MATLAB_PATH/bin/matlab -nodisplay -nosplash -r "addpath $ISSM_DIR/src/m/dev; devpath; addpath $ISSM_DIR/nightlylog/; matlab_run$i" -logfile $ISSM_DIR/nightlylog/matlab_log$i.log &
+			$MATLAB_PATH/bin/matlab -nodisplay -nosplash -r "addpath ${ISSM_DIR}/src/m/dev; devpath; addpath ${ISSM_DIR}/nightlylog; matlab_run$i" -logfile ${ISSM_DIR}/nightlylog/matlab_log$i.log &
 		fi
 	done
 
-	#wait until matlab closes
-	if [ "$OS" = "win" ]; then
+	# Wait for MATLAB to exit
+	if [[ "${OS}" == CYGWIN* ]]; then
 		sleep 5;
-		echo "Waiting for matlab on windows"
+		echo "Waiting for MATLAB to exit"
 		pid=$(ps aux -W | grep MATLAB | awk '{printf("%s\n","MATLAB");}')
 		echo '-----------------------------'
-		echo "pid: $pid"
+		echo "pid: ${pid}"
 		echo '-----------------------------'
-		while [ -n "$pid" ]; do
+		while [ -n "${pid}" ]; do
 			pid=$(ps aux -W | grep MATLAB | awk '{printf("%s\n","MATLAB");}')
 			sleep 1;
 		done
 		echo "DONE!"
+	elif [[ "${OS}" == MINGW* ]]; then
+		# NOTE: The PID query used here may work as well on Cygwin. If so, combine the two conditional blocks.
+		sleep 5;
+		echo "Waiting for MATLAB to exit"
+		pid=$(ps -W | grep MATLAB | awk '{print $1}')
+		echo '-----------------------------'
+		echo "pid: ${pid}"
+		echo '-----------------------------'
+		while [ -n "${pid}" ]; do
+			pid=$(ps -W | grep MATLAB | awk '{print $1}')
+			sleep 1;
+		done
 	else
 		wait
 	fi
 
-	#concatenate reports
-	cd $ISSM_DIR/nightlylog/
-	#echo 'CHECKING NIGHTLYLOG DIRECTORY'
-	#echo '-----------------------------'
-	#ls -la
-	#echo '-----------------------------'
+	# Concatenate logs
+	cd $ISSM_DIR/nightlylog
 
 	if [ -f matlab_log.log ]; then
@@ -368,5 +376,5 @@
 
 	for job in `jobs -p`; do
-		echo "Waiting on: $job"
+		#echo "Waiting on: ${job}" # Commented out because it really has nothing to do with MATLAB processes
 		wait $job
 	done
@@ -387,5 +395,5 @@
 if [ $PYTHON_TEST -eq 1 ]; then
 	#Launch all tests on different cpus
-	export PYTHONPATH="$ISSM_DIR/src/m/dev"
+	export PYTHONPATH="${ISSM_DIR}/src/m/dev"
 	export PYTHONSTARTUP="${PYTHONPATH}/devpath.py"
 	export PYTHONUNBUFFERED=1 #we don't want python to buffer otherwise issm.exe output is not captured
@@ -398,6 +406,6 @@
 	done
 
-	# concatenate reports
-	cd $ISSM_DIR/nightlylog/
+	# Concatenate logs
+	cd $ISSM_DIR/nightlylog
 	if [ -f python_log.log ]; then
 		rm python_log.log
@@ -406,5 +414,5 @@
 	for job in `jobs -p`
 	do
-		echo "Waiting on: $job"
+		echo "Waiting on: ${job}"
 		wait $job
 	done
@@ -429,5 +437,5 @@
 # }}}
 
-#process logs to be junit compatible
+# Process logs to be JUnit compatible
 #{{{
 cd $ISSM_DIR/nightlylog
Index: /issm/trunk-jpl/jenkins/ross-win-msys2-gcc-msmpi-basic
===================================================================
--- /issm/trunk-jpl/jenkins/ross-win-msys2-gcc-msmpi-basic	(revision 26034)
+++ /issm/trunk-jpl/jenkins/ross-win-msys2-gcc-msmpi-basic	(revision 26034)
@@ -0,0 +1,63 @@
+ISSM_CONFIG='\
+	--prefix=${ISSM_DIR} \
+	--enable-debugging \
+	--with-numthreads=4 \
+	--with-vendor="win-msys2-msmpi" \
+	--with-matlab-dir=${MATLAB_PATH} \
+	--with-mpi-include="${MSMPI_ROOT}/include" \
+	--with-mpi-libdir="${MSMPI_ROOT}/lib" \
+	--with-mpi-libflags="-lmsmpi" \
+	--with-fortran-lib="-L/c/msys64/usr/bin -lgfortran" \
+	--with-metis-dir="${ISSM_DIR}/externalpackages/metis/install" \
+	--with-parmetis-dir="${ISSM_DIR}/externalpackages/parmetis/install" \
+	--with-blas-dir="${ISSM_DIR}/externalpackages/blas/install" \
+	--with-lapack-dir="${ISSM_DIR}/externalpackages/lapack/install" \
+	--with-scalapack-dir=$ISSM_DIR/externalpackages/scalapack/install \
+	--with-mumps-dir=$ISSM_DIR/externalpackages/mumps/install \
+	--with-petsc-dir="${ISSM_DIR}/externalpackages/petsc/install" \
+	--with-triangle-dir="${ISSM_DIR}/externalpackages/triangle/install" \
+'
+
+#-------------------#
+# External Packages #
+#-------------------#
+
+#List of external pakages to be installed and their installation scripts
+EXTERNALPACKAGES="
+	metis		install-5-win-msys2-gcc.sh
+	parmetis	install-4-win-msys2-gcc-msmpi.sh
+	blas		install-3-win-msys2-gcc.sh
+	lapack		install-3-win-msys2-gcc.sh
+	scalapack	install-2-win-msys2-gcc-msmpi.sh
+	mumps		install-5-win-msys2-gcc-msmpi.sh
+	petsc		install-3.12-win-msys2-gcc-msmpi.sh
+	triangle	install-win-msys2-gcc.sh
+	shell2junit	install.sh
+"
+
+#---------#
+# Testing #
+#---------#
+
+# Test suites
+MATLAB_TEST=1
+PYTHON_TEST=0
+JAVASCRIPT_TEST=0
+EXAMPLES_TEST=0
+
+# Number of CPUs used in ISSM compilation
+#
+# NOTE: One is usually safer as some packages are very sensitive to parallel
+# 		compilation
+#
+NUMCPUS_INSTALL=4
+
+# Number of CPUs used in the nightly runs
+NUMCPUS_RUN=2
+
+# Nightly run options
+#
+# See documentation in test/NightlyRun/runme.* for more information
+#
+MATLAB_NROPTIONS=""
+PYTHON_NROPTIONS=""
Index: /issm/trunk-jpl/jenkins/ross-win-msys2-mingw-msmpi-basic
===================================================================
--- /issm/trunk-jpl/jenkins/ross-win-msys2-mingw-msmpi-basic	(revision 26034)
+++ /issm/trunk-jpl/jenkins/ross-win-msys2-mingw-msmpi-basic	(revision 26034)
@@ -0,0 +1,57 @@
+ISSM_CONFIG='\
+	--prefix=${ISSM_DIR} \
+	--enable-development \
+	--enable-debugging \
+	--with-numthreads=4 \
+	--with-vendor="win-msys2" \
+	--with-matlab-dir=${MATLAB_PATH} \
+	--with-mpi-include="${MSMPI_ROOT}/include" \
+	--with-mpi-libdir="${MSMPI_ROOT}/lib" \
+	--with-mpi-libflags="-lmsmpi" \
+	--with-fortran-lib="-L/c/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/10.2.0/ -lgfortran" \
+	--with-metis-dir="${ISSM_DIR}/externalpackages/petsc/install" \
+	--with-parmetis-dir="${ISSM_DIR}/externalpackages/petsc/install" \
+	--with-blas-lapack-dir="${ISSM_DIR}/externalpackages/petsc/install" \
+	--with-scalapack-dir=$ISSM_DIR/externalpackages/petsc/install \
+	--with-mumps-dir=$ISSM_DIR/externalpackages/petsc/install \
+	--with-petsc-dir="${ISSM_DIR}/externalpackages/petsc/install" \
+	--with-triangle-dir="${ISSM_DIR}/externalpackages/triangle/install" \
+'
+
+#-------------------#
+# External Packages #
+#-------------------#
+
+#List of external pakages to be installed and their installation scripts
+EXTERNALPACKAGES="
+	petsc		install-3.14-win-msys2-mingw-msmpi.sh
+	triangle	install-win-msys2-mingw.sh
+	shell2junit	install.sh
+"
+
+#---------#
+# Testing #
+#---------#
+
+# Test suites
+MATLAB_TEST=1
+PYTHON_TEST=0
+JAVASCRIPT_TEST=0
+EXAMPLES_TEST=0
+
+# Number of CPUs used in ISSM compilation
+#
+# NOTE: One is usually safer as some packages are very sensitive to parallel
+# 		compilation
+#
+NUMCPUS_INSTALL=4
+
+# Number of CPUs used in the nightly runs
+NUMCPUS_RUN=1
+
+# Nightly run options
+#
+# See documentation in test/NightlyRun/runme.* for more information
+#
+MATLAB_NROPTIONS="'id',[101,102,201,202]"
+PYTHON_NROPTIONS=""
Index: /issm/trunk-jpl/m4/issm_options.m4
===================================================================
--- /issm/trunk-jpl/m4/issm_options.m4	(revision 26033)
+++ /issm/trunk-jpl/m4/issm_options.m4	(revision 26034)
@@ -31,5 +31,5 @@
 		PACKAGE_DATE="unknown"
 	fi
-	AC_DEFINE_UNQUOTED(PACKAGE_BUILD_DATE, "$PACKAGE_DATE", [build date])
+	AC_DEFINE_UNQUOTED([PACKAGE_BUILD_DATE], "${PACKAGE_DATE}", [build date])
 	AC_MSG_RESULT([${PACKAGE_DATE}])
 
@@ -46,5 +46,5 @@
 		fi
 	fi
-	AC_DEFINE_UNQUOTED(USER_NAME, "$user_name", [user name])
+	AC_DEFINE_UNQUOTED([USER_NAME], "${user_name}", [user name])
 	AC_MSG_RESULT([${user_name}])
 
@@ -55,13 +55,13 @@
 		linux-gnu* | lignux* )	host_os=linux ;;
 	esac
-	AC_DEFINE_UNQUOTED(HOST_OS, "$host_os", [host full OS name and version])
+	AC_DEFINE_UNQUOTED([HOST_OS], "${host_os}", [host full OS name and version])
 	AC_MSG_RESULT([${host_os}])
 
 	AC_MSG_CHECKING([host cpu])
-	AC_DEFINE_UNQUOTED(HOST_CPU, "$host_cpu", [host CPU])
+	AC_DEFINE_UNQUOTED([HOST_CPU], "${host_cpu}", [host CPU])
 	AC_MSG_RESULT([${host_cpu}])
 
 	AC_MSG_CHECKING([vendor])
-	AC_DEFINE_UNQUOTED(HOST_VENDOR, "$host_vendor", [host vendor])
+	AC_DEFINE_UNQUOTED([HOST_VENDOR], "${host_vendor}", [host vendor])
 	AC_MSG_RESULT([${host_vendor}])
 
@@ -73,5 +73,5 @@
 		linux-gnu* | lignux* )	host_os_name=linux ;;
 	esac
-	AC_DEFINE_UNQUOTED(HOST_OS_NAME, "$host_os_name", [host OS name])
+	AC_DEFINE_UNQUOTED([HOST_OS_NAME], "${host_os_name}", [host OS name])
 	AC_MSG_RESULT([${host_os_name}])
 
@@ -82,5 +82,5 @@
 		host_os_version=`(uname -r) 2>/dev/null` || host_os_version=unknown
 	fi
-	AC_DEFINE_UNQUOTED(HOST_OS_VERSION, "$host_os_version", [host OS version])
+	AC_DEFINE_UNQUOTED([HOST_OS_VERSION], "${host_os_version}", [host OS version])
 	AC_MSG_RESULT([${host_os_version}])
 
@@ -95,5 +95,5 @@
 		i?86 )	host_arch=i386 ;; # all x86 should show up as i386
 	esac
-	AC_DEFINE_UNQUOTED(HOST_ARCH, "$host_arch", [host archictecture])
+	AC_DEFINE_UNQUOTED([HOST_ARCH], "${host_arch}", [host archictecture])
 	AC_MSG_RESULT([${host_arch}])
 
@@ -219,7 +219,8 @@
 		AC_MSG_RESULT([no])
 	fi
-	AC_DEFINE_UNQUOTED([_SYSTEM_HAS_FMEMOPEN_], $SYSTEM_FMEMOPEN, [does system copy of libc have fmemopen])
+	AC_DEFINE_UNQUOTED([_SYSTEM_HAS_FMEMOPEN_], ${SYSTEM_FMEMOPEN}, [does system copy of libc have fmemopen])
 	AM_CONDITIONAL([SYSTEM_HAS_FMEMOPEN], [test "${SYSTEM_FMEMOPEN}" == "1"])
 
+	IS_MSYS2=no
 	IS_WINDOWS=no
 	AC_MSG_CHECKING([for vendor compilers])
@@ -318,18 +319,32 @@
 			export CFLAGS="-g -O3 -ipo -axAVX -ipo -no-inline-min-size -inline-max-size=345 -no-inline-max-total-size -no-inline-max-per-routine -no-inline-max-per-compile -restrict"
 			AC_DEFINE([_HAVE_RESTRICT_], [1], [with restrict buffers])
+		elif test "${VENDOR}" == "win-msys2"; then
+			export LDFLAGS="${LDFLAGS} -no-undefined"
+			export OSLIBS="-Wl,-L/mingw64/lib/gcc/x86_64-w64-mingw32/10.2.0 -Wl,-L/mingw64/x86_64-w64-mingw32/lib -Wl,-lstdc++ -Wl,-lgfortran -Wl,-lmingw32 -Wl,-lgcc_s -Wl,-lmoldname -Wl,-lmingwex -Wl,-lmsvcrt -Wl,-lm -Wl,-lpthread -Wl,-lshell32 -Wl,-luser32 -Wl,-lgdi32 -Wl,-luser32 -Wl,-ladvapi32 -Wl,-lkernel32 -Wl,-lquadmath -Wl,-lstdc++ -Wl,-lgcc"
+			IS_MSYS2=yes
 		else
 			AC_MSG_ERROR([unknown compiler vendor!])
 		fi
 	fi
+	dnl Set default standard for C++
+	if test "${CXXFLAGS}" == ""; then
+		export CXXFLAGS="-std=C++11"
+	fi
 	AC_SUBST([OSLIBS])
 	AC_MSG_RESULT([done])
 
-	AC_MSG_CHECKING([if this is a Windows build])
+	AC_MSG_CHECKING([if this is a MSVC (Windows) build])
 	AM_CONDITIONAL([WINDOWS], [test "x${IS_WINDOWS}" == "xyes"])
 	AC_MSG_RESULT([${IS_WINDOWS}])
+
+	AC_MSG_CHECKING([if this is a MSYS2 (Windows) build])
+	AM_CONDITIONAL([MSYS2], [test "x${IS_MSYS2}" == "xyes"])
+	AC_MSG_RESULT([${IS_MSYS2}])
+	AC_DEFINE([_IS_MSYS2_], [1], [is a MSYS2 (Windows) build])
 	dnl }}}
 	dnl MATLAB{{{
 
 	dnl See if MATLAB has been provided
+	AC_MSG_CHECKING([for MATLAB])
 	AC_ARG_WITH(
 		[matlab-dir],														dnl feature
@@ -338,5 +353,4 @@
 		[MATLAB_ROOT="no"]													dnl action if not given
 	)
-	AC_MSG_CHECKING([for MATLAB])
 	if test "x${MATLAB_ROOT}" == "xno"; then
 		HAVE_MATLAB=no
@@ -357,5 +371,5 @@
 		AC_DEFINE([_HAVE_MATLAB_], [1], [with MATLAB in ISSM src])
 
-		dnl Set MEXLIB, MEXLINK, and MEXEXT
+		dnl Set MEX* variable
 		AC_MSG_CHECKING([MATLAB's mex compilation flags])
 
@@ -367,24 +381,47 @@
 				if test "${VENDOR}" == "intel-win7-32"; then
 					MEXLIB="-Wl,libmx.lib -Wl,libmex.lib -Wl,libmat.lib ${OSLIBS} -Wl,libf2cblas.lib -Wl,libf2clapack.lib"
-					MEXLINK="-Wl,/LIBPATH:`cygpath -m ${MATLAB_ROOT}/extern/lib/win32/microsoft` -Wl,/link -Wl,/EXPORT:mexFunction -Wl,/DLL"
+					MEXLINKFLAGS="-Wl,/LIBPATH:`cygpath -m ${MATLAB_ROOT}/extern/lib/win32/microsoft` -Wl,/link -Wl,/EXPORT:mexFunction -Wl,/DLL"
 					MEXEXT=`${MATLAB_ROOT}/bin/mexext.bat`
 					MEXEXT=".${MEXEXT}"
 				elif test "${VENDOR}" == "intel-win7-64"; then
 					MEXLIB="-Wl,libmx.lib -Wl,libmex.lib -Wl,libmat.lib ${OSLIBS} -Wl,libf2cblas.lib -Wl,libf2clapack.lib"
-					MEXLINK="-Wl,/LIBPATH:`cygpath -m ${MATLAB_ROOT}/extern/lib/win64/microsoft` -Wl,/link -Wl,/EXPORT:mexFunction -Wl,/DLL"
+					MEXLINKFLAGS="-Wl,/LIBPATH:`cygpath -m ${MATLAB_ROOT}/extern/lib/win64/microsoft` -Wl,/link -Wl,/EXPORT:mexFunction -Wl,/DLL"
 					MEXEXT=".mexw64"
 				elif test "${VENDOR}" == "MSVC-Win64" || test "${VENDOR}" == "MSVC-Win64-par"; then
 					MEXLIB="-Wl,libmx.lib -Wl,libmex.lib -Wl,libmat.lib ${OSLIBS} -Wl,libf2cblas.lib -Wl,libf2clapack.lib"
-					MEXLINK="-Wl,/link -Wl,/LIBPATH:`cygpath -m ${MATLAB_ROOT}/extern/lib/win64/microsoft` -Wl,/link -Wl,/EXPORT:mexFunction -Wl,/DLL"
+					MEXLINKFLAGS="-Wl,/link -Wl,/LIBPATH:`cygpath -m ${MATLAB_ROOT}/extern/lib/win64/microsoft` -Wl,/link -Wl,/EXPORT:mexFunction -Wl,/DLL"
 					MATLABINCL="-I`cygpath -m ${MATLAB_ROOT}/extern/include`"
 					MEXEXT=".mexw64"
 				fi
 			;;
+			*mingw*)
+				if test "${IS_MSYS2}" == "yes"; then
+					dnl Value to set MEXEXT to can be found on Windows by running $MATLAB_ROOT/bin/mexext.bat
+					MEXEXT=".mexw64"
+					MATLABINCL="-I${MATLAB_ROOT}/extern/include"
+					MEXOPTFLAGS="-O2 -fwrapv -DNDEBUG -g"
+					MEXCFLAGS="-fexceptions -fno-omit-frame-pointer -m64 -DMATLAB_MEX_FILE"
+					MEXCXXFLAGS="-fexceptions -fno-omit-frame-pointer -std=c++11 -m64 -DMATLAB_MEX_FILE"
+					MEXLINKFLAGS="-m64 -Wl,--no-undefined -shared -static -Wl,${MATLAB_ROOT}/extern/lib/win64/mingw64/mexFunction.def"
+					MEXLIB_DIR="${MATLAB_ROOT}/extern/lib/win64/mingw64"
+					MEXLIB="-L${MEXLIB_DIR} -lmx -lmex -lmat -lm -lmwlapack -lmwblas"
+				fi
+			;;
+			*msys*)
+				dnl Value to set MEXEXT to can be found on Windows by running $MATLAB_ROOT/bin/mexext.bat
+				MEXEXT=".mexw64"
+				MATLABINCL="-I${MATLAB_ROOT}/extern/include"
+				MEXOPTFLAGS="-O2 -fwrapv -DNDEBUG -g"
+				MEXCFLAGS="-fexceptions -fno-omit-frame-pointer -m64 -DMATLAB_MEX_FILE"
+				MEXCXXFLAGS="-fexceptions -fno-omit-frame-pointer -std=c++11 -m64 -DMATLAB_MEX_FILE"
+				MEXLINKFLAGS="-m64 -Wl,--no-undefined -shared -static -Wl,${MATLAB_ROOT}/extern/lib/win64/mingw64/mexFunction.def"
+				MEXLIB_DIR="${MATLAB_ROOT}/extern/lib/win64/mingw64"
+				MEXLIB="-L${MEXLIB_DIR} -lmx -lmex -lmat -lm -lmwlapack -lmwblas"
+			;;
 			*)
+				MEXEXT=$(${MATLAB_ROOT}/bin/mex -v 2>&1 < /dev/null | grep LDEXTENSION | sed -e "s/         LDEXTENSION        = //g")
 				MATLABINCL="-I${MATLAB_ROOT}/extern/include"
-				MEXLINK=$(${MATLAB_ROOT}/bin/mex -v 2>&1 < /dev/null | grep LDFLAGS | sed -e "s/         LDFLAGS            = //g")
+				MEXLINKFLAGS=$(${MATLAB_ROOT}/bin/mex -v 2>&1 < /dev/null | grep LDFLAGS | sed -e "s/         LDFLAGS            = //g")
 				MEXLIB=$(${MATLAB_ROOT}/bin/mex -v 2>&1 < /dev/null | grep CXXLIBS | sed -e "s/         CXXLIBS            = //g")
-				MEXEXT=$(${MATLAB_ROOT}/bin/mex -v 2>&1 < /dev/null | grep LDEXTENSION | sed -e "s/         LDEXTENSION        = //g")
-				dnl version 2014 and up
 				if test -z "${MEXEXT}"; then
 					echo "#include <mex.h>" > conftest.cpp
@@ -392,5 +429,5 @@
 					${MATLAB_ROOT}/bin/mex -v -lmex conftest.cpp > conftest.tmp 2>&1
 					rm -f conftest.cpp
-					MEXLINK=$(cat conftest.tmp | grep LDFLAGS | sed -e "s/LDFLAGS ://g")
+					MEXLINKFLAGS=$(cat conftest.tmp | grep LDFLAGS | sed -e "s/LDFLAGS ://g")
 					MEXLIB=$(cat conftest.tmp | grep LINKLIBS | sed -e "s/LINKLIBS ://g")
 					MEXEXT=$(cat conftest.tmp | grep LDEXT | sed -e "s/LDEXT ://g" | awk '{print $[1]}')
@@ -402,6 +439,6 @@
 
 				dnl Make sure mexFunction.map is not in MEXLIB to avoid problems with global variables
-				dnl MEXLINK=$(echo ${MEXLINK} | sed -e "s/,-expo.*mexFunction\\.map\"//g" | sed -e "s/-[[^ ]]*mexFunction\\.map//g")
-				MEXLINK="" dnl We actually don't need MEXLINK????
+				dnl MEXLINKFLAGS=$(echo ${MEXLINKFLAGS} | sed -e "s/,-expo.*mexFunction\\.map\"//g" | sed -e "s/-[[^ ]]*mexFunction\\.map//g")
+				MEXLINKFLAGS="" dnl We actually don't need MEXLINK????
 			;;
 		esac
@@ -411,12 +448,15 @@
 		fi
 
+		AC_SUBST([MEXEXT])
+		AC_SUBST([MEXOPTFLAGS])
+		AC_SUBST([MEXCFLAGS])
+		AC_SUBST([MEXCXXFLAGS])
 		AC_SUBST([MATLABINCL])
-		MATLABWRAPPEREXT=${MEXEXT}
-		AC_SUBST([MATLABWRAPPEREXT])
+		AC_SUBST([MEXLINKFLAGS])
 		AC_SUBST([MEXLIB])
-		AC_SUBST([MEXLINK])
 	fi
 	dnl }}}
 	dnl JavaScript{{{
+	AC_MSG_CHECKING([for JavaScript])
 	AC_ARG_WITH(
 		[javascript],
@@ -425,5 +465,4 @@
 		[JAVASCRIPT="no"]
 	)
-	AC_MSG_CHECKING([for JavaScript])
 	if test "x${JAVASCRIPT}" == "xno"; then
 		HAVE_JAVASCRIPT=no
@@ -438,4 +477,5 @@
 	dnl }}}
 	dnl Triangle {{{
+	AC_MSG_CHECKING([for triangle])
 	AC_ARG_WITH(
 		[triangle-dir],
@@ -444,5 +484,4 @@
 		[TRIANGLE_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for triangle])
 	if test "x${TRIANGLE_ROOT}" == "xno"; then
 		HAVE_TRIANGLE=no
@@ -483,4 +522,20 @@
 				fi
 			;;
+			*mingw*)
+				if test "x${HAVE_JAVASCRIPT}" == "xyes"; then
+					dnl Link to the object file, not the library
+					TRIANGLELIB=${TRIANGLE_ROOT}/share/triangle.o
+				else
+					TRIANGLELIB="-L${TRIANGLE_ROOT}/lib -ltriangle"
+				fi
+			;;
+			*msys*)
+				if test "x${HAVE_JAVASCRIPT}" == "xyes"; then
+					dnl Link to the object file, not the library
+					TRIANGLELIB=${TRIANGLE_ROOT}/share/triangle.o
+				else
+					TRIANGLELIB="-L${TRIANGLE_ROOT}/lib -ltriangle"
+				fi
+			;;
 		esac
 		AC_DEFINE([_HAVE_TRIANGLE_], [1], [with Triangle in ISSM src])
@@ -490,4 +545,5 @@
 	dnl }}}
 	dnl Boost{{{
+	AC_MSG_CHECKING([for Boost])
 	AC_ARG_WITH(
 		[boost-dir],
@@ -496,5 +552,4 @@
 		[BOOST_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for Boost])
 	if test "x${BOOST_ROOT}" == "xno"; then
 		HAVE_BOOST=no
@@ -523,4 +578,5 @@
 	dnl }}}
 	dnl Dakota{{{
+	AC_MSG_CHECKING([for Dakota])
 	AC_ARG_WITH(
 		[dakota-dir],
@@ -529,5 +585,4 @@
 		[DAKOTA_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for Dakota])
 	if test "x${DAKOTA_ROOT}" == "xno"; then
 		HAVE_DAKOTA=no
@@ -547,5 +602,5 @@
 		AC_MSG_CHECKING(for Dakota version)
 		dnl TODO:	Check if this method applies to all other versions of 
-		dnl			Dakota (it should as long as the Dakota binaries have been
+		dnl			Dakota (it should as long as the Dakota binaries have been 
 		dnl 		compiled). If so, we can remove the other methods of 
 		dnl			getting the version.
@@ -564,5 +619,5 @@
 		fi
 		AC_MSG_RESULT([${DAKOTA_VERSION}])
-		AC_DEFINE_UNQUOTED(_DAKOTA_VERSION_, "${DAKOTA_VERSION}", [Dakota version number])
+		AC_DEFINE_UNQUOTED([_DAKOTA_VERSION_], ${DAKOTA_VERSION}, [Dakota version number])
 
 		DAKOTAFLAGS=""
@@ -679,11 +734,11 @@
 		AC_MSG_CHECKING(for Dakota major version)
 		AC_MSG_RESULT(${DAKOTA_MAJOR})
-		AC_DEFINE_UNQUOTED(_DAKOTA_MAJOR_, $DAKOTA_MAJOR, [Dakota major version number])
+		AC_DEFINE_UNQUOTED([_DAKOTA_MAJOR_], ${DAKOTA_MAJOR}, [Dakota major version number])
 		AC_MSG_CHECKING(for Dakota minor version)
 		AC_MSG_RESULT(${DAKOTA_MINOR})
-		AC_DEFINE_UNQUOTED(_DAKOTA_MINOR_, $DAKOTA_MINOR, [Dakota minor version number])
+		AC_DEFINE_UNQUOTED([_DAKOTA_MINOR_], ${DAKOTA_MINOR}, [Dakota minor version number])
 		AC_MSG_CHECKING(for Dakota build version)
 		AC_MSG_RESULT(${DAKOTA_BUILD})
-		AC_DEFINE_UNQUOTED(_DAKOTA_BUILD_, $DAKOTA_BUILD, [Dakota build version number])
+		AC_DEFINE_UNQUOTED([_DAKOTA_BUILD_], ${DAKOTA_BUILD}, [Dakota build version number])
 
 		AC_DEFINE([_HAVE_DAKOTA_], [1], [with Dakota in ISSM src])
@@ -695,4 +750,5 @@
 	dnl }}}
 	dnl Python{{{
+	AC_MSG_CHECKING([for Python])
 	AC_ARG_WITH(
 		[python-dir],
@@ -708,5 +764,4 @@
 		[PYTHON_VERSION="no"]
 	)
-	AC_MSG_CHECKING([for Python])
 	if test "x${PYTHON_ROOT}" == "xno"; then
 		HAVE_PYTHON=no
@@ -735,5 +790,5 @@
 		dnl Determine major version
 		PYTHON_MAJOR=${PYTHON_VERSION%.*}
-		AC_DEFINE_UNQUOTED(_PYTHON_MAJOR_, $PYTHON_MAJOR, [Python version major])
+		AC_DEFINE_UNQUOTED([_PYTHON_MAJOR_], ${PYTHON_MAJOR}, [Python version major])
 		if test "x${PYTHON_MAJOR}" == "x3"; then
 			HAVE_PYTHON3="yes"
@@ -751,5 +806,5 @@
 			PYTHONINCL=-I${PYTHON_ROOT}/include/python${PYTHON_VERSION}m
 		else
-			AC_MSG_ERROR([Python.h not found, locate this file and contact ISSM developers]);
+			AC_MSG_ERROR([Python.h not found! Please locate this file and contact ISSM developers via forum or email.]);
 		fi
 		AC_MSG_RESULT([found])
@@ -764,9 +819,15 @@
 				PYTHONLINK="-shared"
 			;;
+			*darwin*)
+				PYTHONLINK="-dynamiclib"
+			;;
 			*linux*)
 				PYTHONLINK="-shared"
 			;;
-			*darwin*)
-				PYTHONLINK="-dynamiclib"
+			*mingw*)
+				PYTHONLINK="-shared"
+			;;
+			*msys*)
+				PYTHONLINK="-shared"
 			;;
 		esac
@@ -781,15 +842,4 @@
 	dnl }}}
 	dnl NumPy{{{
-	dnl TODO:
-	dnl - Replace references to python-numpy with numpy (and similar terms)
-	dnl	  project-wide
-	dnl
-	AC_ARG_WITH(
-		[python-numpy-dir],
-		AS_HELP_STRING([--with-python-numpy-dir=DIR], [python-numpy root directory]),
-		[PYTHON_NUMPY_ROOT=${withval}],
-		[PYTHON_NUMPY_ROOT="no"]
-	)
-
 	dnl NOTE: You can find NumPy by running,
 	dnl
@@ -797,6 +847,15 @@
 	dnl		>>> numpy.__file__
 	dnl
-
+	dnl TODO:
+	dnl - Replace references to python-numpy with numpy (and similar terms)
+	dnl	  project-wide
+	dnl
 	AC_MSG_CHECKING(for python-numpy)
+	AC_ARG_WITH(
+		[python-numpy-dir],
+		AS_HELP_STRING([--with-python-numpy-dir=DIR], [python-numpy root directory]),
+		[PYTHON_NUMPY_ROOT=${withval}],
+		[PYTHON_NUMPY_ROOT="no"]
+	)
 	if test "x${PYTHON_NUMPY_ROOT}" == "xno"; then
 		HAVE_PYTHON_NUMPY=no
@@ -817,4 +876,5 @@
 	dnl }}}
 	dnl Chaco{{{
+	AC_MSG_CHECKING([for Chaco])
 	AC_ARG_WITH(
 		[chaco-dir],
@@ -823,5 +883,4 @@
 		[CHACO_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for Chaco])
 	if test "x${CHACO_ROOT}" == "xno"; then
 		HAVE_CHACO=no
@@ -845,4 +904,5 @@
 	dnl }}}
 	dnl ESMF{{{
+	AC_MSG_CHECKING([for ESMF])
 	AC_ARG_WITH(
 		[esmf-dir],
@@ -851,5 +911,4 @@
 		[ESMF_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for ESMF])
 	if test "x${ESMF_ROOT}" == "xno"; then
 		HAVE_ESMF=no
@@ -873,4 +932,5 @@
 	dnl }}}
 	dnl CoDiPack{{{
+	AC_MSG_CHECKING([for CoDiPack])
 	AC_ARG_WITH(
 		[codipack-dir],
@@ -879,5 +939,4 @@
 		[CODIPACK_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for CoDiPack])
 	if test "x${CODIPACK_ROOT}" == "xno"; then
 		HAVE_CODIPACK=no
@@ -901,4 +960,5 @@
 	dnl }}}
 	dnl Tape Allocation {{{
+	AC_MSG_CHECKING(for tape allocation)
 	AC_ARG_ENABLE(
 		[tape-alloc],																dnl feature
@@ -907,5 +967,4 @@
 		[enable_tape_alloc=no]
 	)
-	AC_MSG_CHECKING(for tape allocation)
 	if test "x${enable_tape_alloc}" == "xyes"; then
 		AC_DEFINE([_AD_TAPE_ALLOC_], [1], [enable a priori tape allocation for AD])
@@ -914,4 +973,5 @@
 	dnl }}}
 	dnl ADOL-C {{{
+	AC_MSG_CHECKING([for ADOL-C])
 	AC_ARG_WITH(
 		[adolc-dir],
@@ -920,5 +980,4 @@
 		[ADOLC_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for ADOL-C])
 	if test "x${ADOLC_ROOT}" == "xno"; then
 		HAVE_ADOLC=no
@@ -945,4 +1004,5 @@
 	dnl }}}
 	dnl ADOL-C version{{{
+	AC_MSG_CHECKING(for ADOL-C version)
 	AC_ARG_WITH(
 		[adolc-version],
@@ -951,10 +1011,9 @@
 		[ADOLC_VERSION=2]
 	)
-	AC_MSG_CHECKING(for ADOL-C version)
-
-	AC_DEFINE_UNQUOTED(_ADOLC_VERSION_, $ADOLC_VERSION, [ADOL-C version])
+	AC_DEFINE_UNQUOTED([_ADOLC_VERSION_], ${ADOLC_VERSION}, [ADOL-C version])
 	AC_MSG_RESULT(${ADOLC_VERSION})
 	dnl }}}
 	dnl ADIC2 {{{
+	AC_MSG_CHECKING([for ADIC2])
 	AC_ARG_WITH(
 		[adic2-dir],
@@ -963,5 +1022,4 @@
 		[ADIC2_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for ADIC2])
 	if test "x${ADIC2_ROOT}" == "xno"; then
 		HAVE_ADIC2=no
@@ -985,4 +1043,5 @@
 	dnl }}}
 	dnl ATLAS {{{
+	AC_MSG_CHECKING(for ATLAS and CBLAS libraries)
 	AC_ARG_WITH(
 		[atlas-dir],
@@ -991,5 +1050,4 @@
 		[ATLAS_ROOT="no"]
 	)
-	AC_MSG_CHECKING(for ATLAS and CBLAS libraries)
 	if test "x${ATLAS_ROOT}" == "xno"; then
 		HAVE_ATLAS=no
@@ -1008,9 +1066,15 @@
 				ATLASLIB="-L`cygpath -m ${ATLAS_ROOT}` -Wl,libatlas.lib  -Wl,libcblas.lib"
 			;;
+			*darwin*)
+				ATLASLIB="-L${ATLAS_ROOT}/lib -lcblas -latlas -lm"
+			;;
 			*linux*)
-				ATLASLIB="-L${ATLAS_ROOT}/lib -lcblas -latlas -lm "
-			;;
-			*darwin*)
-				ATLASLIB="-L${ATLAS_ROOT}/lib -lcblas -latlas -lm "
+				ATLASLIB="-L${ATLAS_ROOT}/lib -lcblas -latlas -lm"
+			;;
+			*mingw*)
+				ATLASLIB="-L${ATLAS_ROOT}/lib -lcblas -latlas -lm"
+			;;
+			*msys*)
+				ATLASLIB="-L${ATLAS_ROOT}/lib -lcblas -latlas -lm"
 			;;
 		esac
@@ -1020,4 +1084,5 @@
 	dnl }}}
 	dnl GSL{{{
+	AC_MSG_CHECKING([for GSL])
 	AC_ARG_WITH(
 		[gsl-dir],
@@ -1026,5 +1091,4 @@
 		[GSL_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for GSL])
 	if test "x${GSL_ROOT}" == "xno"; then
 		HAVE_GSL=no
@@ -1052,4 +1116,5 @@
 	dnl }}}
 	dnl AMPI (ADOL-C){{{
+	AC_MSG_CHECKING([for AMPI])
 	AC_ARG_WITH(
 		[ampi-dir],
@@ -1058,5 +1123,4 @@
 		[AMPI_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for AMPI])
 	if test "x${AMPI_ROOT}" == "xno"; then
 		HAVE_AMPI=no
@@ -1088,4 +1152,5 @@
 	dnl }}}
 	dnl Adjoint MPI (CoDiPack){{{
+	AC_MSG_CHECKING([for Adjoint MPI])
 	AC_ARG_WITH(
 		[adjointmpi-dir],
@@ -1094,5 +1159,4 @@
 		[ADJOINTMPI_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for Adjoint MPI])
 	if test "x${ADJOINTMPI_ROOT}" == "xno"; then
 		HAVE_ADJOINTMPI=no
@@ -1122,4 +1186,5 @@
 	dnl }}}
 	dnl MeDiPack (CoDiPack, ADOL-C dev){{{
+	AC_MSG_CHECKING([for MeDiPack])
 	AC_ARG_WITH(
 		[medipack-dir],
@@ -1128,5 +1193,4 @@
 		[MEDIPACK_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for MeDiPack])
 	if test "x${MEDIPACK_ROOT}" == "xno"; then
 		HAVE_MEDIPACK=no
@@ -1154,4 +1218,5 @@
 	dnl }}}
 	dnl HDF5 {{{
+	AC_MSG_CHECKING(for HDF5 libraries)
 	AC_ARG_WITH(
 		[hdf5-dir],
@@ -1160,5 +1225,4 @@
 		[HDF5_ROOT="no"]
 	)
-	AC_MSG_CHECKING(for HDF5 libraries)
 	if test "x${HDF5_ROOT}" == "xno"; then
 		HAVE_HDF5=no
@@ -1181,8 +1245,14 @@
 				HDF5LIB="-L`cygpath -m ${HDF5_ROOT}` -Wl,libhdf5.lib  -Wl,libhdf5_hl.lib"
 			;;
+			*darwin*)
+				HDF5LIB="-L${HDF5_ROOT}/lib -lhdf5 -lhdf5_hl"
+			;;
 			*linux*)
 				HDF5LIB="-L${HDF5_ROOT}/lib -lhdf5 -lhdf5_hl"
 			;;
-			*darwin*)
+			*mingw*)
+				HDF5LIB="-L${HDF5_ROOT}/lib -lhdf5 -lhdf5_hl"
+			;;
+			*msys*)
 				HDF5LIB="-L${HDF5_ROOT}/lib -lhdf5 -lhdf5_hl"
 			;;
@@ -1193,4 +1263,5 @@
 	dnl }}}
 	dnl PETSc{{{
+	AC_MSG_CHECKING([for PETSc])
 	AC_ARG_WITH(
 		[petsc-dir],
@@ -1199,5 +1270,4 @@
 		[PETSC_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for PETSc])
 	if test "x${PETSC_ROOT}" == "xno"; then
 		HAVE_PETSC=no
@@ -1220,6 +1290,6 @@
 		PETSC_MAJOR=`cat ${PETSC_ROOT}/include/petscversion.h | grep "#define PETSC_VERSION_MAJOR" | sed 's/#define PETSC_VERSION_MAJOR//' | sed 's/ //g'`
 		PETSC_MINOR=`cat ${PETSC_ROOT}/include/petscversion.h | grep "#define PETSC_VERSION_MINOR" | sed 's/#define PETSC_VERSION_MINOR//' | sed 's/ //g'`
-		AC_DEFINE_UNQUOTED([_PETSC_MAJOR_], [$PETSC_MAJOR], [PETSc version major])
-		AC_DEFINE_UNQUOTED([_PETSC_MINOR_], [$PETSC_MINOR], [PETSc version minor])
+		AC_DEFINE_UNQUOTED([_PETSC_MAJOR_], ${PETSC_MAJOR}, [PETSc version major])
+		AC_DEFINE_UNQUOTED([_PETSC_MINOR_], ${PETSC_MINOR}, [PETSc version minor])
 		AC_MSG_RESULT([${PETSC_MAJOR}.${PETSC_MINOR}])
 
@@ -1262,4 +1332,14 @@
 					PETSCLIB="/link -Wl,/LIBPATH:`cygpath -m ${PETSC_ROOT}/lib` -Wl,libpetsc.lib"
 					PETSCINCL="/I`cygpath -m ${PETSC_ROOT}/include`"
+				fi
+			;;
+			*darwin*)
+				if test ${PETSC_MAJOR} -lt 3; then
+					PETSCLIB="-L${PETSC_ROOT}/lib -lpetscksp -lpetscdm -lpetscmat -lpetscvec -lpetscsnes -lpetscts -lpetsc"
+				else
+					PETSCLIB="-L${PETSC_ROOT}/lib -lpetsc"
+					if test ${PETSC_MAJOR} -gt 3 || test ${PETSC_MINOR} -ge 3; then
+						PETSCLIB+=" -lmetis"
+					fi
 				fi
 			;;
@@ -1280,13 +1360,9 @@
 				fi
 			;;
-			*darwin*)
-				if test ${PETSC_MAJOR} -lt 3; then
-					PETSCLIB="-L${PETSC_ROOT}/lib -lpetscksp -lpetscdm -lpetscmat -lpetscvec -lpetscsnes -lpetscts -lpetsc"
-				else
-					PETSCLIB="-L${PETSC_ROOT}/lib -lpetsc"
-					if test ${PETSC_MAJOR} -gt 3 || test ${PETSC_MINOR} -ge 3; then
-						PETSCLIB+=" -lmetis"
-					fi
-				fi
+			*mingw*)
+				PETSCLIB="-Wl,${PETSC_ROOT}/lib/libpetsc.a"
+			;;
+			*msys*)
+				PETSCLIB="${PETSC_ROOT}/lib -lpetsc"
 			;;
 		esac
@@ -1299,5 +1375,4 @@
 	dnl MPI{{{
 	AC_MSG_CHECKING(for MPI)
-
 	AC_ARG_WITH(
 		[mpi-include],
@@ -1306,5 +1381,4 @@
 		[MPI_INCLUDE=""]
 	)
-
 	AC_ARG_WITH(
 		[mpi-libdir],
@@ -1313,5 +1387,4 @@
 		[MPI_LIBDIR=""]
 	)
-
 	AC_ARG_WITH(
 		[mpi-libflags],
@@ -1320,5 +1393,4 @@
 		[MPI_LIBFLAGS=""]
 	)
-
 	if test -z "${MPI_INCLUDE}"; then
 		HAVE_MPI=no
@@ -1363,4 +1435,5 @@
 	dnl }}}
 	dnl SCOTCH{{{
+	AC_MSG_CHECKING([for SCOTCH])
 	AC_ARG_WITH(
 		[scotch-dir],
@@ -1369,5 +1442,4 @@
 		[SCOTCH_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for SCOTCH])
 	if test "x${SCOTCH_ROOT}" == "xno"; then
 		HAVE_SCOTCH=no
@@ -1402,82 +1474,136 @@
 	dnl }}}
 	dnl METIS{{{
-
-	dnl NOTE: We know $VENDOR cannot be empty at this point, so no need to
-	dnl		  check again in the following conditionals
-	dnl
-	if test "x${HAVE_PETSC}" == "xyes" && test "x${PETSC_MAJOR}" == "x3" && test ${PETSC_MINOR} -ge 3 && test "${VENDOR}" != "MSVC-Win64" && test "${VENDOR}" != "MSVC-Win64-par"; then
-		dnl In PETSc >=3.3, METIS is provided
-		HAVE_METIS="yes"
-		AC_DEFINE([_METIS_VERSION_], [5], [METIS version number])
+	AC_MSG_CHECKING([for METIS])
+	AC_ARG_WITH(
+		[metis-dir],
+		AS_HELP_STRING([--with-metis-dir=DIR], [METIS root directory, necessary for serial build]),
+		[METIS_ROOT=${withval}],
+		[METIS_ROOT="no"]
+	)
+	HAVE_METIS=no
+	if test "x${METIS_ROOT}" == "xno"; then
+		dnl Check if METIS was installed via PETSc
+		if test -f ${PETSC_ROOT}/install/include/metis.h; then
+			HAVE_METIS=yes
+			METIS_ROOT="${PETSC_ROOT}"
+		fi
+	else
+		if ! test -d "${METIS_ROOT}"; then
+			AC_MSG_ERROR([METIS directory provided (${METIS_ROOT}) does not exist!]);
+		fi
+		HAVE_METIS=yes
+	fi
+	if test "${HAVE_METIS}" = "yes"; then
+		METIS_VERSION=$(grep "#define METIS_VER_MAJOR" ${METIS_ROOT}/include/metis.h | sed 's|.*METIS_VER_MAJOR[[:space:]]*||')
+		dnl METIS libraries and header files
+		if test "x${METIS_VERSION}" == "x4"; then
+			METISINCL="-I${METIS_ROOT}/Lib"
+			case "${host_os}" in
+				*cygwin*)
+					METISINCL="/I`cygpath -m ${METIS_ROOT}/Lib`"
+					METISLIB="-Wl,/link -Wl,/LIBPATH:`cygpath -m ${METIS_ROOT}` -Wl,libmetis.lib"
+				;;
+				*darwin*)
+					METISLIB="-L${METIS_ROOT} -lmetis"
+				;;
+				*linux*)
+					METISLIB="-L${METIS_ROOT} -lmetis"
+				;;
+				*mingw*)
+					METISLIB="-Wl,${METIS_ROOT}/lib/libmetis.a"
+				;;
+				*msys*)
+					METISLIB="-L${METIS_ROOT} -lmetis"
+				;;
+			esac
+		elif test "x${METIS_VERSION}" == "x5"; then
+			METISINCL="-I${METIS_ROOT}/include"
+			case "${host_os}" in
+				*cygwin*)
+					METISLIB="-L${METIS_ROOT} libmetis.lib"
+				;;
+				*darwin*)
+					METISLIB="-L${METIS_ROOT}/lib -lmetis"
+				;;
+				*linux*)
+					METISLIB="-L${METIS_ROOT}/lib -lmetis"
+				;;
+				*mingw*)
+					METISLIB="-Wl,${METIS_ROOT}/lib/libmetis.a"
+				;;
+				*msys*)
+					METISLIB="-L${METIS_ROOT}/lib -lmetis"
+				;;
+			esac
+		else
+			AC_MSG_ERROR([METIS version ${METIS_VERSION} not yet supported! Please contact ISSM developers via forum or email.])
+		fi
 		AC_DEFINE([_HAVE_METIS_], [1], [with METIS in ISSM src])
-	else
-		AC_ARG_WITH(
-			[metis-dir],
-			AS_HELP_STRING([--with-metis-dir=DIR], [METIS root directory, necessary for serial build]),
-			[METIS_ROOT=${withval}],
-			[METIS_ROOT="no"]
-		)
-		AC_MSG_CHECKING([for METIS])
-		if test "x${METIS_ROOT}" == "xno"; then
-			HAVE_METIS=no
-		else
-			HAVE_METIS=yes
-			if ! test -d "${METIS_ROOT}"; then
-				AC_MSG_ERROR([METIS directory provided (${METIS_ROOT}) does not exist!]);
-			fi
-		fi
-		AC_MSG_RESULT([${HAVE_METIS}])
-		AM_CONDITIONAL([METIS], [test "x${HAVE_METIS}" == "xyes"])
-
+		AC_DEFINE_UNQUOTED([_METIS_VERSION_], ${METIS_VERSION}, [METIS version number])
+		AC_SUBST([METISINCL])
+		AC_SUBST([METISLIB])
+	fi
+	AC_MSG_RESULT([${HAVE_METIS}])
+	AM_CONDITIONAL([METIS], [test "x${HAVE_METIS}" = "xyes"])
+	dnl }}}
+	dnl ParMETIS{{{
+	AC_MSG_CHECKING([for ParMETIS])
+	AC_ARG_WITH(
+		[parmetis-dir],
+		AS_HELP_STRING([--with-parmetis-dir=DIR], [ParMETIS root directory, necessary for parallel build]),
+		[PARMETIS_ROOT=${withval}],
+		[PARMETIS_ROOT="no"]
+	)
+	HAVE_PARMETIS=no
+	if test "x${PARMETIS_ROOT}" == "xno"; then
+		dnl Check if ParMETIS was installed via PETSc
+		if test -f ${PETSC_ROOT}/install/include/parmetis.h; then
+			HAVE_PARMETIS="yes"
+			PARMETIS_ROOT="${PETSC_ROOT}"
+		fi
+	else
+		if ! test -d "${PARMETIS_ROOT}"; then
+			AC_MSG_ERROR([ParMETIS directory provided (${PARMETIS_ROOT}) does not exist!]);
+		fi
+		if ! test -d "${METIS_ROOT}"; then
+			AC_MSG_ERROR([If supplying path to ParMETIS with option --with-parmetis-dir, must also supply path to METIS with option --with-metis-dir]);
+		fi
+		HAVE_PARMETIS="yes"
+	fi
+	if test "${HAVE_PARMETIS}" == "yes"; then
+		#PARMETIS_VERSION=$(grep "#define PARMETIS_MAJOR_VERSION" ${PARMETIS_ROOT}/include/parmetis.h | sed 's|.*PARMETIS_MAJOR_VERSION[[:space:]]*||')
 		dnl METIS libraries and header files
-		if test "x${HAVE_METIS}" == "xyes"; then
-			dnl Retrieve METIS version (does the VERSION file exist?)
-			if test -f "${METIS_ROOT}/VERSION"; then
-				METIS_VERSION=4
-			else
-				METIS_VERSION=5
-			fi
-
-			if test "x${METIS_VERSION}" == "x4"; then
-				METISINCL="-I${METIS_ROOT}/Lib"
-				case "${host_os}" in
-					*cygwin*)
-						METISINCL="/I`cygpath -m ${METIS_ROOT}/Lib`"
-						METISLIB="-Wl,/link -Wl,/LIBPATH:`cygpath -m ${METIS_ROOT}` -Wl,libmetis.lib"
-					;;
-					*linux*)
-						METISLIB="-L${METIS_ROOT} -lparmetis -lmetis"
-					;;
-					*darwin*)
-						METISLIB="-L${METIS_ROOT} -lparmetis -lmetis"
-					;;
-				esac
-				AC_DEFINE([_METIS_VERSION_], [4], [ METIS version number])
-			fi
-
-			if test "x${METIS_VERSION}" == "x5"; then
-				case "${host_os}" in
-					*cygwin*)
-						METISLIB="-L${METIS_ROOT} libmetis.lib"
-					;;
-					*linux*)
-						METISLIB="-L${METIS_ROOT}/lib -lparmetis -lmetis"
-					;;
-					*darwin*)
-						METISLIB="-L${METIS_ROOT}/lib -lparmetis -lmetis"
-					;;
-				esac
-				METISINCL="-I${METIS_ROOT}/include"
-				AC_DEFINE([_METIS_VERSION_], [5], [METIS version number])
-			fi
-
-			AC_DEFINE([_HAVE_METIS_], [1], [with METIS in ISSM src])
-			AC_SUBST([METISINCL])
-			AC_SUBST([METISLIB])
-		fi
-	fi
-	AM_CONDITIONAL([METIS], [test "x${HAVE_METIS}" == "xyes"])
+		#if test "x${PARMETIS_VERSION}" == "x4"; then
+			PARMETISINCL="-I${PARMETIS_ROOT}/include"
+			case "${host_os}" in
+				*cygwin*)
+					PARMETISLIB="-L${PARMETIS_ROOT}/lib -lparmetis"
+				;;
+				*darwin*)
+					PARMETISLIB="-L${PARMETIS_ROOT}/lib -lparmetis"
+				;;
+				*linux*)
+					PARMETISLIB="-L${PARMETIS_ROOT}/lib -lparmetis"
+				;;
+				*mingw*)
+					PARMETISLIB="-Wl,${PARMETIS_ROOT}/lib/libparmetis.a"
+				;;
+				*msys*)
+					PARMETISLIB="-L${PARMETIS_ROOT}/lib -lparmetis"
+				;;
+			esac
+		#else
+		#	AC_MSG_ERROR([ParMETIS version ${PARMETIS_VERSION} not yet supported! Please contact ISSM developers via forum or email.])
+		#fi
+		AC_DEFINE([_HAVE_PARMETIS_], [1], [with ParMETIS in ISSM src])
+		#AC_DEFINE([_PARMETIS_VERSION_], [${PARMETIS_VERSION}], [ParMETIS version number])
+		AC_SUBST([PARMETISINCL])
+		AC_SUBST([PARMETISLIB])
+	fi
+	AC_MSG_RESULT([${HAVE_PARMETIS}])
+	AM_CONDITIONAL([PARMETIS], [test "x${HAVE_PARMETIS}" = "xyes"])
 	dnl }}}
 	dnl Toolkit for Advanced Optimization (TAO){{{
+	AC_MSG_CHECKING([for TAO])
 	AC_ARG_WITH(
 		[tao-dir],
@@ -1486,6 +1612,4 @@
 		[TAO_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for TAO])
-
 	if test "x${HAVE_PETSC}" == "xyes" && test "x${PETSC_MAJOR}" == "x3" && test ${PETSC_MINOR} -ge 5; then
 		dnl In PETSc >= 3.5, TAO is provided
@@ -1515,4 +1639,5 @@
 	dnl }}}
 	dnl M1QN3{{{
+	AC_MSG_CHECKING([for M1QN3])
 	AC_ARG_WITH(
 		[m1qn3-dir],
@@ -1521,5 +1646,4 @@
 		[M1QN3_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for M1QN3])
 	if test "x${M1QN3_ROOT}" == "xno"; then
 		HAVE_M1QN3=no
@@ -1540,4 +1664,5 @@
 	dnl }}}
 	dnl PROJ{{{
+	AC_MSG_CHECKING([for PROJ])
 	AC_ARG_WITH(
 		[proj-dir],
@@ -1546,5 +1671,4 @@
 		[PROJ_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for PROJ])
 	if test "x${PROJ_ROOT}" == "xno"; then
 		HAVE_PROJ=no
@@ -1568,4 +1692,5 @@
 	dnl }}}
 	dnl SLEPc{{{
+	AC_MSG_CHECKING([for SLEPc])
 	AC_ARG_WITH(
 		[slepc-dir],
@@ -1574,5 +1699,4 @@
 		[SLEPC_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for SLEPc])
 	if test "x${SLEPC_ROOT}" == "xno"; then
 		HAVE_SLEPC=no
@@ -1595,4 +1719,5 @@
 	dnl }}}
 	dnl shapelib{{{
+	AC_MSG_CHECKING([for shapelib])
 	AC_ARG_WITH(
 		[shapelib-dir],
@@ -1601,5 +1726,4 @@
 		[SHAPELIB_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for shapelib])
 	if test "x${SHAPELIB_ROOT}" == "xno"; then
 		HAVE_SHAPELIB=no
@@ -1622,6 +1746,7 @@
 	dnl }}}
 	dnl ScaLAPACK{{{
-
 	dnl NOTE: User should supply path to root directory or libraries, but not both
+	dnl
+	AC_MSG_CHECKING([for ScaLAPACK])
 	AC_ARG_WITH(
 		[scalapack-dir],
@@ -1636,5 +1761,4 @@
 		[SCALAPACKLIB="no"]
 	)
-	AC_MSG_CHECKING([for ScaLAPACK])
 	if test "x${SCALAPACK_ROOT}" == "xno" && test "x${SCALAPACKLIB}" == "xno"; then
 		HAVE_SCALAPACK=no
@@ -1645,5 +1769,9 @@
 		fi
 		HAVE_SCALAPACK=yes
-		SCALAPACKLIB="-L${SCALAPACK_ROOT}/lib -lscalapack"
+		if test "${VENDOR}" == "win-msys2"; then
+			SCALAPACKLIB="-Wl,${SCALAPACK_ROOT}/lib/libscalapack.a"
+		else
+			SCALAPACKLIB="-L${SCALAPACK_ROOT}/lib -lscalapack"
+		fi
 	elif test "x${SCALAPACKLIB}" != "xno"; then
 		dnl Value of SCALAPACKLIB should be valid here, so no need to set it (as above)
@@ -1661,4 +1789,17 @@
 	dnl }}}
 	dnl BLAS/LAPACK{{{
+	AC_MSG_CHECKING([for BLAS/LAPACK])
+	AC_ARG_WITH(
+		[blas-dir],
+		[AS_HELP_STRING([--with-blas-dir=DIR], [BLAS root directory])],
+		[BLAS_ROOT=$withval],
+		[BLAS_ROOT="no"]
+	)
+	AC_ARG_WITH(
+		[lapack-dir],
+		[AS_HELP_STRING([--with-lapack-dir=DIR], [LAPACK root directory])],
+		[LAPACK_ROOT=$withval],
+		[LAPACK_ROOT="no"]
+	)
 	AC_ARG_WITH(
 		[blas-lapack-dir],
@@ -1667,11 +1808,12 @@
 		[BLASLAPACK_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for BLAS/LAPACK])
-	if test "x${BLASLAPACK_ROOT}" == "xno" ; then
+	if (test "x${BLAS_ROOT}" = "xno" || test "x${LAPACK_ROOT}" = "xno") && test "x${BLASLAPACK_ROOT}" = "xno"; then
 		HAVE_BLASLAPACK=no
 	else
 		HAVE_BLASLAPACK=yes
-		if ! test -d "${BLASLAPACK_ROOT}"; then
-			AC_MSG_ERROR([BLAS/LAPACK directory provided (${BLASLAPACK_ROOT}) does not exist!]);
+		if ! test -d "${BLAS_ROOT}" || ! test -d "${LAPACK_ROOT}"; then
+			if ! test -d "${BLASLAPACK_ROOT}"; then
+				AC_MSG_ERROR([Use either --with-blas-dir and --with-lapack-dir *or* --with-blaslapack-dir]);
+			fi
 		fi
 	fi
@@ -1680,5 +1822,4 @@
 	dnl BLAS/LAPACK libraries and header files
 	if test "x${HAVE_BLASLAPACK}" == "xyes"; then
-		BLASLAPACKINCL=""
 		case "${host_os}" in
 			*cygwin*)
@@ -1709,11 +1850,42 @@
 				fi
 			;;
+			*mingw*)
+				if test -d "${BLASLAPACK_ROOT}"; then
+					BLASLAPACKLIB="-L${BLASLAPACK_ROOT}/lib"
+					if ls ${BLASLAPACK_ROOT}/lib/libopenblas.* 1> /dev/null 2>&1; then
+						BLASLAPACKLIB+=" -lopenblas"
+					elif ls ${BLASLAPACK_ROOT}/lib/libf2clapack.* 1> /dev/null 2>&1; then
+						BLASLAPACKLIB+=" -lf2clapack -lf2cblas"
+					elif ls ${BLASLAPACK_ROOT}/lib/libflapack.* 1> /dev/null 2>&1; then
+						BLASLAPACKLIB="-Wl,${BLASLAPACK_ROOT}/lib/libflapack.a -Wl,${BLASLAPACK_ROOT}/lib/libfblas.a"
+					else
+						BLASLAPACKLIB+=" -llapack -lblas"
+					fi
+				else
+					BLASLAPACKLIB="-Wl,${LAPACK_ROOT}/lib/liblapack.a -Wl,${BLAS_ROOT}/lib/libblas.a"
+				fi
+			;;
+			*msys*)
+				if test -d "${BLASLAPACK_ROOT}"; then
+					if ls ${BLASLAPACK_ROOT}/lib/libopenblas.* 1> /dev/null 2>&1; then
+						BLASLAPACKLIB=" -lopenblas"
+					elif ls ${BLASLAPACK_ROOT}/lib/libf2clapack.* 1> /dev/null 2>&1; then
+						BLASLAPACKLIB=" -lf2clapack -lf2cblas"
+					elif ls ${BLASLAPACK_ROOT}/lib/libflapack.* 1> /dev/null 2>&1; then
+						BLASLAPACKLIB+=" -lflapack -lfblas"
+					else
+						BLASLAPACKLIB=" -llapack -lblas"
+					fi
+				else
+					BLASLAPACKLIB="-L${LAPACK_ROOT}/lib -llapack -L${BLAS_ROOT}/lib -lblas"
+				fi
+			;;
 		esac
 		AC_DEFINE([_HAVE_BLASLAPACK_], [1], [with BLAS/LAPACK in ISSM src])
 		AC_SUBST([BLASLAPACKLIB])
-		AC_SUBST([BLASLAPACKINCL])
 	fi
 	dnl }}}
 	dnl Math Kernel Library (MKL){{{
+	AC_MSG_CHECKING([for MKL])
 	AC_ARG_WITH(
 		[mkl-libflags],
@@ -1722,5 +1894,4 @@
 		[MKL_LIBFLAGS="no"]
 	)
-	AC_MSG_CHECKING([for MKL])
 	if test "x${MKL_LIBFLAGS}" == "xno"; then
 		HAVE_MKL=no
@@ -1735,5 +1906,4 @@
 	dnl }}}
 	dnl PlaLAPACK{{{
-
 	dnl TODO: 	Handle user supplying path to root directory *or* individual
 	dnl 		arguments (like ScaLAPACK)
@@ -1770,4 +1940,5 @@
 	dnl }}}
 	dnl MUMPS{{{
+	AC_MSG_CHECKING([for MUMPS])
 	AC_ARG_WITH(
 		[mumps-dir],
@@ -1776,5 +1947,4 @@
 		[MUMPS_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for MUMPS])
 	if test "x${MUMPS_ROOT}" == "xno"; then
 		HAVE_MUMPS=no
@@ -1791,6 +1961,6 @@
 		MUMPSINCL="-I${MUMPS_ROOT}/include"
 		if test "x${MUMPS_ROOT}" == "x${PETSC_ROOT}"; then
-			if test "x${PETSC_MAJOR}" == "x2"; then
-				MUMPSLIB="-L${MUMPS_ROOT}/lib "
+			if test "${VENDOR}" == "win-msys2"; then
+				MUMPSLIB="-Wl,${MUMPS_ROOT}/lib/libcmumps.a -Wl,${MUMPS_ROOT}/lib/libdmumps.a -Wl,${MUMPS_ROOT}/lib/libsmumps.a -Wl,${MUMPS_ROOT}/lib/libzmumps.a -Wl,${MUMPS_ROOT}/lib/libmumps_common.a -Wl,${MUMPS_ROOT}/lib/libpord.a"
 			else
 				MUMPSLIB="-L${MUMPS_ROOT}/lib -ldmumps -lcmumps -lmumps_common -lpord -lparmetis -lzmumps -lmetis"
@@ -1841,4 +2011,5 @@
 	dnl }}}
 	dnl BLACS{{{
+	AC_MSG_CHECKING([for BLACS])
 	AC_ARG_WITH(
 		[blacs-dir],
@@ -1847,5 +2018,4 @@
 		[BLACS_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for BLACS])
 	if test "x${BLACS_ROOT}" == "xno"; then
 		HAVE_BLACS=no
@@ -1868,4 +2038,5 @@
 	dnl }}}
 	dnl HYPRE{{{
+	AC_MSG_CHECKING([for HYPRE])
 	AC_ARG_WITH(
 		[hypre-dir],
@@ -1874,5 +2045,4 @@
 		[HYPRE_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for HYPRE])
 	if test "x${HYPRE_ROOT}" == "xno"; then
 		HAVE_HYPRE=no
@@ -1895,4 +2065,5 @@
 	dnl }}}
 	dnl Prometheus{{{
+	AC_MSG_CHECKING([for Prometheus])
 	AC_ARG_WITH(
 		[prometheus-dir],
@@ -1901,5 +2072,4 @@
 		[PROMETHEUS_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for Prometheus])
 	if test "x${PROMETHEUS_ROOT}" == "xno"; then
 		HAVE_PROMETHEUS=no
@@ -1922,4 +2092,5 @@
 	dnl }}}
 	dnl SEMIC{{{
+	AC_MSG_CHECKING([for SEMIC])
 	AC_ARG_WITH(
 		[semic-dir],
@@ -1928,5 +2099,4 @@
 		[SEMIC_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for SEMIC])
 	if test "x${SEMIC_ROOT}" == "xno"; then
 		HAVE_SEMIC=no
@@ -1950,4 +2120,5 @@
 	dnl }}}
 	dnl SPAI{{{
+	AC_MSG_CHECKING([for SPAI])
 	AC_ARG_WITH(
 		[spai-dir],
@@ -1956,5 +2127,4 @@
 		[SPAI_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for SPAI])
 	if test "x${SPAI_ROOT}" == "xno"; then
 		HAVE_SPAI=no
@@ -1977,4 +2147,5 @@
 	dnl }}}
 	dnl SuperLU{{{
+	AC_MSG_CHECKING([for SuperLU])
 	AC_ARG_WITH(
 		[superlu-dir],
@@ -1983,5 +2154,4 @@
 		[SUPERLU_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for SuperLU])
 	if test "x${SUPERLU_ROOT}" == "xno"; then
 		HAVE_SUPERLU=no
@@ -2004,4 +2174,5 @@
 	dnl }}}
 	dnl SPOOLES{{{
+	AC_MSG_CHECKING([for SPOOLES])
 	AC_ARG_WITH(
 		[spooles-dir],
@@ -2010,5 +2181,4 @@
 		[SPOOLES_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for SPOOLES])
 	if test "x${SPOOLES_ROOT}" == "xno"; then
 		HAVE_SPOOLES=no
@@ -2031,4 +2201,5 @@
 	dnl }}}
 	dnl PaStiX{{{
+	AC_MSG_CHECKING([for PaStiX])
 	AC_ARG_WITH(
 		[pastix-dir],
@@ -2037,5 +2208,4 @@
 		[PASTIX_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for PaStiX])
 	if test "x${PASTIX_ROOT}" == "xno"; then
 		HAVE_PASTIX=no
@@ -2059,4 +2229,5 @@
 	dnl }}}
 	dnl ml{{{
+	AC_MSG_CHECKING([for ml])
 	AC_ARG_WITH(
 		[ml-dir],
@@ -2065,5 +2236,4 @@
 		[ML_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for ml])
 	if test "x${ML_ROOT}" == "xno"; then
 		HAVE_ML=no
@@ -2086,4 +2256,5 @@
 	dnl }}}
 	dnl UMFPACK{{{
+	AC_MSG_CHECKING([for UMFPACK])
 	AC_ARG_WITH(
 		[umfpack-dir],
@@ -2092,5 +2263,4 @@
 		[UMFPACK_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for UMFPACK])
 	if test "x${UMFPACK_ROOT}" == "xno"; then
 		HAVE_UMFPACK=no
@@ -2129,4 +2299,5 @@
 	dnl }}}
 	dnl MATH77{{{
+	AC_MSG_CHECKING([for MATH77])
 	AC_ARG_WITH(
 		[math77-dir],
@@ -2135,5 +2306,4 @@
 		[MATH77_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for MATH77])
 	if test "x${MATH77_ROOT}" == "xno"; then
 		HAVE_MATH77=no
@@ -2154,4 +2324,5 @@
 	dnl }}}
 	dnl Fortran{{{
+	AC_MSG_CHECKING(for Fortran compilation)
 	AC_ARG_WITH(
 		[fortran],
@@ -2160,5 +2331,4 @@
 		[FORTRAN=yes]
 	)
-	AC_MSG_CHECKING(for Fortran compilation)
 	if test "x${FORTRAN}" == "xyes"; then
 		HAVE_FORTRAN=yes
@@ -2224,4 +2394,5 @@
 	dnl }}}
 	dnl MeteoIO{{{
+	AC_MSG_CHECKING([for MeteoIO])
 	AC_ARG_WITH(
 		[meteoio-dir],
@@ -2230,5 +2401,4 @@
 		[METEOIO_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for MeteoIO])
 	if test "x${METEOIO_ROOT}" == "xno"; then
 		HAVE_METEOIO=no
@@ -2253,4 +2423,5 @@
 	dnl }}}
 	dnl SNOWPACK{{{
+	AC_MSG_CHECKING([for SNOWPACK])
 	AC_ARG_WITH(
 		[snowpack-dir],
@@ -2259,5 +2430,4 @@
 		[SNOWPACK_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for SNOWPACK])
 	if test "x${SNOWPACK_ROOT}" == "xno"; then
 		HAVE_SNOWPACK=no
@@ -2281,4 +2451,5 @@
 	dnl }}}
 	dnl NeoPZ{{{
+	AC_MSG_CHECKING([for NeoPZ])
 	AC_ARG_WITH(
 		[neopz-dir],
@@ -2287,5 +2458,4 @@
 		[NEOPZ_ROOT="no"]
 	)
-	AC_MSG_CHECKING([for NeoPZ])
 	if test "x${NEOPZ_ROOT}" == "xno"; then
 		HAVE_NEOPZ=no
@@ -2356,9 +2526,10 @@
 		GMSH_VERSION_MAJOR=`${GMSH_ROOT}/bin/gmsh -info | grep "Version" | sed -e "s/Version@<:@@<:@:blank:@:>@@:>@*:@<:@@<:@:blank:@:>@@:>@//" | cut -d "." -f 1`
 		AC_MSG_RESULT([${GMSH_VERSION_MAJOR}])
-		AC_DEFINE_UNQUOTED(_GMSH_VERSION_MAJOR_, $GMSH_VERSION_MAJOR, [Gmsh major version])
+		AC_DEFINE_UNQUOTED([_GMSH_VERSION_MAJOR_], ${GMSH_VERSION_MAJOR}, [Gmsh major version])
 	fi	
 	dnl }}}
 	dnl Capabilities
 	dnl with-bamg{{{
+	AC_MSG_CHECKING([for BAMG capability compilation])
 	AC_ARG_WITH(
 		[bamg],
@@ -2367,5 +2538,4 @@
 		[BAMG=yes]
 	)
-	AC_MSG_CHECKING([for BAMG capability compilation])
 	HAVE_BAMG=no
 	if test "x${BAMG}" == "xyes"; then
@@ -2377,4 +2547,5 @@
 	dnl }}}
 	dnl with-ocean{{{
+	AC_MSG_CHECKING(for ice/ocean coupling capability compilation)
 	AC_ARG_WITH(
 		[ocean],
@@ -2383,6 +2554,4 @@
 		[OCEAN=no]
 	)
-	AC_MSG_CHECKING(for ice/ocean coupling capability compilation)
-
 	HAVE_OCEAN=no
 	if test "x${OCEAN}" == "xyes"; then
@@ -2394,4 +2563,5 @@
 	dnl }}}
 	dnl with-kml{{{
+	AC_MSG_CHECKING(for kml capability compilation)
 	AC_ARG_WITH(
 		[kml],
@@ -2400,6 +2570,4 @@
 		[KML=no]
 	)
-	AC_MSG_CHECKING(for kml capability compilation)
-
 	HAVE_KML=no
 	if test "x${KML}" == "xyes"; then
@@ -2411,4 +2579,5 @@
 	dnl }}}
 	dnl with-kriging{{{
+	AC_MSG_CHECKING(for kriging capability compilation)
 	AC_ARG_WITH(
 		[kriging],
@@ -2417,6 +2586,4 @@
 		[KRIGING=yes]
 	)
-	AC_MSG_CHECKING(for kriging capability compilation)
-
 	HAVE_KRIGING=no
 	if test "x${KRIGING}" == "xyes"; then
@@ -2433,4 +2600,5 @@
 	dnl Platform specifics
 	dnl with-ios{{{
+	AC_MSG_CHECKING(for iOS compilation)
 	AC_ARG_WITH(
 		[ios],
@@ -2439,6 +2607,4 @@
 		[IOS=no]
 	)
-	AC_MSG_CHECKING(for iOS compilation)
-
 	HAVE_IOS=no
 	if test "x${IOS}" == "xyes"; then
@@ -2450,11 +2616,11 @@
 	dnl }}}
 	dnl with-android{{{
+	AC_MSG_CHECKING([for Android capability compilation])
 	AC_ARG_WITH(
 		[android],
 		AS_HELP_STRING([--with-android=EXE], [compile with Android capabilities (default: "no"; alternatives: "exe", "jni")]),
 		[ANDROID=${withval}],
-		[ANDROID=no])
-	AC_MSG_CHECKING([for Android capability compilation])
-
+		[ANDROID=no]
+	)
 	if test "x${ANDROID}" == "xjni"; then
 		HAVE_ANDROID=jni
@@ -2475,4 +2641,5 @@
 	dnl }}}
 	dnl with-android-ndk{{{
+	AC_MSG_CHECKING([with Android Native Development Kit (NDK)])
 	AC_ARG_WITH(
 		[android-ndk],
@@ -2481,6 +2648,4 @@
 		[ANDROID_NDK_ROOT=""]
 	)
-	AC_MSG_CHECKING([with Android Native Development Kit (NDK)])
-
 	if test -d "${ANDROID_NDK_ROOT}"; then
 		HAVE_ANDROID_NDK=yes
@@ -2496,16 +2661,17 @@
 	dnl other options
 	dnl optimization{{{
-	dnl -- bypass standard optimization -g -O2 -fPIC -std=c++11?
+	dnl -- bypass standard optimization -g -O2 -fPIC?
+	AC_MSG_CHECKING(for C++ optimization flags)
 	AC_ARG_WITH(
 		[cxxoptflags],
 		AS_HELP_STRING([--with-cxxoptflags=CXXOPTFLAGS], [C++ optimization flags (i.e. --with-cxxoptflags="-march=opteron -O3 -std=c++11"]),
 		[CXXOPTFLAGS=${withval}],
-		[CXXOPTFLAGS="-g -O2 -fPIC -std=c++11"]
-	)
-	AC_MSG_CHECKING(for C++ optimization flags)
+		[CXXOPTFLAGS="-g -O2 -fPIC"]
+	)
 	AC_SUBST([CXXOPTFLAGS])
-	AC_MSG_RESULT([done])
+	AC_MSG_RESULT([${CXXOPTFLAGS}])
 	dnl }}}
 	dnl multithreading{{{
+	AC_MSG_CHECKING(for number of threads)
 	AC_ARG_WITH(
 		[numthreads],
@@ -2514,5 +2680,4 @@
 		[NUMTHREADS_VALUE=1]
 	)
-	AC_MSG_CHECKING(for number of threads)
 	dnl Check that supplied value is an integer
 	if [[ "${NUMTHREADS_VALUE}" != "${NUMTHREADS_VALUE}" 2> /dev/null ]]; then
@@ -2529,18 +2694,25 @@
 				MULTITHREADINGLIB="-lpthread -lrt"
 			;;
+			*darwin*)
+				MULTITHREADINGLIB="-lpthread"
+			;;
 			*linux*)
 				MULTITHREADINGLIB="-lpthread -lrt"
 			;;
-			*darwin*)
-				MULTITHREADINGLIB="-lpthread"
+			*mingw*)
+				MULTITHREADINGLIB=""
+			;;
+			*msys*)
+				MULTITHREADINGLIB=""
 			;;
 		esac
 		AC_DEFINE([_MULTITHREADING_], [1], [with multithreading enabled])
 	fi
-	AC_DEFINE_UNQUOTED(_NUMTHREADS_, $NUMTHREADS_VALUE, [number of threads])
+	AC_DEFINE_UNQUOTED([_NUMTHREADS_], ${NUMTHREADS_VALUE}, [number of threads])
 	AC_SUBST([MULTITHREADINGLIB])
 	AC_MSG_RESULT([${NUMTHREADS_VALUE}])
 	dnl }}}
 	dnl 64-bit indices{{{
+	AC_MSG_CHECKING([for 64-bit indices])
 	AC_ARG_WITH(
 		[64bit-indices],
@@ -2549,6 +2721,4 @@
 		[USE_64BIT_INDICES=0]
 	)
-	AC_MSG_CHECKING([for 64-bit indices])
-
 	if test "x${USE_64BIT_INDICES}" == "x1"; then
 		AC_DEFINE([ISSM_USE_64BIT_INDICES], [1], [with 64-bit indices])
@@ -2560,5 +2730,5 @@
 
 	dnl Checks {{{
-	AC_MSG_CHECKING(consistency between all libraries)
+	AC_MSG_CHECKING(consistency between all external packages)
 
 	dnl Check that if PETSc is requested, MPI is specified
@@ -2590,5 +2760,5 @@
 
 	dnl Check that if we run ADOL-C, we don't compile kriging.exe
-	if test "x$HAVE_ADOLC" == "xyes" && test "${HAVE_KRIGING}" == "xyes"; then
+	if test "x${HAVE_ADOLC}" == "xyes" && test "${HAVE_KRIGING}" == "xyes"; then
 		AC_MSG_ERROR([cannot compile kriging.exe under ADOL-C conditions!]);
 	fi
Index: /issm/trunk-jpl/scripts/win-msys2-create_local_msmpi_dir.sh
===================================================================
--- /issm/trunk-jpl/scripts/win-msys2-create_local_msmpi_dir.sh	(revision 26034)
+++ /issm/trunk-jpl/scripts/win-msys2-create_local_msmpi_dir.sh	(revision 26034)
@@ -0,0 +1,52 @@
+#!/bin/bash
+#
+# Creates a local MS-MPI directory to be used for supplying header and library
+# paths to ISSM configuration as well as the configuration of certain external
+# packages.
+#
+# Local MS-MPI include and library paths are made available as environment
+# variables LOCAL_MSMPI_INC and LOCAL_MSMPI_LIB, respectively (script can be
+# sourced again).
+#
+# Paths may need to be modified in the future if Microsoft changes the
+# directory structure and/or file naming in the MS-MPI package. Paths are
+# based on Microsoft MPI v10.0,
+#	https://www.microsoft.com/en-us/download/details.aspx?id=57467
+#
+LOCAL_MSMPI_ROOT="${ISSM_DIR}/MSMPI"
+LOCAL_MSMPI_INC="${LOCAL_MSMPI_ROOT}/include"
+LOCAL_MSMPI_LIB="${LOCAL_MSMPI_ROOT}/lib"
+MSMPI_RUNTIME_LIB="/c/Windows/System32/msmpi.dll"
+MSMPI_INC="/c/PROGRA~2/MICROS~2/MPI/Include"
+MSMPI_LIB="${ISSM_DIR}/externalpackages/windows/MSMPI/lib"
+
+cd ${ISSM_DIR}
+
+if [ -d ${LOCAL_MSMPI_ROOT} ]; then
+	echo "'${LOCAL_MSMPI_ROOT}' already exists!"
+	echo "If you need to recreate local MS-MPI directory, remove '${LOCAL_MSMPI_ROOT}' and rerun this script."
+else
+	mkdir ${LOCAL_MSMPI_ROOT} ${LOCAL_MSMPI_INC} ${LOCAL_MSMPI_LIB}
+
+	# Make SVN ignore local MS-MPI directory so that we do not accidentally
+	# commit it
+	svn propset svn:ignore ${LOCAL_MSMPI_ROOT} . &>/dev/null
+
+	# Copy MS-MPI header files
+	cp $MSMPI_INC/mpi.h ${LOCAL_MSMPI_INC}
+	cp $MSMPI_INC/mpi.f90 ${LOCAL_MSMPI_INC}
+	cp $MSMPI_INC/mpif.h ${LOCAL_MSMPI_INC}
+	cp $MSMPI_INC/mpio.h ${LOCAL_MSMPI_INC}
+	cp $MSMPI_INC/x64/mpifptr.h ${LOCAL_MSMPI_INC}
+
+	# Copy MS-MPI libraries
+	cp ${MSMPI_RUNTIME_LIB} ${LOCAL_MSMPI_LIB}
+
+	cd ${LOCAL_MSMPI_LIB}
+
+	# Create link to runtime library with MSYS prefix
+	ln -s ./msmpi.dll ./msys-msmpi.dll
+
+	# Create link to runtime library with lib prefix
+	ln -s ./msmpi.dll ./libmsmpi.dll
+fi
Index: /issm/trunk-jpl/src/c/Makefile.am
===================================================================
--- /issm/trunk-jpl/src/c/Makefile.am	(revision 26033)
+++ /issm/trunk-jpl/src/c/Makefile.am	(revision 26034)
@@ -1,3 +1,3 @@
-AM_CPPFLAGS = @NEOPZINCL@ @DAKOTAINCL@ @SHAPELIBINCL@ @PETSCINCL@ @SLEPCINCL@ @AMPIINCL@ @ADJOINTMPIINCL@ @MEDIPACKINCL@ @MPIINCL@ @METISINCL@ @CHACOINCL@ @SCOTCHINCL@ @PLAPACKINCL@ @BLASLAPACKINCL@ @MKLINCL@ @MUMPSINCL@ @TRIANGLEINCL@ @SPAIINCL@ @HYPREINCL@ @PROMETHEUSINCL@ @SUPERLUINCL@ @SPOOLESINCL@ @PASTIXINCL@ @MLINCL@ @TAOINCL@ @ADIC2INCL@ @ADOLCINCL@ @CODIPACKINCL@ @GSLINCL@ @BOOSTINCL@ @ANDROID_NDKINCL@ @METEOIOINCL@ @SNOWPACKINCL@ @PROJINCL@ @ESMFINCL@
+AM_CPPFLAGS = @NEOPZINCL@ @DAKOTAINCL@ @SHAPELIBINCL@ @PETSCINCL@ @SLEPCINCL@ @AMPIINCL@ @ADJOINTMPIINCL@ @MEDIPACKINCL@ @MPIINCL@ @METISINCL@ @CHACOINCL@ @SCOTCHINCL@ @PLAPACKINCL@ @MKLINCL@ @MUMPSINCL@ @TRIANGLEINCL@ @SPAIINCL@ @HYPREINCL@ @PROMETHEUSINCL@ @SUPERLUINCL@ @SPOOLESINCL@ @PASTIXINCL@ @MLINCL@ @TAOINCL@ @ADIC2INCL@ @ADOLCINCL@ @CODIPACKINCL@ @GSLINCL@ @BOOSTINCL@ @ANDROID_NDKINCL@ @METEOIOINCL@ @SNOWPACKINCL@ @PROJINCL@ @ESMFINCL@
 AM_FCFLAGS = @SEMICINCL@
 
@@ -8,5 +8,8 @@
 #Library declaration {{{
 if !WINDOWS
-lib_LTLIBRARIES = libISSMCore.la libISSMOverload.la
+lib_LTLIBRARIES = libISSMCore.la
+if !MSYS2
+lib_LTLIBRARIES += libISSMOverload.la
+endif
 if WRAPPERS
 lib_LTLIBRARIES += libISSMModules.la
@@ -682,13 +685,18 @@
 #}}}
 #Library flags and sources {{{
-ALLCXXFLAGS= $(CXXFLAGS) $(CXXOPTFLAGS)
+ALL_CXXFLAGS = $(CXXFLAGS) $(CXXOPTFLAGS)
+
+# Cannot have undefined symbols under msys2
+if MSYS2
+ALL_CXXFLAGS += -D_DO_NOT_LOAD_GLOBALS_
+endif
 
 libISSMCore_la_SOURCES  = $(issm_sources)
-libISSMCore_la_CXXFLAGS = $(ALLCXXFLAGS) $(DAKOTAFLAGS)
+libISSMCore_la_CXXFLAGS = $(ALL_CXXFLAGS) $(DAKOTAFLAGS)
 libISSMCore_la_FFLAGS = $(AM_FFLAGS)
 
 if !WINDOWS
 if !STANDALONE_LIBRARIES
-libISSMCore_la_LIBADD = $(PETSCLIB) $(HDF5LIB) $(TAOLIB) $(M1QN3LIB) $(SEMICLIB) $(PLAPACKLIB) $(MUMPSLIB) $(SUPERLULIB) $(SPOOLESLIB) $(SCALAPACKLIB) $(BLACSLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(METISLIB) $(CHACOLIB) $(SCOTCHLIB) $(BLASLAPACKLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(OSLIBS) $(GSLLIB) $(ADOLCLIB) $(AMPILIB) $(ADJOINTMPILIB) $(METEOIOLIB) $(SNOWPACKLIB)
+libISSMCore_la_LIBADD = $(PETSCLIB) $(MUMPSLIB) $(SCALAPACKLIB) $(BLASLAPACKLIB) $(PARMETISLIB) $(METISLIB) $(HDF5LIB) $(TAOLIB) $(M1QN3LIB) $(SEMICLIB) $(PLAPACKLIB) $(SUPERLULIB) $(SPOOLESLIB) $(BLACSLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(CHACOLIB) $(SCOTCHLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(ADOLCLIB) $(AMPILIB) $(ADJOINTMPILIB) $(METEOIOLIB) $(SNOWPACKLIB) $(OSLIBS)
 if FORTRAN
 libISSMCore_la_LIBADD += $(FLIBS) $(FORTRANLIB)
@@ -711,5 +719,5 @@
 endif
 
-libISSMModules_la_CXXFLAGS = $(ALLCXXFLAGS)
+libISSMModules_la_CXXFLAGS = $(ALL_CXXFLAGS)
 if !WINDOWS
 if STANDALONE_LIBRARIES
@@ -743,22 +751,39 @@
 endif
 
+if VERSION
+libISSMCore_la_LDFLAGS =
+if WRAPPERS
+libISSMModules_la_LDFLAGS =
+endif
+else
+libISSMCore_la_LDFLAGS = -avoid-version
+if WRAPPERS
+libISSMModules_la_LDFLAGS = -avoid-version
+endif
+endif
+
 if STANDALONE_LIBRARIES
-libISSMCore_la_LDFLAGS = -static
-libISSMOverload_la_LDFLAGS = -static
+libISSMCore_la_LDFLAGS += -static
 if WRAPPERS
-libISSMModules_la_LDFLAGS = -static
-else
-libISSMModules_la_LDFLAGS =
-endif
-else
-libISSMCore_la_LDFLAGS =
-libISSMOverload_la_LDFLAGS =
-endif
-
-#}}}
+libISSMModules_la_LDFLAGS += -static
+endif
+endif
+#}}}
+
+if !MSYS2
 #Overload library, to overload any non-standard symbols. {{{
 libISSMOverload_la_SOURCES = ./shared/String/ApiPrintf.cpp
-
 libISSMOverload_la_CFLAGS  = -D_C_ -fPIC $(COPTFLAGS) $(CFLAGS)
+
+if VERSION
+libISSMOverload_la_LDFLAGS =
+else
+libISSMOverload_la_LDFLAGS = -avoid-version
+endif
+
+if STANDALONE_LIBRARIES
+libISSMOverload_la_LDFLAGS += -static
+endif
+endif
 #}}}
 #Executable {{{
@@ -778,5 +803,10 @@
 
 #Standard libraries
-LDADD = ./libISSMCore.la ./libISSMOverload.la
+LDADD = ./libISSMCore.la 
+
+if !MSYS2
+LDADD += ./libISSMOverload.la
+endif
+
 if WRAPPERS
 LDADD += ./libISSMModules.la $(TRIANGLELIB)
@@ -784,5 +814,5 @@
 
 #External packages
-LDADD += $(NEOPZLIB) $(TAOLIB) $(M1QN3LIB) $(SEMICLIB) $(PLAPACKLIB) $(MUMPSLIB) $(SUPERLULIB) $(SPOOLESLIB) $(SCALAPACKLIB) $(BLACSLIB) $(PETSCLIB) $(HDF5LIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(METISLIB) $(CHACOLIB) $(SCOTCHLIB) $(BLASLAPACKLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(OSLIBS) $(GSLLIB) $(AMPILIB) $(ADJOINTMPILIB) $(ADOLCLIB) $(MPILIB) $(METEOIOLIB) $(SNOWPACKLIB) $(PROJLIB) $(ESMFLIB)
+LDADD +=  $(PETSCLIB) $(MUMPSLIB) $(SCALAPACKLIB) $(BLASLAPACKLIB) $(PARMETISLIB) $(METISLIB) $(NEOPZLIB) $(TAOLIB) $(M1QN3LIB) $(SEMICLIB) $(PLAPACKLIB) $(SUPERLULIB) $(SPOOLESLIB) $(BLACSLIB) $(HDF5LIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(CHACOLIB) $(SCOTCHLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(AMPILIB) $(ADJOINTMPILIB) $(ADOLCLIB) $(MPILIB) $(METEOIOLIB) $(SNOWPACKLIB) $(PROJLIB) $(ESMFLIB) $(OSLIBS)
 
 if FORTRAN
Index: /issm/trunk-jpl/src/c/shared/io/Comm/IssmComm.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/io/Comm/IssmComm.cpp	(revision 26033)
+++ /issm/trunk-jpl/src/c/shared/io/Comm/IssmComm.cpp	(revision 26034)
@@ -12,4 +12,9 @@
 #include "../../Numerics/types.h"
 #include "../../Exceptions/exceptions.h"
+
+#ifdef _DO_NOT_LOAD_GLOBALS_
+ISSM_MPI_Comm	IssmComm::comm;
+bool			IssmComm::parallel;
+#endif
 
 void IssmComm::SetComm(ISSM_MPI_Comm incomm){ /*{{{*/
Index: /issm/trunk-jpl/src/c/shared/io/Print/PrintfFunction.cpp
===================================================================
--- /issm/trunk-jpl/src/c/shared/io/Print/PrintfFunction.cpp	(revision 26033)
+++ /issm/trunk-jpl/src/c/shared/io/Print/PrintfFunction.cpp	(revision 26034)
@@ -32,4 +32,6 @@
 		#ifdef _HAVE_ANDROID_JNI_
 		__android_log_print(ANDROID_LOG_INFO, "Native",message.c_str());
+		#elif _IS_MSYS2_
+		printf("%s",message.c_str());
 		#else
 		ApiPrintf(message.c_str());
@@ -42,4 +44,6 @@
 	#ifdef _HAVE_ANDROID_JNI_
 	__android_log_print(ANDROID_LOG_INFO, "Native",message.c_str());
+	#elif _IS_MSYS2_
+	printf("%s",message.c_str());
 	#else
 	ApiPrintf(message.c_str());
Index: /issm/trunk-jpl/src/c/toolkits/ToolkitOptions.cpp
===================================================================
--- /issm/trunk-jpl/src/c/toolkits/ToolkitOptions.cpp	(revision 26033)
+++ /issm/trunk-jpl/src/c/toolkits/ToolkitOptions.cpp	(revision 26034)
@@ -8,4 +8,9 @@
 #include "../shared/Exceptions/exceptions.h"
 #include "../shared/MemOps/MemOps.h"
+
+#ifdef _DO_NOT_LOAD_GLOBALS_
+char* ToolkitOptions::toolkittype;
+char* ToolkitOptions::toolkitoptions;
+#endif
 
 void  ToolkitOptions::Init(const char* toolkit_in,const char* options){ /*{{{*/
Index: /issm/trunk-jpl/src/m/classes/clusters/generic.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/generic.m	(revision 26033)
+++ /issm/trunk-jpl/src/m/classes/clusters/generic.m	(revision 26034)
@@ -28,5 +28,5 @@
 
 			%Change the defaults if ispc
-			if ispc,
+			if ispc & ~ismingw,
 				cluster.codepath      = [issmdir() '\bin'];
 				cluster.etcpath       = [issmdir() '\etc'];
@@ -145,5 +145,6 @@
 
 				if cluster.np>1,
-					fprintf(fid,'"C:\\Program Files\\MPICH2\\bin\\mpiexec.exe" -n %i "%s/%s" %s ./ %s ',cluster.np,cluster.codepath,executable,solution,modelname);
+					% fprintf(fid,'"C:\\Program Files\\MPICH2\\bin\\mpiexec.exe" -n %i "%s/%s" %s ./ %s ',cluster.np,cluster.codepath,executable,solution,modelname);
+					fprintf(fid,'"C:\\PROGRA~1\\MICROS~1\\Bin\\mpiexec.exe" -n %i "%s/%s" %s ./ %s ',cluster.np,cluster.codepath,executable,solution,modelname);
 				else
 					fprintf(fid,'"%s/%s" %s ./ %s ',cluster.codepath,executable,solution,modelname);
Index: /issm/trunk-jpl/src/m/classes/clusters/localpfe.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/localpfe.m	(revision 26033)
+++ /issm/trunk-jpl/src/m/classes/clusters/localpfe.m	(revision 26034)
@@ -27,6 +27,6 @@
 		function cluster=localpfe(varargin) % {{{
 
-			%Change the defaults if ispc
-			if ispc,
+			%Change the defaults if ispc and not ismingw
+			if ispc & ~ismingw,
 				cluster.codepath      = [issmdir() '\bin'];
 				cluster.etcpath       = [issmdir() '\etc'];
@@ -106,5 +106,5 @@
 			executable='issm_slc.exe';
 
-			if ispc(), error('BuildQueueScriptMultipleModels not support yet on windows machines');end;
+			if ispc & ~ismingw, error('BuildQueueScriptMultipleModels not support yet on windows machines');end;
 			
 			%write queuing script 
@@ -170,5 +170,5 @@
 
 			%write queuing script 
-			if ~ispc(),
+			if ~ispc,
 
 				fid=fopen([modelname '.queue'],'w');
@@ -214,5 +214,5 @@
 		%}}}
 		function UploadQueueJob(cluster,modelname,dirname,filelist)% {{{
-			if ~ispc,
+			if ~ispc | ismingw,
 
 				%compress the files into one zip.
@@ -262,5 +262,5 @@
 		function Download(cluster,dirname,filelist)% {{{
 
-			if ispc(),
+			if ispc && ~ismingw,
 				%do nothing
 				return;
Index: /issm/trunk-jpl/src/m/classes/clusters/pfe.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/clusters/pfe.m	(revision 26033)
+++ /issm/trunk-jpl/src/m/classes/clusters/pfe.m	(revision 26034)
@@ -216,5 +216,5 @@
 			executable='issm_slc.exe';
 
-			if ispc(), error('BuildQueueScriptMultipleModels not support yet on windows machines');end;
+			if ispc & ~ismingw, error('BuildQueueScriptMultipleModels not support yet on windows machines');end;
 
 			%write queuing script 
Index: /issm/trunk-jpl/src/m/dev/devpath.m
===================================================================
--- /issm/trunk-jpl/src/m/dev/devpath.m	(revision 26033)
+++ /issm/trunk-jpl/src/m/dev/devpath.m	(revision 26034)
@@ -3,9 +3,10 @@
 
 %Recover ISSM_DIR , or if on a Windows machine, ISSM_DIR_WIN
-if ~ispc,
+if ispc,
+	ISSM_DIR=getenv('ISSM_DIR_WIN');
+else
 	ISSM_DIR=getenv('ISSM_DIR');
-else
-	ISSM_DIR=getenv('ISSM_DIR_WIN');
 end
+
 if (isempty(ISSM_DIR)),
 	error('''ISSM_DIR'' environment variable is empty! You should define ISSM_DIR in your .cshrc or .bashrc!');
@@ -18,5 +19,5 @@
 %ISSM path
 addpath([ISSM_DIR '/src/m/os/']); %load recursivepath
-addpath([ISSM_DIR '/lib']);       %load mex
+addpath([ISSM_DIR '/lib']);       %load MEX files
 addpath(recursivepath([ISSM_DIR '/src/m']));
 addpath(recursivepath([ISSM_DIR '/externalpackages/scotch']));
Index: /issm/trunk-jpl/src/m/os/ismingw.m
===================================================================
--- /issm/trunk-jpl/src/m/os/ismingw.m	(revision 26034)
+++ /issm/trunk-jpl/src/m/os/ismingw.m	(revision 26034)
@@ -0,0 +1,11 @@
+function result=ismingw()
+%ISMINGW - Returns 1 if machine is running MinGW.
+%
+%   Usage:
+%      if ismingw,
+%         [...]
+%      end
+%
+
+[status,result]=system('uname -rs | grep "MINGW" | wc -l');
+result=str2num(result);
Index: /issm/trunk-jpl/src/m/os/issmscpin.m
===================================================================
--- /issm/trunk-jpl/src/m/os/issmscpin.m	(revision 26033)
+++ /issm/trunk-jpl/src/m/os/issmscpin.m	(revision 26034)
@@ -18,12 +18,9 @@
 %if hostname and host are the same, do a simple copy
 if strcmpi(hostname,host),
-
-    for i=1:numel(packages),
+	for i=1:numel(packages),
 		success=copyfile([path '/' packages{i}]); %keep going, even if success=0
 	end
-
 else
-
-	if ispc(),
+	if ispc & ~ismingw,
 		%use the putty project pscp.exe: it should be in the path.
 
Index: /issm/trunk-jpl/src/m/os/issmscpout.m
===================================================================
--- /issm/trunk-jpl/src/m/os/issmscpout.m	(revision 26033)
+++ /issm/trunk-jpl/src/m/os/issmscpout.m	(revision 26034)
@@ -24,5 +24,5 @@
 		system(['rm -rf ' packages{i} ]);
 		if no_symlinks,
-			system(['cp  ' here '/' packages{i} ' .']);
+			system(['cp ' here '/' packages{i} ' .']);
 		else
 			system(['ln -s ' here '/' packages{i} ' .']);
@@ -31,5 +31,5 @@
 	end
 else 
-	if ispc(),
+	if ispc & ~ismingw,
 		%use the putty project pscp.exe: it should be in the path.
 
Index: /issm/trunk-jpl/src/m/os/issmssh.m
===================================================================
--- /issm/trunk-jpl/src/m/os/issmssh.m	(revision 26033)
+++ /issm/trunk-jpl/src/m/os/issmssh.m	(revision 26034)
@@ -12,5 +12,5 @@
 	system(command);
 else
-	if ispc(),
+	if ispc & ~ismingw,
 		%use the putty project plink.exe: it should be in the path.
 
Index: /issm/trunk-jpl/src/m/os/oshostname.m
===================================================================
--- /issm/trunk-jpl/src/m/os/oshostname.m	(revision 26033)
+++ /issm/trunk-jpl/src/m/os/oshostname.m	(revision 26034)
@@ -22,5 +22,5 @@
 %Method 3, last chance
 if isempty(hostname),
-	if ispc
+	if ispc % If OS is MinGW, $COMPUTERNAME and $HOSTNAME are identical
 		hostname = getenv('COMPUTERNAME');
 	else
Index: /issm/trunk-jpl/src/m/solve/loadresultsfromdisk.m
===================================================================
--- /issm/trunk-jpl/src/m/solve/loadresultsfromdisk.m	(revision 26033)
+++ /issm/trunk-jpl/src/m/solve/loadresultsfromdisk.m	(revision 26034)
@@ -12,5 +12,4 @@
 
 if ~md.qmu.isdakota,
-
 	%Check that file exists
 	if ~exist(filename,'file'),
Index: /issm/trunk-jpl/src/wrappers/Triangle/Triangle.h
===================================================================
--- /issm/trunk-jpl/src/wrappers/Triangle/Triangle.h	(revision 26033)
+++ /issm/trunk-jpl/src/wrappers/Triangle/Triangle.h	(revision 26034)
@@ -19,5 +19,5 @@
 #ifdef _HAVE_JAVASCRIPT_MODULES_
 #undef _DO_NOT_LOAD_GLOBALS_ /*only module where this needs to be undefined, so as to 
-							   not include IssmComm several times in the javascript Modle construct.*/
+							   not include IssmComm several times in the JavaScript module construct.*/
 #endif
 
Index: /issm/trunk-jpl/src/wrappers/javascript/Makefile.am
===================================================================
--- /issm/trunk-jpl/src/wrappers/javascript/Makefile.am	(revision 26033)
+++ /issm/trunk-jpl/src/wrappers/javascript/Makefile.am	(revision 26034)
@@ -1,3 +1,3 @@
-AM_CPPFLAGS = @DAKOTAINCL@ @PETSCINCL@ @MPIINCL@ @SPOOLESINCL@ @METISINCL@ @TRIANGLEINCL@ @CHACOINCL@ @SCOTCHINCL@ @SHAPELIBINCL@ @AMPIINCL@ @ADJOINTMPIINCL@ @CODIPACKINCL@
+AM_CPPFLAGS = @DAKOTAINCL@ @PETSCINCL@ @MPIINCL@ @SPOOLESINCL@ @PARMETISINCL@ @METISINCL@ @TRIANGLEINCL@ @CHACOINCL@ @SCOTCHINCL@ @SHAPELIBINCL@ @AMPIINCL@ @ADJOINTMPIINCL@ @CODIPACKINCL@
 AUTOMAKE_OPTIONS = subdir-objects
 
@@ -60,5 +60,5 @@
 AM_CXXFLAGS +=  -D_HAVE_JAVASCRIPT_MODULES_ -fPIC
 
-deps = ./libISSMJavascript.la ../../c/libISSMModules.la ../../c/libISSMCore.la ./libISSMApi.la
+deps = ./libISSMJavascript.la ./libISSMApi.la ../../c/libISSMCore.la ../../c/libISSMModules.la
 
 #Optimization flags:
Index: /issm/trunk-jpl/src/wrappers/matlab/Makefile.am
===================================================================
--- /issm/trunk-jpl/src/wrappers/matlab/Makefile.am	(revision 26033)
+++ /issm/trunk-jpl/src/wrappers/matlab/Makefile.am	(revision 26034)
@@ -20,8 +20,15 @@
 	./io/WriteMatlabData.cpp
 
-ALLCXXFLAGS= -fPIC -D_WRAPPERS_ $(CXXFLAGS) $(CXXOPTFLAGS)
+ALL_CXXFLAGS = -fPIC -D_WRAPPERS_
+
+# Cannot have undefined symbols under msys2
+if MSYS2
+ALL_CXXFLAGS += -D_DO_NOT_LOAD_GLOBALS_
+endif
+
+ALL_CXXFLAGS += $(CXXOPTFLAGS) $(CXXFLAGS)
 
 libISSMMatlab_la_SOURCES = $(io_sources)
-libISSMMatlab_la_CXXFLAGS= $(ALLCXXFLAGS)
+libISSMMatlab_la_CXXFLAGS = ${ALL_CXXFLAGS}
 #}}}
 #api io{{{
@@ -32,8 +39,10 @@
 endif
 
+if !MSYS2
 api_sources= ./io/ApiPrintf.cpp
 
 libISSMApi_la_SOURCES = $(api_sources)
-libISSMApi_la_CXXFLAGS= $(ALLCXXFLAGS)
+libISSMApi_la_CXXFLAGS = ${ALL_CXXFLAGS}
+endif
 #}}}
 #Wrappers {{{
@@ -82,8 +91,20 @@
 
 #Triangle library
-AM_CXXFLAGS =  -DTRILIBRARY -DANSI_DECLARATORS -DNO_TIMER -D_WRAPPERS_
+TRI_CXXFLAGS = -DTRILIBRARY -DANSI_DECLARATORS -DNO_TIMER
 
 #Matlab part
-AM_LDFLAGS = -module $(MEXLINK) -shrext ${EXEEXT} --export-dynamic -rdynamic -no-undefined
+MEX_CXXFLAGS = -D_HAVE_MATLAB_MODULES_ $(MEXOPTFLAGS) $(MEXCXXFLAGS)
+MEX_CPPFLAGS = $(MATLABINCL)
+MEX_LDFLAGS = -module -shrext $(MEXEXT) -no-undefined
+MEX_LIBADD = $(MEXLINKFLAGS) $(MEXLIB)
+
+AM_CPPFLAGS += ${MEX_CPPFLAGS}
+AM_CXXFLAGS = ${TRI_CXXFLAGS} ${MEX_CXXFLAGS}
+AM_LDFLAGS = ${MEX_LDFLAGS}
+AM_LIBADD = ${MEX_LIBADD}
+
+if !MSYS2
+AM_LDFLAGS += --export-dynamic -rdynamic
+endif
 
 if !VERSION
@@ -108,9 +129,13 @@
 AM_CXXFLAGS += -D_HAVE_MATLAB_MODULES_ -fPIC
 
-deps += ./libISSMMatlab.la ../../c/libISSMModules.la ../../c/libISSMCore.la ./libISSMApi.la
-
-if WINDOWS
-deps += $(METISLIB)
-endif
+deps += ./libISSMMatlab.la ../../c/libISSMCore.la ../../c/libISSMModules.la
+
+if !MSYS2
+deps += ./libISSMApi.la
+endif
+
+# if WINDOWS
+# deps += $(METISLIB)
+# endif
 
 if ADOLC
@@ -122,137 +147,145 @@
 endif
 
-#MEXLIB needs to be the last (undefined references on larsen)
-deps += ${MEXLIB}
-
-#Optimization flags:
-AM_CXXFLAGS += $(CXXOPTFLAGS)
+# #MEXLIB needs to be the last (undefined references on larsen)
+# deps += ${MEXLIB}
+
+# #Optimization flags:
+# AM_CXXFLAGS += $(CXXOPTFLAGS)
 #}}}
 # Module sources and dependencies {{{
 if !WINDOWS
-libISSMMatlab_la_LIBADD = ./../../c/libISSMCore.la ./../../c/libISSMModules.la $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(MKLLIB) $(GSLLIB) $(PROJLIB) $(MATHLIB) $(MEXLIB)
+libISSMMatlab_la_LIBADD = ./../../c/libISSMCore.la ./../../c/libISSMModules.la $(PETSCLIB) $(MUMPSLIB) $(SCALAPACKLIB) $(BLASLAPACKLIB) $(PARMETISLIB) $(METISLIB) $(HDF5LIB) $(MPILIB) $(NEOPZLIB) $(MKLLIB) $(GSLLIB) $(PROJLIB) $(MATHLIB) $(MEXLIB)
+endif
+
+if VERSION
+libISSMMatlab_la_LDFLAGS =
+libISSMApi_la_LDFLAGS =
+else
+libISSMMatlab_la_LDFLAGS = -avoid-version
+libISSMApi_la_LDFLAGS = -avoid-version
 endif
 
 if STANDALONE_LIBRARIES
-libISSMMatlab_la_LDFLAGS = -static
-libISSMApi_la_LDFLAGS = -static
-deps += $(PETSCLIB) $(HDF5LIB) $(TAOLIB) $(NEOPZLIB) $(M1QN3LIB) $(SEMICLIB) $(PLAPACKLIB) $(MUMPSLIB) $(SUPERLULIB) $(SPOOLESLIB) $(TRIANGLELIB) $(SCALAPACKLIB) $(BLACSLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(METISLIB) $(CHACOLIB) $(SCOTCHLIB) $(BLASLAPACKLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(OSLIBS) $(GSLLIB) $(ADOLCLIB) $(AMPILIB) $(METEOIOLIB) $(SNOWPACKLIB)
-endif
-
-if !WINDOWS
-libISSMApi_la_LIBADD = $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB) $(MATHLIB) $(MEXLIB)
+libISSMMatlab_la_LDFLAGS += -static
+libISSMApi_la_LDFLAGS += -static
+deps +=  $(PETSCLIB) $(MUMPSLIB) $(SCALAPACKLIB) $(BLASLAPACKLIB) $(PARMETISLIB) $(METISLIB) $(HDF5LIB) $(TAOLIB) $(NEOPZLIB) $(M1QN3LIB) $(SEMICLIB) $(PLAPACKLIB) $(SUPERLULIB) $(SPOOLESLIB) $(TRIANGLELIB) $(BLACSLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(CHACOLIB) $(SCOTCHLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(ADOLCLIB) $(AMPILIB) $(METEOIOLIB) $(SNOWPACKLIB) $(PROJLIB) $(OSLIBS)
+endif
+
+if !WINDOWS
+libISSMApi_la_LIBADD = $(PETSCLIB) $(MUMPSLIB) $(SCALAPACKLIB) $(BLASLAPACKLIB) $(PARMETISLIB) $(METISLIB) $(HDF5LIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB) $(MATHLIB) $(MEXLIB)
 endif
 
 BamgConvertMesh_matlab_la_SOURCES = ../BamgConvertMesh/BamgConvertMesh.cpp
 BamgConvertMesh_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-BamgConvertMesh_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+BamgConvertMesh_matlab_la_LIBADD = ${deps} ${AM_LIBADD}
 
 BamgMesher_matlab_la_SOURCES = ../BamgMesher/BamgMesher.cpp
 BamgMesher_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-BamgMesher_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+BamgMesher_matlab_la_LIBADD = ${deps} ${AM_LIBADD}
 
 BamgTriangulate_matlab_la_SOURCES = ../BamgTriangulate/BamgTriangulate.cpp
 BamgTriangulate_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-BamgTriangulate_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+BamgTriangulate_matlab_la_LIBADD = ${deps} ${AM_LIBADD}
 
 if CHACO
 Chaco_matlab_la_SOURCES = ../Chaco/Chaco.cpp
 Chaco_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-Chaco_matlab_la_LIBADD = ${deps} $(CHACOLIB) $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+Chaco_matlab_la_LIBADD = ${deps} ${AM_LIBADD}
 endif
 
 ContourToMesh_matlab_la_SOURCES = ../ContourToMesh/ContourToMesh.cpp
 ContourToMesh_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-ContourToMesh_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+ContourToMesh_matlab_la_LIBADD = ${deps} ${AM_LIBADD}
 
 ContourToNodes_matlab_la_SOURCES = ../ContourToNodes/ContourToNodes.cpp
 ContourToNodes_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-ContourToNodes_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+ContourToNodes_matlab_la_LIBADD = ${deps} ${AM_LIBADD}
 
 CoordTransform_matlab_la_SOURCES = ../CoordTransform/CoordTransform.cpp
 CoordTransform_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-CoordTransform_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+CoordTransform_matlab_la_LIBADD = ${deps} ${AM_LIBADD}
 
 DistanceToMaskBoundary_matlab_la_SOURCES = ../DistanceToMaskBoundary/DistanceToMaskBoundary.cpp
 DistanceToMaskBoundary_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-DistanceToMaskBoundary_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+DistanceToMaskBoundary_matlab_la_LIBADD = ${deps} ${AM_LIBADD}
 
 ElementConnectivity_matlab_la_SOURCES = ../ElementConnectivity/ElementConnectivity.cpp
 ElementConnectivity_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-ElementConnectivity_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+ElementConnectivity_matlab_la_LIBADD = ${deps} ${AM_LIBADD}
 
 ExpToLevelSet_matlab_la_SOURCES = ../ExpToLevelSet/ExpToLevelSet.cpp
 ExpToLevelSet_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-ExpToLevelSet_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+ExpToLevelSet_matlab_la_LIBADD = ${deps} ${AM_LIBADD}
 
 ExpSimplify_matlab_la_SOURCES = ../ExpSimplify/ExpSimplify.cpp
 ExpSimplify_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-ExpSimplify_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB) $(NEOPZLIB)
+ExpSimplify_matlab_la_LIBADD = ${deps} ${AM_LIBADD}
 
 InterpFromGridToMesh_matlab_la_SOURCES = ../InterpFromGridToMesh/InterpFromGridToMesh.cpp
 InterpFromGridToMesh_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-InterpFromGridToMesh_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+InterpFromGridToMesh_matlab_la_LIBADD = ${deps} ${AM_LIBADD}
 
 InterpFromMesh2d_matlab_la_SOURCES = ../InterpFromMesh2d/InterpFromMesh2d.cpp
 InterpFromMesh2d_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-InterpFromMesh2d_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+InterpFromMesh2d_matlab_la_LIBADD = ${deps} ${AM_LIBADD}
 
 InterpFromMeshToGrid_matlab_la_SOURCES = ../InterpFromMeshToGrid/InterpFromMeshToGrid.cpp
 InterpFromMeshToGrid_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-InterpFromMeshToGrid_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+InterpFromMeshToGrid_matlab_la_LIBADD = ${deps} ${AM_LIBADD}
 
 InterpFromMeshToMesh2d_matlab_la_SOURCES = ../InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.cpp
 InterpFromMeshToMesh2d_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-InterpFromMeshToMesh2d_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+InterpFromMeshToMesh2d_matlab_la_LIBADD = ${deps} ${AM_LIBADD}
 
 InterpFromMeshToMesh3d_matlab_la_SOURCES = ../InterpFromMeshToMesh3d/InterpFromMeshToMesh3d.cpp
 InterpFromMeshToMesh3d_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-InterpFromMeshToMesh3d_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+InterpFromMeshToMesh3d_matlab_la_LIBADD = ${deps} ${AM_LIBADD}
 
 IssmConfig_matlab_la_SOURCES = ../IssmConfig/IssmConfig.cpp
 IssmConfig_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-IssmConfig_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(MPILIB) $(NEOPZLIB)
+IssmConfig_matlab_la_LIBADD = ${deps} ${AM_LIBADD}
 
 Kriging_matlab_la_SOURCES = ../Kriging/Kriging.cpp
 Kriging_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-Kriging_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(PROJLIB)
+Kriging_matlab_la_LIBADD = ${deps} ${AM_LIBADD}
 
 M1qn3_matlab_la_SOURCES = ../M1qn3/M1qn3.cpp
 M1qn3_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-M1qn3_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(METISLIB) $(M1QN3LIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+M1qn3_matlab_la_LIBADD = ${deps} ${AM_LIBADD}
 
 MeshPartition_matlab_la_SOURCES = ../MeshPartition/MeshPartition.cpp
 MeshPartition_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-MeshPartition_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(METISLIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+MeshPartition_matlab_la_LIBADD = ${deps} ${AM_LIBADD}
 
 MeshProfileIntersection_matlab_la_SOURCES = ../MeshProfileIntersection/MeshProfileIntersection.cpp
 MeshProfileIntersection_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-MeshProfileIntersection_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+MeshProfileIntersection_matlab_la_LIBADD = ${deps} ${AM_LIBADD}
 
 NodeConnectivity_matlab_la_SOURCES = ../NodeConnectivity/NodeConnectivity.cpp
 NodeConnectivity_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-NodeConnectivity_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+NodeConnectivity_matlab_la_LIBADD = ${deps} ${AM_LIBADD}
 
 PointCloudFindNeighbors_matlab_la_SOURCES = ../PointCloudFindNeighbors/PointCloudFindNeighbors.cpp
 PointCloudFindNeighbors_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-PointCloudFindNeighbors_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+PointCloudFindNeighbors_matlab_la_LIBADD = ${deps} ${AM_LIBADD}
 
 PropagateFlagsFromConnectivity_matlab_la_SOURCES = ../PropagateFlagsFromConnectivity/PropagateFlagsFromConnectivity.cpp
 PropagateFlagsFromConnectivity_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-PropagateFlagsFromConnectivity_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+PropagateFlagsFromConnectivity_matlab_la_LIBADD = ${deps} ${AM_LIBADD}
 
 Scotch_matlab_la_SOURCES = ../Scotch/Scotch.cpp
 Scotch_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-Scotch_matlab_la_LIBADD = ${deps}  $(PETSCLIB) $(HDF5LIB) $(SCOTCHLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(BLASLAPACKLIB)
+Scotch_matlab_la_LIBADD = ${deps} ${AM_LIBADD}
 
 ShpRead_matlab_la_SOURCES = ../ShpRead/ShpRead.cpp
 ShpRead_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-ShpRead_matlab_la_LIBADD = ${deps} $(SHAPELIBLIB) $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+ShpRead_matlab_la_LIBADD = ${deps} ${AM_LIBADD}
 
 Triangle_matlab_la_SOURCES = ../Triangle/Triangle.cpp
 Triangle_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-Triangle_matlab_la_LIBADD = ${deps} $(TRIANGLELIB) $(PETSCLIB) $(HDF5LIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+Triangle_matlab_la_LIBADD = ${deps} $(TRIANGLELIB) ${AM_LIBADD}
 
 ProcessRifts_matlab_la_SOURCES = ../ProcessRifts/ProcessRifts.cpp
 ProcessRifts_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-ProcessRifts_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
-#}}}
+ProcessRifts_matlab_la_LIBADD = ${deps} ${AM_LIBADD}
+#}}}
Index: /issm/trunk-jpl/src/wrappers/matlab/include/wrapper_macros.h
===================================================================
--- /issm/trunk-jpl/src/wrappers/matlab/include/wrapper_macros.h	(revision 26033)
+++ /issm/trunk-jpl/src/wrappers/matlab/include/wrapper_macros.h	(revision 26034)
@@ -34,5 +34,5 @@
 /*}}}*/
 /* WRAPPER {{{*/
-#define WRAPPER(modulename,...) void mexFunction(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]) 
+#define WRAPPER(modulename,...) void mexFunction(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]) /* NOTE: In this case, modulename is thrown away in the macro expansion whereas it is used in for the Python wrappers (see also: src/wrappers/python/include/wrapper_macros.h, any result of `grep -r 'WRAPPER(' $ISSM_DIR/src)` */
 /*}}}*/
 /* CHECKARGUMENTS {{{*/
Index: /issm/trunk-jpl/src/wrappers/python/Makefile.am
===================================================================
--- /issm/trunk-jpl/src/wrappers/python/Makefile.am	(revision 26033)
+++ /issm/trunk-jpl/src/wrappers/python/Makefile.am	(revision 26034)
@@ -1,3 +1,3 @@
-AM_CPPFLAGS = @DAKOTAINCL@ @PETSCINCL@ @MPIINCL@ @SPOOLESINCL@ @METISINCL@ @TRIANGLEINCL@ @CHACOINCL@ @SCOTCHINCL@ @SHAPELIBINCL@ @PYTHONINCL@ @PYTHON_NUMPYINCL@ @AMPIINCL@ @ADJOINTMPIINCL@ @MEDIPACKINCL@ @CODIPACKINCL@
+AM_CPPFLAGS = @DAKOTAINCL@ @PETSCINCL@ @MPIINCL@ @SPOOLESINCL@ @PARMETISINCL@ @METISINCL@ @TRIANGLEINCL@ @CHACOINCL@ @SCOTCHINCL@ @SHAPELIBINCL@ @PYTHONINCL@ @PYTHON_NUMPYINCL@ @AMPIINCL@ @ADJOINTMPIINCL@ @MEDIPACKINCL@ @CODIPACKINCL@
 AUTOMAKE_OPTIONS = subdir-objects
 
@@ -70,5 +70,5 @@
 #	will be linked to, whether we like it or not, if no static version is
 #	available.
-# - On macOS, static linking of binaries is not supported.
+# - On macOC, static linking of binaries is not supported.
 #
 if STANDALONE_MODULES
@@ -87,5 +87,5 @@
 endif
 
-deps += ./libISSMPython.la ../../c/libISSMModules.la ../../c/libISSMCore.la ./libISSMApi.la
+deps += ./libISSMPython.la ./libISSMApi.la ../../c/libISSMCore.la ../../c/libISSMModules.la
 
 if ADOLC
@@ -106,5 +106,5 @@
 libISSMPython_la_LDFLAGS = -static
 libISSMApi_la_LDFLAGS = -static
-deps += $(DAKOTALIB) $(PETSCLIB) $(HDF5LIB) $(TAOLIB) $(NEOPZLIB) $(M1QN3LIB) $(SEMICLIB) $(PLAPACKLIB) $(MUMPSLIB) $(SUPERLULIB) $(SPOOLESLIB) $(TRIANGLELIB) $(SCALAPACKLIB) $(BLACSLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(METISLIB) $(CHACOLIB) $(SCOTCHLIB) $(BLASLAPACKLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(OSLIBS) $(GSLLIB) $(ADOLCLIB) $(AMPILIB) $(METEOIOLIB) $(SNOWPACKLIB)
+deps += $(DAKOTALIB) $(PETSCLIB) $(MUMPSLIB) $(SCALAPACKLIB) $(BLASLAPACKLIB) $(PARMETISLIB) $(METISLIB) $(HDF5LIB) $(TAOLIB) $(NEOPZLIB) $(M1QN3LIB) $(SEMICLIB) $(PLAPACKLIB) $(SUPERLULIB) $(SPOOLESLIB) $(TRIANGLELIB) $(BLACSLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(CHACOLIB) $(SCOTCHLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(ADOLCLIB) $(AMPILIB) $(METEOIOLIB) $(SNOWPACKLIB) $(OSLIBS)
 endif
 
