#acl ClamsUserGroup:read,write,delete,revert All:read = Install libraries used by CLaMS = * Ubuntu 18.04 * ifort 18.0.3 * gcc 7.3.0 * zlib 1.2.11 * HDF5 1.10.3 * netCDF 4.6.1 * netCDF-Fortran 4.4.4 <> === Create new directories === {{{ mkdir /usr/nfs/software/icg1/include_gcc7.3.0 mkdir /usr/nfs/software/icg1/lib/lib_linux_ifc64_18.0.3_nc4.6.1 mkdir /usr/nfs/software/icg1/mod/mod_linux_ifc64_18.0.3_nc4.6.1 cd /usr/nfs/software/icg1/lib ln -sf lib_linux_ifc64_18.0.3_nc4.6.1 lib_linux_ifc64_18.0.3 cd /usr/nfs/software/icg1/mod ln -sf mod_linux_ifc64_18.0.3_nc4.6.1 mod_linux_ifc64_18.0.3 }}} === zlib Version 1.2.11 === * Install zlib with: {{{ cd /usr/nfs/software/icg1/local/zlib-1.2.11-gcc7.3.0 ./configure --prefix=/usr/nfs/software/icg1/local/zlib-1.2.11-gcc7.3.0 make make check make install }}} * Link zlib to CLaMS library directory: {{{ cd /usr/nfs/software/icg1/lib/lib_linux_ifc64_18.0.3_nc4.6.1 ln -sf ../../local/zlib-1.2.11-gcc7.3.0/lib/libz.a . }}} * Link include files: {{{ cd /usr/nfs/software/icg1/include_gcc7.3.0 ln -sf ../local/zlib-1.2.11-gcc7.3.0/include/* . }}} === HDF5 Version 1.10.3 === * Install HDF5 with: {{{ cd /usr/nfs/software/icg1/local/hdf5-1.10.3 export CC=`which gcc` ./configure --prefix=/usr/nfs/software/icg1/local/hdf5-1.10.3 --with-zlib=/usr/nfs/software/icg1/local/zlib-1.2.11-gcc7.3.0 --disable-shared 2>&1 | tee config.out make 2>&1 | tee make.out make check 2>&1 | tee make_check.out => ended with errors !!!! make install 2>&1 | tee make_install.out }}} * Link HDF5 Libraries to CLaMS library directories: {{{ cd /usr/nfs/software/icg1/lib/lib_linux_ifc64_18.0.3_nc4.6.1 ln -sf ../../local/hdf5-1.10.3/lib/libhdf5.a . ln -sf ../../local/hdf5-1.10.3/lib/libhdf5_hl.a . }}} * Link include files: {{{ cd /usr/nfs/software/icg1/include_gcc7.3.0 ln -sf ../local/hdf5-1.10.3/include/* . }}} === netCDF Version 4.6.1 === * Install NetCDF C-library with: {{{ export CC=`which gcc` export CFLAGS=-O export CPPFLAGS="-DNDEBUG -DpgiFortran -I/usr/nfs/software/icg1/include_gcc7.3.0" export CXX=`which g++` export LDFLAGS=-L/usr/nfs/software/icg1/lib/lib_linux_ifc64_18.0.3_nc4.6.1 export LIBS="-lhdf5_hl -lhdf5 -lz -ldl" mkdir /usr/nfs/software/icg1/local/netcdf-c-4.6.1-install cd /usr/nfs/software/icg1/local/netcdf-c-4.6.1 ./configure --prefix=/usr/nfs/software/icg1/local/netcdf-4.6.1-install --disable-shared --disable-dap [--enable-benchmarks] 2>&1 | tee configure.out make 2>&1 | tee make.out make check 2>&1 | tee make_check.out => FEHLER !!! make install 2>&1 | tee make_install.out }}} * Link libraries, include files and binaries to CLaMS directories:{{{ cd /usr/nfs/software/icg1/lib/lib_linux_ifc64_18.0.3_nc4.6.1 ln -sf ../../local/netcdf-4.6.1-install/lib/libnetcdf.a . cd /usr/nfs/software/icg1/include_gcc7.3.0 ln -sf ../local/netcdf-4.6.1-install/include/* . }}} === netCDF-Fortran Version 4.4.4 === * Install NetCDF Fortran-library with ifort: {{{ cd /usr/nfs/software/icg1/local/netcdf-fortran-4.4.4-gcc7.3.0 export NCDIR=/usr/nfs/software/icg1/local/netcdf-4.6.1-install export CC=`which gcc` export CFLAGS=-O export CXX=`which g++` export FC=`which ifort` export FFLAGS=-O export F90=$FC export F77=$FC export FCFLAGS=$FFLAGS export FLIBS= export CPPFLAGS="-DNDEBUG -DpgiFortran -I/usr/nfs/software/icg1/include_gcc7.3.0" export LD_LIBRARY_PATH=/usr/nfs/software/icg1/lib/lib_linux_ifc64_18.0.3_nc4.6.1 export LDFLAGS=-L/usr/nfs/software/icg1/lib/lib_linux_ifc64_18.0.3_nc4.6.1 export NFDIR=/usr/nfs/software/icg1/local/netcdf-fortran-4.4.4-gcc7.3.0-ifc64_18.0.3-install export LIBS="-lnetcdf -lhdf5_hl -lhdf5 -lz -ldl" make distclean cd /usr/nfs/software/icg1/local/netcdf-fortran-4.4.4-gcc7.3.0 ./configure --prefix=/usr/nfs/software/icg1/local/netcdf-fortran-4.4.4-gcc7.3.0-ifc64_18.0.3-install --disable-shared 2>&1 | tee config.out make 2>&1 | tee make.out make check 2>&1 | tee make-check.out make install 2>&1 | tee make-install.out }}} * Link Fortran library and modules to CLaMS directories: {{{ cd /usr/nfs/software/icg1/include_gcc7.3.0 ln -sf ../local/netcdf-fortran-4.4.4-gcc7.3.0-ifc64_18.0.3-install/include/netcdf.inc . cd /usr/nfs/software/icg1/mod/mod_linux_ifc64_18.0.3_nc4.6.1 ln -sf ../../local/netcdf-fortran-4.4.4-gcc7.3.0-ifc64_18.0.3-install/include/netcdf.mod . ln -sf ../../local/netcdf-fortran-4.4.4-gcc7.3.0-ifc64_18.0.3-install/include/typesizes.mod . cd /usr/nfs/software/icg1/lib/lib_linux_ifc64_18.0.3_nc4.6.1 ln -sf ../../local/netcdf-fortran-4.4.4-gcc7.3.0-ifc64_18.0.3-install/lib/libnetcdff.a . }}} * Compile with:{{{ ifort -o progname progname.f90 -I/usr/nfs/software/icg1/mod/mod_linux_ifc64_18.0.3_nc4.6.1 -L/usr/nfs/software/icg1/lib/lib_linux_ifc64_18.0.3_nc4.6.1 -lnetcdff -lnetcdf -lhdf5_hl -lhdf5 -lz }}} === Installation of Library qhull === {{{ cd /usr/nfs/software/icg1/local/qhull-2.6-mod }}} * Possibly the name of the C-routine qhull_dll in file unix.c must be adjusted: for gcc it must be qhull_dll_ ! * For gcc version 4/5 qset.s must be compiled with -fno-strict-aliasing (otherwise a "segmentation fault" occurs)! In Makefile:{{{ .c.o: $(CC) -c $(CCOPTS1) -fno-strict-aliasing $< }}} * Create library with gcc compiler 7.3.0: {{{ make new mv libqhull.a libqhull_linux64_7.3.0.a }}} * Link library to CLaMS directories: {{{ cd /usr/nfs/software/icg1/lib/lib_linux_ifc64_18.0.3_nc4.6.1 ln -sf ../../local/qhull-2.6-mod/libqhull_linux64_7.3.0.a ./libqhull.a }}} === Installation of Numerical Recipes === * Create subdirectories (objDir, modDir und libDir) in directory numrec-f90 {{{ cd /usr/nfs/software/icg1/local/numrec-f90 mkdir lib_linux_ifc64_18.0.3 mkdir mod_linux_ifc64_18.0.3 mkdir obj_linux_ifc64_18.0.3 }}} * In Makefile.numrec enter the used fortran compiler and the installation directory names: {{{ F90=ifort objDir=obj_linux_ifc64_18.0.3 modDir=mod_linux_ifc64_18.0.3 libDir=lib_linux_ifc64_18.0.3 }}} * Compile and create library {{{ make -f Makefile.numrec new }}} * Link library to CLaMS directory: {{{ cd /usr/nfs/software/icg1/lib/lib_linux_ifc64_18.0.3_nc4.6.1 ln -sf ../../local/numrec-f90/lib_linux_ifc64_18.0.3/libnumrec.a . }}} * Link module files to CLaMS directory: {{{ cd /usr/nfs/software/icg1/mod/mod_linux_ifc64_18.0.3_nc4.6.1 ln -sf ../../local/numrec-f90/mod_linux_ifc64_18.0.3/nr.mod . ln -sf ../../local/numrec-f90/mod_linux_ifc64_18.0.3/nrtype.mod . ln -sf ../../local/numrec-f90/mod_linux_ifc64_18.0.3/nrutil.mod . }}} === utils-Library following CF-Conventions === {{{ cd /usr/nfs/software/icg1/local/utils-cf mkdir lib_linux_ifc64_18.0.3_nc4.6.1 mkdir mod_linux_ifc64_18.0.3_nc4.6.1 mkdir obj_linux_ifc64_18.0.3_nc4.6.1 }}} * utils/Makefile: {{{ dir_suffix := $(all_suffix)_ifc64_$(version)_nc4.6.1 }}} * Compile utils-library with new NetCDF-library linked: {{{ make clean make theLibrary }}} * Link utils-Library to CLaMS directory: {{{ cd /usr/nfs/software/icg1/lib/lib_linux_ifc64_18.0.3_nc4.6.1 ln -sf ../../local/utils-cf/lib_linux_ifc64_18.0.3_nc4.6.1/libutils-icg1.a }}} * Link module files to CLaMS directory: {{{ cd /usr/nfs/software/icg1/mod/mod_linux_ifc64_18.0.3_nc4.6.1 ln -sf ../../local/utils-cf/mod_linux_ifc64_18.0.3_nc4.6.1/* . }}} === MPICH Library 3.2.1 === * Install new MPICH library used by the intel compiler:{{{ cd /usr/nfs/software/icg1/local/mpich-3.2.1 ./configure --prefix=/usr/nfs/software/icg1/local/mpich-3.2.1-ifort-18.0.3 --disable-shared F77=/opt/intel/bin/ifort FC=/opt/intel/bin/ifort 2>&1 | tee config.out make 2>&1 | tee make.out make install 2>&1 | tee install.out }}} * Wenn neuer Compiler auf allen Workstations installiert:{{{ ln -sf mpich-3.2.1-ifort-18.0.3 mpich-intel }}}