## page was renamed from Download and installation ## page was renamed from Installation = Installation = <> == System requirements == In principle, BDF supports all Unix-like platforms. However, we strongly propose you to use BDF at Linux platform together Intel Fortran and C compiler because BDF package is developed and thoroughly tested on such platforms. System requirements of BDF is summarized as following lines: {{{ OS: Linux, Mac, FreeBSD, Unix Compiler: Fortran 90 compiler such as Intel, gfortran, g95 Support softwares: Python, make Parallel environments: MPI }}} == Configure and compile BDF package == Several steps are needed to install BDF package. 1. Set fortran and C compiler. . If you use bash shell, you can set fortran and c compiler: {{{ $export FC=ifort $export CC=gcc }}} . Tips: If you ignored this step, the configure script will pick up the gfortran and gcc compiler as default. 2. Set blas and lapack library. . For flaxibality reason, we ask users to set blas and lapack libraries. {{{ $export MATHLIB="-LMathLibDir -llapackname -lblasname" }}} 3. Configure BDF package. After setting compiler and mathematic library. You can configure BDF by command configure in BDF root directory. {{{ $./configure }}} Configure support several parameters. {{{ --enable-debug=yes[no] Compile BDF in debug mode. --enable-i8=yes[no] Compile BDF with 64 bit integrals. --enable-openmp=yes[no] Compile BDF with OpenMP supporting. --enable-mpi=yes[no] Compile BDF with MPI supporting. --enable-parallel=yes[no] Compiler BDF with MPI and OpenMP support. }}} 4. Compile BDF package. {{{ $make }}} == Compile parallel bdf == Some of BDF modules support parallel calculation. You can compiler BDF as parallel mode. At present, we support MPI and OpenMP. 1. MPI and OpenMP hybrid. {{{ $./configure --enable-parallel=yes }}} 2. Only MPI. {{{ $./configure --enable-mpi=yes }}} 3. Only OpenMP. {{{ $./configure --enable-openmp=yes }}} == Examples of some typical installations == 1. A 64bit machine with intel compiler and MKL library. {{{ $export FC=ifort $export CC=gcc $export MATHLIB="-lmkl_intel_ilp64 -lmkl_sequential -lmkl_core -lpthread" $./configure --enabale-i8=yes --enable-openmp=yes $make }}} 1. A Mac laptop with gfortran, gcc and user compiled lapack and blas library {{{ $export FC=gfortran $export CC=gcc $export MATHILIB="-L/Users/mike/mathlib -lblas -llapack" $./configure --enabale-i8=yes --enable-openmp=yes $make }}} 1. A Linux cluster with fort, icc, openmpi and intel MKL library. {{{ Check MPI flags by using command $mpif90 --shownme You may get such output. ifort -I/opt/openmpi/include -I/opt/openmpi/lib -L/opt/openmpi/lib -lmpi_f90 -lmpi_f77 -lmpi -ldl -lm -Wl,--export-dynamic -lrt -lnsl -lutil You can set BDF compiler and MPILIB as $export FC=ifort $export CC=icc $export MATHLIB="-lmkl_intel_ilp64 -lmkl_sequential -lmkl_core -lpthread" $export MPILIB="-I/opt/openmpi/include -I/opt/openmpi/lib -L/opt/openmpi/lib -lmpi_f90 -lmpi_f77 -lmpi -ldl -lm -Wl,--export-dynamic -lrt -lnsl -lutil" $./configure --enabale-i8=yes --enable-parallel=yes $make If you only want to evoke MPI, just use $./configure --enabale-i8=yes --enable-mpi=yes }}} == Set system variables of BDF package ==