# ReBuild EC-EARTH on LUCIA

EC-Earth is a global coupled climate model. It is developed by a consortium of European research institutions.
The goal of this project is to adapt this model for our needs in ELIC: install, run management, etc.

## User requirements

First, load the required env modules

```bash
module purge
module load EasyBuild/2023a
MODULEPATH=$MODULEPATH:/gpfs/projects/acad/ecearth/softs/easybuild/2023a/modules/all
module load netCDF-Fortran/4.6.1-iompi-2023a
module load CDO/2.2.2-iompi-2023a
module load NCO/5.1.3-iomkl-2023a
module load ecCodes/2.31.0-iompi-2023a
module load Perl-bundle-CPAN/5.36.1-GCCcore-12.3.0
```

Then, go to your EC-Earth repository (3.3.3.2)

```bash
cd ~/models/ecearth_3.3.3.2
```

## ReCompile

* Clean and recompile **oasis**:

```bash
cd ~/models/ecearth_3.3.3.2/sources/oasis3-mct/util/make_dir
make BUILD_ARCH=ecconf -f TopMakefileOasis3 clean
make BUILD_ARCH=ecconf -f TopMakefileOasis3 realclean
make BUILD_ARCH=ecconf -f TopMakefileOasis3
```

* Clean and recompile **IFS**:

> !!! change to do in `Makefile.d/Makefile.config.ecconf +57`

> replace:

> CFLAGS                  := -fp-model precise -march=core-avx2

> with:

> CFLAGS                  := -std=gnu90 -fp-model precise -march=core-avx2

```bash
cd ~/models/ecearth_3.3.3.2/sources/ifs-36r4
make BUILD_ARCH=ecconf clean
make BUILD_ARCH=ecconf realclean
./makeifs -j 4
```

* Recompile **xios** from scratch:

> !!! change to do in `extern/blitz/blitz/funcs.h +575`

> replace:

> `return BZ_STD_SCOPE(isnan)(a);`

> with:

> `return isnan(a);`

```bash
cd ~/models/ecearth_3.3.3.2/sources/xios-2.5
./make_xios --full --prod --arch ecconf --use_oasis oasis3_mct --netcdf_lib netcdf4_par -j 4
```

* Clean and recompile **NEMO**:

```bash
cd ~/models/ecearth_3.3.3.2/sources/nemo-3.6/CONFIG
rm -rf ~/models/ecearth_3.3.3.2/sources/nemo-3.6/CONFIG/ORCA1L75_LIM3/BLD/
./makenemo -n ORCA1L75_LIM3 -m ecconf -j4
```

* Clean and recompile **runoff-mapper**:

```bash
cd ~/models/ecearth_3.3.3.2/sources/runoff-mapper/src
make clean
rm -f ~/models/ecearth_3.3.3.2/sources/runoff-mapper/bin/runoff-mapper.exe
make
```

## Run

Check the job script `EC00.sh` and compare the changes with your script:

[New EC00.sh](https://gogs.elic.ucl.ac.be/pbarriat/ecearth3/src/master/runtime/classic/EC00.sh)

```bash
cd
wget https://gogs.elic.ucl.ac.be/pbarriat/ecearth3/raw/master/runtime/classic/EC00.sh
cd ~/models/ecearth_3.3.3.2/runtime/classic
vimdiff my_script.sh ~/EC00.sh
```

### Data

I prepared all the input files in `/gpfs/scratch/acad/ecearth/data/bsc32/` directory.

## Contributors

- ELIC members [@pbarriat](https://gogs.elic.ucl.ac.be/pbarriat)
