= Install the modelling framework (NEMO and XIOS) Last edition: '''[[Wikinfo(changed_ts)]]''' by '''[[Wikinfo(changed_by)]]''' == 1. Extract the NEMO code Using your `my_login` /pw registered on this web site: {{{#!sh svn --username "mylogin" co http://forge.ipsl.jussieu.fr/nemo/svn/branches/2015/nemo_v3_6_STABLE/NEMOGCM }}} == 2. Extract and install XIOS {{{#!div class="important" (Nicolas) '''Will not be online after the switch!!!''' [http://www.nemo-ocean.eu/Using-NEMO/User-Guides/Basics/XIOS-IO-server-installation-and-use Document here] (and come back to this page afterwards to create NEMO executable!) }}} == 3. Compile and create NEMO executable The main script to compile and create executable is called `makenemo` and located in the `CONFIG` directory. To identify the source code you need, to build the makefile and run it.[[BR]] As an example, compile `GYRE`, with ifort on linux to create a `MY_GYRE` configuration: {{{#!sh cd NEMOGCM/CONFIG; ./makenemo –m ifort_linux –r GYRE -n MY_GYRE }}} === More options * `–n` [CONFIG]: for configuration name, existant or new config to install * `–m` [COMPILER]: compiler choice (use files names in `NEMOGCM/ARCH`, see examples below) * `–h`: help * `–r` [REFCONFIG]: reference configuration as first guess when installing a new one * `–j`[num]: number of processes to compile (`-j 0`:no compilation) * `–d` [DIR]: NEMO subdirectory (not needed) * `–t` [DIR]: temporary directory to store libraries * `-clean` [CONFIG_NAME] : remove the Makefile and all the files created afterwards At the first use, you need the `-m` option to specify compiler, its options and libraries, then for next compilation, it is assumed you will be using the same compiler.[[BR]] If `–n` option is not specified, `ORCA2_LIM` is the default configuration used. `-d` option has been implemented for use in non-interactive shell. The `WORK` directory is created under each configuration directory. === Tools used during the process * `functions.sh` : bash functions used by `makenemo`, for instance to create the `WORK` directory * `cfg.txt` : text list of configurations and source directories * `bld.cfg` : FCM rules to compile === Description of directories * `ARCH` : compilation option files, with format `arch_compiler.fcm`, the compiler name has to be provided with `–m` option * `GYRE`, `ORCA2_LIM` or others : there is now a `cpp.fcm` file containing the list of CPP keys, the `WORK` is specific to each configuration === Examples Compiling `GYRE`, with ifort on linux to create a `MY_GYRE` configuration {{{#!sh makenemo –m ifort_linux –r GYRE -n MY_GYRE }}} Recompile it[[BR]] {{{#!sh makenemo }}} Now, create and compile `ORCA_LIM3` {{{#!sh makenemo –n ORCA_LIM3 (and answer) }}} Now ORCA_LIM3_v2 based on the previous one {{{#!sh makenemo –n ORCA_LIM3_v2 -r ORCA_LIM3 }}} Now, create and compile ORCA2_LIM_2_2, add (`add_key`) and delete (`del_key`) keys, based on `ORCA2_LIM` (just un example) {{{#!sh makenemo –n ORCA2_LIM_2_2 -r ORCA2_LIM del_key "key_iomput" (and answer) }}} To remove a bad configuration {{{#!sh makenemo –n ORCA2_LIM_2_2 clean_config (and answer) }}}