Index: /trunk/libIGCM/libIGCM_sys/libIGCM_sys_cesium.ksh
===================================================================
--- /trunk/libIGCM/libIGCM_sys/libIGCM_sys_cesium.ksh	(revision 713)
+++ /trunk/libIGCM/libIGCM_sys/libIGCM_sys_cesium.ksh	(revision 714)
@@ -1630,8 +1630,30 @@
     echo "IGCM_sys_ncap2 :" $@
   fi
-  ncap2 "$@"
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncap2 : erreur ${@}."
-    IGCM_debug_Exit "ncap2"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncap2 "$@" > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncap2 : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncap2 : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncap2 : ncap2 error"
+      IGCM_debug_Exit "ncap2"
   fi
 
@@ -1644,8 +1666,30 @@
     echo "IGCM_sys_ncatted :" $@
   fi
-  ncatted "$@"
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncatted : erreur ${@}."
-    IGCM_debug_Exit "ncatted"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncatted "$@" > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncatted : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncatted : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncatted : ncatted error"
+      IGCM_debug_Exit "ncatted"
   fi
 
@@ -1658,8 +1702,30 @@
     echo "IGCM_sys_ncbo :" $@
   fi
-  ncbo $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncbo : erreur ${@}."
-    IGCM_debug_Exit "ncbo"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncbo $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncbo : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncbo : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncbo : ncbo error"
+      IGCM_debug_Exit "ncbo"
   fi
 
@@ -1672,8 +1738,30 @@
     echo "IGCM_sys_ncdiff :" $@
   fi
-  ncdiff $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncdiff : erreur ${@}."
-    IGCM_debug_Exit "ncdiff"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncdiff $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncdiff : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncdiff : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncdiff : ncdiff error"
+      IGCM_debug_Exit "ncdiff"
   fi
 
@@ -1686,8 +1774,30 @@
     echo "IGCM_sys_ncea :" $@
   fi
-  ncea $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncea : erreur ${@}."
-    IGCM_debug_Exit "ncea"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncea $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncea : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncea : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncea : ncea error"
+      IGCM_debug_Exit "ncea"
   fi
 
@@ -1700,8 +1810,30 @@
     echo "IGCM_sys_ncecat :" $@
   fi
-  ncecat $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncecat : erreur ${@}."
-    IGCM_debug_Exit "ncecat"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncecat $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncecat : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncecat : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncecat : ncecat error"
+      IGCM_debug_Exit "ncecat"
   fi
 
@@ -1714,8 +1846,30 @@
     echo "IGCM_sys_ncflint :" $@
   fi
-  ncflint $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncflint : erreur ${@}."
-    IGCM_debug_Exit "ncflint"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncflint $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncflint : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncflint : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncflint : ncflint error"
+      IGCM_debug_Exit "ncflint"
   fi
 
@@ -1728,8 +1882,30 @@
     echo "IGCM_sys_ncks :" $@
   fi
-  ncks $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncks : erreur ${@}."
-    IGCM_debug_Exit "ncks"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncks $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncks : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncks : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncks : ncks error"
+      IGCM_debug_Exit "ncks"
   fi
 
@@ -1742,8 +1918,30 @@
     echo "IGCM_sys_ncpdq :" $@
   fi
-  ncpdq $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncpdq : erreur ${@}."
-    IGCM_debug_Exit "ncpdq"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncpdq $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncpdq : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncpdq : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncpdq : ncpdq error"
+      IGCM_debug_Exit "ncpdq"
   fi
 
@@ -1756,8 +1954,30 @@
     echo "IGCM_sys_ncra :" $@
   fi
-  ncra $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncra : erreur ${@}."
-    IGCM_debug_Exit "ncra"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncra $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncra : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncra : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncra : ncra error"
+      IGCM_debug_Exit "ncra"
   fi
 
@@ -1770,8 +1990,30 @@
     echo "IGCM_sys_ncrcat :" $@
   fi
-  ncrcat $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncrcat : erreur ${@}."
-#       IGCM_debug_Exit "ncrcat"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncrcat $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncrcat : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncrcat : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncrcat : ncrcat error"
+      #IGCM_debug_Exit "ncrcat"
   fi
 
@@ -1784,8 +2026,30 @@
     echo "IGCM_sys_ncrename :" $@
   fi
