Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • The following modules need to be loaded e.g. by including in the ~/.bashrc 

    Code Block
    module purge
    module load cineca
    module load intel/pe-xe-2017--binary
    module load intelmpi/2017--binary
    module load mkl/2017--binary
    module load fftw/3.3.4--intelmpi--2017--binary
    module load szip/2.1--gnu--6.1.0
    module load zlib/1.2.8--gnu--6.1.0
    module load hdf5/1.8.17--intelmpi--2017--binary


  • Before compilation one has to specify which compiler and libraries will be used. This depends on the machine. For the Eurofusion Gateway the following Makefile.inc for compiling JOREK needs to be copied to JOREK repository directory 

    Code Block
    titleMakefile.inc
    collapsetrue
        # --- Select physics model
        MODEL             = model303
         
        # --- Compiler and options
        FC                = mpiifort
        CC                = mpiicc
        CXX               = mpiicpc
         
        FFLAGS += -O3
        FFLAGS += -vecabi=compat -mcmodel=medium
         
        # --- Various switches
        USE_PASTIX              = 1
        USE_PASTIX_MURGE        = 0
        USE_COMPLEX_PRECOND     = 0
        USE_STRUMPACK           = 0
        USE_HDF5                = 1
        USE_FFTW                = 1
        USE_MUMPS               = 0
        USE_DIRECT_CONSTRUCTION = 0
        USE_BLOCK               = 1
         
        LIBDIR = /afs/eufus.eu/user/g/g2iholod/public
        LIBS += -liomp5 -pthread -ldl -lm
         
        ifeq (1, $(USE_MUMPS))
        # --- MUMPS
         MKLLIB= -L${MKLROOT}/lib/intel64 -lmkl_scalapack_lp64 -lmkl_intel_lp64 \
                 -lmkl_intel_thread -lmkl_core -lmkl_blacs_intelmpi_lp64
         MKLINC = -I${MKL_HOME}/include
         
         MUMPSDIR = $(LIBDIR)/MUMPS_5.2.1
         LIB_MUMPS = -L$(MUMPSDIR)/lib -ldmumps -ldmumps -lmumps_common -lpord
         INC_MUMPS = $(MUMPSDIR)/include
         
         LIB_MUMPS += $(MKLLIB)
         INC_MUMPS += $(MKLINC)
        endif
         
        ##################
         
        ifeq (1, $(USE_PASTIX))
         MKLLIB = -L${MKL_HOME}/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core
         MKLINC = -I${MKL_HOME}/include
         
         INC_PASTIX += $(MKLINC)
         LIB_PASTIX += $(MKLLIB)
         
         PASTIX_DIR=$(LIBDIR)/pastix_5.2.3/install
         SCOTCH_DIR=$(LIBDIR)/scotch_5.1.12
         
         LIB_PASTIX += $(PASTIX_DIR)/libpastix.a $(SCOTCH_DIR)/lib/libscotch.a $(SCOTCH_DIR)/lib/libscotcherr.a
         INC_PASTIX += -I$(PASTIX_DIR)
         
        endif
         
        ##################
         
        ifeq (1, $(USE_STRUMPACK))
         MKLLIB= -L${MKLROOT}/lib/intel64 -lmkl_scalapack_lp64 -lmkl_intel_lp64 \
                 -lmkl_intel_thread -lmkl_core -lmkl_blacs_intelmpi_lp64
         MKLINC = -I${MKL_HOME}/include
         
         PARMETIS_HOME=$(LIBDIR)/parmetis-4.0.3/build
         STRUMPACK_HOME=$(LIBDIR)/STRUMPACK_MKL/install
         
         STRUMPACKINC = -I$(STRUMPACK_HOME)/include
         STRUMPACKLIB = $(STRUMPACK_HOME)/lib/libstrumpack.a
         
         STRUMPACKINC += -I$(PARMETIS_HOME)/include
         STRUMPACKLIB += $(PARMETIS_HOME)/libparmetis/libparmetis.a
         
         STRUMPACKINC += -I$(PARMETIS_HOME)/metis/include
         STRUMPACKLIB += $(PARMETIS_HOME)/libmetis/libmetis.a
         
         STRUMPACKINC += $(MKLINC)
         STRUMPACKLIB += $(MKLLIB)
         
         DEFINES += -DNEWSPK
        endif
         
        ##################
         
        LIBFFTW           = $(FFTW_LIB)/libfftw3f.a
        INC_FFTW          = -I$(FFTW_INC)
         
        HDF5INCLUDE = $(HDF5_HOME)/include
        HDF5LIB     =-L$(HDF5_HOME)/lib -lhdf5hl_fortran -lhdf5_hl -lhdf5_fortran -lhdf5 -L$(SZIP_LIB) -lsz -lz