Installing ERANOS 2.1 on a 64-bit linux workstation

I just built ERANOS 2.1 reactor analysis suite from France on a 64-bit linux workstation with Red Hat 7. It wasn’t that bad, as the CEA has done a great job at automating the installation process. I’ll briefly discuss how things went.

First of all, don’t cd into the UTILS folder and run Install. You have to do as it says and run UTILS/Install if it doesn’t work the first time. Also as it says, it’s smart to copy all the library disks over before loading the code DVD.

Try the Install script, but you’ll probably get Segmentation faults on TRANS.x runs. These are trying to convert from ESOPE files to valid FORTRAN files, as a pre-compilation step. I went in and re-built TRANS.x with -m32 and then it worked fine. Just to be sure, I set all the Makefiles to add -m32 to the compiler flags. You can do this automatically by going to ERANOS2.1/CODE/ERANOS/MAKE/ARCH/PCLINUX/config and changing all the FLAGS= arguments to end with -m32 and then re-run the creer_makefile.sh script two directories up. I had problems where the eso2f77 script wasn’t pointing where it was supposed to (the script added my home directory to the search path for TRANS.x for some reason…), so I hand-edited the script and pointed DIR directly to the right folder. Then type make clean. Then type make. Oh, but be sure to run ulimit -s unlimited command before running Make or you’ll get more seg faults.

After that, I got eranos.x and everything compiled fine. The next step was to go back to the Install script and have it do all the library conversions. XS libraries are delivered in ASCII, since those files are platform independent. Once on your computer, the install process will convert them to platform dependent binary files and delete the ASCII files. This saves like 6 GB of space and speeds things up during runtime. Anyway, I copied the Install script and made a Install_libs version. In this, I deleted a lot of the lines before “does the executable exist?” and let it run from there. That way, it didn’t overwrite all my makefiles and try to build again. I’m not sure this step was imperative. While running this half-script, all libraries converted and then all tests ran. I checked some test outputs (the .res files, not the .out ones) and verified that the results agreed with the expected result (in comments in the input). It worked! Alright!! ERANOS time.

Don’t forget to add ulimit -s unlimited to .bashrc or else you’ll get segfaults galore. Leave a comment if you have trouble.