-  ncrename $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncrename : erreur ${@}."
-    IGCM_debug_Exit "ncrename"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncrename $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncrename : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncrename : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncrename : ncrename error"
+      IGCM_debug_Exit "ncrename"
   fi
 
@@ -1798,8 +2062,30 @@
     echo "IGCM_sys_ncwa :" $@
   fi
-  ncwa $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncwa : erreur ${@}."
-    IGCM_debug_Exit "ncwa"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncwa $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncwa : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncwa : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncwa : ncwa error"
+      IGCM_debug_Exit "ncwa"
   fi
 
@@ -1815,7 +2101,13 @@
     echo "IGCM_sys_cdo :" $@
   fi
-  \cdo $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_cdo : erreur ${@}."
+
+  typeset status
+
+  \cdo $@ > out_rsync 2>&1
+  status=$?
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_cdo : error code ${status}"
+    cat out_rsync
+    \rm out_rsync
     IGCM_debug_PopStack "IGCM_sys_cdo"
     return 1
Index: /trunk/libIGCM/libIGCM_sys/libIGCM_sys_curie.ksh
===================================================================
--- /trunk/libIGCM/libIGCM_sys/libIGCM_sys_curie.ksh	(revision 713)
+++ /trunk/libIGCM/libIGCM_sys/libIGCM_sys_curie.ksh	(revision 714)
@@ -1996,4 +1996,14 @@
 }
 
+############################################################
+# Check of space available on temporary filesytems
+function IGCM_sys_check_quota {
+    IGCM_debug_PushStack "IGCM_sys_check_quota"
+    if ( $DEBUG_sys ) ; then
+        echo "IGCM_sys_check_quota"
+    fi
+    IGCM_debug_PopStack "IGCM_sys_check_quota"
+}
+
 ##############################################################
 # NCO OPERATOR
@@ -2493,12 +2503,2 @@
   IGCM_debug_PopStack "IGCM_sys_cdo"
 }
-
-############################################################
-# Check of space available on temporary filesytems
-function IGCM_sys_check_quota {
-    IGCM_debug_PushStack "IGCM_sys_check_quota"
-    if ( $DEBUG_sys ) ; then
-        echo "IGCM_sys_check_quota"
-    fi
-    IGCM_debug_PopStack "IGCM_sys_check_quota"
-}
Index: /trunk/libIGCM/libIGCM_sys/libIGCM_sys_default.ksh
===================================================================
--- /trunk/libIGCM/libIGCM_sys/libIGCM_sys_default.ksh	(revision 713)
+++ /trunk/libIGCM/libIGCM_sys/libIGCM_sys_default.ksh	(revision 714)
@@ -1700,4 +1700,5 @@
 # NCO OPERATOR
 
