Warning

You're reading an old version (v5.2) of this documentation. If you want up-to-date information, please have a look at master.

Installation

Note

While MARE2DEM is a highly capable modeling code, it is not a plug-and-play GUI software package. The intended user base includes research geophysicists and students with some familiarity with MATLAB and Unix commands.

System Requirements

  • Intel Fortran and C and Fortran compilers and the Math Kernel Library

  • An MPI compiler library built around the Intel Fortran and C compilers

  • MATLAB is needed for the graphical user interface (version R2014b or newer)

MARE2DEM was designed to be run in parallel on Unix based high performance computing systems but it can also be run on Unix based laptops and desktops. The source codes consist primarily of modern Fortran subroutines but also a few C routines and libraries. The parallel constructs are implemented with the message passing interface (MPI) standard using a manager-worker model. Compiling the code on any Unix based system (HPC cluster, desktop or laptop) is straightforward using the included Makefile. The user interface is run locally using MATLAB on your desktop or laptop.

At present, MARE2DEM requires the Intel compilers. If you don’t have them already, you can visit the Intel website and download a free trial of their compilers. This gives you the ifort and icc compiler executables. You can download Open-MPI for free from openmpi.org. First install the Intel compilers, then follow the Open-MPI instructions for compiling the MPI wrappers around ifort and icc (for example see Installing OpenMPI on Apple macOS). On some clusters, we’ve had success building MARE2DEM with other MPI implementations such as MPICH.

Note

With some effort, it would be possible to compile the source code using gfortran and gcc and the free version of the Intel Math Kernel Library, which is used for both LAPACK and the Pardiso direct sparse matrix solver. Alternatively, the code could be modified to only use the free SuperLU solver library. If you get the code working with gfortran, please consider contributing your modifications back to the community.

Warning

Building the code on a Windows system might be possible, but will require also compiling the included ScaLAPACK library. The current MARE2DEM developer team does not have Windows expertise, so please let us know if you figure out how to get it working on Windows.

MARE2DEM Source Code

The source code resides in directory mare2dem_source and can be compiled using the included Makefile. The specific compiler arguments need to be passed to the Makefile using an include file. The subdirectory mare2dem_source/include/ has example include files:

  • macos.inc - settings for MacOS systems with the Intel compilers and OpenMPI.

  • habanero.inc - settings for the Habanero cluster at Columbia University. This is a Linux cluster with the Intel Parallel Studio compiler suite (which includes MPI). It is likely that this include file will work on other Linux clusters with the Intel compilers.

See the include files for further details.

To compile MARE2DEM, open a terminal and cd to mare2dem_source/. Then issue the make command with the argument INCLUDE=<include_file>. For example, on the Habanero cluster, we use:

make INCLUDE=./include/habanero.inc

It will take several minutes to compile the libraries and MARE2DEM source code. For furter details, see Running MARE2DEM on the Habanero Cluster.

Note

If you are testing out different compiler settings and want to clean up any object files from previous make attempts, you can use the command:

make clean_all

MATLAB User Interface

Open MATLAB and click on the Set Path button on the Home tab of the toolbar. Click on the Add with Subfolders... button and select the folder mare2dem_matlab then click on Save. You should see several folders added like in the figure below.

_images/matlab_set_path.png

Fig. 24 Adding the MARE2DEM interface and plotting routines to MATLAB’s path.

Note

The user interface routines were originally written in MATLAB because it has easy tools for making interactive graphical interfaces. We hope to some day replace them with a new interface written in an open-source and freely available language, but at the moment neither Python nor Julia have comparable interactive graphics capabilities that are as easy to program as those in MATLAB. QT is an option that is freely available but it’s significantly more complicated to code up; however, if you have ideas and want to make an open-source GUI for MARE2DEM, let’s talk!