ERT was originally built as an internal tool in Statoil. We have tried hard to remove arbitrary dependencies on the Statoil computer infrastructure; in the source code itself there should be very few Statoil dependencies, but in the build system there are unfortunately some left. We are working on removing these.
You need to install scons: http://www.scons.org to build.
You need to install the plplot: http://www.plplot.org plotting library; you will need both the header files and the library. Observe that we have had some hickups with version dependencies on plplot. At Statoil we have used version 5.9.0
ERT consists of many libraries which are linked statically, however plplot is linked dynamically and RPATH is used to embed the path to the library to the executable. The plplot functions use dlopen() to load low drivers, so plplot usage might fail even after the application has booted successfully.
You can set some variables in the file local_config.py (read documentation in local_config_DEFAULT.py). If you do not create your personal local_config.py file the defaults found in local_config_DEFAULT.py will be used. Depending on your setup this might be sufficient to compile; but to actually create a usable ERT executable you must create a local_config.py file.
The options that have to be set are the following.
SITE_CONFIG_FILE = "" INCLUDE_LSF = False LSF_INCLUDE_PATH = "" LSF_LIB_PATH = "" g2c = False M64 = True PLPLOT_INCLUDE_PATH = "/usr/include" PLPLOT_LIB_PATH = "/usr/lib"
You have to set PLPLOT_INCLUDE_PATH and PLPLOT_LIB_PATH to the directories where your intallation of plplot is installes. The SITE_CONFIG_FILE should me set to a file determining some some site wide configurations. An example is located in the catalog ert/devel/etc-example/ERT. The example is documented and is great if you have access to an LSF server. If not, a minimal setup that will get you going for running ert locally is the following:
-- Defining that we are running the ECLIPSE simulator locally QUEUE_SYSTEM LOCAL -- Max running processes MAX_RUNNING_LOCAL 4 --Not a license path, but needs to be set to some existing path. Old inheritance. LICENSE_PATH /tmp/license --Path to a job script JOB_SCRIPT /path/to/ert/devel/etc-example/Scripts/job_dispatch.py --Some Installed jobs INSTALL_JOB ECLIPSE100_2006 /path/to/ert/devel/etc-example/jobs/ECLIPSE100_2006
The license path just has to exist, it is not actually checking for licenses.
The job script and installed jobs are essential if you want ert to do something useful. See Installing jobs for a description .
Now thing should be ready to build - cross everything you have and start the build with:
bash% scons -j n
where n is the number of cores on your workstation. In addition to building from the root you can also build from the various libraries, i.e.
bash% cd libutil/src ; scons -j n
to build only the libutil library, or alternatively:
bash% cd libecl ; scons -j n
to build the libecl library and all the eclipse related applications in libecl/applications.
If there is an error when loading the shared libraries, libanalysis.so: cannot open shared object file: No such file or directory, you need to update LD_LIBRARY_PATH:
bash% export LD_LIBRARY_PATH="~/ert/devel/libanalysis/lib":$LD_LIBRARY_PATH
Alternatively, if you are a cshell user
bash% setenv LD_LIBRARY_PATH ~/ert/devel/libanalysis/lib:$LD_LIBRARY_PATH
Minimal support may be given if you contact ert 'at' nr.no.