Index: /issm/trunk-jpl/externalpackages/dakota/configs/5.3/BuildDakotaCustom.cmake.patch
===================================================================
--- /issm/trunk-jpl/externalpackages/dakota/configs/5.3/BuildDakotaCustom.cmake.patch	(revision 15212)
+++ /issm/trunk-jpl/externalpackages/dakota/configs/5.3/BuildDakotaCustom.cmake.patch	(revision 15212)
@@ -0,0 +1,40 @@
+41,46c41,46
+< #set( BLAS_LIBS 
+< #      "/usr/lib64"
+< #      CACHE FILEPATH "Use non-standard BLAS library path" FORCE )
+< #set( LAPACK_LIBS 
+< #      "/usr/lib64"
+< #      CACHE FILEPATH "Use non-standard BLAS library path" FORCE )
+---
+> set( BLAS_LIBS 
+>       "/usr/lib64/libblas.so.3.0.3"
+>       CACHE FILEPATH "Use non-standard BLAS library path" FORCE )
+> set( LAPACK_LIBS 
+>       "/usr/lib64/liblapack.so.3.0.3"
+>       CACHE FILEPATH "Use non-standard BLAS library path" FORCE )
+64,65c64,65
+< #set( DAKOTA_HAVE MPI ON
+< #     CACHE BOOL "Build with MPI enabled" FORCE)
+---
+> set( DAKOTA_HAVE MPI OFF
+>      CACHE BOOL "Build with MPI disabled" FORCE)
+73,77c73,77
+< #set(BOOST_ROOT
+< #    "path/to/custom/Boost/install/directory"
+< #    CACHE PATH "Use non-standard Boost install" FORCE)
+< #set( Boost_NO_SYSTEM_PATHS TRUE
+< #     CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
+---
+> set(BOOST_ROOT
+>     "$ENV{ISSM_DIR}/externalpackages/boost/install"
+>     CACHE PATH "Use non-standard Boost install" FORCE)
+> set( Boost_NO_SYSTEM_PATHS TRUE
+>      CACHE BOOL "Supress search paths other than BOOST_ROOT" FORCE)
+91,93c91,93
+< #set( CMAKE_INSTALL_PREFIX
+< #     "/path/to/Dakota/installation"
+< #     CACHE PATH "Path to Dakota installation" )
+---
+> set( CMAKE_INSTALL_PREFIX
+>      "$ENV{ISSM_DIR}/externalpackages/dakota/install"
+>      CACHE PATH "Path to Dakota installation" )
Index: /issm/trunk-jpl/externalpackages/dakota/configs/5.3/DakotaDev.cmake.patch
===================================================================
--- /issm/trunk-jpl/externalpackages/dakota/configs/5.3/DakotaDev.cmake.patch	(revision 15212)
+++ /issm/trunk-jpl/externalpackages/dakota/configs/5.3/DakotaDev.cmake.patch	(revision 15212)
@@ -0,0 +1,14 @@
+4,7c4,7
+< set(DAKOTA_HAVE_MPI TRUE CACHE BOOL "Enable MPI in DAKOTA?")
+< set(ENABLE_DAKOTA_DOCS TRUE CACHE BOOL "Enable DAKOTA documentation build")
+< set(ENABLE_SPEC_MAINT TRUE CACHE BOOL 
+<   "Enable DAKOTA specification maintenance mode?")
+---
+> #set(DAKOTA_HAVE_MPI TRUE CACHE BOOL "Enable MPI in DAKOTA?")
+> #set(ENABLE_DAKOTA_DOCS TRUE CACHE BOOL "Enable DAKOTA documentation build")
+> #set(ENABLE_SPEC_MAINT TRUE CACHE BOOL 
+> #  "Enable DAKOTA specification maintenance mode?")
+13c13
+< #set(HAVE_X_GRAPHICS OFF CACHE BOOL "Disable dependency on X libraries" FORCE)
+---
+> set(HAVE_X_GRAPHICS OFF CACHE BOOL "Disable dependency on X libraries" FORCE)
Index: /issm/trunk-jpl/externalpackages/dakota/configs/5.3/NonDLocalReliability.cpp.patch
===================================================================
--- /issm/trunk-jpl/externalpackages/dakota/configs/5.3/NonDLocalReliability.cpp.patch	(revision 15212)
+++ /issm/trunk-jpl/externalpackages/dakota/configs/5.3/NonDLocalReliability.cpp.patch	(revision 15212)
@@ -0,0 +1,9 @@
+2579a2580
+> 	  // add sensitivity output to importance factors (jes, 8/06/10)
+2584c2585,2588
+< 	    << std::setw(width) << impFactor(j,i) << '\n';
+---
+> 	    << std::setw(width) << impFactor(j,i)
+> 	    << "  Sensitivity = "
+> 	    << std::resetiosflags(std::ios::adjustfield)
+> 	    << std::setw(width) << fnGradsMeanX(j,i) << '\n';
Index: /issm/trunk-jpl/externalpackages/dakota/configs/5.3/NonDSampling.cpp.patch
===================================================================
--- /issm/trunk-jpl/externalpackages/dakota/configs/5.3/NonDSampling.cpp.patch	(revision 15212)
+++ /issm/trunk-jpl/externalpackages/dakota/configs/5.3/NonDSampling.cpp.patch	(revision 15212)
@@ -0,0 +1,25 @@
+703,709c703,710
+<   if (!subIteratorFlag) {
+<     nonDSampCorr.compute_correlations(vars_samples, resp_samples);
+<     // archive the correlations to the results DB
+<     nonDSampCorr.archive_correlations(run_identifier(), resultsDB,
+< 				      cv_labels, div_labels, drv_labels,
+< 				      iteratedModel.response_labels());
+<   }
+---
+> //don't compute for now, too expensive.
+> //  if (!subIteratorFlag) {
+> //    nonDSampCorr.compute_correlations(vars_samples, resp_samples);
+> //    // archive the correlations to the results DB
+> //    nonDSampCorr.archive_correlations(run_identifier(), resultsDB,
+> //				      cv_labels, div_labels, drv_labels,
+> //				      iteratedModel.response_labels());
+> //  }
+1196,1197c1197,1200
+<     nonDSampCorr.print_correlations(s, cv_labels, div_labels, drv_labels,
+< 				    iteratedModel.response_labels());
+---
+> 
+> //don't output for now.
+> //    nonDSampCorr.print_correlations(s, cv_labels, div_labels, drv_labels,
+> //				    iteratedModel.response_labels());
Index: /issm/trunk-jpl/externalpackages/dakota/configs/5.3/ParallelLibrary.cpp.patch
===================================================================
--- /issm/trunk-jpl/externalpackages/dakota/configs/5.3/ParallelLibrary.cpp.patch	(revision 15212)
+++ /issm/trunk-jpl/externalpackages/dakota/configs/5.3/ParallelLibrary.cpp.patch	(revision 15212)
@@ -0,0 +1,40 @@
+103a104
+>   initialized=0; //we run serially all the time!
+129a131
+>   initialized=0; //we run serially all the time!
+137a140,172
+> /** This constructor is provided for the Issm software, to run serial
+>  * Dakota in a parallel MPI ring: */
+> ParallelLibrary::ParallelLibrary(char* serial_mode):
+>   worldRank(0), worldSize(1),
+>   mpirunFlag(false), ownMPIFlag(false), dummyFlag(false),
+>   stdOutputToFile(false), stdErrorToFile(false), checkFlag(false),
+>   preRunFlag(true), runFlag(true), postRunFlag(true), userModesFlag(false),
+>   startClock(0), stopRestartEvals(0),
+>   currPLIter(parallelLevels.end()), currPCIter(parallelConfigurations.end())
+> {
+>   startClock   = clock();
+> #ifdef DAKOTA_UTILIB
+>   utilib::exception_mngr::set_mode(utilib::exception_mngr::Abort);
+>   startCPUTime = CPUSeconds();       // see utilib/src/sys/seconds.cpp
+>   startWCTime  = WallClockSeconds(); // see utilib/src/sys/seconds.cpp
+> #endif // DAKOTA_UTILIB
+> 
+>   // do not initialize MPI.  Get worldRank/worldSize if available
+>   ParallelLevel pl;
+> #ifdef HAVE_MPI // mpi available, we still don't want to run in parallel for Dakota!
+>   pl.serverIntraComm = MPI_COMM_NULL;
+>   Cout << "Running Dakota MPI executable in serial mode on CPU 0 for ISSM.";
+> #else // mpi not available
+>   pl.serverIntraComm = MPI_COMM_NULL;
+>   Cout << "Running Dakota serial executable in serial mode for ISSM.\n";
+> #endif // HAVE_MPI
+> 
+>   parallelLevels.push_back(pl);
+>   currPLIter = parallelLevels.begin();
+>   increment_parallel_configuration();
+> }
+> 
+> 
+1517a1553
+>   initialized=0; //we run serially all the time!
Index: /issm/trunk-jpl/externalpackages/dakota/configs/5.3/ParallelLibrary.hpp.patch
===================================================================
--- /issm/trunk-jpl/externalpackages/dakota/configs/5.3/ParallelLibrary.hpp.patch	(revision 15212)
+++ /issm/trunk-jpl/externalpackages/dakota/configs/5.3/ParallelLibrary.hpp.patch	(revision 15212)
@@ -0,0 +1,3 @@
+358a359,360
+>   /// library mode constructor, serial mode (for the Issm software)
+>   ParallelLibrary(char* serial_mode);
Index: /issm/trunk-jpl/externalpackages/dakota/configs/5.3/pecos_global_defs.hpp.patch
===================================================================
--- /issm/trunk-jpl/externalpackages/dakota/configs/5.3/pecos_global_defs.hpp.patch	(revision 15212)
+++ /issm/trunk-jpl/externalpackages/dakota/configs/5.3/pecos_global_defs.hpp.patch	(revision 15212)
@@ -0,0 +1,4 @@
+25a26
+> #ifndef PI
+26a28
+> #endif
Index: /issm/trunk-jpl/externalpackages/dakota/configs/5.3/utilibExpat_patch.txt
===================================================================
--- /issm/trunk-jpl/externalpackages/dakota/configs/5.3/utilibExpat_patch.txt	(revision 15212)
+++ /issm/trunk-jpl/externalpackages/dakota/configs/5.3/utilibExpat_patch.txt	(revision 15212)
@@ -0,0 +1,58 @@
+Index: CMakeLists.txt
+===================================================================
+--- CMakeLists.txt	(revision 1968)
++++ CMakeLists.txt	(working copy)
+@@ -30,6 +30,17 @@
+ if(UTILIB_YES_MEMDEBUG)
+   add_definitions(-DUTILIB_YES_MEMDEBUG=1)
+ endif()
++option(UTILIB_HAVE_EXPAT "Enable expat in utilib" OFF)
++if (UTILIB_HAVE_EXPAT)
++  find_package(EXPAT)
++  if (EXPAT_FOUND)
++    # Use the same definition as autotools build
++    add_definitions("-DUTILIB_HAVE_EXPAT_H")
++    # TODO: add include path (EXPAT_INCLUDE_DIRS) in relevant subdirs?
++  else()
++    message(WARNING "expat requested, but not found")
++  endif()
++endif()
+ 
+ #inspect the system so that we can generate utilib_config.h 
+ include(CheckFunctionExists)
+@@ -47,7 +58,6 @@
+ CHECK_INCLUDE_FILES("windows.h;dbghelp.h" UTILIB_HAVE_DBGHELP_H)
+ CHECK_INCLUDE_FILE(err.h UTILIB_HAVE_ERR_H)
+ CHECK_INCLUDE_FILE(execinfo.h UTILIB_HAVE_EXECINFO_H)
+-CHECK_INCLUDE_FILE(expat.h UTILIB_HAVE_EXPAT_H)
+ CHECK_INCLUDE_FILE(float.h UTILIB_HAVE_FLOAT_H)
+ CHECK_INCLUDE_FILE(limits.h UTILIB_HAVE_LIMITS_H)
+ CHECK_INCLUDE_FILE(strings.h UTILIB_HAVE_STRINGS_H)
+@@ -57,9 +67,7 @@
+ CHECK_INCLUDE_FILE(values.h UTILIB_HAVE_VALUES_H)
+ CHECK_INCLUDE_FILE(windows.h UTILIB_HAVE_WINDOWS_H)
+ 
+-find_library(EXPAT_LIB expat)
+ 
+-
+ # Use common HAVE_BOOST to indicate usage of Boost across packages
+ # Ultimately need to #define UTILIB_HAVE_BOOST if used 
+ set(HAVE_BOOST OFF CACHE BOOL "Should Utilib use BOOST?")
+
+
+Index: CMakeLists.txt
+===================================================================
+--- src/libs/CMakeLists.txt	2013/03/25 19:19:06	1970
++++ src/libs/CMakeLists.txt	2013/03/25 19:51:47	1971
+@@ -77,8 +77,9 @@
+   list(APPEND libs ${MPI_LIBRARY})
+ endif()
+ 
+-if(UTILIB_HAVE_EXPAT_H AND EXPAT_LIB)
+-  list(APPEND libs ${EXPAT_LIB})
++if(UTILIB_HAVE_EXPAT AND EXPAT_FOUND)
++  include_directories(${EXPAT_INCLUDE_DIRS})
++  list(APPEND libs ${EXPAT_LIBRARIES})
+ endif()
+ if(MSVC)
+   list(APPEND libs dbghelp)
Index: /issm/trunk-jpl/externalpackages/dakota/install-5.3-linux64-astrid.sh
===================================================================
--- /issm/trunk-jpl/externalpackages/dakota/install-5.3-linux64-astrid.sh	(revision 15212)
+++ /issm/trunk-jpl/externalpackages/dakota/install-5.3-linux64-astrid.sh	(revision 15212)
@@ -0,0 +1,54 @@
+#!/bin/bash
+set -eu
+
+#Some cleanup
+rm -rf Dakota
+rm -rf src 
+rm -rf build 
+rm -rf install 
+mkdir src build install 
+
+#Download from ISSM server
+#$ISSM_DIR/scripts/DownloadExternalPackage.py 'http://issm.jpl.nasa.gov/files/externalpackages/dakota-5.3.src.tar.gz' 'dakota-5.3.src.tar.gz'
+
+#Untar 
+tar -zxvf dakota-5.3.src.tar.gz
+
+#Move Dakota to src directory
+mv dakota-5.3.src/* src
+rm -rf dakota-5.3.src
+
+#Set up Dakota cmake variables and config
+export DAK_SRC=$ISSM_DIR/externalpackages/dakota/src
+export DAK_BUILD=$ISSM_DIR/externalpackages/dakota/build
+cp $DAK_SRC/cmake/BuildDakotaTemplate.cmake $DAK_SRC/cmake/BuildDakotaCustom.cmake
+patch $DAK_SRC/cmake/BuildDakotaCustom.cmake configs/5.3/BuildDakotaCustom.cmake.patch
+patch $DAK_SRC/cmake/DakotaDev.cmake configs/5.3/DakotaDev.cmake.patch
+
+#Apply patches
+patch src/src/ParallelLibrary.cpp configs/5.3/ParallelLibrary.cpp.patch
+patch src/src/ParallelLibrary.hpp configs/5.3/ParallelLibrary.hpp.patch
+patch src/src/NonDSampling.cpp configs/5.3/NonDSampling.cpp.patch
+patch src/src/NonDLocalReliability.cpp configs/5.3/NonDLocalReliability.cpp.patch
+patch src/packages/pecos/src/pecos_global_defs.hpp configs/5.3/pecos_global_defs.hpp.patch
+#patch from Sandia that should be integrated soon
+cd src/packages/acro/packages/utilib
+patch -p0 < ../../../../../configs/5.3/utillibExpat_patch.txt  
+cd ../../../../..
+
+#Configure dakota
+cd $DAK_BUILD
+cmake -C $DAK_SRC/cmake/BuildDakotaCustom.cmake -C $DAK_SRC/cmake/DakotaDev.cmake $DAK_SRC
+cd ..
+
+#Compile and install dakota
+cd $DAK_BUILD
+if [ $# -eq 0 ];
+then
+	make
+	make install
+else
+	make -j $1
+	make -j $1 install
+fi
+cd ..
