Skip to content

Instantly share code, notes, and snippets.

@xy124
Last active November 9, 2017 11:14
Show Gist options
  • Save xy124/f892c5a2a07c3f210ab5e069e5730f07 to your computer and use it in GitHub Desktop.
Save xy124/f892c5a2a07c3f210ab5e069e5730f07 to your computer and use it in GitHub Desktop.
installs parflow. Change PREFIX and N before execution!
#!/bin/bash -x
#cores:
N=16
#PREFIX=$HOME
PREFIX=$HOME/test
SRC=$PREFIX/src
mkdir -p $SRC
export PATH=$PREFIX/bin:$PATH
export LD_LIBRARY_PATH=$PREFIX/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig:$PKG_CONFIG_PATH
cd $SRC
wget https://cmake.org/files/v3.10/cmake-3.10.0-rc3.tar.gz
tar xvf cmake-3.10.0-rc3.tar.gz
cd cmake-3.10.0-rc3/
./bootstrap --prefix=$PREFIX --parallel=$N
make -j$N && make install -j$N
cd $SRC
git clone https://github.com/LLNL/hypre --depth 1
cd hypre/src
./configure --prefix=$PREFIX
make -j$N && make install -j$N
cd $SRC
wget https://wci.llnl.gov/content/assets/docs/simulation/computer-codes/silo/silo-4.10.2/silo-4.10.2-bsd-smalltest.tar.gz
tar -xvf silo-4.10.2-bsd-smalltest.tar.gz
cd silo-4.10.2-bsd/
./configure --prefix=$PREFIX
make -j$N && make install -j$N
cd $SRC
wget https://support.hdfgroup.org/ftp/HDF5/current18/src/hdf5-1.8.19.tar.gz
tar xvf hdf5-1.8.19.tar.gz
cd hdf5-1.8.19/
CC=/usr/bin/mpicc ./configure --enable-parallel --prefix=$PREFIX
make -j$N && make install -j$N
cd $SRC
git clone https://github.com/live-clones/pnetcdf --depth 1
cd pnetcdf/
autoreconf -i
./configure --prefix=$PREFIX --enable-parallel
make -j$N && make install -j$N
cd $SRC
git clone https://github.com/Unidata/netcdf-c --depth 1
cd netcdf-c/
mkdir build
cd build/
cmake .. -DBUILD_SHARED_LIBS:BOOL=OFF \
-DBUILD_TESTING:BOOL=ON \
-DBUILD_TESTSETS:BOOL=ON \
-DBUILD_UTILITIES:BOOL=ON \
-DCMAKE_BUILD_TYPE:STRING=RELEASE \
-DCMAKE_C_COMPILER:FILEPATH=/usr/bin/mpicc \
-DCMAKE_INSTALL_PREFIX:PATH=$PREFIX \
-DENABLE_CDF5:BOOL=ON \
-DENABLE_CONVERSION_WARNINGS:BOOL=ON \
-DENABLE_COVERAGE_TESTS:BOOL=OFF \
-DENABLE_DAP:BOOL=ON \
-DENABLE_DAP2:BOOL=ON \
-DENABLE_DAP4:BOOL=ON \
-DENABLE_DAP_GROUPS:BOOL=ON \
-DENABLE_DAP_LONG_TESTS:BOOL=OFF \
-DENABLE_DAP_REMOTE_TESTS:BOOL=ON \
-DENABLE_DISKLESS:BOOL=ON \
-DENABLE_DOXYGEN:BOOL=OFF \
-DENABLE_DYNAMIC_LOADING:BOOL=ON \
-DENABLE_ERANGE_FILL:BOOL=OFF \
-DENABLE_EXAMPLES:BOOL=ON \
-DENABLE_EXAMPLE_TESTS:BOOL=OFF \
-DENABLE_EXTRA_TESTS:BOOL=OFF \
-DENABLE_EXTREME_NUMBERS:BOOL=ON \
-DENABLE_FAILING_TESTS:BOOL=OFF \
-DENABLE_FFIO:BOOL=OFF \
-DENABLE_FSYNC:BOOL=OFF \
-DENABLE_HDF4:BOOL=OFF \
-DENABLE_JNA:BOOL=OFF \
-DENABLE_LARGE_FILE_SUPPORT:BOOL=ON \
-DENABLE_LARGE_FILE_TESTS:BOOL=OFF \
-DENABLE_LOGGING:BOOL=OFF \
-DENABLE_MMAP:BOOL=ON \
-DENABLE_NETCDF4:BOOL=ON \
-DENABLE_NETCDF_4:BOOL=ON \
-DENABLE_PARALLEL4:BOOL=ON \
-DENABLE_PARALLEL_TESTS:BOOL=ON \
-DENABLE_PNETCDF:BOOL=ON \
-DENABLE_REMOTE_FORTRAN_BOOTSTRAP:BOOL=OFF \
-DENABLE_RPC:BOOL=OFF \
-DENABLE_SHARED_LIBRARY_VERSION:BOOL=ON \
-DENABLE_STDIO:BOOL=OFF \
-DENABLE_TESTS:BOOL=ON \
-DENABLE_V2_API:BOOL=ON \
-DENABLE_ZERO_LENGTH_COORD_BOUND:BOOL=OFF \
-DPNETCDF:FILEPATH=$PREFIX/lib/libpnetcdf.a \
-DPNETCDF_INCLUDE_DIR:PATH=$PREFIX/include \
-DTEST_PARALLEL:BOOL=ON \
-DTEST_PARALLEL4:BOOL=ON \
-DUSE_CDF5:BOOL=ON \
-DUSE_DAP:BOOL=ON \
-DUSE_HDF5:BOOL=ON \
-DUSE_LIBDL:BOOL=ON \
-DUSE_NETCDF4:BOOL=ON \
-DUSE_PARALLEL:BOOL=ON \
-DUSE_PNETCDF:BOOL=ON
make -j$N && make install -j$N
cd $SRC
git clone https://github.com/xy124/parflow
cd $SRC/parflow/
git checkout fix-cmake-netcdf
mkdir build
cd build
cmake .. -DBUILD_TESTING:BOOL=ON \
-DCMAKE_C_COMPILER:FILEPATH=/usr/bin/mpicc \
-DCMAKE_INSTALL_PREFIX:PATH=$PREFIX \
-DHYPRE_INCLUDE_DIR:PATH=$PREFIX/include \
-DHYPRE_LIBRARY_LS:FILEPATH=$PREFIX/lib/libHYPRE.a \
-DHYPRE_LIBRARY_MV:FILEPATH=$PREFIX/lib/libHYPRE.a \
-DPARFLOW_AMPS_LAYER:STRING=mpi1 \
-DPARFLOW_AMPS_SEQUENTIAL_IO:BOOL=OFF \
-DPARFLOW_ENABLE_HDF5:BOOL=ON \
-DPARFLOW_ENABLE_HYPRE:BOOL=ON \
-DPARFLOW_ENABLE_NETCDF:BOOL=ON \
-DPARFLOW_ENABLE_PROFILING:BOOL=False \
-DPARFLOW_ENABLE_SILO:BOOL=ON \
-DPARFLOW_ENABLE_SIMULATOR:BOOL=True \
-DPARFLOW_ENABLE_SLURM:BOOL=False \
-DPARFLOW_ENABLE_SUNDIALS:BOOL=False \
-DPARFLOW_ENABLE_SZLIB:BOOL=False \
-DPARFLOW_ENABLE_TIMING:BOOL=False \
-DPARFLOW_ENABLE_TOOLS:BOOL=True \
-DPARFLOW_ENABLE_ZLIB:BOOL=False \
-DPARFLOW_HAVE_CLM:BOOL=ON \
-DPARFLOW_HAVE_OAS3:BOOL=OFF \
-DnetCDF_DIR:PATH=$PREFIX/lib/cmake/netCDF
make -j$N && make install -j$N
echo Maybe execute \"echo export PATH=$PREFIX/bin:\$PATH \>\> ~/.bashrc \&\& source ~/.bashrc\" now to update your PATH!
echo Maybe execute \"echo export PARFLOW_DIR=$PREFIX \>\> ~/.bashrc \&\& source ~/.bashrc\" now to update PARFLOW_DIR!
echo ------END!-------
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment