#!/bin/bash -e
#
# --------------------------------------------------
#
# Script to define environment variables for the run 
#
# --------------------------------------------------
# Configuration architecture
# --------------------------------------------------
# $HOME/CONFIGS/MYCONFIG
#                       - wrf_in
#                       - ww3_in
#                       - croco_in
#                       - oasis_in
# $WORKDIR/CONFIGS/MYCONFIG
#                       - wrf_files
#                       - ww3_files
#                       - croco_files
#                       - oasis_files
# --------------------------------------------------
#
# Further Information:   
# http://www.croco-ocean.org
#  
# This file is part of CROCOTOOLS
#
# CROCOTOOLS is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published
# by the Free Software Foundation; either version 2 of the License,
# or (at your option) any later version.
#
# CROCOTOOLS is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA  02111-1307  USA
#
# Copyright (c) 2018 S. Jullien
# swen.jullien@ifremer.fr
# S. Jullien, 2018
# swen.jullien@ifremer.fr
# --------------------------------------------------

echo '-- In - run_env ----------------------------'

# check shell is bash (requested to source this script...)
# --------------------------
echo $BASH

# modules to use on your machine
# --------------------------
echo 'loading modules'
#module purge

## DATARMOR case 
#module load NETCDF/4.3.3.1-mpt-intel2016
#module load nco/4.6.4_gcc-6.3.0
#module load matlab/2017a

## ADA case
#module load netcdf/mpi/4.3.3.1
#module load nco/4.4.2

#module list
# place NETCDF environment variable
export NETCDF=$(nf-config --prefix)

# HOME directory of your machine
# (where you will store scripts and model sources)
# --------------------------
CPL_HOME=$HOME

# WORK/SCRATCH general directory of your machine
# (where you will run the models)
# --------------------------
CPL_WORKDIR=$WORKDIR

# Home and Work configuration directories
# --------------------------
echo 'define Home and Work configuration directories'
export hconf=$CPL_HOME/CONFIGS/BENGUELA
export wconf=$CPL_WORKDIR/CONFIGS/BENGUELA

# Model sources directory
# --------------------------
echo 'define Model sources directories'
export wrf=$CPL_HOME/wrf/WRFV3.7.1
export croco=$CPL_HOME/croco
export ww3=$CPL_HOME/ww3/model
export oasisdir=$CPL_HOME/oasis/OASIS3-MCT_3.0_branch/compile_oasis3-mct


# Input large files directories
# --------------------------
echo 'define large files inputs dir'
export OASIS_FILES_DIR=$wconf/oasis_files
export WRF_FILES_DIR=$wconf/wrf_files
export WW3_FILES_DIR=$wconf/ww3_files
export CROCO_FILES_DIR=$wconf/croco_files
echo 'define data dir'
export DATA_DIR=$CPL_WORKDIR/DATA

# Settings files directories
# --------------------------
echo 'define settings input dir'
export OASIS_IN_DIR=$hconf/oasis_in
export WRF_IN_DIR=$hconf/wrf_in
export WW3_IN_DIR=$hconf/ww3_in
export CROCO_IN_DIR=$hconf/croco_in

# Cheking run_env
# --------------------------
if [ -d "$CPL_HOME" ]; then
 echo 'define CPL_HOME dir as '$CPL_HOME
else
 echo 'ERROR CPL_HOME: '$CPL_HOME' directory does not exist'
 exit 1
fi

if [ -d "$CPL_WORKDIR" ]; then
 echo 'define CPL_WORKDIR dir as '$CPL_WORKDIR
else
 echo 'ERROR CPL_WORKDIR: '$CPL_WORKDIR' directory does not exist'
 exit 1
fi

if [ -d "$hconf" ]; then
 echo 'define hconf dir as '$hconf
else
 echo 'ERROR hconf: '$hconf' directory does not exist'
 exit 1
fi

if [ -d "$wconf" ]; then
 echo 'define wconf dir as '$wconf
else
 echo 'ERROR wconf: '$wconf' directory does not exist'
 exit 1
fi

if [ -d "$oasisdir" ]; then
 echo 'define oasisdir dir as '$oasisdir
else
 echo 'WARNING oasisdir: '$oasisdir' directory does not exist'
fi

if [ -d "$wrf" ]; then
 echo 'define wrf dir as '$wrf
else
 echo 'WARNING wrf: '$wrf' directory does not exist'
fi

if [ -d "$croco" ]; then
 echo 'define croco dir as '$croco
else
 echo 'WARNING croco: '$croco' directory does not exist'
fi

if [ -d "$ww3" ]; then
 echo 'define ww3 dir as '$ww3
else
 echo 'WARNING ww3: '$ww3' directory does not exist'
fi

if [ -d "$OASIS_FILES_DIR" ]; then
 echo 'define OASIS_FILES_DIR dir as '$OASIS_FILES_DIR
else
 echo 'WARNING OASIS_FILES_DIR: '$OASIS_FILES_DIR' directory does not exist'
fi

if [ -d "$WRF_FILES_DIR" ]; then
 echo 'define WRF_FILES_DIR dir as '$WRF_FILES_DIR
else
 echo 'WARNING WRF_FILES_DIR: '$WRF_FILES_DIR' directory does not exist'
fi

if [ -d "$CROCO_FILES_DIR" ]; then
 echo 'define CROCO_FILES_DIR dir as '$CROCO_FILES_DIR
else
 echo 'WARNING CROCO_FILES_DIR: '$CROCO_FILES_DIR' directory does not exist'
fi

if [ -d "$WW3_FILES_DIR" ]; then
 echo 'define WW3_FILES_DIR dir as '$WW3_FILES_DIR
else
 echo 'WARNING WW3_FILES_DIR: '$WW3_FILES_DIR' directory does not exist'
fi

if [ -d "$OASIS_IN_DIR" ]; then
 echo 'define OASIS_IN_DIR dir as '$OASIS_IN_DIR
else
 echo 'WARNING OASIS_IN_DIR: '$OASIS_IN_DIR' directory does not exist'
fi

if [ -d "$WRF_IN_DIR" ]; then
 echo 'define WRF_IN_DIR dir as '$WRF_IN_DIR
else
 echo 'WARNING WRF_IN_DIR: '$WRF_IN_DIR' directory does not exist'
fi

if [ -d "$CROCO_IN_DIR" ]; then
 echo 'define CROCO_IN_DIR dir as '$CROCO_IN_DIR
else
 echo 'WARNING CROCO_IN_DIR: '$CROCO_IN_DIR' directory does not exist'
fi

if [ -d "$WW3_IN_DIR" ]; then
 echo 'define WW3_IN_DIR dir as '$WW3_IN_DIR
else
 echo 'WARNING WW3_IN_DIR: '$WW3_IN_DIR' directory does not exist'
fi

echo '-- End - run_env ---------------------------'

