Index: /BOL/script_install_amaury/install_lmdz.sh
===================================================================
--- /BOL/script_install_amaury/install_lmdz.sh	(revision 5335)
+++ /BOL/script_install_amaury/install_lmdz.sh	(revision 5336)
@@ -49,4 +49,19 @@
 }
 
+function do_compile_sh {
+  local component=$1
+  local command=$2
+  local log
+
+  log="$(pwd)/$component.log"
+  echo "$command" > compile.sh
+  echo "Compiling $component using $(\cat compile.sh) (log: $log) $(date)"
+    chmod +x ./compile.sh
+    if ! ./compile.sh &> "$log"; then
+        echo "STOP: $component compilation failed, exiting"; exit 1
+    fi
+    echo "Finished $component compilation $(date)"
+}
+
 function get_svn_branch {
   local url=$1
@@ -88,5 +103,5 @@
 
     icolmdz=0
-    DYNAMICO_VERS=374a3c66
+    dynamico_commit="11001689"
 
     rad="rrtm"
@@ -101,4 +116,5 @@
     make_j=8
     clean_install=1
+    local="$(pwd)"
 
     # Check if on a Mac /!\ Probably doesn't work anymore, to fix one day...
@@ -354,5 +370,5 @@
 }
 
-function download_model {
+function download_modipsl_tar {
     if [[ $clean_install = 1 ]]; then rm -rf "$MODEL"; fi
 
@@ -370,19 +386,9 @@
         tar xf "modipsl.$version.tar" &>> get.log
         rm "modipsl.$version.tar"
-
-        cd - &> /dev/null
-    ## checkout DYNAMICO and icosa interface in modipsl/modeles if needed
-       if [[ $icolmdz = 1 ]]; then
-         TMPLOCDIR=$(pwd)
-         cd "$MODEL/modipsl/modeles/"
-         getlog="$(pwd)/get.log"
-         git clone https://gitlab.in2p3.fr/ipsl/projets/dynamico/dynamico.git DYNAMICO ; cd DYNAMICO ; git checkout master; cd .. &>> get.log
-         svn checkout http://svn.lmd.jussieu.fr/LMDZ/ICOSA_LMDZ &>> get.log
-         cd "$TMPLOCDIR" &> /dev/null
-       fi
     fi
 }
 
 function init_arch {
+    cd "$local"
     set +e; arch_dir=$(readlink -f "$arch_dir"); set -e  # full path. readlink must be called *after* the path is created
 
@@ -578,13 +584,5 @@
 
         install_arch "XIOS"
-
-        echo "$jobcmd ./make_xios --job $make_j --arch $arch" > compile.sh
-        chmod +x compile.sh
-        echo "$(date) Compiling XIOS using $(\cat compile.sh) (log in $xioslog)"
-        if ! ./compile.sh &> "$xioslog"; then
-            echo "STOP: XIOS compilation failed, exiting"; exit 1
-        fi
-
-        echo "Compiled XIOS $(date)"
+        do_compile_sh "XIOS" "$jobcmd ./make_xios --job $make_j --arch $arch"
     fi
 }
@@ -633,7 +631,4 @@
         cd "$MODEL/modipsl/modeles/ORCHIDEE"
 
-        orchideelog="$(pwd)/orchidee.log"
-        echo "Compiling ORCHIDEE, the continental surface model (log $orchideelog) $(date)"
-
         local xios_orchid
         if [[ $with_xios = 1 ]]; then
@@ -646,11 +641,5 @@
            echo "STOP: Orchidee version too old for parallel support"; exit 1
         fi
-        echo "$jobcmd ./makeorchidee_fcm -j $make_j $xios_orchid $optim_flag -parallel $parallel -arch $arch" > compile.sh
-        chmod +x compile.sh
-        echo "Compiling ORCHIDEE using $(\cat compile.sh)"
-        if ! ./compile.sh &> "$orchideelog"; then
-            echo "STOP: ORCHIDEE compilation failed, exiting"; exit 1
-        fi
-        echo "Compiled ORCHIDEE $(date)"
+        do_compile_sh "ORCHIDEE" "$jobcmd ./makeorchidee_fcm -j $make_j $xios_orchid $optim_flag -parallel $parallel -arch $arch"
     fi
 }
@@ -660,6 +649,4 @@
     LMDZPATH=$(readlink -e -f "$MODEL/modipsl/modeles/LMD"*)
     cd "$LMDZPATH"
-    lmdzlog="$(pwd)/lmdz.log"
-
 
     if [[ -n $svn_lmdz ]]; then
@@ -713,13 +700,7 @@
 
     # Compile
-    makelmdz="makelmdz_fcm $optim_flag -arch $arch -j $make_j"
+    local makelmdz="makelmdz_fcm $optim_flag -arch $arch -j $make_j"
     local para_compile_opt="-mem -parallel $parallel"; if [[ $parallel = "none" ]]; then para_compile_opt=""; fi
-    echo "$jobcmd ./$makelmdz $opt_rad $opt_cosp $opt_makelmdz_xios $opt_aer $opt_inlandsis $opt_strataer $opt_isotopes -p $compphysiq -d ${grid_resolution} -v $fcm_veget_version $para_compile_opt $fortran_file" > compile.sh
-    echo "Compiling lmdz using $(\cat compile.sh) (log: $lmdzlog) $(date)"
-    chmod +x ./compile.sh
-    if ! ./compile.sh &> "$lmdzlog"; then
-        echo "STOP: LMDZ compilation failed, exiting"; exit 1
-    fi
-    echo "Finished LMDZ compilation $(date)"
+    do_compile_sh "LMDZ" "$jobcmd ./$makelmdz $opt_rad $opt_cosp $opt_makelmdz_xios $opt_aer $opt_inlandsis $opt_strataer $opt_isotopes -p $compphysiq -d ${grid_resolution} -v $fcm_veget_version $para_compile_opt $fortran_file"
 
     # Check executable
