Index: /issm/trunk-jpl/externalpackages/curl/install-7.67-static.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/curl/install-7.67-static.sh	(revision 24919)
+++ /issm/trunk-jpl/externalpackages/curl/install-7.67-static.sh	(revision 24919)
@@ -0,0 +1,42 @@
+#!/bin/bash
+set -eu
+
+
+## Constants
+#
+VER="7.67.0"
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/curl-${VER}.tar.gz" "curl-${VER}.tar.gz"
+
+# Unpack source
+tar -zxvf curl-$VER.tar.gz
+
+# Cleanup
+rm -rf install src
+mkdir install src
+
+# Move source to 'src' directory
+mv curl-$VER/* src
+rm -rf curl-$VER
+
+# Configure
+cd src
+./configure \
+	--prefix="${ISSM_DIR}/externalpackages/curl/install" \
+	--disable-shared \
+	--disable-dependency-tracking \
+	--disable-manual \
+	--disable-verbose
+
+# Compile and install
+if [ $# -eq 0 ]; then
+	make
+	make install
+else
+	make -j $1
+	make -j $1 install
+fi
+
+# Return to initial directory
+cd ../..
Index: /issm/trunk-jpl/externalpackages/curl/install-7.67.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/curl/install-7.67.sh	(revision 24918)
+++ /issm/trunk-jpl/externalpackages/curl/install-7.67.sh	(revision 24919)
@@ -25,4 +25,6 @@
 ./configure \
 	--prefix="${ISSM_DIR}/externalpackages/curl/install" \
+	--disable-static \
+	--disable-dependency-tracking \
 	--disable-manual \
 	--disable-verbose
Index: sm/trunk-jpl/externalpackages/curl/install-macosx64.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/curl/install-macosx64.sh	(revision 24918)
+++ 	(revision )
@@ -1,32 +1,0 @@
-#!/bin/bash
-set -eu
-
-#Some cleanup
-rm -rf src install curl-7.39.0
-mkdir src install
-
-#Download from ISSM server
-$ISSM_DIR/scripts/DownloadExternalPackage.sh 'https://issm.ess.uci.edu/files/externalpackages/curl-7.39.0.tar.gz' 'curl-7.39.0.tar.gz'
-
-#Untar 
-tar -zxvf  curl-7.39.0.tar.gz
-
-#Move curl into src directory
-mv curl-7.39.0/* src
-rm -rf curl-7.39.0
-
-#Configure curl
-cd src
-
-export CFLAGS=" -arch x86_64"
-
-./configure \
-	--prefix="$ISSM_DIR/externalpackages/curl/install" 
-
-#Compile curl
-if [ $# -eq 0 ]; then
-	make
-else
-	make -j $1
-fi
-make install 
Index: /issm/trunk-jpl/externalpackages/gdal/install-3.0-python-netcdf-static.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/gdal/install-3.0-python-netcdf-static.sh	(revision 24919)
+++ /issm/trunk-jpl/externalpackages/gdal/install-3.0-python-netcdf-static.sh	(revision 24919)
@@ -0,0 +1,56 @@
+#!/bin/bash
+set -eu
+
+
+## TODO
+#	- May want to supply path to Python instead of, effectively, using result of `which python`
+#
+
+## Constants
+#
+VER="3.0.2"
+HDF5_ROOT="${ISSM_DIR}/externalpackages/petsc/install"
+NETCDF_ROOT="${ISSM_DIR}/externalpackages/petsc/install"
+PROJ_ROOT="${ISSM_DIR}/externalpackages/proj/install"
+
+## Environment
+#
+export CC=mpicc
+export CXX=mpicxx
+
+
+# Cleanup
+rm -rf install src
+mkdir install src
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "http://issm.jpl.nasa.gov/files/externalpackages/gdal-${VER}.tar.gz" "gdal-${VER}.tar.gz"
+
+# Unpack source
+tar -zxvf gdal-$VER.tar.gz
+
+# Move source into 'src' directory
+mv gdal-$VER/* src
+rm -rf gdal-$VER
+
+# Configure
+cd src
+./configure \
+	--prefix="${ISSM_DIR}/externalpackages/gdal/install" \
+	--disable-shared \
+	--with-python \
+	--with-hdf5="${HDF5_ROOT}" \
+	--with-netcdf="${NETCDF_ROOT}" \
+	--with-proj="${PROJ_ROOT}"
+
+# Compile and install
+if [ $# -eq 0 ]; then
+	make
+	make install
+else
+	make -j $1
+	make -j $1 install
+fi
+
+# Return to initial directory
+cd ..
Index: /issm/trunk-jpl/externalpackages/gmsh/install-3.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/gmsh/install-3.sh	(revision 24919)
+++ /issm/trunk-jpl/externalpackages/gmsh/install-3.sh	(revision 24919)
@@ -0,0 +1,38 @@
+#!/bin/bash
+set -eu
+
+
+## Constants
+#
+VER="3.0.5"
+
+# Cleanup
+rm -rf install src
+mkdir install src
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/gmsh-${VER}-source.tgz" "gmsh-${VER}-source.tgz"
+
+# Untar source
+tar -xvzf gmsh-${VER}-source.tgz
+
+# Move source to 'src' directory
+mv gmsh-${VER}-source/* src
+rm -rf gmsh-${VER}-source
+
+# Configure
+cd install
+cmake ../src \
+	-DCMAKE_INSTALL_PREFIX="${ISSM_DIR}/externalpackages/gmsh/install" \
+	-DENABLE_MPI=1 \
+	-DENABLE_BUILD_DYNAMIC=1 \
+	-DENABLE_BUILD_SHARED=1
+
+# Compile and install
+if [ $# -eq 0 ]; then
+	make
+	make install
+else
+	make -j $1
+	make -j $1 install
+fi
Index: /issm/trunk-jpl/externalpackages/gmsh/install-4-static.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/gmsh/install-4-static.sh	(revision 24919)
+++ /issm/trunk-jpl/externalpackages/gmsh/install-4-static.sh	(revision 24919)
@@ -0,0 +1,37 @@
+#!/bin/bash
+set -eu
+
+
+## Constants
+#
+VER="4.5.6"
+
+# Cleanup
+rm -rf install src
+mkdir install src
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/gmsh-${VER}-source.tgz" "gmsh-${VER}-source.tgz"
+
+# Untar source
+tar -xvzf gmsh-${VER}-source.tgz
+
+# Move source to 'src' directory
+mv gmsh-${VER}-source/* src
+rm -rf gmsh-${VER}-source
+
+# Configure
+cd install
+cmake ../src \
+	-DCMAKE_INSTALL_PREFIX="${ISSM_DIR}/externalpackages/gmsh/install" \
+	-DENABLE_MPI=1 \
+	-DENABLE_BUILD_LIB=1
+
+# Compile and install
+if [ $# -eq 0 ]; then
+	make
+	make install
+else
+	make -j $1
+	make -j $1 install
+fi
Index: /issm/trunk-jpl/externalpackages/gmsh/install-4.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/gmsh/install-4.sh	(revision 24919)
+++ /issm/trunk-jpl/externalpackages/gmsh/install-4.sh	(revision 24919)
@@ -0,0 +1,38 @@
+#!/bin/bash
+set -eu
+
+
+## Constants
+#
+VER="4.5.6"
+
+# Cleanup
+rm -rf install src
+mkdir install src
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/gmsh-${VER}-source.tgz" "gmsh-${VER}-source.tgz"
+
+# Untar source
+tar -xvzf gmsh-${VER}-source.tgz
+
+# Move source to 'src' directory
+mv gmsh-${VER}-source/* src
+rm -rf gmsh-${VER}-source
+
+# Configure
+cd install
+cmake ../src \
+	-DCMAKE_INSTALL_PREFIX="${ISSM_DIR}/externalpackages/gmsh/install" \
+	-DENABLE_MPI=1 \
+	-DENABLE_BUILD_DYNAMIC=1 \
+	-DENABLE_BUILD_SHARED=1
+
+# Compile and install
+if [ $# -eq 0 ]; then
+	make
+	make install
+else
+	make -j $1
+	make -j $1 install
+fi
Index: sm/trunk-jpl/externalpackages/gmsh/install-static.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/gmsh/install-static.sh	(revision 24918)
+++ 	(revision )
@@ -1,37 +1,0 @@
-#!/bin/bash
-set -eu
-
-#Some cleanup
-rm -rf install src
-mkdir install
-
-#Download latest version
-#svn co --username gmsh --password gmsh https://geuz.org/svn/gmsh/trunk src
-#git clone http://gitlab.onelab.info/gmsh/gmsh.git src
-
-#Set gmsh version
-GMSH_VER="3.0.5"
-
-#Remove tarball if it exists
-rm -f gmsh-$GMSH_VER-source.tgz
-
-#Download last stable version that we know works
-wget http://gmsh.info/src/gmsh-$GMSH_VER-source.tgz
-
-#Untar gmsh
-tar -xvzf gmsh-$GMSH_VER-source.tgz
-
-#Rename gmsh source directory
-mv gmsh-$GMSH_VER-source src
-
-#Configure
-cd install
-cmake ../src -DCMAKE_INSTALL_PREFIX="$ISSM_DIR/externalpackages/gmsh/install" -DENABLE_METIS=0
-
-#Compile and install
-if [ $# -eq 0 ]; then
-	make
-else
-	make -j $1
-fi
-make install
Index: sm/trunk-jpl/externalpackages/gmsh/install.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/gmsh/install.sh	(revision 24918)
+++ 	(revision )
@@ -1,36 +1,0 @@
-#!/bin/bash
-set -eu
-
-
-## Constants
-#
-VER="3.0.5"
-
-# Cleanup
-rm -rf install src
-mkdir install src
-
-# Download source
-$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/gmsh-${VER}-source.tgz" "gmsh-${VER}-source.tgz"
-
-# Untar source
-tar -xvzf gmsh-${VER}-source.tgz
-
-# Move source to 'src' directory
-mv gmsh-${VER}-source/* src
-rm -rf gmsh-${VER}-source
-
-# Configure
-cd install
-cmake ../src \
-	-DCMAKE_INSTALL_PREFIX="${ISSM_DIR}/externalpackages/gmsh/install" \
-	-DENABLE_MPI=1
-
-# Compile and install
-if [ $# -eq 0 ]; then
-	make
-	make install
-else
-	make -j $1
-	make -j $1 install
-fi
Index: /issm/trunk-jpl/externalpackages/gmt/configs/6.0/linux/cmake/ConfigUser.cmake
===================================================================
--- /issm/trunk-jpl/externalpackages/gmt/configs/6.0/linux/cmake/ConfigUser.cmake	(revision 24918)
+++ /issm/trunk-jpl/externalpackages/gmt/configs/6.0/linux/cmake/ConfigUser.cmake	(revision 24919)
@@ -136,5 +136,5 @@
 # Set location of NetCDF (can be root directory, path to header file or path
 # to nc-config) [auto]:
-set (NETCDF_ROOT "$ENV{ISSM_DIR}/externalpackages/petsc/install")
+set (NETCDF_ROOT "$ENV{ISSM_DIR}/externalpackages/netcdf/install")
 
 # Set location of GDAL (can be root directory, path to header file or path to
Index: /issm/trunk-jpl/externalpackages/gmt/configs/6.0/linux/cmake/ConfigUser.static.cmake
===================================================================
--- /issm/trunk-jpl/externalpackages/gmt/configs/6.0/linux/cmake/ConfigUser.static.cmake	(revision 24919)
+++ /issm/trunk-jpl/externalpackages/gmt/configs/6.0/linux/cmake/ConfigUser.static.cmake	(revision 24919)
@@ -0,0 +1,308 @@
+#
+#
+# Copyright (c) 1991-2019 by the GMT Team (https://www.generic-mapping-tools.org/team.html)
+# See LICENSE.TXT file for copying and redistribution conditions.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by the
+# Free Software Foundation; version 3 or any later version.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
+# for more details.
+#
+# Contact info: www.generic-mapping-tools.org
+# ----------------------------------------------------------------------------
+
+# Use this file to override variables in 'ConfigDefault.cmake' on a per-user
+# basis.  First copy 'ConfigUserTemplate.cmake' to 'ConfigUser.cmake', then
+# edit 'ConfigUser.cmake'.  'ConfigUser.cmake' is not version controlled
+# (currently listed in .gitignore).
+#
+# Note: CMake considers an empty string, "FALSE", "OFF", "NO", or any string
+# ending in "-NOTFOUND" to be false (this happens to be case-insensitive, so
+# "False", "off", "no", and "something-NotFound" are all false).  Other values
+# are true.  Thus it does not matter whether you use TRUE and FALSE, ON and
+# OFF, or YES and NO for your booleans.
+
+##
+## Section 1: Installation paths
+##
+
+# ============================================================================
+# Basic setup begins here.  All settings are optional.  In most cases, setting
+# CMAKE_INSTALL_PREFIX should be all you need to do in order to build GMT with
+# reasonable defaults enabled.  Note: If you need to specify directory names
+# with spaces (e.g., on Windows) then you must put them in quotes.
+# ============================================================================
+
+# Installation path (usually defaults to /usr/local) [auto]:
+set (CMAKE_INSTALL_PREFIX "$ENV{ISSM_DIR}/externalpackages/gmt/install")
+
+# Set install name suffix used for directories and gmt executables
+# [undefined]:
+#set (GMT_INSTALL_NAME_SUFFIX "suffix")
+
+# Install into traditional directory structure. Disable to install a
+# distribution type directory structure (doc and share separated) [on]:
+#set (GMT_INSTALL_TRADITIONAL_FOLDERNAMES OFF)
+
+# Install convenience links for GMT modules. Disable to install only the main
+# gmt program and access modules as "gmt modulename options" [TRUE]:
+#set (GMT_INSTALL_MODULE_LINKS FALSE)
+
+# Make executables relocatable on supported platforms (relative RPATH) [FALSE]:
+set (GMT_INSTALL_RELOCATABLE TRUE)
+
+# Exclude optional GDAL, PCRE, PCRE2, FFTW3, LAPACK, BLAS, ZLIB dependencies even if you have them installed [FALSE]
+#set (GMT_EXCLUDE_GDAL TRUE)
+#set (GMT_EXCLUDE_PCRE TRUE)
+#set (GMT_EXCLUDE_PCRE2 TRUE)
+#set (GMT_EXCLUDE_FFTW3 TRUE)
+#set (GMT_EXCLUDE_LAPACK TRUE)
+#set (GMT_EXCLUDE_BLAS TRUE)
+#set (GMT_EXCLUDE_ZLIB TRUE)
+
+# ============================================================================
+# Advanced configuration begins here.  Usually it is not necessary to edit any
+# settings below.  You should know what you are doing if you do though.  Note:
+# installation paths are relative to ${CMAKE_INSTALL_PREFIX} unless absolute
+# path is given.
+# ============================================================================
+
+# Set binary installation path [bin]:
+#set (GMT_BINDIR "bin")
+
+# Set library installation path [lib or lib64]:
+#set (GMT_LIBDIR "lib")
+
+# Set include installation path [include/gmt${GMT_INSTALL_NAME_SUFFIX}]:
+#set (GMT_INCLUDEDIR "include/gmt")
+
+# Set share installation path [share or share/gmt${GMT_INSTALL_NAME_SUFFIX}]:
+#set (GMT_DATADIR "share/gmt")
+
+# Set doc installation path [share/doc or
+# share/doc/gmt${GMT_INSTALL_NAME_SUFFIX}]:
+#set (GMT_DOCDIR "share/doc/gmt")
+
+# Set manpage installation path [share/man or
+# share/doc/gmt${GMT_INSTALL_NAME_SUFFIX}/man]:
+#set (GMT_MANDIR "share/doc/gmt/man")
+
+# Install documentation files from this external location instead of creating
+# new HTML documents from scratch [${GMT_SOURCE_DIR}/doc_release]:
+#set (GMT_INSTALL_EXTERNAL_DOC OFF)
+
+# Install manual pages from this external location instead of creating the
+# manpages from scratch [${GMT_SOURCE_DIR}/man_release]:
+#set (GMT_INSTALL_EXTERNAL_MAN OFF)
+
+##
+## Section 2: Build dependencies (should only be needed if CMake cannot
+## automatically detect the rights version or path.)
+##
+
+# Set URL to GMT Data server [auto]:
+#set (GMT_DATA_SERVER "data_server_url")
+
+# Set path to GSHHG Shoreline Database [auto]:
+set (GSHHG_ROOT "$ENV{ISSM_DIR}/externalpackages/gshhg/install")
+
+# Copy GSHHG files to ${GMT_DATADIR}/coast [FALSE]:
+#set (COPY_GSHHG TRUE)
+
+# Set path to DCW Digital Chart of the World for GMT [auto]:
+#set (DCW_ROOT "dcw-gmt_path")
+
+# Copy DCW files to ${GMT_DATADIR}/dcw [FALSE]:
+#set (COPY_DCW TRUE)
+
+# Copy GDAL's 'data' directory to ${GMT_DATADIR}/GDAL_DATA [FALSE]:
+#set (GDAL_DATA_PATH C:/programs/compa_libs/gdal_GIT/compileds/VC14_64/data)
+
+# Copy PROJ4's 'share' directory to ${GMT_DATADIR}/GDAL_DATA [FALSE]:
+#set (PROJ_DATA_PATH C:/programs/compa_libs/proj5_GIT/compileds/VC14_64/share/proj)
+
+# FOR WINDOWS ONLY
+# Set path to location of Ghostscript binaries (optional install)
+#set (GHOST_DATA_PATH C:/programs/compa_libs/ghostscript/bin)
+
+# FOR WINDOWS ONLY
+# Set path to location where the gmtmex is located.
+#set (GMTMEX_PATH "C:/progs_cygw/GMTdev/gmtmex/${GMTver}")
+
+# Set location of NetCDF (can be root directory, path to header file or path
+# to nc-config) [auto]:
+#set (NETCDF_ROOT "$ENV{ISSM_DIR}/externalpackages/netcdf/install")
+
+# Set location of GDAL (can be root directory, path to header file or path to
+# gdal-config) [auto]:
+set (GDAL_ROOT "$ENV{ISSM_DIR}/externalpackages/gdal/install")
+
+# Set location of PCRE (can be root directory, path to header file or path to
+# pcre-config) [auto]:
+#set (PCRE_ROOT "pcre_install_prefix")
+# Alternatively, set location of PCRE2 (can be root directory, path to header file or path to
+# pcre2-config) [auto]:
+#set (PCRE2_ROOT "pcre2_install_prefix")
+
+# Set location of single precision FFTW (can be root directory or path to
+# header file) [auto]:
+#set (FFTW3_ROOT "fftw_install_prefix")
+
+# Set location of ZLIB (can be root directory or path to header file) [auto]:
+set (ZLIB_ROOT "$ENV{ISSM_DIR}/externalpackages/petsc/install")
+
+# Set location of CURL (can be root directory or path to header file) [auto]:
+#set (CURL_ROOT "curl_install_prefix")
+
+# Set location of GLIB component gthread [auto].  This is an optional (and
+# experimental) option which you need to enable:
+#set (GMT_USE_THREADS TRUE)
+# If pkg-config is not installed (e.g. on Windows) you need to specify these:
+#set (GLIB_INCLUDE_DIR c:/path/to/glib-dev/include/glib-2.0)
+#set (GLIB_LIBRARIES c:/path/to/glib-dev/lib/glib-2.0.lib)
+
+# Set LAPACK location. Use this when want to link with LAPACK and it's not found automatically
+#set (LAPACK_LIBRARY "-L$ENV{ISSM_DIR}/externalpackages/petsc/install/lib -lflapack")
+#set (BLAS_LIBRARY "-L$ENV{ISSM_DIR}/externalpackages/petsc/install/lib -lfblas")
+
+##
+## Section 3: GMT features
+##
+
+# Enforce GPL or LGPL conformity. Use this to disable routines that cannot be
+# redistributed under the terms of the GPL or LGPL such as Shewchuk's
+# triangulation (valid values are GPL, LGPL and off) [off]:
+#set (LICENSE_RESTRICTED GPL)
+
+# Allow building of OpenMP if compiler supports it
+# set (GMT_ENABLE_OPENMP TRUE)
+
+# Configure default units (possible values are SI and US) [SI]:
+#set (UNITS "US")
+
+# Enable building of shared libraries [TRUE] (disable to use static libraries;
+# not recommended; on non-x86 architectures uncomment the next option as well):
+set (BUILD_SHARED_LIBS FALSE)
+
+# Create position independent code on all targets [auto] (needed for static
+# build on non-x86):
+set (CMAKE_POSITION_INDEPENDENT_CODE TRUE)
+
+# Build GMT shared lib with supplemental modules [TRUE]:
+set (BUILD_SUPPLEMENTS FALSE)
+
+# Build/Install GMT Developer include files [TRUE]:
+# This installs the extra include files and configured files needed by 3rd-party
+# developers.  Until we build a separate gmt-devel we include them in the main
+# Distribution.
+#set (BUILD_DEVELOPER FALSE)
+
+##
+## Section 4: Advanced tweaking
+##
+
+#
+# Testing and development
+#
+
+# Enable running examples/tests with "ctest" or "make check" (out-of-source).
+# Need to set either DO_EXAMPLES, DO_TESTS or both and uncomment the following
+# line.
+#enable_testing()
+#set (DO_EXAMPLES TRUE)
+#set (DO_TESTS TRUE)
+#set (DO_ANIMATIONS TRUE)
+# Number of parallel test jobs with "make check":
+#set (N_TEST_JOBS 4)
+
+# Enable this option to run GMT programs from within ${GMT_BINARY_DIR} without
+# installing or setting GMT_SHAREDIR and GMT_USERDIR first. This is required
+# for testing [OFF]:
+#set (SUPPORT_EXEC_IN_BINARY_DIR ON)
+
+# List extra sub-dirs of 'src' with a CMakeList.txt to build non-module codes
+# that link against the full gmt libs (not just the API; for building codes
+# that only need the GMT API, see the gmt-custom project).
+#set (EXTRA_BUILD_DIRS apidemo)
+# Uncomment the following line to enable running low-level C tests of the API
+#set (DO_API_TESTS ON)
+
+# Directory in which to install the release sources per default
+# [${GMT_BINARY_DIR}/gmt-${GMT_PACKAGE_VERSION}]:
+#set (GMT_RELEASE_PREFIX "release-src-prefix")
+
+# If set to false, image conversion from PS images to PNG and PDF does
+# not depend on the gmt binary target. Note: "make gmt" is then required
+# before docs_depends [TRUE].
+#set (GMT_DOCS_DEPEND_ON_GMT FALSE)
+
+#
+# Debugging
+#
+
+# Set build type can be: empty, Debug, Release, RelWithDebInfo or MinSizeRel
+# [Release]:
+#set (CMAKE_BUILD_TYPE Debug)
+
+# Extra debugging for developers:
+#if ( CMAKE_GENERATOR STREQUAL "Xcode" )
+##	So Xcode can find the supplemental plug-ins during debug sessions
+#	add_definitions(-DXCODER)
+#   add_definitions(-DDEBUG_MODERN)			# To set PPID == 0 during Xcode test
+#	message("Add Xcode definition for GMT")
+#endif()
+#add_definitions(-DDEBUG)
+#add_definitions(-DMEMDEBUG) # Turn on memory tracking see gmt_support.c for extra info
+#set (CMAKE_C_FLAGS "-Wall -Wdeclaration-after-statement") # recommended even for release build
+#set (CMAKE_C_FLAGS "-Wextra ${CMAKE_C_FLAGS}")            # extra warnings
+#set (CMAKE_C_FLAGS_DEBUG -ggdb3)                          # gdb debugging symbols
+#set (CMAKE_LINK_DEPENDS_DEBUG_MODE TRUE)                  # debug link dependencies
+if (HAVE_OPENMP)
+	set (CMAKE_C_FLAGS_RELEASE "-ggdb3 -O2 -Wuninitialized -flax-vector-conversions")  # check uninitialized variables
+else (HAVE_OPENMP)
+	set (CMAKE_C_FLAGS_RELEASE "-ggdb3 -O2 -Wuninitialized")  # check uninitialized variables
+endif (HAVE_OPENMP)
+
+#
+# System specific tweaks
+#
+
+# This is for GCC on Solaris to avoid "relocations remain against allocatable
+# but non-writable sections" problems:
+#set (USER_GMTLIB_LINK_FLAGS -mimpure-text)
+
+# This may be needed to enable strdup and extended math functions with GCC and
+# Suncc on Solaris:
+#set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__EXTENSIONS__")
+
+# Do not warn when building with Windows SDK or Visual Studio Express:
+#set (CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS ON)
+
+# Manually select runtime library when compiling with Windows SDK or Visual
+# Studio Express:
+#set (CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS c:/Windows/System32/msvcr100.dll)
+
+# If your NetCDF library is static (not recommended, applies to Windows only)
+set (NETCDF_STATIC TRUE)
+
+# If want to rename the DLLs to something else than the default (e.g. to
+# append the bitness - Windows only)
+# WARNING: if using this option it is mandatory that the suffix starts with an underscore.
+#if (WIN32)
+# set (BITAGE 32)
+# # Detect if we are building a 32 or 64 bits version
+# if (CMAKE_SIZEOF_VOID_P EQUAL 8)
+#   set (BITAGE 64)
+# endif ()
+# set (GMT_DLL_RENAME gmt_w${BITAGE})
+# set (PSL_DLL_RENAME psl_w${BITAGE})
+#endif(WIN32)
+
+# On Windows Visual C 2012 needs _ALLOW_KEYWORD_MACROS to build
+#if(MSVC11)
+#  add_definitions(/D_ALLOW_KEYWORD_MACROS)
+#endif(MSVC11)
Index: /issm/trunk-jpl/externalpackages/gmt/configs/6.0/linux/static/cmake/modules/FindGSHHG.cmake
===================================================================
--- /issm/trunk-jpl/externalpackages/gmt/configs/6.0/linux/static/cmake/modules/FindGSHHG.cmake	(revision 24919)
+++ /issm/trunk-jpl/externalpackages/gmt/configs/6.0/linux/static/cmake/modules/FindGSHHG.cmake	(revision 24919)
@@ -0,0 +1,95 @@
+#
+#
+# Locate GSHHG shorelines
+#
+# This module accepts the following environment variables:
+#
+#  GSHHG_ROOT, GSHHGDIR - Specify the location of GSHHG
+#
+# This module defines the following CMake variables:
+#
+#    GSHHG_FOUND        - True if GSHHG is found
+#    GSHHG_PATH         - A variable pointing to the GSHHG path
+#    GSHHG_VERSION      - String of the GSHHG version found
+#    GSHHG_MIN_REQUIRED_VERSION_{MAJOR, MINOR, PATCH}
+#                       - Major, minor, and patch version required
+
+# get GSHHG path
+find_path (GSHHG_PATH
+	NAMES binned_GSHHS_c.nc
+	HINTS ${GSHHG_ROOT} $ENV{GSHHG_ROOT} $ENV{GSHHGDIR}
+	PATH_SUFFIXES
+	gmt-gshhg
+	gshhg
+	gshhg-gmt
+	gshhg-gmt-nc4
+	share/gmt/gshhg
+	share/gmt-gshhg
+	share/gshhg
+	share/gshhg-gmt
+	share/gshhg-gmt-nc4
+	PATHS
+	${CMAKE_SOURCE_DIR}
+	/sw # Fink
+	/opt/local # DarwinPorts
+	/opt/csw # Blastwave
+	/opt
+	/usr/local
+	DOC "Global Self-consistent Hierarchical High-resolution Geography"
+)
+
+# get GSHHG file
+if (GSHHG_PATH)
+	find_file (_GSHHG_FILE
+		NAMES binned_GSHHS_c.nc
+		HINTS ${GSHHG_PATH})
+endif (GSHHG_PATH)
+
+# The minimum required GSHHG version
+set (GSHHG_MIN_REQUIRED_VERSION_MAJOR 2 CACHE INTERNAL "GSHHG required version major")
+set (GSHHG_MIN_REQUIRED_VERSION_MINOR 2 CACHE INTERNAL "GSHHG required version minor")
+set (GSHHG_MIN_REQUIRED_VERSION_PATCH 0 CACHE INTERNAL "GSHHG required version patch")
+set (GSHHG_MIN_REQUIRED_VERSION
+	"${GSHHG_MIN_REQUIRED_VERSION_MAJOR}.${GSHHG_MIN_REQUIRED_VERSION_MINOR}.${GSHHG_MIN_REQUIRED_VERSION_PATCH}")
+
+# Temporary hack to bypass failure of compilation of code to find GSHHG
+set (GSHHG_FOUND TRUE)
+set (GSHHG_VERSION "2.3.4" CACHE INTERNAL "GSHHG version")
+
+# check GSHHG version
+if (_GSHHG_FILE AND NOT GSHHG_FOUND)
+	try_run (_EXIT_GSHHG_VERSION _COMPILED_GSHHG_VERSION
+		${CMAKE_BINARY_DIR}/CMakeTmp
+		${CMAKE_CURRENT_SOURCE_DIR}/gshhg_version.c
+		CMAKE_FLAGS
+		-DINCLUDE_DIRECTORIES=${NETCDF_INCLUDE_DIR}
+		-DLINK_LIBRARIES=${NETCDF_LIBRARIES}
+		COMPILE_DEFINITIONS -DSTANDALONE
+		COMPILE_OUTPUT_VARIABLE _GSHHG_VERSION_COMPILE_OUT
+		RUN_OUTPUT_VARIABLE _GSHHG_VERSION_STRING
+		ARGS \"${_GSHHG_FILE}\" ${GSHHG_MIN_REQUIRED_VERSION})
+
+	if (NOT _COMPILED_GSHHG_VERSION OR _EXIT_GSHHG_VERSION STREQUAL FAILED_TO_RUN)
+		message(FATAL_ERROR "Cannot determine GSHHG version:\n
+		${_GSHHG_VERSION_COMPILE_OUT}\n
+		${_GSHHG_VERSION_STRING}")
+	endif ()
+
+	# check version string
+	if (_COMPILED_GSHHG_VERSION)
+		# strip whitespace
+		string (STRIP ${_GSHHG_VERSION_STRING} GSHHG_VERSION)
+		if (_EXIT_GSHHG_VERSION EQUAL 0)
+			# found GSHHG of required version or higher
+			set (GSHHG_VERSION ${GSHHG_VERSION} CACHE INTERNAL "GSHHG version")
+		elseif (_EXIT_GSHHG_VERSION EQUAL -1)
+			# found GSHHG but version is too old
+			message (WARNING "GSHHG found but it is too old (${GSHHG_VERSION}). "
+				"Need at least ${GSHHG_MIN_REQUIRED_VERSION}.")
+		endif (_EXIT_GSHHG_VERSION EQUAL 0)
+	endif (_COMPILED_GSHHG_VERSION)
+endif (_GSHHG_FILE AND NOT GSHHG_FOUND)
+
+include (FindPackageHandleStandardArgs)
+find_package_handle_standard_args (GSHHG DEFAULT_MSG
+	GSHHG_PATH GSHHG_VERSION)
Index: sm/trunk-jpl/externalpackages/gmt/configs/ConfigUser.cmake
===================================================================
--- /issm/trunk-jpl/externalpackages/gmt/configs/ConfigUser.cmake	(revision 24918)
+++ 	(revision )
@@ -1,240 +1,0 @@
-#
-# $Id: ConfigUserTemplate.cmake 12904 2014-02-17 20:52:35Z fwobbe $
-#
-# Copyright (c) 1991-2014 by P. Wessel, W. H. F. Smith, R. Scharroo, J. Luis and F. Wobbe
-# See LICENSE.TXT file for copying and redistribution conditions.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU Lesser General Public License as published by the
-# Free Software Foundation; version 3 or any later version.
-#
-# This program is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-# for more details.
-#
-# Contact info: gmt.soest.hawaii.edu
-# ----------------------------------------------------------------------------
-
-# Use this file to override variables in 'ConfigDefault.cmake' on a per-user
-# basis.  First copy 'ConfigUserTemplate.cmake' to 'ConfigUser.cmake', then
-# edit 'ConfigUser.cmake'.  'ConfigUser.cmake' is not version controlled
-# (currently listed in svn:ignore property)
-#
-# Note: CMake considers an empty string, "FALSE", "OFF", "NO", or any string
-# ending in "-NOTFOUND" to be false (this happens to be case-insensitive, so
-# "False", "off", "no", and "something-NotFound" are all false).  Other values
-# are true.  Thus it does not matter whether you use TRUE and FALSE, ON and
-# OFF, or YES and NO for your booleans.
-
-##
-## Section 1: Installation paths
-##
-
-# ============================================================================
-# Basic setup begins here.  All settings are optional.  In most cases, setting
-# CMAKE_INSTALL_PREFIX should be all you need to do in order to build GMT with
-# reasonable defaults enabled.
-# ============================================================================
-
-# Installation path (usually defaults to /usr/local) [auto]:
-set (CMAKE_INSTALL_PREFIX "$ENV{ISSM_DIR}/externalpackages/gmt/install")
-
-# Set install name suffix used for directories and gmt executables
-# [undefined]:
-#set (GMT_INSTALL_NAME_SUFFIX "suffix")
-
-# Install into traditional directory structure. Disable to install a
-# distribution type directory structure (doc and share separated) [on]:
-#set (GMT_INSTALL_TRADITIONAL_FOLDERNAMES OFF)
-
-# Install convenience links for GMT modules. Disable to install only the main
-# gmt program and access modules as "gmt modulename options" [TRUE]:
-#set (GMT_INSTALL_MODULE_LINKS FALSE)
-
-# Make executables relocatable on supported platforms (relative RPATH) [TRUE]:
-#set (GMT_INSTALL_RELOCATABLE FALSE)
-
-# ============================================================================
-# Advanced configuration begins here.  Usually it is not necessary to edit any
-# settings below.  You should know what you are doing if you do though.  Note:
-# installation paths are relative to ${CMAKE_INSTALL_PREFIX} unless absolute
-# path is given.
-# ============================================================================
-
-# Set binary installation path [bin]:
-#set (GMT_BINDIR "bin")
-
-# Set library installation path [lib or lib64]:
-#set (GMT_LIBDIR "lib")
-
-# Set include installation path [include/gmt${GMT_INSTALL_NAME_SUFFIX}]:
-#set (GMT_INCLUDEDIR "include/gmt")
-
-# Set share installation path [share or share/gmt${GMT_INSTALL_NAME_SUFFIX}]:
-#set (GMT_DATADIR "share/gmt")
-
-# Set doc installation path [share/doc or
-# share/doc/gmt${GMT_INSTALL_NAME_SUFFIX}]:
-#set (GMT_DOCDIR "share/doc/gmt")
-
-# Set manpage installation path [share/man or
-# share/doc/gmt${GMT_INSTALL_NAME_SUFFIX}/man]:
-#set (GMT_MANDIR "share/doc/gmt/man")
-
-# Install documentation files from this external location instead of creating
-# new PDF and HTML documents from scratch [${GMT_SOURCE_DIR}/doc_release]:
-#set (GMT_INSTALL_EXTERNAL_DOC OFF)
-
-# Install manual pages from this external location instead of creating the
-# manpages from scratch [${GMT_SOURCE_DIR}/man_release]:
-#set (GMT_INSTALL_EXTERNAL_MAN OFF)
-
-##
-## Section 2: Build dependencies (should only be needed if CMake cannot
-## automatically detect the rights version or path.)
-##
-
-# Set path to GSHHG Shoreline Database [auto]:
-set (GSHHG_ROOT "$ENV{ISSM_DIR}/externalpackages/gshhg/install")
-
-# Copy GSHHG files to $/coast [FALSE]:
-#set (COPY_GSHHG TRUE)
-
-# Set path to DCW Digital Chart of the World for GMT [auto]:
-#set (DCW_ROOT "$ENV{ISSM_DIR}/externalpackages/dcw/install")
-
-# Copy DCW files to $/dcw [FALSE]:
-#set (COPY_DCW TRUE)
-
-# Set location of NetCDF (can be root directory, path to header file or path
-# to nc-config) [auto]:
-set (NETCDF_ROOT "$ENV{ISSM_DIR}/externalpackages/netcdf/install")
-
-# Set location of GDAL (can be root directory, path to header file or path to
-# gdal-config) [auto]:
-set (GDAL_ROOT "$ENV{ISSM_DIR}/externalpackages/gdal/install")
-
-# Set location of PCRE (can be root directory, path to header file or path to
-# pcre-config) [auto]:
-#set (PCRE_ROOT "pcre_install_prefix")
-
-# Set location of single precision FFTW (can be root directory or path to
-# header file) [auto]:
-#set (FFTW3_ROOT "fftw_install_prefix")
-
-# Set location of ZLIB (can be root directory or path to header file) [auto]:
-#set (ZLIB_ROOT "zlib_install_prefix")
-
-##
-## Section 3: GMT features
-##
-
-# Enforce GPL or LGPL conformity. Use this to disable routines that cannot be
-# redistributed under the terms of the GPL or LGPL such as Shewchuk's
-# triangulation (valid values are GPL, LGPL and off) [off]:
-#set (LICENSE_RESTRICTED GPL)
-
-# Configure default units (possible values are SI and US) [SI]:
-#set (UNITS "US")
-
-# Enable building of shared libraries [TRUE] (disable to use static libraries;
-# not recommended):
-#set (BUILD_SHARED_LIBS TRUE)
-
-# Build GMT shared lib with supplemental modules [TRUE]:
-#set (BUILD_SUPPLEMENTS TRUE)
-
-##
-## Section 4: Advanced tweaking
-##
-
-#
-# Testing and development
-#
-
-# Enable running examples/tests with "ctest" or "make check" (out-of-source).
-# Need to set either DO_EXAMPLES, DO_TESTS or both and uncomment the following
-# line.
-#enable_testing()
-#set (DO_EXAMPLES TRUE)
-#set (DO_TESTS TRUE)
-# Number of parallel test jobs with "make check":
-#set (N_TEST_JOBS 4)
-
-# Enable this option to run GMT programs from within ${GMT_BINARY_DIR} without
-# installing or setting GMT_SHAREDIR and GMT_USERDIR first. This is required
-# for testing [OFF]:
-#set (SUPPORT_EXEC_IN_BINARY_DIR ON)
-
-# List extra sub-dirs of 'src' with a CMakeList.txt to build non-module codes
-# that link against the full gmt libs (not just the API; for building codes
-# that only need the GMT API, see the gmtextension project).
-#set (EXTRA_BUILD_DIRS apidemo)
-
-# Directory in which to install the release sources per default
-# [${GMT_BINARY_DIR}/gmt-${GMT_PACKAGE_VERSION}]:
-#set (GMT_RELEASE_PREFIX "release-src-prefix")
-
-# If set to false, image conversion from PS images to PNG and PDF does
-# not depend on the gmt binary target. Note: "make gmt" is then required
-# before docs_depends [TRUE].
-#set (GMT_DOCS_DEPEND_ON_GMT FALSE)
-
-#
-# Debugging
-#
-
-# Set build type can be: empty, Debug, Release, RelWithDebInfo or MinSizeRel
-# [Release]:
-#set (CMAKE_BUILD_TYPE Debug)
-
-# Extra debugging for developers:
-#add_definitions(-DDEBUG)
-#add_definitions(-DMEMDEBUG) # Turn on memory tracking see gmt_support.c for extra info
-#set (CMAKE_C_FLAGS "-Wall -Wdeclaration-after-statement") # recommended even for release build
-#set (CMAKE_C_FLAGS "-Wextra ${CMAKE_C_FLAGS}")            # extra warnings
-#set (CMAKE_C_FLAGS_DEBUG -ggdb3)                          # gdb debugging symbols
-#set (CMAKE_C_FLAGS_RELEASE "-ggdb3 -O2 -Wuninitialized")  # check uninitialized variables
-#set (CMAKE_LINK_DEPENDS_DEBUG_MODE TRUE)                  # debug link dependencies
-
-#
-# System specific tweaks
-#
-
-# This is for GCC on Solaris to avoid "relocations remain against allocatable
-# but non-writable sections" problems:
-#set (USER_GMTLIB_LINK_FLAGS -mimpure-text)
-
-# This may be needed to enable strdup and extended math functions with GCC and
-# Suncc on Solaris:
-#set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__EXTENSIONS__")
-
-# Do not warn when building with Windows SDK or Visual Studio Express:
-#set (CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS ON)
-
-# Manually select runtime library when compiling with Windows SDK or Visual
-# Studio Express:
-#set (CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS c:/Windows/System32/msvcr100.dll)
-
-# If your NetCDF library is static (not recommended, applies to Windows only)
-#set (NETCDF_STATIC TRUE)
-
-# If want to rename the DLLs to something else than the default (e.g. to
-# append the bitness - Windows only)
-#if (WIN32)
-# set (BITAGE 32)
-# # Detect if we are building a 32 or 64 bits version
-# if (CMAKE_SIZEOF_VOID_P EQUAL 8)
-#   set (BITAGE 64)
-# endif ()
-# set (GMT_DLL_RENAME gmt_w${BITAGE})
-# set (PSL_DLL_RENAME psl_w${BITAGE})
-#endif(WIN32)
-
-# On Windows Visual C 2012 needs _ALLOW_KEYWORD_MACROS to build
-#if(MSVC11)
-#  add_definitions(/D_ALLOW_KEYWORD_MACROS)
-#endif(MSVC11)
-
-# vim: textwidth=78 noexpandtab tabstop=2 softtabstop=2 shiftwidth=2
Index: sm/trunk-jpl/externalpackages/gmt/configs/ConfigUser.cmake-static
===================================================================
--- /issm/trunk-jpl/externalpackages/gmt/configs/ConfigUser.cmake-static	(revision 24918)
+++ 	(revision )
@@ -1,240 +1,0 @@
-#
-# $Id: ConfigUserTemplate.cmake 12904 2014-02-17 20:52:35Z fwobbe $
-#
-# Copyright (c) 1991-2014 by P. Wessel, W. H. F. Smith, R. Scharroo, J. Luis and F. Wobbe
-# See LICENSE.TXT file for copying and redistribution conditions.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU Lesser General Public License as published by the
-# Free Software Foundation; version 3 or any later version.
-#
-# This program is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-# for more details.
-#
-# Contact info: gmt.soest.hawaii.edu
-# ----------------------------------------------------------------------------
-
-# Use this file to override variables in 'ConfigDefault.cmake' on a per-user
-# basis.  First copy 'ConfigUserTemplate.cmake' to 'ConfigUser.cmake', then
-# edit 'ConfigUser.cmake'.  'ConfigUser.cmake' is not version controlled
-# (currently listed in svn:ignore property)
-#
-# Note: CMake considers an empty string, "FALSE", "OFF", "NO", or any string
-# ending in "-NOTFOUND" to be false (this happens to be case-insensitive, so
-# "False", "off", "no", and "something-NotFound" are all false).  Other values
-# are true.  Thus it does not matter whether you use TRUE and FALSE, ON and
-# OFF, or YES and NO for your booleans.
-
-##
-## Section 1: Installation paths
-##
-
-# ============================================================================
-# Basic setup begins here.  All settings are optional.  In most cases, setting
-# CMAKE_INSTALL_PREFIX should be all you need to do in order to build GMT with
-# reasonable defaults enabled.
-# ============================================================================
-
-# Installation path (usually defaults to /usr/local) [auto]:
-set (CMAKE_INSTALL_PREFIX "$ENV{ISSM_DIR}/externalpackages/gmt/install")
-
-# Set install name suffix used for directories and gmt executables
-# [undefined]:
-#set (GMT_INSTALL_NAME_SUFFIX "suffix")
-
-# Install into traditional directory structure. Disable to install a
-# distribution type directory structure (doc and share separated) [on]:
-#set (GMT_INSTALL_TRADITIONAL_FOLDERNAMES OFF)
-
-# Install convenience links for GMT modules. Disable to install only the main
-# gmt program and access modules as "gmt modulename options" [TRUE]:
-#set (GMT_INSTALL_MODULE_LINKS FALSE)
-
-# Make executables relocatable on supported platforms (relative RPATH) [TRUE]:
-#set (GMT_INSTALL_RELOCATABLE FALSE)
-
-# ============================================================================
-# Advanced configuration begins here.  Usually it is not necessary to edit any
-# settings below.  You should know what you are doing if you do though.  Note:
-# installation paths are relative to ${CMAKE_INSTALL_PREFIX} unless absolute
-# path is given.
-# ============================================================================
-
-# Set binary installation path [bin]:
-#set (GMT_BINDIR "bin")
-
-# Set library installation path [lib or lib64]:
-#set (GMT_LIBDIR "lib")
-
-# Set include installation path [include/gmt${GMT_INSTALL_NAME_SUFFIX}]:
-#set (GMT_INCLUDEDIR "include/gmt")
-
-# Set share installation path [share or share/gmt${GMT_INSTALL_NAME_SUFFIX}]:
-#set (GMT_DATADIR "share/gmt")
-
-# Set doc installation path [share/doc or
-# share/doc/gmt${GMT_INSTALL_NAME_SUFFIX}]:
-#set (GMT_DOCDIR "share/doc/gmt")
-
-# Set manpage installation path [share/man or
-# share/doc/gmt${GMT_INSTALL_NAME_SUFFIX}/man]:
-#set (GMT_MANDIR "share/doc/gmt/man")
-
-# Install documentation files from this external location instead of creating
-# new PDF and HTML documents from scratch [${GMT_SOURCE_DIR}/doc_release]:
-#set (GMT_INSTALL_EXTERNAL_DOC OFF)
-
-# Install manual pages from this external location instead of creating the
-# manpages from scratch [${GMT_SOURCE_DIR}/man_release]:
-#set (GMT_INSTALL_EXTERNAL_MAN OFF)
-
-##
-## Section 2: Build dependencies (should only be needed if CMake cannot
-## automatically detect the rights version or path.)
-##
-
-# Set path to GSHHG Shoreline Database [auto]:
-set (GSHHG_ROOT "$ENV{ISSM_DIR}/externalpackages/gshhg/install")
-
-# Copy GSHHG files to $/coast [FALSE]:
-#set (COPY_GSHHG TRUE)
-
-# Set path to DCW Digital Chart of the World for GMT [auto]:
-#set (DCW_ROOT "dcw-gmt_path")
-
-# Copy DCW files to $/dcw [FALSE]:
-#set (COPY_DCW TRUE)
-
-# Set location of NetCDF (can be root directory, path to header file or path
-# to nc-config) [auto]:
-set (NETCDF_ROOT "$ENV{ISSM_DIR}/externalpackages/netcdf/install")
-
-# Set location of GDAL (can be root directory, path to header file or path to
-# gdal-config) [auto]:
-set (GDAL_ROOT "$ENV{ISSM_DIR}/externalpackages/gdal/install")
-
-# Set location of PCRE (can be root directory, path to header file or path to
-# pcre-config) [auto]:
-#set (PCRE_ROOT "pcre_install_prefix")
-
-# Set location of single precision FFTW (can be root directory or path to
-# header file) [auto]:
-#set (FFTW3_ROOT "fftw_install_prefix")
-
-# Set location of ZLIB (can be root directory or path to header file) [auto]:
-#set (ZLIB_ROOT "zlib_install_prefix")
-
-##
-## Section 3: GMT features
-##
-
-# Enforce GPL or LGPL conformity. Use this to disable routines that cannot be
-# redistributed under the terms of the GPL or LGPL such as Shewchuk's
-# triangulation (valid values are GPL, LGPL and off) [off]:
-#set (LICENSE_RESTRICTED GPL)
-
-# Configure default units (possible values are SI and US) [SI]:
-#set (UNITS "US")
-
-# Enable building of shared libraries [TRUE] (disable to use static libraries;
-# not recommended):
-set (BUILD_SHARED_LIBS FALSE)
-
-# Build GMT shared lib with supplemental modules [TRUE]:
-#set (BUILD_SUPPLEMENTS FALSE)
-
-##
-## Section 4: Advanced tweaking
-##
-
-#
-# Testing and development
-#
-
-# Enable running examples/tests with "ctest" or "make check" (out-of-source).
-# Need to set either DO_EXAMPLES, DO_TESTS or both and uncomment the following
-# line.
-#enable_testing()
-#set (DO_EXAMPLES TRUE)
-#set (DO_TESTS TRUE)
-# Number of parallel test jobs with "make check":
-#set (N_TEST_JOBS 4)
-
-# Enable this option to run GMT programs from within ${GMT_BINARY_DIR} without
-# installing or setting GMT_SHAREDIR and GMT_USERDIR first. This is required
-# for testing [OFF]:
-#set (SUPPORT_EXEC_IN_BINARY_DIR ON)
-
-# List extra sub-dirs of 'src' with a CMakeList.txt to build non-module codes
-# that link against the full gmt libs (not just the API; for building codes
-# that only need the GMT API, see the gmtextension project).
-#set (EXTRA_BUILD_DIRS apidemo)
-
-# Directory in which to install the release sources per default
-# [${GMT_BINARY_DIR}/gmt-${GMT_PACKAGE_VERSION}]:
-#set (GMT_RELEASE_PREFIX "release-src-prefix")
-
-# If set to false, image conversion from PS images to PNG and PDF does
-# not depend on the gmt binary target. Note: "make gmt" is then required
-# before docs_depends [TRUE].
-#set (GMT_DOCS_DEPEND_ON_GMT FALSE)
-
-#
-# Debugging
-#
-
-# Set build type can be: empty, Debug, Release, RelWithDebInfo or MinSizeRel
-# [Release]:
-#set (CMAKE_BUILD_TYPE Debug)
-
-# Extra debugging for developers:
-#add_definitions(-DDEBUG)
-#add_definitions(-DMEMDEBUG) # Turn on memory tracking see gmt_support.c for extra info
-#set (CMAKE_C_FLAGS "-Wall -Wdeclaration-after-statement") # recommended even for release build
-#set (CMAKE_C_FLAGS "-Wextra ${CMAKE_C_FLAGS}")            # extra warnings
-#set (CMAKE_C_FLAGS_DEBUG -ggdb3)                          # gdb debugging symbols
-#set (CMAKE_C_FLAGS_RELEASE "-ggdb3 -O2 -Wuninitialized")  # check uninitialized variables
-#set (CMAKE_LINK_DEPENDS_DEBUG_MODE TRUE)                  # debug link dependencies
-
-#
-# System specific tweaks
-#
-
-# This is for GCC on Solaris to avoid "relocations remain against allocatable
-# but non-writable sections" problems:
-#set (USER_GMTLIB_LINK_FLAGS -mimpure-text)
-
-# This may be needed to enable strdup and extended math functions with GCC and
-# Suncc on Solaris:
-#set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__EXTENSIONS__")
-
-# Do not warn when building with Windows SDK or Visual Studio Express:
-#set (CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS ON)
-
-# Manually select runtime library when compiling with Windows SDK or Visual
-# Studio Express:
-#set (CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS c:/Windows/System32/msvcr100.dll)
-
-# If your NetCDF library is static (not recommended, applies to Windows only)
-set (NETCDF_STATIC TRUE)
-
-# If want to rename the DLLs to something else than the default (e.g. to
-# append the bitness - Windows only)
-#if (WIN32)
-# set (BITAGE 32)
-# # Detect if we are building a 32 or 64 bits version
-# if (CMAKE_SIZEOF_VOID_P EQUAL 8)
-#   set (BITAGE 64)
-# endif ()
-# set (GMT_DLL_RENAME gmt_w${BITAGE})
-# set (PSL_DLL_RENAME psl_w${BITAGE})
-#endif(WIN32)
-
-# On Windows Visual C 2012 needs _ALLOW_KEYWORD_MACROS to build
-#if(MSVC11)
-#  add_definitions(/D_ALLOW_KEYWORD_MACROS)
-#endif(MSVC11)
-
-# vim: textwidth=78 noexpandtab tabstop=2 softtabstop=2 shiftwidth=2
Index: sm/trunk-jpl/externalpackages/gmt/install-5.1-linux.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/gmt/install-5.1-linux.sh	(revision 24918)
+++ 	(revision )
@@ -1,40 +1,0 @@
-#!/bin/bash
-set -eu
-
-
-# Constants
-#
-VER="5.1.1"
-
-# Download source
-$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/gmt-${VER}.tar.gz" "gmt-${VER}.tar.gz"
-
-# Unpack source
-tar -zxvf gmt-$VER.tar.gz
-
-# Cleanup
-rm -rf install src
-mkdir install src
-
-# Move source to 'src' directory
-mv gmt-$VER/* src
-rm -rf gmt-$VER
-
-# Copy source customizations
-cp configs/5.1/linux/cmake/ConfigUser.cmake src/cmake
-
-# Configure
-cd src
-mkdir build
-cd build
-cmake ..
-
-# Install
-if [ $# -eq 0 ]; then
-	make install
-else
-	make -j $1 install
-fi
-
-# Return to initial directory
-cd ../..
Index: /issm/trunk-jpl/externalpackages/gmt/install-6.0-linux-static.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/gmt/install-6.0-linux-static.sh	(revision 24919)
+++ /issm/trunk-jpl/externalpackages/gmt/install-6.0-linux-static.sh	(revision 24919)
@@ -0,0 +1,77 @@
+#!/bin/bash
+set -eu
+
+
+## Constants
+#
+VER="6.0.0"
+
+PETSC_ROOT="${ISSM_DIR}/externalpackages/petsc/install"
+
+BLASLAPACK_ROOT="${PETSC_ROOT}"
+CURL_ROOT="${ISSM_DIR}/externalpackages/curl/install"
+GDAL_ROOT="${ISSM_DIR}/externalpackages/gdal/install"
+HDF5_ROOT="${PETSC_ROOT}"
+NETCDF_ROOT="${ISSM_DIR}/externalpackages/netcdf/install"
+PROJ_ROOT="${ISSM_DIR}/externalpackages/proj/install"
+ZLIB_ROOT="${PETSC_ROOT}"
+
+GDAL_LIBRARY="${GDAL_ROOT}/lib/libgdal.a;/usr/lib/x86_64-linux-gnu/libcrypto.a;${HDF5_ROOT}/lib/libhdf5_hl.a;${HDF5_ROOT}/lib/libhdf5.a;${PROJ_ROOT}/lib/libproj.a;${ZLIB_ROOT}/lib/libz.a;/usr/lib/x86_64-linux-gnu/libpthread.so;/usr/lib/x86_64-linux-gnu/libm.so;/usr/lib/x86_64-linux-gnu/librt.so;/usr/lib/x86_64-linux-gnu/libdl.so;${CURL_ROOT}/lib/libcurl.a;/usr/lib/x86_64-linux-gnu/libssl.a;/usr/lib/x86_64-linux-gnu/libcrypto.a;/usr/lib/x86_64-linux-gnu/libsqlite3.a;/usr/lib/x86_64-linux-gnu/libexpat.a;/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25;" # Determined by running `$GDAL_ROOT/bin/gdal-config --dep-libs`, then adding libmpicxx as, otherwise, various symbols in libgdal are undefined (compiled with mpicxx)
+NETCDF_LIBRARY="${NETCDF_ROOT}/lib/libnetcdf.a;/usr/lib/x86_64-linux-gnu/libm.so;${CURL_ROOT}/lib/libcurl.a;${HDF5_ROOT}/lib/libhdf5_hl.a;${HDF5_ROOT}/lib/libhdf5.a;${ZLIB_ROOT}/lib/libz.a;/usr/lib/x86_64-linux-gnu/libssl.a;/usr/lib/x86_64-linux-gnu/libcrypto.a;/usr/lib/x86_64-linux-gnu/libdl.so" # Determined by running `$NETCDF_ROOT/bin/nc-config --libs`
+
+# Environment
+#
+export CC=mpicc
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/gmt-${VER}.tar.gz" "gmt-${VER}.tar.gz"
+
+# Unpack source
+tar -zxvf gmt-${VER}.tar.gz
+
+# Cleanup
+rm -rf install src
+mkdir install src
+
+# Move source to 'src' directory
+mv gmt-${VER}/* src
+rm -rf gmt-${VER}
+
+# Copy custom configuration files
+cp ./configs/6.0/linux/cmake/ConfigUser.static.cmake ./src/cmake/ConfigUser.cmake
+cp ./configs/6.0/linux/static/cmake/modules/FindGSHHG.cmake ./src/cmake/modules
+
+# Configure
+cd src
+mkdir build
+cd build
+
+# NOTE:
+# - There is a CMake variable named CURL_ROOT in src/cmake/ConfigUser.cmake
+#	that, ostensibly, allows for supplying the path to curl when it is in a
+#	non-standard location. That said, newer versions of CMake will ignore said
+#	variable and instead try to find curl itself. Passing in the two options
+#	below overrides this behavior.
+# - The CMake modules used to find and probe the BLAS and LAPACK libraries do
+#	not seem to handle the situation where BLAS_LIBRARY and LAPACK_LIBRARY are
+#	set but we are working with static libraries
+#	(see customized ConfigUser.static.cmake). Using BLAS_LIBRARIES and
+#	LAPACK_LIBRARIES is a workaround.
+#
+cmake \
+	-DBLAS_LIBRARIES="${BLASLAPACK_ROOT}/lib/libfblas.a;/usr/lib/x86_64-linux-gnu/libgfortran.so" \
+	-DCURL_LIBRARY="${CURL_ROOT}/lib" \
+	-DCURL_INCLUDE_DIR="${CURL_ROOT}/include" \
+	-DLAPACK_LIBRARIES="${BLASLAPACK_ROOT}/lib/libflapack.a;/usr/lib/x86_64-linux-gnu/libgfortran.so" \
+	-DGDAL_LIBRARY="${GDAL_LIBRARY}" \
+	-DNETCDF_LIBRARY="${NETCDF_LIBRARY}" \
+	..
+
+# Compile and install
+if [ $# -eq 0 ]; then
+	make
+	make install
+else
+	make -j $1
+	make -j $1 install
+fi
Index: /issm/trunk-jpl/externalpackages/gmt/install-6.0-linux.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/gmt/install-6.0-linux.sh	(revision 24918)
+++ /issm/trunk-jpl/externalpackages/gmt/install-6.0-linux.sh	(revision 24919)
@@ -3,11 +3,13 @@
 
 
-## Environment
-#
-CURL_ROOT="${ISSM_DIR}/externalpackages/curl/install"
-
 ## Constants
 #
 VER="6.0.0"
+
+CURL_ROOT="${ISSM_DIR}/externalpackages/curl/install"
+
+# Environment
+#
+export CC=mpicc
 
 # Download source
@@ -33,9 +35,11 @@
 cd build
 
-# NOTE: There is a CMake variable named CURL_ROOT in src/cmake/ConfigUser.cmake
-#		that, ostensibly, allows for supplying the path to curl when it is in a
-#		a non-standard location. That said, newer versions of CMake will
-#		ignore said variable and instead try to find curl itself. Passing in
-#		the two options below overrides this behavior.
+# NOTE:
+# - There is a CMake variable named CURL_ROOT in src/cmake/ConfigUser.cmake
+#	that, ostensibly, allows for supplying the path to curl when it is in a
+#	non-standard location. That said, newer versions of CMake will ignore said
+#	variable and instead try to find curl itself. Passing in the two options
+#	below overrides this behavior.
+#
 cmake \
 	-DCURL_LIBRARY="${CURL_ROOT}/lib" \
Index: sm/trunk-jpl/externalpackages/gmt/install-jenkins.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/gmt/install-jenkins.sh	(revision 24918)
+++ 	(revision )
@@ -1,32 +1,0 @@
-#!/bin/bash
-set -eu
-
-#Erase install
-rm -rf install  src gmt
-
-#Download from ISSM server
-$ISSM_DIR/scripts/DownloadExternalPackage.sh 'https://issm.ess.uci.edu/files/externalpackages/gmt-5.1.1.tar.gz' 'gmt-5.1.1.tar.gz'
-
-#install directory
-mkdir src
-tar -zxvf gmt-5.1.1.tar.gz 
-mv gmt-5.1.1/* src
-rm -rf gmt-5.1.1
-
-#configure: 
-cp configs/ConfigUser.cmake-jenkins ./src/cmake/ConfigUser.cmake
-
-cd src
-mkdir build
-cd build
-cmake ../
-
-#compile
-if [ $# -eq 0 ]; then
-	make install
-else
-	make -j $1 install
-fi
-
-#come back: 
-cd ../../
Index: /issm/trunk-jpl/externalpackages/netcdf/install-4.7-parallel-static-with_tests.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/netcdf/install-4.7-parallel-static-with_tests.sh	(revision 24919)
+++ /issm/trunk-jpl/externalpackages/netcdf/install-4.7-parallel-static-with_tests.sh	(revision 24919)
@@ -0,0 +1,70 @@
+#!/bin/bash
+set -eu
+
+
+# Dependencies
+# - MPI implementation (for parallel I/O support)
+# - hdf5 (1.8.9 / 1.10.1 or later, for netCDF-4 support)
+# - zlib (1.2.5 or later, for netCDF-4 compression)
+# - curl (7.18.0 or later, for DAP remote access client support)
+#
+# For most ISSM installations, only hdf5 will be necessary
+#
+# Sources:
+# - https://www.unidata.ucar.edu/software/netcdf/documentation/NUG/getting_and_building_netcdf.html#building
+#
+
+# NOTE:
+# - Certain configuration tests fail if libraries are not supplied explicitly
+
+# Constants
+#
+VER="4.7.2"
+CURL_ROOT="${ISSM_DIR}/externalpackages/curl/install"
+HDF5_ROOT="${ISSM_DIR}/externalpackages/petsc/install"
+ZLIB_ROOT="${ISSM_DIR}/externalpackages/petsc/install"
+
+# Environment
+#
+export CC=mpicc
+export CPPFLAGS="-I${CURL_ROOT}/include -I${HDF5_ROOT}/include -I${ZLIB_ROOT}/include"
+export LIBS="${CURL_ROOT}/lib/libcurl.a ${HDF5_ROOT}/lib/libhdf5_hl.a ${HDF5_ROOT}/lib/libhdf5.a ${ZLIB_ROOT}/lib/libz.a /usr/lib/x86_64-linux-gnu/libssl.a /usr/lib/x86_64-linux-gnu/libcrypto.a -L/usr/lib/x86_64-linux-gnu -ldl"
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/netcdf-c-${VER}.tar.gz" "netcdf-c-${VER}.tar.gz"
+
+# Unpack source
+tar -zxvf netcdf-c-$VER.tar.gz
+
+# Cleanup
+rm -rf install src
+mkdir install src
+
+# Move source to 'src' directory
+mv netcdf-c-$VER/* src/
+rm -rf netcdf-c-$VER
+
+# Configure
+cd src
+./configure \
+ 	--prefix="${ISSM_DIR}/externalpackages/netcdf/install" \
+	--disable-dependency-tracking \
+ 	--disable-shared \
+ 	--enable-parallel-tests \
+ 	--disable-filter-testing \
+ 	--disable-dap-remote-tests \
+ 	--disable-doxygen
+
+# Compile and install
+if [ $# -eq 0 ]; then
+	make
+	make check
+	make install
+else
+	make -j $1
+	make -j $1 check
+	make -j $1 install
+fi
+
+# Return to initial directory
+cd ..
Index: /issm/trunk-jpl/externalpackages/netcdf/install-4.7-parallel-static.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/netcdf/install-4.7-parallel-static.sh	(revision 24919)
+++ /issm/trunk-jpl/externalpackages/netcdf/install-4.7-parallel-static.sh	(revision 24919)
@@ -0,0 +1,68 @@
+#!/bin/bash
+set -eu
+
+
+# Dependencies
+# - MPI implementation (for parallel I/O support)
+# - hdf5 (1.8.9 / 1.10.1 or later, for netCDF-4 support)
+# - zlib (1.2.5 or later, for netCDF-4 compression)
+# - curl (7.18.0 or later, for DAP remote access client support)
+#
+# For most ISSM installations, only hdf5 will be necessary
+#
+# Sources:
+# - https://www.unidata.ucar.edu/software/netcdf/documentation/NUG/getting_and_building_netcdf.html#building
+#
+
+# NOTE:
+# - Certain configuration tests fail if libraries are not supplied explicitly
+
+# Constants
+#
+VER="4.7.2"
+CURL_ROOT="${ISSM_DIR}/externalpackages/curl/install"
+HDF5_ROOT="${ISSM_DIR}/externalpackages/petsc/install"
+ZLIB_ROOT="${ISSM_DIR}/externalpackages/petsc/install"
+
+# Environment
+#
+export CC=mpicc
+export CPPFLAGS="-I${CURL_ROOT}/include -I${HDF5_ROOT}/include -I${ZLIB_ROOT}/include"
+export LIBS="${CURL_ROOT}/lib/libcurl.a ${HDF5_ROOT}/lib/libhdf5_hl.a ${HDF5_ROOT}/lib/libhdf5.a ${ZLIB_ROOT}/lib/libz.a /usr/lib/x86_64-linux-gnu/libssl.a /usr/lib/x86_64-linux-gnu/libcrypto.a -L/usr/lib/x86_64-linux-gnu -ldl"
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/netcdf-c-${VER}.tar.gz" "netcdf-c-${VER}.tar.gz"
+
+# Unpack source
+tar -zxvf netcdf-c-$VER.tar.gz
+
+# Cleanup
+rm -rf install src
+mkdir install src
+
+# Move source to 'src' directory
+mv netcdf-c-$VER/* src/
+rm -rf netcdf-c-$VER
+
+# Configure
+cd src
+./configure \
+	--prefix="${ISSM_DIR}/externalpackages/netcdf/install" \
+	--disable-dependency-tracking \
+	--enable-fast-install \
+	--disable-testsets \
+	--disable-examples \
+	--disable-shared \
+	--disable-doxygen
+
+# Compile and install
+if [ $# -eq 0 ]; then
+	make
+	make install
+else
+	make -j $1
+	make -j $1 install
+fi
+
+# Return to initial directory
+cd ..
Index: /issm/trunk-jpl/externalpackages/netcdf/install-4.7-parallel-with_tests.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/netcdf/install-4.7-parallel-with_tests.sh	(revision 24918)
+++ /issm/trunk-jpl/externalpackages/netcdf/install-4.7-parallel-with_tests.sh	(revision 24919)
@@ -11,17 +11,20 @@
 # For most ISSM installations, only hdf5 will be necessary
 #
+# Sources:
+# - https://www.unidata.ucar.edu/software/netcdf/documentation/NUG/getting_and_building_netcdf.html#building
+#
 
 # Constants
 #
 VER="4.7.2"
-HDF5_ROOT="${ISSM_DIR}/externalpackages/hdf5/install"
-ZLIB_ROOT="${ISSM_DIR}/externalpackages/zlib/install"
+CURL_ROOT="${ISSM_DIR}/externalpackages/curl/install"
+HDF5_ROOT="${ISSM_DIR}/externalpackages/petsc/install"
+ZLIB_ROOT="${ISSM_DIR}/externalpackages/petsc/install"
 
 # Environment
 #
 export CC=mpicc
-CURL_ROOT="${ISSM_DIR}/externalpackages/curl/install"
-HDF5_ROOT="${ISSM_DIR}/externalpackages/hdf5/install"
-ZLIB_ROOT="${ISSM_DIR}/externalpackages/zlib/install"
+export CPPFLAGS="-I${CURL_ROOT}/include -I${HDF5_ROOT}/include -I${ZLIB_ROOT}/include"
+export LDFLAGS="-L${CURL_ROOT}/lib -L${HDF5_ROOT}/lib -L${ZLIB_ROOT}/lib"
 
 # Download source
Index: /issm/trunk-jpl/externalpackages/netcdf/install-4.7-parallel.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/netcdf/install-4.7-parallel.sh	(revision 24918)
+++ /issm/trunk-jpl/externalpackages/netcdf/install-4.7-parallel.sh	(revision 24919)
@@ -11,4 +11,7 @@
 # For most ISSM installations, only hdf5 will be necessary
 #
+# Sources:
+# - https://www.unidata.ucar.edu/software/netcdf/documentation/NUG/getting_and_building_netcdf.html#building
+#
 
 # Constants
@@ -16,12 +19,12 @@
 VER="4.7.2"
 CURL_ROOT="${ISSM_DIR}/externalpackages/curl/install"
-HDF5_ROOT="${ISSM_DIR}/externalpackages/hdf5/install"
-ZLIB_ROOT="${ISSM_DIR}/externalpackages/zlib/install"
+HDF5_ROOT="${ISSM_DIR}/externalpackages/petsc/install"
+ZLIB_ROOT="${ISSM_DIR}/externalpackages/petsc/install"
 
 # Environment
 #
 export CC=mpicc
-export CPPFLAGS="-I${HDF5_ROOT}/include -I${ZLIB_ROOT}/include -I${CURL_ROOT}/include"
-export LDFLAGS="-L${HDF5_ROOT}/lib -L${ZLIB_ROOT}/lib -L${CURL_ROOT}/lib"
+export CPPFLAGS="-I${CURL_ROOT}/include -I${HDF5_ROOT}/include -I${ZLIB_ROOT}/include"
+export LDFLAGS="-L${CURL_ROOT}/lib -L${HDF5_ROOT}/lib -L${ZLIB_ROOT}/lib"
 
 # Download source
@@ -43,4 +46,6 @@
 ./configure \
  	--prefix="${ISSM_DIR}/externalpackages/netcdf/install" \
+	--disable-dependency-tracking \
+	--enable-fast-install \
  	--disable-doxygen
 
Index: /issm/trunk-jpl/externalpackages/netcdf/install-4.7-with_tests.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/netcdf/install-4.7-with_tests.sh	(revision 24918)
+++ /issm/trunk-jpl/externalpackages/netcdf/install-4.7-with_tests.sh	(revision 24919)
@@ -4,4 +4,5 @@
 
 # Dependencies
+# - MPI implementation (for parallel I/O support)
 # - hdf5 (1.8.9 / 1.10.1 or later, for netCDF-4 support)
 # - zlib (1.2.5 or later, for netCDF-4 compression)
@@ -10,4 +11,7 @@
 # For most ISSM installations, only hdf5 will be necessary
 #
+# Sources:
+# - https://www.unidata.ucar.edu/software/netcdf/documentation/NUG/getting_and_building_netcdf.html#building
+#
 
 # Constants
@@ -15,11 +19,11 @@
 VER="4.7.2"
 CURL_ROOT="${ISSM_DIR}/externalpackages/curl/install"
-HDF5_ROOT="${ISSM_DIR}/externalpackages/hdf5/install"
-ZLIB_ROOT="${ISSM_DIR}/externalpackages/zlib/install"
+HDF5_ROOT="${ISSM_DIR}/externalpackages/petsc/install"
+ZLIB_ROOT="${ISSM_DIR}/externalpackages/petsc/install"
 
 # Environment
 #
-export CPPFLAGS="-I${HDF5_ROOT}/include -I${ZLIB_ROOT}/include -I${CURL_ROOT}/include"
-export LDFLAGS="-L${HDF5_ROOT}/lib -L${ZLIB_ROOT}/lib -L${CURL_ROOT}/lib"
+export CPPFLAGS="-I${CURL_ROOT}/include -I${HDF5_ROOT}/include -I${ZLIB_ROOT}/include"
+export LDFLAGS="-L${CURL_ROOT}/lib -L${HDF5_ROOT}/lib -L${ZLIB_ROOT}/lib"
 
 # Download source
@@ -41,4 +45,6 @@
 ./configure \
  	--prefix="${ISSM_DIR}/externalpackages/netcdf/install" \
+	--disable-dependency-tracking \
+	--enable-fast-install \
  	--disable-doxygen
 
Index: /issm/trunk-jpl/externalpackages/netcdf/install-4.7.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/netcdf/install-4.7.sh	(revision 24918)
+++ /issm/trunk-jpl/externalpackages/netcdf/install-4.7.sh	(revision 24919)
@@ -4,4 +4,5 @@
 
 # Dependencies
+# - MPI implementation (for parallel I/O support)
 # - hdf5 (1.8.9 / 1.10.1 or later, for netCDF-4 support)
 # - zlib (1.2.5 or later, for netCDF-4 compression)
@@ -9,4 +10,7 @@
 #
 # For most ISSM installations, only hdf5 will be necessary
+#
+# Sources:
+# - https://www.unidata.ucar.edu/software/netcdf/documentation/NUG/getting_and_building_netcdf.html#building
 #
 
@@ -20,6 +24,6 @@
 # Environment
 #
-export CPPFLAGS="-I${HDF5_ROOT}/include -I${ZLIB_ROOT}/include -I${CURL_ROOT}/include"
-export LDFLAGS="-L${HDF5_ROOT}/lib -L${ZLIB_ROOT}/lib -L${CURL_ROOT}/lib"
+export CPPFLAGS="-I${CURL_ROOT}/include -I${HDF5_ROOT}/include -I${ZLIB_ROOT}/include"
+export LDFLAGS="-L${CURL_ROOT}/lib -L${HDF5_ROOT}/lib -L${ZLIB_ROOT}/lib"
 
 # Download source
@@ -41,4 +45,6 @@
 ./configure \
  	--prefix="${ISSM_DIR}/externalpackages/netcdf/install" \
+	--disable-dependency-tracking \
+	--enable-fast-install \
  	--disable-doxygen
 
Index: sm/trunk-jpl/externalpackages/netcdf/install.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/netcdf/install.sh	(revision 24918)
+++ 	(revision )
@@ -1,30 +1,0 @@
-#!/bin/bash
-set -eu
-#you need hdf5 compiled
-
-#Some cleanup
-rm -rf src install netcdf-4.3.2
-mkdir install src
-
-#Download from ISSM server
-$ISSM_DIR/scripts/DownloadExternalPackage.sh "https://issm.ess.uci.edu/files/externalpackages/netcdf-4.3.2.tar.gz" "netcdf-4.3.2.tar.gz"
-
-#Untar 
-tar -zxvf  netcdf-4.3.2.tar.gz
-
-#Move netcdf to install directory
-rm -rf src/*
-mv netcdf-4.3.2/* src/
-rm -rf netcdf-4.3.2
-
-#Configure and compile
-cd src
-./configure \
- --prefix="$ISSM_DIR/externalpackages/netcdf/install"  \
- --disable-doxygen
-if [ $# -eq 0 ]; then
-	make
-else
-	make -j $1
-fi
-make install
Index: /issm/trunk-jpl/externalpackages/petsc/install-3.12-linux-solid_earth-static.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/petsc/install-3.12-linux-solid_earth-static.sh	(revision 24919)
+++ /issm/trunk-jpl/externalpackages/petsc/install-3.12-linux-solid_earth-static.sh	(revision 24919)
@@ -0,0 +1,54 @@
+#!/bin/bash
+set -eu
+
+
+## Constants
+#
+VER="3.12.3"
+
+# 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 install src
+mkdir install src
+
+# Move source to 'src' directory
+mv petsc-${VER}/* src/
+rm -rf petsc-${VER}
+
+# Configure
+#
+# NOTE: 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
+#
+cd src
+./config/configure.py \
+	--prefix="${ISSM_DIR}/externalpackages/petsc/install" \
+	--PETSC_DIR="${ISSM_DIR}/externalpackages/petsc/src" \
+	--with-shared-libraries=0 \
+	--CFLAGS="-fPIC" \
+	--CXXFLAGS="-fPIC" \
+	--FFLAGS="-fPIC" \
+	--with-debugging=0 \
+	--with-valgrind=0 \
+	--with-x=0 \
+	--with-ssl=0 \
+	--download-fblaslapack=1 \
+	--download-mpich=1 \
+	--download-metis=1 \
+	--download-parmetis=1 \
+	--download-scalapack=1 \
+	--download-mumps=1 \
+	--download-zlib=1 \
+	--download-hdf5=1
+
+# Compile and install
+make
+make install
Index: /issm/trunk-jpl/externalpackages/proj/install-6.2-static-with_tests.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/proj/install-6.2-static-with_tests.sh	(revision 24919)
+++ /issm/trunk-jpl/externalpackages/proj/install-6.2-static-with_tests.sh	(revision 24919)
@@ -0,0 +1,56 @@
+#!/bin/bash
+set -eu
+
+
+# Constants
+#
+VER="6.2.1"
+
+## Environnment
+#
+export CC=mpicc
+export CXX=mpicxx
+# NOTE: On macOS, SQLite3 should be installed by default, but PROJ currently
+#		requires,
+#
+#			SQLITE3_LIBS="-lsqlite3".
+#
+#		On Ubuntu Linux, install the SQLite3 binary, libraries and headers
+#		with,
+#
+#			`apt-get install sqlite3 libsqlite3-dev`
+#
+export SQLITE3_LIBS="-lsqlite3"
+
+# Cleanup
+rm -rf install src
+mkdir install src
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "http://issm.jpl.nasa.gov/files/externalpackages/proj-${VER}.tar.gz" "proj-${VER}.tar.gz"
+
+# Unpack source
+tar -zxvf proj-$VER.tar.gz
+
+# Move source into 'src' directory
+mv proj-$VER/* src
+rm -rf proj-$VER
+
+# Configure
+cd src
+./configure \
+	--prefix="${ISSM_DIR}/externalpackages/proj/install" \
+	--disable-dependency-tracking \
+	--enable-fast-install \
+	--disable-shared
+
+# Compile and install
+if [ $# -eq 0 ]; then
+	make
+	make check
+	make install
+else
+	make -j $1
+	make -j $1 check
+	make -j $1 install
+fi
Index: /issm/trunk-jpl/externalpackages/proj/install-6.2-static.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/proj/install-6.2-static.sh	(revision 24919)
+++ /issm/trunk-jpl/externalpackages/proj/install-6.2-static.sh	(revision 24919)
@@ -0,0 +1,54 @@
+#!/bin/bash
+set -eu
+
+
+# Constants
+#
+VER="6.2.1"
+
+## Environnment
+#
+export CC=mpicc
+export CXX=mpicxx
+# NOTE: On macOS, SQLite3 should be installed by default, but PROJ currently
+#		requires,
+#
+#			SQLITE3_LIBS="-lsqlite3".
+#
+#		On Ubuntu Linux, install the SQLite3 binary, libraries and headers
+#		with,
+#
+#			`apt-get install sqlite3 libsqlite3-dev`
+#
+export SQLITE3_LIBS="-lsqlite3"
+
+# Cleanup
+rm -rf install src
+mkdir install src
+
+# Download source
+$ISSM_DIR/scripts/DownloadExternalPackage.sh "http://issm.jpl.nasa.gov/files/externalpackages/proj-${VER}.tar.gz" "proj-${VER}.tar.gz"
+
+# Unpack source
+tar -zxvf proj-$VER.tar.gz
+
+# Move source into 'src' directory
+mv proj-$VER/* src
+rm -rf proj-$VER
+
+# Configure
+cd src
+./configure \
+	--prefix="${ISSM_DIR}/externalpackages/proj/install" \
+	--disable-dependency-tracking \
+	--enable-fast-install \
+	--disable-shared
+
+# Compile and install
+if [ $# -eq 0 ]; then
+	make
+	make install
+else
+	make -j $1
+	make -j $1 install
+fi
Index: /issm/trunk-jpl/externalpackages/proj/install-6.2-with_tests.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/proj/install-6.2-with_tests.sh	(revision 24918)
+++ /issm/trunk-jpl/externalpackages/proj/install-6.2-with_tests.sh	(revision 24919)
@@ -9,5 +9,6 @@
 ## Environnment
 #
-
+export CC=mpicc
+export CXX=mpicxx
 # NOTE: On macOS, SQLite3 should be installed by default, but PROJ currently
 #		requires,
@@ -39,5 +40,7 @@
 cd src
 ./configure \
-	--prefix="${ISSM_DIR}/externalpackages/proj/install"
+	--prefix="${ISSM_DIR}/externalpackages/proj/install" \
+	--disable-dependency-tracking \
+	--enable-fast-install
 
 # Compile and install
Index: /issm/trunk-jpl/externalpackages/proj/install-6.2.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/proj/install-6.2.sh	(revision 24918)
+++ /issm/trunk-jpl/externalpackages/proj/install-6.2.sh	(revision 24919)
@@ -9,5 +9,6 @@
 ## Environnment
 #
-
+export CC=mpicc
+export CXX=mpicxx
 # NOTE: On macOS, SQLite3 should be installed by default, but PROJ currently
 #		requires,
@@ -39,5 +40,7 @@
 cd src
 ./configure \
-	--prefix="${ISSM_DIR}/externalpackages/proj/install"
+	--prefix="${ISSM_DIR}/externalpackages/proj/install" \
+	--disable-dependency-tracking \
+	--enable-fast-install
 
 # Compile and install
Index: /issm/trunk-jpl/jenkins/ross-debian_linux-binaries
===================================================================
--- /issm/trunk-jpl/jenkins/ross-debian_linux-binaries	(revision 24918)
+++ /issm/trunk-jpl/jenkins/ross-debian_linux-binaries	(revision 24919)
@@ -63,5 +63,5 @@
 # 		compilation.
 #
-NUMCPUS_INSTALL=1
+NUMCPUS_INSTALL=8
 
 # Number of CPUs used in the nightly runs
Index: /issm/trunk-jpl/jenkins/ross-debian_linux-binaries-solid_earth
===================================================================
--- /issm/trunk-jpl/jenkins/ross-debian_linux-binaries-solid_earth	(revision 24919)
+++ /issm/trunk-jpl/jenkins/ross-debian_linux-binaries-solid_earth	(revision 24919)
@@ -0,0 +1,85 @@
+#--------------------#
+# ISSM Configuration #
+#--------------------#
+
+MATLAB_PATH="/usr/local/MATLAB/R2019b"
+
+# NOTE:
+# - We can disable dependency tracking in the Autotools because the binaries
+#	should always be a one-time build.
+# - libgfortran will not be available in $ISSM_DIR/lib at compile time: it is
+#	copied by packaging script.
+#
+ISSM_CONFIG='\
+	--prefix="${ISSM_DIR}" \
+	--enable-standalone-executables \
+	--enable-standalone-modules \
+	--enable-standalone-libraries \
+	--disable-dependency-tracking \
+	--with-numthreads=4 \
+	--with-pic \
+	--with-matlab-dir=${MATLAB_PATH} \
+	--with-python-dir=/usr \
+	--with-python-numpy-dir=/usr/local/lib/python2.7/dist-packages/numpy \
+	--with-fortran-lib="-L${ISSM_DIR}/lib -lgfortran" \
+	--with-mpi-include=${ISSM_DIR}/externalpackages/petsc/install/include \
+	--with-mpi-libflags="-L${ISSM_DIR}/externalpackages/petsc/install/lib -lmpi -lmpicxx -lmpifort" \
+	--with-blas-lapack-dir=${ISSM_DIR}/externalpackages/petsc/install \
+	--with-metis-dir=${ISSM_DIR}/externalpackages/petsc/install \
+	--with-scalapack-dir=${ISSM_DIR}/externalpackages/petsc/install \
+	--with-mumps-dir=${ISSM_DIR}/externalpackages/petsc/install \
+	--with-hdf5-dir=${ISSM_DIR}/externalpackages/petsc/install \
+	--with-petsc-dir=${ISSM_DIR}/externalpackages/petsc/install \
+	--with-triangle-dir=${ISSM_DIR}/externalpackages/triangle/install \
+	--with-boost-dir=${ISSM_DIR}/externalpackages/boost/install \
+'
+
+#-------------------#
+# External Packages #
+#-------------------#
+
+EXTERNALPACKAGES="
+	autotools	install-debian-linux.sh
+	cmake		install.sh
+	petsc		install-3.12-linux-solid_earth-static.sh
+	boost		install-1.72-linux-static.sh
+	triangle	install-linux-static.sh
+	chaco		install.sh
+	m1qn3		install.sh
+	semic		install.sh
+	curl		install-7.67-static.sh
+	netcdf		install-4.7-parallel-static.sh
+	proj		install-6.2-static.sh
+	gdal		install-3.0-python-netcdf-static.sh
+	gshhg		install.sh
+	gmt			install-6.0-linux-static.sh
+	gmsh		install-4-static.sh
+	shell2junit	install.sh
+"
+
+#---------#
+# Testing #
+#---------#
+
+# Test suites
+MATLAB_TEST=0
+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=8
+
+# 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=""
+PYTHON_NROPTIONS=""
Index: /issm/trunk-jpl/jenkins/ross-debian_linux-gia
===================================================================
--- /issm/trunk-jpl/jenkins/ross-debian_linux-gia	(revision 24918)
+++ /issm/trunk-jpl/jenkins/ross-debian_linux-gia	(revision 24919)
@@ -36,5 +36,5 @@
 	triangle	install-linux.sh
 	math77		install.sh
-	gmsh		install.sh
+	gmsh		install-4.sh
 	shell2junit	install.sh
 "
Index: /issm/trunk-jpl/jenkins/ross-debian_linux-solid_earth
===================================================================
--- /issm/trunk-jpl/jenkins/ross-debian_linux-solid_earth	(revision 24918)
+++ /issm/trunk-jpl/jenkins/ross-debian_linux-solid_earth	(revision 24919)
@@ -20,4 +20,5 @@
 	--with-scalapack-dir=${ISSM_DIR}/externalpackages/petsc/install \
 	--with-mumps-dir=${ISSM_DIR}/externalpackages/petsc/install \
+	--with-hdf5-dir=${ISSM_DIR}/externalpackages/petsc/install \
 	--with-petsc-dir=${ISSM_DIR}/externalpackages/petsc/install \
 	--with-triangle-dir=${ISSM_DIR}/externalpackages/triangle/install \
@@ -44,5 +45,5 @@
 	gshhg		install.sh
 	gmt			install-6.0-linux.sh
-	gmsh		install.sh
+	gmsh		install-4.sh
 	shell2junit	install.sh
 "
Index: /issm/trunk-jpl/m4/issm_options.m4
===================================================================
--- /issm/trunk-jpl/m4/issm_options.m4	(revision 24918)
+++ /issm/trunk-jpl/m4/issm_options.m4	(revision 24919)
@@ -1122,4 +1122,43 @@
 	AM_CONDITIONAL([MEDIPACK], [test "x${HAVE_MEDIPACK}" == "xyes"])
 	dnl }}}
+	dnl HDF5 {{{
+	AC_ARG_WITH(
+		[hdf5-dir],
+		AS_HELP_STRING([--with-hdf5-dir=DIR], [HDF5 root directory]),
+		[HDF5_ROOT=${withval}],
+		[HDF5_ROOT="no"]
+	)
+	AC_MSG_CHECKING(for HDF5 libraries)
+	if test "x${HDF5_ROOT}" == "xno"; then
+		HAVE_HDF5=no
+	else
+		HAVE_HDF5=yes
+		if ! test -d "${HDF5_ROOT}"; then
+			AC_MSG_ERROR([HDF5 directory provided (${HDF5_ROOT}) does not exist!]);
+		fi
+	fi
+	AC_MSG_RESULT([${HAVE_HDF5}])
+
+	dnl HDF5 libraries and header files
+	dnl
+	dnl TODO: Add check for if we need to link to libhdf5_fortran and
+	dnl libhdf5hl_fortran, if and when necessary.
+	dnl
+	if test "x${HAVE_HDF5}" == "xyes"; then
+		case "${host_os}" in
+			*cygwin*)
+				HDF5LIB="-L`cygpath -m ${HDF5_ROOT}` -Wl,libhdf5.lib  -Wl,libhdf5_hl.lib"
+			;;
+			*linux*)
+				HDF5LIB="-L${HDF5_ROOT}/lib -lhdf5 -lhdf5_hl"
+			;;
+			*darwin*)
+				HDF5LIB="-L${HDF5_ROOT}/lib -lhdf5 -lhdf5_hl"
+			;;
+		esac
+		AC_DEFINE([_HAVE_HDF5_], [1], [with HDF5 in ISSM src])
+		AC_SUBST([HDF5LIB])
+	fi
+	dnl }}}
 	dnl PETSc{{{
 	AC_ARG_WITH(
@@ -1693,5 +1732,5 @@
 			HAVE_PLAPACK=no
 		fi
-	elses
+	else
 		HAVE_PLAPACK=no
 	fi
Index: /issm/trunk-jpl/packagers/linux/package-issm-linux-binaries-solid_earth.sh
===================================================================
--- /issm/trunk-jpl/packagers/linux/package-issm-linux-binaries-solid_earth.sh	(revision 24919)
+++ /issm/trunk-jpl/packagers/linux/package-issm-linux-binaries-solid_earth.sh	(revision 24919)
@@ -0,0 +1,139 @@
+#!/bin/bash
+
+
+## Constants
+#
+LIBGFORTRAN="/usr/lib/x86_64-linux-gnu/libgfortran.so.5.0.0" # Important that this is the library itself
+LIBGFORTRAN_DIST="${ISSM_DIR}/lib/libgfortran.so.5" # Important the file name matches the SONAME entry in the binaries and other shared libraries which link to it
+MATLAB_NROPTIONS="'benchmark','slr'"
+MATLAB_PATH="/usr/local/MATLAB/R2019b"
+PACKAGE="ISSM-Solid_Earth" # Name of directory to copy distributable files to
+PYTHON_NROPTIONS="--benchmark slr"
+TARBALL_NAME="issm-linux-solid_earth"
+TARBALL="${TARBALL_NAME}.tar.gz"
+
+# Clean up from previous packaging
+echo "Cleaning up existing assets"
+cd ${ISSM_DIR}
+rm -rf ${PACKAGE}
+mkdir ${PACKAGE}
+
+# Add/modify required binaries
+cd ${ISSM_DIR}/bin
+
+echo "Modifying generic"
+cat generic_static.m | sed -e "s/generic_static/generic/g" > generic.m
+cat generic_static.py | sed -e "s/generic_static/generic/g" > generic.py
+
+echo "Moving MPICH binaries to bin/"
+if [ -f ${ISSM_DIR}/externalpackages/petsc/install/bin/mpiexec ]; then
+	cp ${ISSM_DIR}/externalpackages/petsc/install/bin/mpiexec .
+	cp ${ISSM_DIR}/externalpackages/petsc/install/bin/hydra_pmi_proxy .
+elif [ -f ${ISSM_DIR}/externalpackages/mpich/install/bin/mpiexec ]; then
+	cp ${ISSM_DIR}/externalpackages/mpich/install/bin/mpiexec .
+	cp ${ISSM_DIR}/externalpackages/mpich/install/bin/hydra_pmi_proxy .
+else
+	echo "MPICH not found"
+	exit 1
+fi
+
+# Add/modify required libraries
+echo "Moving libgfortran to lib/"
+cp ${LIBGFORTRAN} ${LIBGFORTRAN_DIST} 2> /dev/null
+
+# Run tests
+echo "Running tests"
+cd ${ISSM_DIR}/test/NightlyRun
+
+# Check that MATLAB tests run
+echo "Running MATLAB tests"
+
+rm matlab.log 2> /dev/null
+
+# Run MATLAB tests redirecting output to logfile and suppressing output to console
+${MATLAB_PATH}/bin/matlab -nojvm -nosplash -r "try, addpath ${ISSM_DIR}/bin ${ISSM_DIR}/lib; runme(${MATLAB_NROPTIONS}); exit; catch me,fprintf('%s',getReport(me)); exit; end" -logfile matlab.log &> /dev/null
+
+# Check that MATLAB did not exit in error
+matlabExitCode=`echo $?`
+matlabExitedInError=`grep -E "Activation cannot proceed|license" matlab.log | wc -l`
+
+if [[ ${matlabExitCode} -ne 0 || ${matlabExitedInError} -ne 0 ]]; then
+	echo "----------MATLAB exited in error!----------"
+	cat matlab.log
+	echo "-----------End of matlab.log-----------"
+
+	# Clean up execution directory
+	rm -rf ${ISSM_DIR}/execution/*
+
+	exit 1
+fi
+
+# Check that all MATLAB tests passed
+numMatlabTestsFailed=`cat matlab.log | grep -c -e "FAILED|ERROR"`
+
+if [[ ${numMatlabTestsFailed} -ne 0 ]]; then
+	echo "One or more MATLAB tests FAILED"
+	exit 1;
+else
+	echo "All MATLAB tests PASSED"
+fi
+
+# Check that Python tests run
+echo "Running Python tests"
+
+export PATH="${PATH}:${ISSM_DIR}/bin"
+export PYTHONPATH="${ISSM_DIR}/src/m/dev"
+export PYTHONSTARTUP="${PYTHONPATH}/devpath.py"
+export PYTHONUNBUFFERED=1 # We don't want Python to buffer output, otherwise issm.exe output is not captured
+
+rm python.log 2> /dev/null
+./runme.py ${PYTHON_NROPTIONS} &> python.log 2>&1
+
+# Check that Python did not exit in error
+pythonExitCode=`echo $?`
+pythonExitedInError=`grep -E "Error|Traceback|bad interpreter" python.log | wc -l`
+
+if [[ ${pythonExitCode} -ne 0 || ${pythonExitedInError} -ne 0 ]]; then
+	echo "----------Python exited in error!----------"
+	cat python.log
+	echo "-----------End of python.log-----------"
+
+	# Clean up execution directory
+	rm -rf ${ISSM_DIR}/execution/*
+
+	exit 1
+fi
+
+# Check that all Python tests passed
+numPythonTestsFailed=`cat python.log | grep -c -e "FAILED|ERROR"`
+
+if [[ ${numPythonTestsFailed} -ne 0 ]]; then
+	echo "One or more Python tests FAILED"
+	exit 1
+else
+	echo "All Python tests PASSED"
+fi
+
+# Create tarball
+cd ${ISSM_DIR}
+rm -f ${TARBALL}
+svn cleanup --remove-ignored --remove-unversioned test # Clean up test directory (before copying to package)
+echo "Copying assets to package: ${PACKAGE}"
+cp -rf bin examples lib scripts test ${PACKAGE}/
+echo "Cleaning up unneeded/unwanted files"
+python -m compileall ${PACKAGE}/bin # Precompile all Python scripts to bytecode
+rm -f ${PACKAGE}/bin/*.py # Remove all Python scripts
+rm -f ${PACKAGE}/bin/generic_static.* # Remove static versions of generic cluster classes
+rm -f ${PACKAGE}/lib/*.a # Remove static libraries from package
+rm -f ${PACKAGE}/lib/*.la # Remove libtool libraries from package
+echo "Creating tarball: ${TARBALL_NAME}"
+tar -czf ${TARBALL} ${PACKAGE}
+ls -lah ${ISSM_DIR}/${TARBALL}
+
+echo "Transferring binaries to ISSM Web site"
+scp -i ~/.ssh/debian_linux-vm_to_ross ${TARBALL} jenkins@ross.ics.uci.edu:/var/www/html/${TARBALL}
+
+if [ $? -ne 0 ]; then
+	echo "FAILED: Manually check connection"
+	exit 1
+fi
Index: /issm/trunk-jpl/src/c/Makefile.am
===================================================================
--- /issm/trunk-jpl/src/c/Makefile.am	(revision 24918)
+++ /issm/trunk-jpl/src/c/Makefile.am	(revision 24919)
@@ -676,5 +676,5 @@
 if !WINDOWS
 if !STANDALONE_LIBRARIES
-libISSMCore_la_LIBADD = $(PETSCLIB) $(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) $(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)
 if FORTRAN
 libISSMCore_la_LIBADD += $(FLIBS) $(FORTRANLIB)
@@ -770,5 +770,5 @@
 
 #External packages
-LDADD += $(NEOPZLIB) $(TAOLIB) $(M1QN3LIB) $(SEMICLIB) $(PLAPACKLIB) $(MUMPSLIB) $(SUPERLULIB) $(SPOOLESLIB) $(SCALAPACKLIB) $(BLACSLIB) $(PETSCLIB) $(HYPRELIB) $(SPAILIB) $(PROMETHEUSLIB) $(PASTIXLIB) $(MLLIB) $(DAKOTALIB) $(METISLIB) $(CHACOLIB) $(SCOTCHLIB) $(BLASLAPACKLIB) $(MKLLIB) $(MPILIB) $(MATHLIB) $(GRAPHICSLIB) $(MULTITHREADINGLIB) $(OSLIBS) $(GSLLIB) $(AMPILIB) $(ADJOINTMPILIB) $(ADOLCLIB) $(MPILIB) $(METEOIOLIB) $(SNOWPACKLIB) $(PROJLIB)
+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)
 
 if FORTRAN
Index: /issm/trunk-jpl/src/m/classes/mesh3dsurface.m
===================================================================
--- /issm/trunk-jpl/src/m/classes/mesh3dsurface.m	(revision 24918)
+++ /issm/trunk-jpl/src/m/classes/mesh3dsurface.m	(revision 24919)
@@ -93,5 +93,5 @@
 			md = checkfield(md,'fieldname','mesh.elements','size',[md.mesh.numberofelements 3]);
 			if any(~ismember(1:md.mesh.numberofvertices,sort(unique(md.mesh.elements(:)))));
-				md = checkmessage(md,'orphan nodes have been found. Check the mesh outline');
+				md = checkmessage(md,'orphan nodes have been found; check the mesh outline');
 			end
 			md = checkfield(md,'fieldname','mesh.numberofelements','>',0);
Index: /issm/trunk-jpl/src/m/classes/mesh3dsurface.py
===================================================================
--- /issm/trunk-jpl/src/m/classes/mesh3dsurface.py	(revision 24918)
+++ /issm/trunk-jpl/src/m/classes/mesh3dsurface.py	(revision 24919)
@@ -122,5 +122,5 @@
         md = checkfield(md, 'fieldname', 'mesh.elements', 'size', [md.mesh.numberofelements, 3])
         if np.any(np.logical_not(np.in1d(np.arange(1, md.mesh.numberofvertices + 1), md.mesh.elements.flat))):
-            md = checkmessage(md, 'orphan nodes have been found. Check the mesh outline')
+            md = md.checkmessage('orphan nodes have been found; check the mesh outline')
 
         md = checkfield(md, 'fieldname', 'mesh.numberofelements', '>', 0)
@@ -129,5 +129,5 @@
 
         if (solution == 'ThermalSolution'):
-            md = checkmessage(md, 'thermal not supported for 2d mesh')
+            md = md.checkmessage('thermal not supported for 2d mesh')
 
         return md
Index: /issm/trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.m
===================================================================
--- /issm/trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.m	(revision 24918)
+++ /issm/trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.m	(revision 24919)
@@ -1,4 +1,4 @@
 function mesh=gmshplanet(varargin)
-%GMSHPLANET - mesh generation for a sphere. Very specific code for gmsh. From demo/sphere.geo
+%GMSHPLANET - mesh generation for a sphere. Very specific code for gmsh from $ISSM_DIR/src/demos/simple_geo/sphere.geo
 %
 %   Available options (for more details see ISSM website http://issm.jpl.nasa.gov/):
@@ -14,4 +14,25 @@
 %      md.mesh=gmshplanet('radius',6000,'resolution',100);
 %      md.mesh=gmshplanet('radius',6000,'resolution',100);
+
+	% Get Gmsh version
+	%
+	% NOTE:
+	% - The output of `gmsh -version` does not follow a consistent format 
+	%	across major versions.
+	% - Under Gmsh 3.*, output of `gmsh -info` needs to be explicitly 
+	%	redirected to console in order to be grep'ped.
+	% - May need to modify the regex supplied to `sed` for future Gmsh versions.
+	%
+	% TODO:
+	% - Move this so we can retrieve like we do with 
+	%	`IssmConfig(_DAKOTA_VERSION_)`.
+	%
+	[status,gmshmajorversion]=system('gmsh -info 2>&1 | grep "Version" | sed -e "s/Version[[:blank:]]*:[[:blank:]]//" | cut -d "." -f1');
+
+	gmshmajorversion=str2int(gmshmajorversion);
+
+	if ~ismember([3,4],gmshmajorversion),
+		error(['gmshplanet: Gmsh major version ' gmshmajorversion ' not supported!']);
+	end
 
 	%process options
@@ -57,19 +78,26 @@
 	fprintf(fid,'Circle(11) = {4,1,6};\n');
 	fprintf(fid,'Circle(12) = {6,1,2};\n');
-	fprintf(fid,'Line Loop(13) = {2,8,-10};\n');
+
+	if gmshmajorversion == 3,
+		curvename='Line Loop';
+	elseif gmshmajorversion == 4,
+		curvename='Curve Loop';
+	end
+
+	fprintf(fid,'%s(13) = {2,8,-10};\n',curvename);
 	fprintf(fid,'Surface(14) = {13};\n');
-	fprintf(fid,'Line Loop(15) = {10,3,7};\n');
+	fprintf(fid,'%s(15) = {10,3,7};\n',curvename);
 	fprintf(fid,'Surface(16) = {15};\n');
-	fprintf(fid,'Line Loop(17) = {-8,-9,1};\n');
+	fprintf(fid,'%s(17) = {-8,-9,1};\n',curvename);
 	fprintf(fid,'Surface(18) = {17};\n');
-	fprintf(fid,'Line Loop(19) = {-11,-2,5};\n');
+	fprintf(fid,'%s(19) = {-11,-2,5};\n',curvename);
 	fprintf(fid,'Surface(20) = {19};\n');
-	fprintf(fid,'Line Loop(21) = {-5,-12,-1};\n');
+	fprintf(fid,'%s(21) = {-5,-12,-1};\n',curvename);
 	fprintf(fid,'Surface(22) = {21};\n');
-	fprintf(fid,'Line Loop(23) = {-3,11,6};\n');
+	fprintf(fid,'%s(23) = {-3,11,6};\n',curvename);
 	fprintf(fid,'Surface(24) = {23};\n');
-	fprintf(fid,'Line Loop(25) = {-7,4,9};\n');
+	fprintf(fid,'%s(25) = {-7,4,9};\n',curvename);
 	fprintf(fid,'Surface(26) = {25};\n');
-	fprintf(fid,'Line Loop(27) = {-4,12,-6};\n');
+	fprintf(fid,'%s(27) = {-4,12,-6};\n',curvename);
 	fprintf(fid,'Surface(28) = {27};\n');
 	fprintf(fid,'Surface Loop(29) = {28,26,16,14,20,24,22,18};\n');
@@ -115,9 +143,14 @@
 	end
 
-	%call gmsh
+	% Call gmsh
+	%
+	% NOTE: The default format in Gmsh 3 is "msh2". Rather than conditionally 
+	%		modifying our parsing scheme for Gmsh 4, for now, we simply set the 
+	%		"-format" option.
+	%
 	if  exist(options,'refine'),
-		system([gmshpath ' -tol 1e-8 -2 sphere.geo -bgm sphere.pos']);
+		system([gmshpath ' -tol 1e-8 -2 -format msh2 sphere.geo -bgm sphere.pos']);
 	else
-		system([gmshpath ' -tol 1e-8 -2 sphere.geo']);
+		system([gmshpath ' -tol 1e-8 -2 -format msh2 sphere.geo']);
 	end
 
Index: /issm/trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py
===================================================================
--- /issm/trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py	(revision 24918)
+++ /issm/trunk-jpl/src/m/mesh/planet/gmsh/gmshplanet.py	(revision 24919)
@@ -1,28 +1,51 @@
+import commands
+import subprocess
+
+import numpy as np
+
 from MatlabFuncs import *
-import numpy as np
-from numpy import *
+from mesh3dsurface import *
 from pairoptions import *
-from mesh3dsurface import *
-import subprocess
-
-
-def gmshplanet(* varargin):
-    #GMSHPLANET - mesh generation for a sphere. Very specific code for gmsh. From demo/sphere.geo
-    #
-    #   Available options (for more details see ISSM website http://issm.jpl.nasa.gov/):
-    #
-    # - radius:             radius of the planet in km
-    # - resolution:         resolution in km
-    # - refine:             provide mesh
-    # - refinemetric:       mesh quantity to specify resolution
-    #
-    #   Returns 'mesh3dsurface' type mesh
-    #
-    #   Examples:
-    #      md.mesh = gmshplanet('radius', 6000, 'resolution', 100);
-    #      md.mesh = gmshplanet('radius', 6000, 'resolution', 100);
+
+
+def gmshplanet(*varargin):
+    '''
+    GMSHPLANET - mesh generation for a sphere. Very specific code for gmsh from $ISSM_DIR/src/demos/simple_geo/sphere.geo
+
+    Available options (for more details see ISSM website http://issm.jpl.nasa.gov/):
+    - radius:             radius of the planet in km
+    - resolution:         resolution in km
+    - refine:             provide mesh
+    - refinemetric:       mesh quantity to specify resolution
+
+        Returns 'mesh3dsurface' type mesh
+
+        Examples:
+            md.mesh = gmshplanet('radius', 6000, 'resolution', 100);
+            md.mesh = gmshplanet('radius', 6000, 'resolution', 100);
+    '''
+
+    # Get Gmsh version
+    #
+    # NOTE:
+    # - The output of `gmsh -version` does not follow a consistent format 
+    #   across major versions.
+    # - Under Gmsh 3.*, output of `gmsh -info` needs to be explicitly 
+    #   redirected to console in order to be grep'ped.
+    # - May need to modify the regex supplied to `sed` for future Gmsh versions.
+    #
+    # TODO:
+    # - Move this so we can retrieve like we do with 
+    #   `IssmConfig(_DAKOTA_VERSION_)`.
+    #
+    gmshmajorversion = commands.getoutput('gmsh -info 2>&1 | grep "Version" | sed -e "s/Version[[:blank:]]*:[[:blank:]]//" | cut -d "." -f1')
+
+    gmshmajorversion = int(gmshmajorversion)
+
+    if gmshmajorversion not in [3, 4]:
+        raise RuntimeError('gmshplanet: Gmsh major version %s not supported!' % gmshmajorversion)
 
     #process options
-    options = pairoptions(* varargin)
+    options = pairoptions(*varargin)
     #options = deleteduplicates(options, 1)
 
@@ -49,5 +72,5 @@
     fid.write('Point(3) = {0, radius, 0.0, resolution};\n')
     fid.write('Circle(1) = {2, 1, 3};\n')
-    fid.write('Point(4) = { -radius, 0, 0.0, resolution};\n')
+    fid.write('Point(4) = {-radius, 0, 0.0, resolution};\n')
     fid.write('Point(5) = {0, -radius, 0.0, resolution};\n')
     fid.write('Circle(2) = {3, 1, 4};\n')
@@ -64,19 +87,25 @@
     fid.write('Circle(11) = {4, 1, 6};\n')
     fid.write('Circle(12) = {6, 1, 2};\n')
-    fid.write('Line Loop(13) = {2, 8, -10};\n')
+
+    if gmshmajorversion == 3:
+        curvename = 'Line Loop'
+    elif gmshmajorversion == 4:
+        curvename = 'Curve Loop'
+
+    fid.write('%s(13) = {2, 8, -10};\n' % curvename)
     fid.write('Surface(14) = {13};\n')
-    fid.write('Line Loop(15) = {10, 3, 7};\n')
+    fid.write('%s(15) = {10, 3, 7};\n' % curvename)
     fid.write('Surface(16) = {15};\n')
-    fid.write('Line Loop(17) = { -8, -9, 1};\n')
+    fid.write('%s(17) = {-8, -9, 1};\n' % curvename)
     fid.write('Surface(18) = {17};\n')
-    fid.write('Line Loop(19) = { -11, -2, 5};\n')
+    fid.write('%s(19) = {-11, -2, 5};\n' % curvename)
     fid.write('Surface(20) = {19};\n')
-    fid.write('Line Loop(21) = { -5, -12, -1};\n')
+    fid.write('%s(21) = {-5, -12, -1};\n' % curvename)
     fid.write('Surface(22) = {21};\n')
-    fid.write('Line Loop(23) = { -3, 11, 6};\n')
+    fid.write('%s(23) = {-3, 11, 6};\n' % curvename)
     fid.write('Surface(24) = {23};\n')
-    fid.write('Line Loop(25) = { -7, 4, 9};\n')
+    fid.write('%s(25) = {-7, 4, 9};\n' % curvename)
     fid.write('Surface(26) = {25};\n')
-    fid.write('Line Loop(27) = { -4, 12, -6};\n')
+    fid.write('%s(27) = {-4, 12, -6};\n' % curvename)
     fid.write('Surface(28) = {27};\n')
     fid.write('Surface Loop(29) = {28, 26, 16, 14, 20, 24, 22, 18};\n')
@@ -105,10 +134,14 @@
     # }}}
 
-    #call gmsh
+    # Call gmsh
+    #
+    # NOTE: The default format in Gmsh 3 is "msh2". Rather than conditionally 
+    #       modifying our parsing scheme for Gmsh 4, for now, we simply set the 
+    #       "-format" option.
+    #
     if options.exist('refine'):
-        subprocess.call('gmsh -tol 1e-8 -2 sphere.geo -bgm sphere.pos', shell=True)
+        subprocess.call('gmsh -tol 1e-8 -2 -format msh2 sphere.geo -bgm sphere.pos', shell=True)
     else:
-        #call gmsh
-        subprocess.call('gmsh -tol 1e-8 -2 sphere.geo', shell=True)
+        subprocess.call('gmsh -tol 1e-8 -2 -format msh2 sphere.geo', shell=True)
 
     #import mesh:  {{{
@@ -117,15 +150,15 @@
     #Get Mesh format
     A = fid.readline().strip()
-    if not strcmp(A, '$MeshFormat'):
+    if A != '$MeshFormat':
         raise RuntimeError(['Expecting $MeshFormat (', A, ')'])
 
     A = fid.readline().split()
     A = fid.readline().strip()
-    if not strcmp(A, '$EndMeshFormat'):
+    if A != '$EndMeshFormat':
         raise RuntimeError(['Expecting $EndMeshFormat (', A, ')'])
 
     #Nodes
     A = fid.readline().strip()
-    if not strcmp(A, '$Nodes'):
+    if A != '$Nodes':
         raise RuntimeError(['Expecting $Nodes (', A, ')'])
 
@@ -141,10 +174,10 @@
 
     A = fid.readline().strip()
-    if not strcmp(A, '$EndNodes'):
+    if A != '$EndNodes':
         raise RuntimeError(['Expecting $EndNodes (', A, ')'])
 
     #Elements
     A = fid.readline().strip()
-    if not strcmp(A, '$Elements'):
+    if A != '$Elements':
         raise RuntimeError(['Expecting $Elements (', A, ')'])
     mesh.numberofelements = int(fid.readline().strip())
@@ -155,5 +188,5 @@
     mesh.elements = mesh.elements.astype(int)
     A = fid.readline().strip()
-    if not strcmp(A, '$EndElements'):
+    if A != '$EndElements':
         raise RuntimeError(['Expecting $EndElements (', A, ')'])
     fid.close()
Index: /issm/trunk-jpl/src/wrappers/matlab/Makefile.am
===================================================================
--- /issm/trunk-jpl/src/wrappers/matlab/Makefile.am	(revision 24918)
+++ /issm/trunk-jpl/src/wrappers/matlab/Makefile.am	(revision 24919)
@@ -130,5 +130,5 @@
 # Module sources and dependencies {{{
 if !WINDOWS
-libISSMMatlab_la_LIBADD = ./../../c/libISSMCore.la ./../../c/libISSMModules.la $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(MKLLIB) $(GSLLIB) $(PROJLIB) $(MATHLIB) $(MEXLIB)
+libISSMMatlab_la_LIBADD = ./../../c/libISSMCore.la ./../../c/libISSMModules.la $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(MKLLIB) $(GSLLIB) $(PROJLIB) $(MATHLIB) $(MEXLIB)
 endif
 
@@ -136,123 +136,123 @@
 libISSMMatlab_la_LDFLAGS = -static
 libISSMApi_la_LDFLAGS = -static
-deps += $(PETSCLIB) $(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) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB) $(MATHLIB) $(MEXLIB)
+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)
 endif
 
 BamgConvertMesh_matlab_la_SOURCES = ../BamgConvertMesh/BamgConvertMesh.cpp
 BamgConvertMesh_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-BamgConvertMesh_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+BamgConvertMesh_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
 
 BamgMesher_matlab_la_SOURCES = ../BamgMesher/BamgMesher.cpp
 BamgMesher_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-BamgMesher_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+BamgMesher_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
 
 BamgTriangulate_matlab_la_SOURCES = ../BamgTriangulate/BamgTriangulate.cpp
 BamgTriangulate_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-BamgTriangulate_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+BamgTriangulate_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
 
 if CHACO
 Chaco_matlab_la_SOURCES = ../Chaco/Chaco.cpp
 Chaco_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-Chaco_matlab_la_LIBADD = ${deps} $(CHACOLIB) $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+Chaco_matlab_la_LIBADD = ${deps} $(CHACOLIB) $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
 endif
 
 ContourToMesh_matlab_la_SOURCES = ../ContourToMesh/ContourToMesh.cpp
 ContourToMesh_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-ContourToMesh_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+ContourToMesh_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
 
 ContourToNodes_matlab_la_SOURCES = ../ContourToNodes/ContourToNodes.cpp
 ContourToNodes_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-ContourToNodes_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+ContourToNodes_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
 
 CoordTransform_matlab_la_SOURCES = ../CoordTransform/CoordTransform.cpp
 CoordTransform_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-CoordTransform_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+CoordTransform_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
 
 DistanceToMaskBoundary_matlab_la_SOURCES = ../DistanceToMaskBoundary/DistanceToMaskBoundary.cpp
 DistanceToMaskBoundary_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-DistanceToMaskBoundary_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+DistanceToMaskBoundary_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
 
 ElementConnectivity_matlab_la_SOURCES = ../ElementConnectivity/ElementConnectivity.cpp
 ElementConnectivity_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-ElementConnectivity_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+ElementConnectivity_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
 
 ExpToLevelSet_matlab_la_SOURCES = ../ExpToLevelSet/ExpToLevelSet.cpp
 ExpToLevelSet_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-ExpToLevelSet_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+ExpToLevelSet_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
 
 ExpSimplify_matlab_la_SOURCES = ../ExpSimplify/ExpSimplify.cpp
 ExpSimplify_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-ExpSimplify_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB) $(NEOPZLIB)
+ExpSimplify_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB) $(NEOPZLIB)
 
 InterpFromGridToMesh_matlab_la_SOURCES = ../InterpFromGridToMesh/InterpFromGridToMesh.cpp
 InterpFromGridToMesh_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-InterpFromGridToMesh_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+InterpFromGridToMesh_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
 
 InterpFromMesh2d_matlab_la_SOURCES = ../InterpFromMesh2d/InterpFromMesh2d.cpp
 InterpFromMesh2d_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-InterpFromMesh2d_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+InterpFromMesh2d_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
 
 InterpFromMeshToGrid_matlab_la_SOURCES = ../InterpFromMeshToGrid/InterpFromMeshToGrid.cpp
 InterpFromMeshToGrid_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-InterpFromMeshToGrid_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+InterpFromMeshToGrid_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
 
 InterpFromMeshToMesh2d_matlab_la_SOURCES = ../InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.cpp
 InterpFromMeshToMesh2d_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-InterpFromMeshToMesh2d_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+InterpFromMeshToMesh2d_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
 
 InterpFromMeshToMesh3d_matlab_la_SOURCES = ../InterpFromMeshToMesh3d/InterpFromMeshToMesh3d.cpp
 InterpFromMeshToMesh3d_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-InterpFromMeshToMesh3d_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+InterpFromMeshToMesh3d_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
 
 IssmConfig_matlab_la_SOURCES = ../IssmConfig/IssmConfig.cpp
 IssmConfig_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-IssmConfig_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(MPILIB) $(NEOPZLIB)
+IssmConfig_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(MPILIB) $(NEOPZLIB)
 
 Kriging_matlab_la_SOURCES = ../Kriging/Kriging.cpp
 Kriging_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-Kriging_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(PROJLIB)
+Kriging_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB) $(MULTITHREADINGLIB) $(GSLLIB) $(PROJLIB)
 
 M1qn3_matlab_la_SOURCES = ../M1qn3/M1qn3.cpp
 M1qn3_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-M1qn3_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(METISLIB) $(M1QN3LIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+M1qn3_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(METISLIB) $(M1QN3LIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
 
 MeshPartition_matlab_la_SOURCES = ../MeshPartition/MeshPartition.cpp
 MeshPartition_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-MeshPartition_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(METISLIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+MeshPartition_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(METISLIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
 
 MeshProfileIntersection_matlab_la_SOURCES = ../MeshProfileIntersection/MeshProfileIntersection.cpp
 MeshProfileIntersection_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-MeshProfileIntersection_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+MeshProfileIntersection_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
 
 NodeConnectivity_matlab_la_SOURCES = ../NodeConnectivity/NodeConnectivity.cpp
 NodeConnectivity_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-NodeConnectivity_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+NodeConnectivity_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
 
 PointCloudFindNeighbors_matlab_la_SOURCES = ../PointCloudFindNeighbors/PointCloudFindNeighbors.cpp
 PointCloudFindNeighbors_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-PointCloudFindNeighbors_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+PointCloudFindNeighbors_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
 
 PropagateFlagsFromConnectivity_matlab_la_SOURCES = ../PropagateFlagsFromConnectivity/PropagateFlagsFromConnectivity.cpp
 PropagateFlagsFromConnectivity_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-PropagateFlagsFromConnectivity_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+PropagateFlagsFromConnectivity_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
 
 Scotch_matlab_la_SOURCES = ../Scotch/Scotch.cpp
 Scotch_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-Scotch_matlab_la_LIBADD = ${deps}  $(PETSCLIB) $(SCOTCHLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(BLASLAPACKLIB)
+Scotch_matlab_la_LIBADD = ${deps}  $(PETSCLIB) $(HDF5LIB) $(SCOTCHLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(BLASLAPACKLIB)
 
 ShpRead_matlab_la_SOURCES = ../ShpRead/ShpRead.cpp
 ShpRead_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-ShpRead_matlab_la_LIBADD = ${deps} $(SHAPELIBLIB) $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+ShpRead_matlab_la_LIBADD = ${deps} $(SHAPELIBLIB) $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
 
 Triangle_matlab_la_SOURCES = ../Triangle/Triangle.cpp
 Triangle_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-Triangle_matlab_la_LIBADD = ${deps} $(TRIANGLELIB) $(PETSCLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+Triangle_matlab_la_LIBADD = ${deps} $(TRIANGLELIB) $(PETSCLIB) $(HDF5LIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
 
 ProcessRifts_matlab_la_SOURCES = ../ProcessRifts/ProcessRifts.cpp
 ProcessRifts_matlab_la_CXXFLAGS = ${AM_CXXFLAGS}
-ProcessRifts_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
-#}}}
+ProcessRifts_matlab_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJLIB)
+#}}}
Index: /issm/trunk-jpl/src/wrappers/python/Makefile.am
===================================================================
--- /issm/trunk-jpl/src/wrappers/python/Makefile.am	(revision 24918)
+++ /issm/trunk-jpl/src/wrappers/python/Makefile.am	(revision 24919)
@@ -100,86 +100,86 @@
 #}}}
 # Module sources and dependencies {{{
-libISSMPython_la_LIBADD = ./../../c/libISSMCore.la ./../../c/libISSMModules.la $(PETSCLIB) $(MPILIB) $(NEOPZLIB) $(MKLLIB) $(GSLLIB) $(PROJ4LIB) $(MATHLIB)
+libISSMPython_la_LIBADD = ./../../c/libISSMCore.la ./../../c/libISSMModules.la $(PETSCLIB) $(HDF5LIB) $(MPILIB) $(NEOPZLIB) $(MKLLIB) $(GSLLIB) $(PROJ4LIB) $(MATHLIB)
 
 if STANDALONE_LIBRARIES
 libISSMPython_la_LDFLAGS = -static
 libISSMApi_la_LDFLAGS = -static
-deps += $(DAKOTALIB) $(PETSCLIB) $(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) $(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)
 endif
 
-libISSMApi_la_LIBADD = $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJ4LIB) $(MATHLIB)
+libISSMApi_la_LIBADD = $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJ4LIB) $(MATHLIB)
 
 BamgConvertMesh_python_la_SOURCES = ../BamgConvertMesh/BamgConvertMesh.cpp
 BamgConvertMesh_python_la_CXXFLAGS = ${AM_CXXFLAGS}
-BamgConvertMesh_python_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJ4LIB)
+BamgConvertMesh_python_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJ4LIB)
 
 BamgMesher_python_la_SOURCES = ../BamgMesher/BamgMesher.cpp
 BamgMesher_python_la_CXXFLAGS = ${AM_CXXFLAGS}
-BamgMesher_python_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJ4LIB)
+BamgMesher_python_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJ4LIB)
 
 BamgTriangulate_python_la_SOURCES = ../BamgTriangulate/BamgTriangulate.cpp
 BamgTriangulate_python_la_CXXFLAGS = ${AM_CXXFLAGS}
-BamgTriangulate_python_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJ4LIB)
+BamgTriangulate_python_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJ4LIB)
 
 if CHACO
 Chaco_python_la_SOURCES = ../Chaco/Chaco.cpp
 Chaco_python_la_CXXFLAGS = ${AM_CXXFLAGS}
-Chaco_python_la_LIBADD = ${deps} $(CHACOLIB) $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJ4LIB)
+Chaco_python_la_LIBADD = ${deps} $(CHACOLIB) $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJ4LIB)
 endif
 
 ContourToMesh_python_la_SOURCES = ../ContourToMesh/ContourToMesh.cpp
 ContourToMesh_python_la_CXXFLAGS = ${AM_CXXFLAGS}
-ContourToMesh_python_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(NEOPZLIB) $(GSLLIB) $(PROJ4LIB)
+ContourToMesh_python_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(NEOPZLIB) $(GSLLIB) $(PROJ4LIB)
 
 ContourToNodes_python_la_SOURCES = ../ContourToNodes/ContourToNodes.cpp
 ContourToNodes_python_la_CXXFLAGS = ${AM_CXXFLAGS}
-ContourToNodes_python_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJ4LIB)
+ContourToNodes_python_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJ4LIB)
 
 ElementConnectivity_python_la_SOURCES = ../ElementConnectivity/ElementConnectivity.cpp
 ElementConnectivity_python_la_CXXFLAGS = ${AM_CXXFLAGS}
-ElementConnectivity_python_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJ4LIB)
+ElementConnectivity_python_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJ4LIB)
 
 ExpToLevelSet_python_la_SOURCES = ../ExpToLevelSet/ExpToLevelSet.cpp
 ExpToLevelSet_python_la_CXXFLAGS = ${AM_CXXFLAGS}
-ExpToLevelSet_python_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJ4LIB) $(NEOPZLIB)
+ExpToLevelSet_python_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJ4LIB) $(NEOPZLIB)
 
 InterpFromGridToMesh_python_la_SOURCES = ../InterpFromGridToMesh/InterpFromGridToMesh.cpp
 InterpFromGridToMesh_python_la_CXXFLAGS = ${AM_CXXFLAGS}
-InterpFromGridToMesh_python_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(NEOPZLIB) $(GSLLIB) $(PROJ4LIB)
+InterpFromGridToMesh_python_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(NEOPZLIB) $(GSLLIB) $(PROJ4LIB)
 
 InterpFromMeshToGrid_python_la_SOURCES = ../InterpFromMeshToGrid/InterpFromMeshToGrid.cpp
 InterpFromMeshToGrid_python_la_CXXFLAGS = ${AM_CXXFLAGS}
-InterpFromMeshToGrid_python_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(NEOPZLIB) $(GSLLIB) $(PROJ4LIB)
+InterpFromMeshToGrid_python_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(NEOPZLIB) $(GSLLIB) $(PROJ4LIB)
 
 InterpFromMeshToMesh2d_python_la_SOURCES = ../InterpFromMeshToMesh2d/InterpFromMeshToMesh2d.cpp
 InterpFromMeshToMesh2d_python_la_CXXFLAGS = ${AM_CXXFLAGS}
-InterpFromMeshToMesh2d_python_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(GSLLIB) $(PROJ4LIB)
+InterpFromMeshToMesh2d_python_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(GSLLIB) $(PROJ4LIB)
 
 InterpFromMeshToMesh3d_python_la_SOURCES = ../InterpFromMeshToMesh3d/InterpFromMeshToMesh3d.cpp
 InterpFromMeshToMesh3d_python_la_CXXFLAGS = ${AM_CXXFLAGS}
-InterpFromMeshToMesh3d_python_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(GSLLIB) $(PROJ4LIB)
+InterpFromMeshToMesh3d_python_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(MULTITHREADINGLIB) $(GSLLIB) $(PROJ4LIB)
 
 IssmConfig_python_la_SOURCES = ../IssmConfig/IssmConfig.cpp
 IssmConfig_python_la_CXXFLAGS = ${AM_CXXFLAGS}
-IssmConfig_python_la_LIBADD = ${deps} $(DAKOTALIB) $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB)
+IssmConfig_python_la_LIBADD = ${deps} $(DAKOTALIB) $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB)
 
 MeshPartition_python_la_SOURCES = ../MeshPartition/MeshPartition.cpp
 MeshPartition_python_la_CXXFLAGS = ${AM_CXXFLAGS}
-MeshPartition_python_la_LIBADD = ${deps} $(PETSCLIB) $(METISLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJ4LIB)
+MeshPartition_python_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(METISLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJ4LIB)
 
 MeshProfileIntersection_python_la_SOURCES = ../MeshProfileIntersection/MeshProfileIntersection.cpp
 MeshProfileIntersection_python_la_CXXFLAGS = ${AM_CXXFLAGS}
-MeshProfileIntersection_python_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJ4LIB)
+MeshProfileIntersection_python_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJ4LIB)
 
 NodeConnectivity_python_la_SOURCES = ../NodeConnectivity/NodeConnectivity.cpp
 NodeConnectivity_python_la_CXXFLAGS = ${AM_CXXFLAGS}
-NodeConnectivity_python_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJ4LIB)
+NodeConnectivity_python_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJ4LIB)
 
 Triangle_python_la_SOURCES = ../Triangle/Triangle.cpp
 Triangle_python_la_CXXFLAGS = ${AM_CXXFLAGS}
-Triangle_python_la_LIBADD = ${deps} $(TRIANGLELIB) $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJ4LIB)
+Triangle_python_la_LIBADD = ${deps} $(TRIANGLELIB) $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJ4LIB)
 
 ProcessRifts_python_la_SOURCES = ../ProcessRifts/ProcessRifts.cpp
 ProcessRifts_python_la_CXXFLAGS = ${AM_CXXFLAGS}
-ProcessRifts_python_la_LIBADD = ${deps} $(PETSCLIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJ4LIB)
+ProcessRifts_python_la_LIBADD = ${deps} $(PETSCLIB) $(HDF5LIB) $(BLASLAPACKLIB) $(MPILIB) $(NEOPZLIB) $(GSLLIB) $(PROJ4LIB)
 #}}}
Index: /issm/trunk-jpl/test/NightlyRun/test2003.py
===================================================================
--- /issm/trunk-jpl/test/NightlyRun/test2003.py	(revision 24918)
+++ /issm/trunk-jpl/test/NightlyRun/test2003.py	(revision 24919)
@@ -19,5 +19,5 @@
 md.dsl.global_average_thermosteric_sea_level_change=np.zeros((2, ))
 md.dsl.sea_surface_height_change_above_geoid=np.zeros((md.mesh.numberofvertices+1, ))
-md.dsl.sea_water_pressure_change_at_sea_floor=zeros((md.mesh.numberofvertices+1, ))
+md.dsl.sea_water_pressure_change_at_sea_floor=np.zeros((md.mesh.numberofvertices+1, ))
 
 
