#acl ClamsUserGroup:read,write,delete,revert All:read = Install libraries used by CLaMS = * Ubuntu 20.04 * ifort 19.0.8 * gcc 9.3.0 * zlib 1.2.11 * HDF5 1.10.6 * netCDF 4.7.4 * netCDF-Fortran 4.5.3 Auf icg1334 liegen zu allen hier beschriebenen Sachen passende ansible-playbooks. <> === Create new directories === {{{ mkdir /usr/nfs/software/icg1/include_gcc9.3.0 mkdir /usr/nfs/software/icg1/lib/lib_linux_ifc64_19.0.8_nc4.7.4 mkdir /usr/nfs/software/icg1/mod/mod_linux_ifc64_19.0.8_nc4.7.4 cd /usr/nfs/software/icg1/lib ln -sf lib_linux_ifc64_19.0.8_nc4.7.4 lib_linux_ifc64_19.0.8 cd /usr/nfs/software/icg1/mod ln -sf mod_linux_ifc64_19.0.8_nc4.7.4 mod_linux_ifc64_19.0.8 }}} === zlib Version 1.2.11 === * Install zlib with: {{{ cd /usr/nfs/software/icg1/local/zlib-1.2.11-gcc9.3.0 ./configure --prefix=/usr/nfs/software/icg1/local/zlib-1.2.11-gcc9.3.0 make make check make install }}} * Link zlib to CLaMS library directory: {{{ cd /usr/nfs/software/icg1/lib/lib_linux_ifc64_19.0.8_nc4.7.4 ln -sf ../../local/zlib-1.2.11-gcc9.3.0/lib/libz.a . }}} * Link include files: {{{ cd /usr/nfs/software/icg1/include_gcc9.3.0 ln -sf ../local/zlib-1.2.11-gcc9.3.0/include/* . }}} === HDF5 Version 1.10.6 === '''The installation of version 1.10.6 does not work. make install breaks with the following error-message: usr/bin/install: 'h5redeploy' und '/usr/nfs/software/icg1/local/hdf5-1.10.6/bin/h5redeploy' sind die gleiche Datei''' * Install HDF5 with: {{{ cd /usr/nfs/software/icg1/local/hdf5-1.10.6 export CC=`which gcc` ./configure --prefix=/usr/nfs/software/icg1/local/hdf5-1.10.6 --with-zlib=/usr/nfs/software/icg1/local/zlib-1.2.11-gcc9.3.0 --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 HDF5 Libraries to CLaMS library directories: {{{ cd /usr/nfs/software/icg1/lib/lib_linux_ifc64_19.0.8_nc4.7.4 ln -sf ../../local/hdf5-1.10.6/lib/libhdf5.a . ln -sf ../../local/hdf5-1.10.6/lib/libhdf5_hl.a . }}} * Link include files: {{{ cd /usr/nfs/software/icg1/include_gcc9.3.0 ln -sf ../local/hdf5-1.10.6/include/* . }}} === alternatively HDF5 Version 1.10.5 === * Install HDF5 with: {{{ cd /usr/nfs/software/icg1/local/hdf5-1.10.5-gcc9.3.0 export CC=`which gcc` ./configure --prefix=/usr/nfs/software/icg1/local/hdf5-1.10.5-gcc9.3.0 --with-zlib=/usr/nfs/software/icg1/local/zlib-1.2.11-gcc9.3.0 --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 HDF5 Libraries to CLaMS library directories: {{{ cd /usr/nfs/software/icg1/lib/lib_linux_ifc64_19.0.8_nc4.7.4 ln -sf ../../local/hdf5-1.10.5-gcc9.3.0/lib/libhdf5.a . ln -sf ../../local/hdf5-1.10.5-gcc9.3.0/lib/libhdf5_hl.a . }}} * Link include files: {{{ cd /usr/nfs/software/icg1/include_gcc9.3.0 ln -sf ../local/hdf5-1.10.5-gcc9.3.0/include/* . }}} === netCDF Version 4.7.4 === * Install NetCDF C-library with: {{{ export CC=`which gcc` export CFLAGS=-O export CPPFLAGS="-DNDEBUG -DpgiFortran -I/usr/nfs/software/icg1/include_gcc9.3.0" export CXX=`which g++` export LDFLAGS=-L/usr/nfs/software/icg1/lib/lib_linux_ifc64_19.0.8_nc4.7.4 export LIBS="-lhdf5_hl -lhdf5 -lz -ldl" mkdir /usr/nfs/software/icg1/local/netcdf-c-4.7.4-install cd /usr/nfs/software/icg1/local/netcdf-c-4.7.4 ./configure --prefix=/usr/nfs/software/icg1/local/netcdf-4.7.4-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_19.0.8_nc4.7.4 ln -sf ../../local/netcdf-4.7.4-install/lib/libnetcdf.a . cd /usr/nfs/software/icg1/include_gcc9.3.0 ln -sf ../local/netcdf-4.7.4-install/include/* . }}} === netCDF-Fortran Version 4.5.3 === * Install NetCDF Fortran-library with ifort: {{{ cd /usr/nfs/software/icg1/local/netcdf-fortran-4.5.3 export NCDIR=/usr/nfs/software/icg1/local/netcdf-4.7.4-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_gcc9.3.0" export LD_LIBRARY_PATH=/usr/nfs/software/icg1/lib/lib_linux_ifc64_19.0.8_nc4.7.4 export LDFLAGS=-L/usr/nfs/software/icg1/lib/lib_linux_ifc64_19.0.8_nc4.7.4 export NFDIR=/usr/nfs/software/icg1/local/netcdf-fortran-4.5.3-gcc9.3.0-ifc64_19.0.8-install export LIBS="-lnetcdf -lhdf5_hl -lhdf5 -lz -ldl" make distclean cd /usr/nfs/software/icg1/local/netcdf-fortran-4.5.3 ./configure --prefix=/usr/nfs/software/icg1/local/netcdf-fortran-4.5.3-gcc9.3.0-ifc64_19.0.8-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_gcc9.3.0 ln -sf ../local/netcdf-fortran-4.5.3-gcc9.3.0-ifc64_19.0.8-install/include/netcdf.inc . cd /usr/nfs/software/icg1/mod/mod_linux_ifc64_19.0.8_nc4.7.4 ln -sf ../../local/netcdf-fortran-4.5.3-gcc9.3.0-ifc64_19.0.8-install/include/netcdf.mod . ln -sf ../../local/netcdf-fortran-4.5.3-gcc9.3.0-ifc64_19.0.8-install/include/typesizes.mod . cd /usr/nfs/software/icg1/lib/lib_linux_ifc64_19.0.8_nc4.7.4 ln -sf ../../local/netcdf-fortran-4.5.3-gcc9.3.0-ifc64_19.0.8-install/lib/libnetcdff.a . }}} * Compile with:{{{ ifort -o progname progname.f90 -I/usr/nfs/software/icg1/mod/mod_linux_ifc64_19.0.8_nc4.7.4 -L/usr/nfs/software/icg1/lib/lib_linux_ifc64_19.0.8_nc4.7.4 -lnetcdff -lnetcdf -lhdf5_hl -lhdf5 -lz }}} === 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_19.0.8 mkdir mod_linux_ifc64_19.0.8 mkdir obj_linux_ifc64_19.0.8 }}} * In Makefile.numrec enter the used fortran compiler and the installation directory names: {{{ F90=ifort objDir=obj_linux_ifc64_19.0.8 modDir=mod_linux_ifc64_19.0.8 libDir=lib_linux_ifc64_19.0.8 }}} * Compile and create library {{{ make -f Makefile.numrec new }}} * Link library to CLaMS directory: {{{ cd /usr/nfs/software/icg1/lib/lib_linux_ifc64_19.0.8_nc4.7.4 ln -sf ../../local/numrec-f90/lib_linux_ifc64_19.0.8/libnumrec.a . }}} * Link module files to CLaMS directory: {{{ cd /usr/nfs/software/icg1/mod/mod_linux_ifc64_19.0.8_nc4.7.4 ln -sf ../../local/numrec-f90/mod_linux_ifc64_19.0.8/nr.mod . ln -sf ../../local/numrec-f90/mod_linux_ifc64_19.0.8/nrtype.mod . ln -sf ../../local/numrec-f90/mod_linux_ifc64_19.0.8/nrutil.mod . }}} === MPICH Library 3.3.2 === * Install new MPICH library used by the intel compiler:{{{ cd /usr/nfs/software/icg1/local/mpich-3.3.2 ./configure --prefix=/usr/nfs/software/icg1/local/mpich-3.3.2-ifort-19.0.8 --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.3.2-ifort-19.0.8 mpich-intel }}}