@@ -731,43 +712,47 @@
 }
 
+function get_dynamico_icosa_version {
+  if [[ $icolmdz = 1 ]]; then
+    echo "Checking DYNAMICO source version"
+    cd "$MODEL/modipsl/modeles"
+    if [[ ! -d DYNAMICO ]]; then
+      git clone https://gitlab.in2p3.fr/ipsl/projets/dynamico/dynamico.git DYNAMICO
+    fi
+    cd DYNAMICO
+    git checkout master && git checkout $dynamico_commit
+    cd - > /dev/null
+
+    echo "Checking ICOSA_LMDZ source version"
+    if [[ ! -d ICOSA_LMDZ ]]; then
+      svn checkout http://svn.lmd.jussieu.fr/LMDZ/ICOSA_LMDZ
+    fi
+    cd ICOSA_LMDZ
+    svn up -r 5320
+  fi
+}
+
 function compile_icolmdzor {
     if [[ $icolmdz = 1 ]]; then
-
-#      install_arch "DYNAMICO"
       install_arch "ICOSA_LMDZ"
-
-      cd "$LMDZPATH"
       local para_compile_opt="-parallel $parallel"; if [[ $parallel = "none" ]]; then para_compile_opt=""; fi
 
       # LMDZ physics package library already available in LMDZ/config/lib directory
+
       # Compile DYNAMICO
-      cd ../DYNAMICO
+      cd "$MODEL/modipsl/modeles/DYNAMICO"
+
+      # Need to get rather than install the archs as DYNAMICO uses FCMv2 that does not understand the makefile syntax ($shell)
       cd arch
-# Need to get rather than install the archs as DYNAMICO uses FCMv2 that does not understand the makefile syntax ($shell)
-      wget http://lmdz.lmd.jussieu.fr/pub/src_archives/misc/arch/DYNAMICO/arch-$arch.env
-      wget http://lmdz.lmd.jussieu.fr/pub/src_archives/misc/arch/DYNAMICO/arch-$arch.fcm
-      wget http://lmdz.lmd.jussieu.fr/pub/src_archives/misc/arch/DYNAMICO/arch-$arch.path
+      wget "http://lmdz.lmd.jussieu.fr/pub/src_archives/misc/arch/DYNAMICO/arch-$arch.env"
+      wget "http://lmdz.lmd.jussieu.fr/pub/src_archives/misc/arch/DYNAMICO/arch-$arch.fcm"
+      wget "http://lmdz.lmd.jussieu.fr/pub/src_archives/misc/arch/DYNAMICO/arch-$arch.path"
       cd ..
 
-      dynamicolog="$(pwd)/dynamico.log"
-      echo "Compile DYNAMICO"
-      echo "$jobcmd ./make_icosa $optim_flag -arch $arch -job $make_j $para_compile_opt -external_ioipsl -with_xios" > compile.sh
-      chmod +x ./compile.sh
-      if ! ./compile.sh &> "$dynamicolog"; then
-        echo "STOP: DYNAMICO compilation failed, exiting"; exit 1
-      fi
-      echo "Finished DYNAMICO compilation $(date)"
+      do_compile_sh "DYNAMICO" "$jobcmd ./make_icosa $optim_flag -arch $arch -job $make_j $para_compile_opt -external_ioipsl -with_xios"
 
       # Compile icosa_lmdz
-      echo "Bin PATH before icosalmdz" $PATH
-      cd ../ICOSA_LMDZ
-      icosalog="$(pwd)/icosa.log"
-      echo "Compile interface ICOSA_LMDZ"
-      echo "$jobcmd ./make_icosa_lmdz -arch $arch -j $make_j -nodeps -p lmd $optim_flag $para_compile_opt -with_orchidee" > compile.sh
-      chmod +x ./compile.sh
-      if ! ./compile.sh &> "$icosalog"; then
-        echo "STOP: ICOSA_LMDZ compilation failed, exiting"; exit 1
-      fi
-      echo "Finished ICOSA_LMDZ compilation $(date)"
+      echo "Bin PATH before icosalmdz" "$PATH"
+      cd "$MODEL/modipsl/modeles/ICOSA_LMDZ"
+      do_compile_sh "ICOSA_LMDZ" "$jobcmd ./make_icosa_lmdz -arch $arch -j $make_j -nodeps -p lmd $optim_flag $para_compile_opt -with_orchidee"
       echo "# Running environment for icosa_lmdz" > icosalmdz.env
       echo "# "                                   >> icosalmdz.env
@@ -1024,7 +1009,8 @@
       cd "$MODEL/modipsl/modeles/ICOSA_LMDZ"
       if [[ $bench = 1 ]]; then
-        namebench=bench_icolmdz_nbp10_79
+        namebench="bench_icolmdz_nbp10_79"
+        rm -rf $namebench
         myget "3DBenchs/$namebench.tar.gz"
-        mkdir $namebench
+        mkdir -p $namebench
         tar xf "$namebench.tar.gz" -C "$namebench" --strip-components=1
         cd $namebench
@@ -1058,8 +1044,9 @@
 read_cmdline_args "$@"
 ensure_correct_option_combinations
-download_model
+download_modipsl_tar
 init_arch
 check_available_software
 get_lmdz_version
+get_dynamico_icosa_version
 get_orchidee_version
 install_netcdf
@@ -1070,4 +1057,3 @@
 compile_icolmdzor
 run_bench
-if [ ! $? = 0 ]; then exit 1; fi 
 run_bench_icosa
