#!/bin/bash
##################################################################
# 0 or 1 or 2 argument :
#   - 1st = suffix of the physics used (eg: foo --> use phy1dfoo, model name = lmdz1d_foo.e)
#   - 2nd = suffix of the model name (eg : 42 --> model = lmdz1d_foo_42.e)
#      (A dot is equivalent to the absence of a suffix).
# Examples :
#   compile.x norad --> physiq = phy1dnorad, model = lmdz1d_norad.e
#   compile.x norad 42 --> physiq = phy1dnorad, model = lmdz1d_norad_42.e
#   compile.x --> physiq = phy1d, model = lmdz1d.e
#   compile.x . 42 --> physiq = phy1d, model = lmdz1d_42.e
##################################################################
#
opt_comp=""
opt_comp="-debug -rrtm true"
# opt_comp="-debug -rrtm true -full" # pour forcer a tout recompiler

llm=79

ici=`pwd`

#
while (($# > 0))
  do
  case $1 in
      "-h")
          echo "Usage : ./compile.x [-L llm] [physique [nom]]" ; exit;;
      "-L")
          llm="$2" ; shift ; shift ;;
      "-suf")
           exec="_$2" ; shift ; shift ;;
      *)
          if [ -n "$1" -a "$1" != \. ]
          then
           physiq="$1"
           physname="_$1"
          else
           physiq=""
           physname=""
          fi ; shift
  esac
done
suffix=${physname}${exec}_L$llm

##########################################################
# Recherche de l'emplacement de LMDZ
##########################################################
lmdz5=pastrouve
for mod in ../../.. ../.. .. ; do
for i in LMDZ4 LMDZ5 LMDZ ; do
   if [ -d $mod/modipsl/modeles/$i ] ; then lmdz5=`pwd`/$mod/modipsl/modeles/$i ; fi
done
done

if [ "$lmdz5" = "pastrouve" ] ; then echo Probleme : je ne trouve pas LMDZ ; exit ; fi

##########################################################
# Recherche de l'emplacement de LMDZ
# Utile pour la retrocompatibilite avec l'epoque ou 
# phy1d etait dans un repertoire separe
##########################################################
cd $lmdz5/libf
echo pwd ok
pwd
if [ -d phy1d$physiq ] ; then
   physique=1d${physiq}
elif [ -d phy$physiq ] ; then
   physique=$physiq
elif [ -d phylmd ] ; then
   physique=lmd
fi

##########################################################
echo "compilation sur: "$lmdz5
##########################################################
#
#
cd $ici ; cd $lmdz5
#

rm -f lmdz1d.e
# echo  ./makelmdz ${opt_comp} -d $llm -p ${physique} lmdz1d ; exit
./makelmdz ${opt_comp} -d $llm -p ${physique} lmdz1d

if [ ! -f lmdz1d.e ] ; then
   echo La compilation a echoue
   exit 1
else
echo ===========================================
echo "Vous avez compile avec:"
echo ./makelmdz ${opt_comp} -d $llm -p ${physique} lmdz1d
echo ===========================================
fi

mv -f lmdz1d.e lmdz1d${suffix}.e
cd $ici
ln -sf  ${lmdz5}/lmdz1d${suffix}.e lmdz1d${suffix}.e
ln -sf lmdz1d${suffix}.e lmdz1d.e