9 thoughts on “Installing ERANOS 2.1 on a 64-bit linux workstation”

  1. Thanks a lot Nick. I was trying to compile ERANOS 2.0 in Ubuntu 10.04 with gcc/gfortran and I took me a while to realize the segmentation fault was caused by problems while sending pointers between ooozgm and aloccc. The -m32 flag solves that in a very elegant way.

    I wrote a pdf with the instructions for future reference:
    http://depositfiles.com/files/5eropodd7

  2. Hello Nacho,

    please can you send me this pdf file? (branovrban@zoznam.sk) I would like to install eranos and it can really help me. Thank you very much.

  3. Hi Nacho

    I am also looking at installing ERANOS on Linux (UBUNTU). Could you send me the PDF file as well?

    Thanks

    (am242m@googlemail.com)

  4. Well. I managed to install ERANOS 2.0 (will assume same will apply to 2.1 and 2.2) on CentOS 2.6.9-67.ELsmp (similar to Redhat) in the end (64 bits).

    I concur with everything Nick wrote. Here is what I did:
    – place each CD in turn into computer. Execute the ./UTILS/copy_cd scripts
    – the ./UTILS/copy_cd script on CD 4 will automatically run ./UTILS/Install script, which does not work. It is important to note that one should not rely on this script to install ERANOS. I seem to remember it worked fine when installing ERANOS on a UNIX machine, but for Linux there is something wrong ..
    – next go to the folder (note from now on, the folders are relative to where you chose to copy the ERANOS source code:
    ./ERANOS2.0/CODE/ERANOS/MAKE/ARCH/PCLINUX
    – edit the config file so that the variables ‘CFLAGS’, ‘CPPFLAGS’, ‘FFLAGS’ and ‘FPPFLAGS’ are all appended with the text ‘ -m32’.
    – Go back two levels
    – run ./creer_makefile.sh
    – edit the file:
    /ERANOS2.0/CODE/ALOS/PCLINUX/MAKE/Makefile
    – add the text ‘ -m32’ to the same variables as before.
    – do the same to the following files:
    ./ERANOS2.0/CODE/ALOS/SRC/TRANSLATER/Makefile
    ./ERANOS2.0/CODE/ALOS/SRC/LU/Makefile
    ./ERANOS2.0/CODE/ALOS/SRC/GEMAT/Makefile
    – run the command ‘ulimit -s unlimited’
    – go to folder: ./ERANOS2.0/CODE/ALOS/PCLINUX/MAKE
    – make sure the installation is clean by running ‘make clean’
    – next run make properly by running ‘make’
    – this should result in no errors and a new binary called ‘TRANS.x’ in the folder ./ERANOS2.0/CODE/ALOS/PCLINUX/BIN
    – next to to folder:
    ./ERANOS2.0/CODE/ERANOS/MAKE
    – run ‘make clean’
    – run ‘make’
    – It should take approx 10 minutes to complete. IF you get seg faults or any other faults, it might be because you haven’t run the ‘ulimit’ command or you haven’t set the -m32 flag for both parts of the installation.
    – You should now have a new binary in the folder:
    ./ERANOS2.0/CODE/ERANOS/BIN/eranos.x
    – Next try and run eranos.x by simply typing in ‘eranos.x’. This should give you the standard text that is always present at the start of a run. Press CTRL-C to stop.
    – Next need to create libraries.
    – Go to the following folder:
    ./ERANOS2.0/UTILS
    – copy Install to Install_libs
    – Remove everything before the text ‘does the executable exist ?’ except for the following:
    : definition of the variables ‘LINE’, ‘BIBROOT’, ‘TESTROOT’ and ‘DIR’
    : the if/else statement that sets the variable ‘ROOT_ERANOS_def’
    : the if/else statement that sets the variable ‘MACHINE’
    : definition of the variables ‘LIBROOT’, ‘LIBALOS’, ‘BINALOS’ and ‘BIN’
    : definition of the ‘PATH’, ‘INSTALLDIR’ and ‘DIRMAKE’
    – Next copy the exectuables and the libraries to whereever you want on your system.
    – Make sure anyone who uses ERANOS runs ‘ulimit -s unlimited’ before running ERANOS.

    I WOULD STILL LIKE TO BE ABLE TO INSTALL ERANOS ON A UBUNTU MACHINE AT WORK BECAUSE IT IS SIGNIFICANTLY FASTER. I AM HAVING TROUBLE WITH THE GNUMAKE IN UBUNTU WHICH I DON’T SEEM TO HAVE WITH THE MAKE UTILITY IN CENTOS. IF ANYONE KNOWS WHY OR CAN PUT TOGETHER A SIMILAR HOW-TO LIST FOR INSTALLATION OF ERANOS ON UBUNTU, THEN I WOULD BE EXTREMELY GRATEFUL.

  5. And for posperity, here are the installation instructions for UBUNTU:

    – First of all, you need to obtain g77 since this does not come as standard. A simple sudo apt-get install g77 would suffice. Note that this is not in the most recent Canonical Repositories so Hardy Heron reps need to be added to the sources.list file – a quick google on this is required.
    – also, I noticed that one of the shared libraries (that should be in /lib) was not present. Make a soft link like so whilst in /lib:
    – sudo ln -s i386-linux-gnu/libgcc_s.so.1
    – go back to ./ERANOS2.0/CODE/ERANOS/MAKE and edit the file creer_makefile.sh
    – search for the text ‘OPTECHO=’ -e’ (should be around line 134)
    – change to OPTECHO =” (note the two single quotation marks)
    – And then do everything is stated in my previous message

  6. Hi guys,

    I’m a bit stuck here.
    I try to install ERANOS2.0 on Ubuntu 10.04 (64 bit). Everything’s fine following your advice, until

    – go to folder: ./ERANOS2.0/CODE/ALOS/PCLINUX/MAKE
    – make sure the installation is clean by running ‘make clean’
    – next run make properly by running ‘make’

    at this stage, I got the following message:

    “g77 -o ../BIN/TRANS.x -O0 -fno-automatic -g -m32 esopv5.o mmmuu1.o ../LIB/libesope.a ../LIB/liblu.a ../LIB/libgemat.a
    /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/3.4.6/../../../libm.so when searching for -lm
    /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/3.4.6/../../../libm.a when searching for -lm
    /usr/bin/ld: skipping incompatible /usr/lib/libm.so when searching for -lm
    /usr/bin/ld: skipping incompatible /usr/lib/libm.a when searching for -lm
    /usr/bin/ld: cannot find -lm
    collect2: ld returned 1 exit status
    make: *** [../BIN/TRANS.x] Error 1”

    Maybe, this is beacause I miss some libs or its a 32/64 bits issue with either gcc/ld?
    I do have libgcc_s.so.1 in /lib.

    Do you have any idea?

    thank you!

  7. It sounds as though you don’t have some 32 bit library dependencies. Try the following command:
    sudo apt-get install gcc-3.4 libc6-i386 libc6-dev-i386 ia32-libs

    And then perform a ‘make clean’ and ‘make’.

  8. Sorry for the double post but I tried to find a libesope.a file or directions and couldn’t find anything in any of the three disks.

    Thanks again.

Leave a Reply to Robbie Cancel reply

Your email address will not be published. Required fields are marked *