Build/install a Netcdf that works for E3SM
In case you find yourself in a situation where you have to build and install your own Netcdf in order to run E3SM, the instruction below will help.
# STEP ONE: DOWNLOAD HDF5, PNETCDF, NETCDF, and NETCDF-FORTRAN HDF5: 1.8.11 NETCDF: 4.3.2 PNETCDF: 1.5.0 NETCDF-FORTRAN: 4.4.1 # STEP TWO: SETUP ENV module purge module load intel/13.0 module load openmpi-intel/1.6 export INSTALLAREA=<PATH TO NETCDF> export HDF5HOME=<PATH TO HDF5> export PATH=$HDF5HOME/bin:$PATH export CC=mpicc export CXX=mpicxx export F77=mpif77 export FC=mpif90 export CFLAGS="-I$INSTALLAREA/include -I$HDF5HOME/include -fPIC -O2" export CXXFLAGS="-I$INSTALLAREA/include -I$HDF5HOME/include -fPIC -O2" export FFLAGS="-I$INSTALLAREA/include -I$HDF5HOME/include -fPIC -O2" export FCFLAGS="-I$INSTALLAREA/include -I$HDF5HOME/include -fPIC -O2" export F90FLAGS="-I$INSTALLAREA/include -I$HDF5HOME/include -fPIC -O2" export FPPFLAGS="-I$INSTALLAREA/include -I$HDF5HOME/include -fPIC -O2" export CPPFLAGS="-I$INSTALLAREA/include -I$HDF5HOME/include -fPIC -O2" export LDFLAGS="-L$INSTALLAREA/lib -L$HDF5HOME/lib" # STEP THREE: BUILD HDF5 ./configure --enable-parallel --prefix=$HDF5HOME --disable-shared make install # STEP FOUR: BUILD PNETCDF # NOTE: For GCC installations you may need to add --disable-in-place-swap ./configure --prefix=$INSTALLAREA make make install # STEP FIVE: BUILD NETCDF ./configure --enable-pnetcdf --enable-netcdf4 --prefix=$INSTALLAREA make make install # STEP SIX: BUILD NETCDF-FORTRAN ./configure --prefix=$INSTALLAREA make make install