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
Contents
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