+
 function IGCM_sys_ncap2 {
   IGCM_debug_PushStack "IGCM_sys_ncap2" -- $@
@@ -1705,8 +1706,30 @@
     echo "IGCM_sys_ncap2 :" $@
   fi
-  /usr/local/bin/ncap2 "$@"
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncap2 : erreur ${@}."
-    IGCM_debug_Exit "ncap2"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncap2 "$@" > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncap2 : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncap2 : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncap2 : ncap2 error"
+      IGCM_debug_Exit "ncap2"
   fi
 
@@ -1719,8 +1742,30 @@
     echo "IGCM_sys_ncatted :" $@
   fi
-  /usr/local/bin/ncatted "$@"
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncatted : erreur ${@}."
-    IGCM_debug_Exit "ncatted"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncatted "$@" > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncatted : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncatted : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncatted : ncatted error"
+      IGCM_debug_Exit "ncatted"
   fi
 
@@ -1733,8 +1778,30 @@
     echo "IGCM_sys_ncbo :" $@
   fi
-  /usr/local/bin/ncbo $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncbo : erreur ${@}."
-    IGCM_debug_Exit "ncbo"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncbo $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncbo : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncbo : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncbo : ncbo error"
+      IGCM_debug_Exit "ncbo"
   fi
 
@@ -1747,8 +1814,30 @@
     echo "IGCM_sys_ncdiff :" $@
   fi
-  /usr/local/bin/ncdiff $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncdiff : erreur ${@}."
-    IGCM_debug_Exit "ncdiff"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncdiff $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncdiff : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncdiff : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncdiff : ncdiff error"
+      IGCM_debug_Exit "ncdiff"
   fi
 
@@ -1761,8 +1850,30 @@
     echo "IGCM_sys_ncea :" $@
   fi
-  /usr/local/bin/ncea $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncea : erreur ${@}."
-    IGCM_debug_Exit "ncea"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncea $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncea : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncea : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncea : ncea error"
+      IGCM_debug_Exit "ncea"
   fi
 
@@ -1775,8 +1886,30 @@
     echo "IGCM_sys_ncecat :" $@
   fi
-  /usr/local/bin/ncecat $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncecat : erreur ${@}."
-    IGCM_debug_Exit "ncecat"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncecat $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncecat : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncecat : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncecat : ncecat error"
+      IGCM_debug_Exit "ncecat"
   fi
 
@@ -1789,8 +1922,30 @@
     echo "IGCM_sys_ncflint :" $@
   fi
-  /usr/local/bin/ncflint $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncflint : erreur ${@}."
-    IGCM_debug_Exit "ncflint"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncflint $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncflint : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncflint : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncflint : ncflint error"
+      IGCM_debug_Exit "ncflint"
   fi
 
@@ -1803,8 +1958,30 @@
     echo "IGCM_sys_ncks :" $@
   fi
-  /usr/local/bin/ncks $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncks : erreur ${@}."
-    IGCM_debug_Exit "ncks"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncks $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncks : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncks : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncks : ncks error"
+      IGCM_debug_Exit "ncks"
   fi
 
@@ -1817,8 +1994,30 @@
     echo "IGCM_sys_ncpdq :" $@
   fi
-  /usr/local/bin/ncpdq $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncpdq : erreur ${@}."
-    IGCM_debug_Exit "ncpdq"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncpdq $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncpdq : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncpdq : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncpdq : ncpdq error"
+      IGCM_debug_Exit "ncpdq"
   fi
 
@@ -1831,8 +2030,30 @@
     echo "IGCM_sys_ncra :" $@
   fi
-  /usr/local/bin/ncra $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncra : erreur ${@}."
-    IGCM_debug_Exit "ncra"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncra $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncra : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncra : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncra : ncra error"
+      IGCM_debug_Exit "ncra"
   fi
 
@@ -1845,8 +2066,30 @@
     echo "IGCM_sys_ncrcat :" $@
   fi
-  /usr/local/bin/ncrcat $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncrcat : erreur ${@}."
-#       IGCM_debug_Exit "ncrcat"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncrcat $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncrcat : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncrcat : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncrcat : ncrcat error"
+      #IGCM_debug_Exit "ncrcat"
   fi
 
@@ -1859,8 +2102,30 @@
     echo "IGCM_sys_ncrename :" $@
   fi
-  /usr/local/bin/ncrename $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncrename : erreur ${@}."
-    IGCM_debug_Exit "ncrename"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncrename $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncrename : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncrename : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncrename : ncrename error"
+      IGCM_debug_Exit "ncrename"
   fi
 
@@ -1873,8 +2138,30 @@
     echo "IGCM_sys_ncwa :" $@
   fi
-  /usr/local/bin/ncwa $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncwa : erreur ${@}."
-    IGCM_debug_Exit "ncwa"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncwa $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncwa : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncwa : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncwa : ncwa error"
+      IGCM_debug_Exit "ncwa"
   fi
 
@@ -1887,8 +2174,16 @@
 function IGCM_sys_cdo {
   IGCM_debug_PushStack "IGCM_sys_cdo" -- $@
-
-  \cdo $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_cdo : erreur ${@}."
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_cdo :" $@
+  fi
+
+  typeset status
+
+  \cdo $@ > out_rsync 2>&1
+  status=$?
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_cdo : error code ${status}"
+    cat out_rsync
+    \rm out_rsync
     IGCM_debug_PopStack "IGCM_sys_cdo"
     return 1
Index: /trunk/libIGCM/libIGCM_sys/libIGCM_sys_mercure.ksh
===================================================================
--- /trunk/libIGCM/libIGCM_sys/libIGCM_sys_mercure.ksh	(revision 713)
+++ /trunk/libIGCM/libIGCM_sys/libIGCM_sys_mercure.ksh	(revision 714)
@@ -1632,8 +1632,30 @@
     echo "IGCM_sys_ncap2 :" $@
   fi
-  ncap2 "$@"
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncap2 : erreur ${@}."
-    IGCM_debug_Exit "ncap2"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncap2 "$@" > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncap2 : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncap2 : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncap2 : ncap2 error"
+      IGCM_debug_Exit "ncap2"
   fi
 
@@ -1646,8 +1668,30 @@
     echo "IGCM_sys_ncatted :" $@
   fi
-  ncatted "$@"
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncatted : erreur ${@}."
-    IGCM_debug_Exit "ncatted"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncatted "$@" > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncatted : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncatted : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncatted : ncatted error"
+      IGCM_debug_Exit "ncatted"
   fi
 
@@ -1660,8 +1704,30 @@
     echo "IGCM_sys_ncbo :" $@
   fi
-  ncbo $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncbo : erreur ${@}."
-    IGCM_debug_Exit "ncbo"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncbo $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncbo : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncbo : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncbo : ncbo error"
+      IGCM_debug_Exit "ncbo"
   fi
 
@@ -1674,8 +1740,30 @@
     echo "IGCM_sys_ncdiff :" $@
   fi
-  ncdiff $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncdiff : erreur ${@}."
-    IGCM_debug_Exit "ncdiff"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncdiff $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncdiff : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncdiff : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncdiff : ncdiff error"
+      IGCM_debug_Exit "ncdiff"
   fi
 
@@ -1688,8 +1776,30 @@
     echo "IGCM_sys_ncea :" $@
   fi
-  ncea $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncea : erreur ${@}."
-    IGCM_debug_Exit "ncea"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncea $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncea : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncea : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncea : ncea error"
+      IGCM_debug_Exit "ncea"
   fi
 
@@ -1702,8 +1812,30 @@
     echo "IGCM_sys_ncecat :" $@
   fi
-  ncecat $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncecat : erreur ${@}."
-    IGCM_debug_Exit "ncecat"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncecat $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncecat : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncecat : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncecat : ncecat error"
+      IGCM_debug_Exit "ncecat"
   fi
 
@@ -1716,8 +1848,30 @@
     echo "IGCM_sys_ncflint :" $@
   fi
-  ncflint $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncflint : erreur ${@}."
-    IGCM_debug_Exit "ncflint"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncflint $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncflint : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncflint : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncflint : ncflint error"
+      IGCM_debug_Exit "ncflint"
   fi
 
@@ -1730,8 +1884,30 @@
     echo "IGCM_sys_ncks :" $@
   fi
-  ncks $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncks : erreur ${@}."
-    IGCM_debug_Exit "ncks"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncks $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncks : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncks : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncks : ncks error"
+      IGCM_debug_Exit "ncks"
   fi
 
@@ -1744,8 +1920,30 @@
     echo "IGCM_sys_ncpdq :" $@
   fi
-  ncpdq $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncpdq : erreur ${@}."
-    IGCM_debug_Exit "ncpdq"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncpdq $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncpdq : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncpdq : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncpdq : ncpdq error"
+      IGCM_debug_Exit "ncpdq"
   fi
 
@@ -1758,8 +1956,30 @@
     echo "IGCM_sys_ncra :" $@
   fi
-  ncra $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncra : erreur ${@}."
-    IGCM_debug_Exit "ncra"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncra $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncra : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncra : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncra : ncra error"
+      IGCM_debug_Exit "ncra"
   fi
 
@@ -1772,8 +1992,30 @@
     echo "IGCM_sys_ncrcat :" $@
   fi
-  ncrcat $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncrcat : erreur ${@}."
-#       IGCM_debug_Exit "ncrcat"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncrcat $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncrcat : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncrcat : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncrcat : ncrcat error"
+      #IGCM_debug_Exit "ncrcat"
   fi
 
@@ -1786,8 +2028,30 @@
     echo "IGCM_sys_ncrename :" $@
   fi
-  ncrename $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncrename : erreur ${@}."
-    IGCM_debug_Exit "ncrename"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncrename $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncrename : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncrename : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncrename : ncrename error"
+      IGCM_debug_Exit "ncrename"
   fi
 
@@ -1800,8 +2064,30 @@
     echo "IGCM_sys_ncwa :" $@
   fi
-  ncwa $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncwa : erreur ${@}."
-    IGCM_debug_Exit "ncwa"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncwa $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncwa : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncwa : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncwa : ncwa error"
+      IGCM_debug_Exit "ncwa"
   fi
 
@@ -1817,7 +2103,13 @@
     echo "IGCM_sys_cdo :" $@
   fi
-  \cdo $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_cdo : erreur ${@}."
+
+  typeset status
+
+  \cdo $@ > out_rsync 2>&1
+  status=$?
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_cdo : error code ${status}"
+    cat out_rsync
+    \rm out_rsync
     IGCM_debug_PopStack "IGCM_sys_cdo"
     return 1
Index: /trunk/libIGCM/libIGCM_sys/libIGCM_sys_obelix.ksh
===================================================================
--- /trunk/libIGCM/libIGCM_sys/libIGCM_sys_obelix.ksh	(revision 713)
+++ /trunk/libIGCM/libIGCM_sys/libIGCM_sys_obelix.ksh	(revision 714)
@@ -1721,4 +1721,5 @@
 # NCO OPERATOR
 
+
 function IGCM_sys_ncap2 {
   IGCM_debug_PushStack "IGCM_sys_ncap2" -- $@
@@ -1726,8 +1727,30 @@
     echo "IGCM_sys_ncap2 :" $@
   fi
-  /usr/local/bin/ncap2 "$@"
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncap2 : erreur ${@}."
-    IGCM_debug_Exit "ncap2"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncap2 "$@" > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncap2 : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncap2 : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncap2 : ncap2 error"
+      IGCM_debug_Exit "ncap2"
   fi
 
@@ -1740,8 +1763,30 @@
     echo "IGCM_sys_ncatted :" $@
   fi
-  /usr/local/bin/ncatted "$@"
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncatted : erreur ${@}."
-    IGCM_debug_Exit "ncatted"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncatted "$@" > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncatted : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncatted : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncatted : ncatted error"
+      IGCM_debug_Exit "ncatted"
   fi
 
@@ -1754,8 +1799,30 @@
     echo "IGCM_sys_ncbo :" $@
   fi
-  /usr/local/bin/ncbo $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncbo : erreur ${@}."
-    IGCM_debug_Exit "ncbo"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncbo $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncbo : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncbo : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncbo : ncbo error"
+      IGCM_debug_Exit "ncbo"
   fi
 
@@ -1768,8 +1835,30 @@
     echo "IGCM_sys_ncdiff :" $@
   fi
-  /usr/local/bin/ncdiff $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncdiff : erreur ${@}."
-    IGCM_debug_Exit "ncdiff"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncdiff $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncdiff : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncdiff : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncdiff : ncdiff error"
+      IGCM_debug_Exit "ncdiff"
   fi
 
@@ -1782,8 +1871,30 @@
     echo "IGCM_sys_ncea :" $@
   fi
-  /usr/local/bin/ncea $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncea : erreur ${@}."
-    IGCM_debug_Exit "ncea"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncea $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncea : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncea : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncea : ncea error"
+      IGCM_debug_Exit "ncea"
   fi
 
@@ -1796,8 +1907,30 @@
     echo "IGCM_sys_ncecat :" $@
   fi
-  /usr/local/bin/ncecat $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncecat : erreur ${@}."
-    IGCM_debug_Exit "ncecat"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncecat $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncecat : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncecat : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncecat : ncecat error"
+      IGCM_debug_Exit "ncecat"
   fi
 
@@ -1810,8 +1943,30 @@
     echo "IGCM_sys_ncflint :" $@
   fi
-  /usr/local/bin/ncflint $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncflint : erreur ${@}."
-    IGCM_debug_Exit "ncflint"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncflint $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncflint : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncflint : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncflint : ncflint error"
+      IGCM_debug_Exit "ncflint"
   fi
 
@@ -1824,8 +1979,30 @@
     echo "IGCM_sys_ncks :" $@
   fi
-  /usr/local/bin/ncks $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncks : erreur ${@}."
-    IGCM_debug_Exit "ncks"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncks $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncks : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncks : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncks : ncks error"
+      IGCM_debug_Exit "ncks"
   fi
 
@@ -1838,8 +2015,30 @@
     echo "IGCM_sys_ncpdq :" $@
   fi
-  /usr/local/bin/ncpdq $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncpdq : erreur ${@}."
-    IGCM_debug_Exit "ncpdq"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncpdq $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncpdq : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncpdq : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncpdq : ncpdq error"
+      IGCM_debug_Exit "ncpdq"
   fi
 
@@ -1852,8 +2051,30 @@
     echo "IGCM_sys_ncra :" $@
   fi
-  /usr/local/bin/ncra $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncra : erreur ${@}."
-    IGCM_debug_Exit "ncra"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncra $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncra : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncra : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncra : ncra error"
+      IGCM_debug_Exit "ncra"
   fi
 
@@ -1866,8 +2087,30 @@
     echo "IGCM_sys_ncrcat :" $@
   fi
-  /usr/local/bin/ncrcat $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncrcat : erreur ${@}."
-#       IGCM_debug_Exit "ncrcat"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncrcat $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncrcat : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncrcat : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncrcat : ncrcat error"
+      #IGCM_debug_Exit "ncrcat"
   fi
 
@@ -1880,8 +2123,30 @@
     echo "IGCM_sys_ncrename :" $@
   fi
-  /usr/local/bin/ncrename $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncrename : erreur ${@}."
-    IGCM_debug_Exit "ncrename"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncrename $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncrename : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncrename : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncrename : ncrename error"
+      IGCM_debug_Exit "ncrename"
   fi
 
@@ -1894,8 +2159,30 @@
     echo "IGCM_sys_ncwa :" $@
   fi
-  /usr/local/bin/ncwa $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncwa : erreur ${@}."
-    IGCM_debug_Exit "ncwa"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncwa $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncwa : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncwa : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncwa : ncwa error"
+      IGCM_debug_Exit "ncwa"
   fi
 
@@ -1908,8 +2195,16 @@
 function IGCM_sys_cdo {
   IGCM_debug_PushStack "IGCM_sys_cdo" -- $@
-
-  \cdo $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_cdo : erreur ${@}."
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_cdo :" $@
+  fi
+
+  typeset status
+
+  \cdo $@ > out_rsync 2>&1
+  status=$?
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_cdo : error code ${status}"
+    cat out_rsync
+    \rm out_rsync
     IGCM_debug_PopStack "IGCM_sys_cdo"
     return 1
Index: /trunk/libIGCM/libIGCM_sys/libIGCM_sys_titane.ksh
===================================================================
--- /trunk/libIGCM/libIGCM_sys/libIGCM_sys_titane.ksh	(revision 713)
+++ /trunk/libIGCM/libIGCM_sys/libIGCM_sys_titane.ksh	(revision 714)
@@ -2270,8 +2270,30 @@
     echo "IGCM_sys_ncap2 :" $@
   fi
-  ncap2 "$@"
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncap2 : erreur ${@}."
-    IGCM_debug_Exit "ncap2"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncap2 "$@" > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncap2 : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncap2 : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncap2 : ncap2 error"
+      IGCM_debug_Exit "ncap2"
   fi
 
@@ -2284,8 +2306,30 @@
     echo "IGCM_sys_ncatted :" $@
   fi
-  ncatted "$@"
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncatted : erreur ${@}."
-    IGCM_debug_Exit "ncatted"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncatted "$@" > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncatted : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncatted : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncatted : ncatted error"
+      IGCM_debug_Exit "ncatted"
   fi
 
@@ -2298,8 +2342,30 @@
     echo "IGCM_sys_ncbo :" $@
   fi
-  ncbo $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncbo : erreur ${@}."
-    IGCM_debug_Exit "ncbo"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncbo $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncbo : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncbo : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncbo : ncbo error"
+      IGCM_debug_Exit "ncbo"
   fi
 
@@ -2312,8 +2378,30 @@
     echo "IGCM_sys_ncdiff :" $@
   fi
-  ncdiff $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncdiff : erreur ${@}."
-    IGCM_debug_Exit "ncdiff"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncdiff $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncdiff : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncdiff : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncdiff : ncdiff error"
+      IGCM_debug_Exit "ncdiff"
   fi
 
@@ -2326,8 +2414,30 @@
     echo "IGCM_sys_ncea :" $@
   fi
-  ncea $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncea : erreur ${@}."
-    IGCM_debug_Exit "ncea"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncea $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncea : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncea : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncea : ncea error"
+      IGCM_debug_Exit "ncea"
   fi
 
@@ -2340,8 +2450,30 @@
     echo "IGCM_sys_ncecat :" $@
   fi
-  ncecat $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncecat : erreur ${@}."
-    IGCM_debug_Exit "ncecat"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncecat $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncecat : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncecat : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncecat : ncecat error"
+      IGCM_debug_Exit "ncecat"
   fi
 
@@ -2354,8 +2486,30 @@
     echo "IGCM_sys_ncflint :" $@
   fi
-  ncflint $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncflint : erreur ${@}."
-    IGCM_debug_Exit "ncflint"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncflint $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncflint : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncflint : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncflint : ncflint error"
+      IGCM_debug_Exit "ncflint"
   fi
 
@@ -2368,8 +2522,30 @@
     echo "IGCM_sys_ncks :" $@
   fi
-  ncks $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncks : erreur ${@}."
-    IGCM_debug_Exit "ncks"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncks $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncks : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncks : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncks : ncks error"
+      IGCM_debug_Exit "ncks"
   fi
 
@@ -2382,8 +2558,30 @@
     echo "IGCM_sys_ncpdq :" $@
   fi
-  ncpdq $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncpdq : erreur ${@}."
-    IGCM_debug_Exit "ncpdq"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncpdq $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncpdq : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncpdq : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncpdq : ncpdq error"
+      IGCM_debug_Exit "ncpdq"
   fi
 
@@ -2396,8 +2594,30 @@
     echo "IGCM_sys_ncra :" $@
   fi
-  ncra $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncra : erreur ${@}."
-    IGCM_debug_Exit "ncra"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncra $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncra : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncra : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncra : ncra error"
+      IGCM_debug_Exit "ncra"
   fi
 
@@ -2410,8 +2630,30 @@
     echo "IGCM_sys_ncrcat :" $@
   fi
-  ncrcat --omp_num_threads 2 $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncrcat : erreur ${@}."
-#       IGCM_debug_Exit "ncrcat"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncrcat $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncrcat : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncrcat : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncrcat : ncrcat error"
+      #IGCM_debug_Exit "ncrcat"
   fi
 
@@ -2424,8 +2666,30 @@
     echo "IGCM_sys_ncrename :" $@
   fi
-  ncrename $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncrename : erreur ${@}."
-    IGCM_debug_Exit "ncrename"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncrename $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncrename : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncrename : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncrename : ncrename error"
+      IGCM_debug_Exit "ncrename"
   fi
 
@@ -2438,8 +2702,30 @@
     echo "IGCM_sys_ncwa :" $@
   fi
-  ncwa $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncwa : erreur ${@}."
-    IGCM_debug_Exit "ncwa"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncwa $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncwa : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncwa : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncwa : ncwa error"
+      IGCM_debug_Exit "ncwa"
   fi
 
@@ -2455,7 +2741,13 @@
     echo "IGCM_sys_cdo :" $@
   fi
-  \cdo $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_cdo : erreur ${@}."
+
+  typeset status
+
+  \cdo $@ > out_rsync 2>&1
+  status=$?
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_cdo : error code ${status}"
+    cat out_rsync
+    \rm out_rsync
     IGCM_debug_PopStack "IGCM_sys_cdo"
     return 1
Index: /trunk/libIGCM/libIGCM_sys/libIGCM_sys_ulam.ksh
===================================================================
--- /trunk/libIGCM/libIGCM_sys/libIGCM_sys_ulam.ksh	(revision 713)
+++ /trunk/libIGCM/libIGCM_sys/libIGCM_sys_ulam.ksh	(revision 714)
@@ -1141,8 +1141,30 @@
     echo "IGCM_sys_ncap2 :" $@
   fi
-  ncap2 "$@"
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncap2 : erreur ${@}."
-    IGCM_debug_Exit "ncap2"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncap2 "$@" > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncap2 : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncap2 : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncap2 : ncap2 error"
+      IGCM_debug_Exit "ncap2"
   fi
 
@@ -1155,8 +1177,30 @@
     echo "IGCM_sys_ncatted :" $@
   fi
-  ncatted "$@"
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncatted : erreur ${@}."
-    IGCM_debug_Exit "ncatted"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncatted "$@" > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncatted : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncatted : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncatted : ncatted error"
+      IGCM_debug_Exit "ncatted"
   fi
 
@@ -1169,8 +1213,30 @@
     echo "IGCM_sys_ncbo :" $@
   fi
-  ncbo $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncbo : erreur ${@}."
-    IGCM_debug_Exit "ncbo"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncbo $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncbo : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncbo : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncbo : ncbo error"
+      IGCM_debug_Exit "ncbo"
   fi
 
@@ -1183,8 +1249,30 @@
     echo "IGCM_sys_ncdiff :" $@
   fi
-  ncdiff $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncdiff : erreur ${@}."
-    IGCM_debug_Exit "ncdiff"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncdiff $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncdiff : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncdiff : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncdiff : ncdiff error"
+      IGCM_debug_Exit "ncdiff"
   fi
 
@@ -1197,8 +1285,30 @@
     echo "IGCM_sys_ncea :" $@
   fi
-  ncea $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncea : erreur ${@}."
-    IGCM_debug_Exit "ncea"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncea $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncea : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncea : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncea : ncea error"
+      IGCM_debug_Exit "ncea"
   fi
 
@@ -1211,8 +1321,30 @@
     echo "IGCM_sys_ncecat :" $@
   fi
-  ncecat $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncecat : erreur ${@}."
-    IGCM_debug_Exit "ncecat"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncecat $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncecat : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncecat : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncecat : ncecat error"
+      IGCM_debug_Exit "ncecat"
   fi
 
@@ -1225,8 +1357,30 @@
     echo "IGCM_sys_ncflint :" $@
   fi
-  ncflint $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncflint : erreur ${@}."
-    IGCM_debug_Exit "ncflint"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncflint $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncflint : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncflint : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncflint : ncflint error"
+      IGCM_debug_Exit "ncflint"
   fi
 
@@ -1239,8 +1393,30 @@
     echo "IGCM_sys_ncks :" $@
   fi
-  ncks $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncks : erreur ${@}."
-    IGCM_debug_Exit "ncks"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncks $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncks : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncks : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncks : ncks error"
+      IGCM_debug_Exit "ncks"
   fi
 
@@ -1253,8 +1429,30 @@
     echo "IGCM_sys_ncpdq :" $@
   fi
-  ncpdq $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncpdq : erreur ${@}."
-    IGCM_debug_Exit "ncpdq"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncpdq $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncpdq : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncpdq : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncpdq : ncpdq error"
+      IGCM_debug_Exit "ncpdq"
   fi
 
@@ -1267,8 +1465,30 @@
     echo "IGCM_sys_ncra :" $@
   fi
-  ncra $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncra : erreur ${@}."
-    IGCM_debug_Exit "ncra"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncra $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncra : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncra : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncra : ncra error"
+      IGCM_debug_Exit "ncra"
   fi
 
@@ -1281,8 +1501,30 @@
     echo "IGCM_sys_ncrcat :" $@
   fi
-  ncrcat $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncrcat : erreur ${@}."
-#       IGCM_debug_Exit "ncrcat"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncrcat $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncrcat : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncrcat : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncrcat : ncrcat error"
+      #IGCM_debug_Exit "ncrcat"
   fi
 
@@ -1295,8 +1537,30 @@
     echo "IGCM_sys_ncrename :" $@
   fi
-  ncrename $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncrename : erreur ${@}."
-    IGCM_debug_Exit "ncrename"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncrename $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncrename : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncrename : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncrename : ncrename error"
+      IGCM_debug_Exit "ncrename"
   fi
 
@@ -1309,8 +1573,30 @@
     echo "IGCM_sys_ncwa :" $@
   fi
-  ncwa $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_ncwa : erreur ${@}."
-    IGCM_debug_Exit "ncwa"
+
+  typeset NB_ESSAI DELAI status i
+  # number of tentative
+  NB_ESSAI=3
+  # time delay between tentative
+  DELAI=2
+
+  i=0
+  while [ $i -lt $NB_ESSAI ] ; do
+    ncwa $@ > out_rsync 2>&1
+    status=$?
+    if [ ${status} -gt 0 ] ; then
+      IGCM_debug_Print 2 "IGCM_sys_ncwa : error code ${status}"
+      cat out_rsync
+      \rm out_rsync
+      IGCM_debug_Print 2 "IGCM_sys_ncwa : ${i}/${NB_ESSAI} sleep ${DELAI} seconds and try again."
+    else
+      \rm out_rsync
+      break
+    fi
+    (( i = i + 1 ))
+  done
+
+  if [ ${status} -gt 0 ] ; then
+      echo "IGCM_sys_ncwa : ncwa error"
+      IGCM_debug_Exit "ncwa"
   fi
 
@@ -1323,8 +1609,16 @@
 function IGCM_sys_cdo {
   IGCM_debug_PushStack "IGCM_sys_cdo" -- $@
-
-  \cdo $@
-  if [ $? -gt 0 ] ; then
-    echo "IGCM_sys_cdo : erreur ${@}."
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_cdo :" $@
+  fi
+
+  typeset status
+
+  \cdo $@ > out_rsync 2>&1
+  status=$?
+  if [ ${status} -gt 0 ] ; then
+    echo "IGCM_sys_cdo : error code ${status}"
+    cat out_rsync
+    \rm out_rsync
     IGCM_debug_PopStack "IGCM_sys_cdo"
     return 1
