Index: /trunk/libIGCM/AA_SE_Checker
===================================================================
--- /trunk/libIGCM/AA_SE_Checker	(revision 657)
+++ /trunk/libIGCM/AA_SE_Checker	(revision 658)
@@ -79,4 +79,17 @@
 
 #==================================
+# Read Ensemble section: 
+IGCM_card_DefineArrayFromSection       ${CARD_DIR}/config.card Ensemble
+echo
+
+for option in ${config_Ensemble[*]} ; do
+    IGCM_card_DefineVariableFromOption ${CARD_DIR}/config.card Ensemble ${option}
+    eval auxprint=\${config_Ensemble_${option}}
+    IGCM_debug_Print 3 "${option} : ${auxprint}"
+done
+#
+echo
+
+#==================================
 # Read Post section: 
 IGCM_card_DefineArrayFromSection ${CARD_DIR}/config.card Post
@@ -106,12 +119,24 @@
 #R_BUFR : Job output buffered directory
 if ( [ ! X${config_UserChoices_SpaceName} = X ] && [ ! X${config_UserChoices_ExperimentName} = X ] ) ; then
-    FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' )
+  FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' )
+  if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+    R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+  else
     R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
     R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
     R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
+  fi
 else
+  if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+    R_DODS=${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+  else
     R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
     R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
     R_DODS=${config_UserChoices_TagName}/${config_UserChoices_JobName}
+  fi
 fi
 
Index: /trunk/libIGCM/AA_TimeSeries_Checker
===================================================================
--- /trunk/libIGCM/AA_TimeSeries_Checker	(revision 657)
+++ /trunk/libIGCM/AA_TimeSeries_Checker	(revision 658)
@@ -98,4 +98,17 @@
     IGCM_card_DefineVariableFromOption ${CARD_DIR}/config.card UserChoices ${option}
     eval auxprint=\${config_UserChoices_${option}}
+    IGCM_debug_Print 3 "${option} : ${auxprint}"
+done
+#
+echo
+
+#==================================
+# Read Ensemble section: 
+IGCM_card_DefineArrayFromSection       ${CARD_DIR}/config.card Ensemble
+echo
+
+for option in ${config_Ensemble[*]} ; do
+    IGCM_card_DefineVariableFromOption ${CARD_DIR}/config.card Ensemble ${option}
+    eval auxprint=\${config_Ensemble_${option}}
     IGCM_debug_Print 3 "${option} : ${auxprint}"
 done
@@ -153,11 +166,23 @@
 if ( [ ! X${config_UserChoices_SpaceName} = X ] && [ ! X${config_UserChoices_ExperimentName} = X ] ) ; then
   FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' )
-  R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
-  R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
-  R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
+  if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+    R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+  else
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
+    R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
+  fi
 else
-  R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
-  R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
-  R_DODS=${config_UserChoices_TagName}/${config_UserChoices_JobName}
+  if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+    R_DODS=${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+  else
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
+    R_DODS=${config_UserChoices_TagName}/${config_UserChoices_JobName}
+  fi
 fi
 
Index: /trunk/libIGCM/AA_atlas_LMDZ
===================================================================
--- /trunk/libIGCM/AA_atlas_LMDZ	(revision 657)
+++ /trunk/libIGCM/AA_atlas_LMDZ	(revision 658)
@@ -173,4 +173,9 @@
 done
 
+IGCM_card_DefineArrayFromSection       ${CARD_DIR}/config.card Ensemble
+typeset option
+for option in ${config_Ensemble[*]} ; do
+    IGCM_card_DefineVariableFromOption ${CARD_DIR}/config.card Ensemble ${option}
+done
 #
 echo
@@ -185,19 +190,36 @@
 IGCM_debug_PrintVariables 3 config_UserChoices_DateEnd
 IGCM_debug_PrintVariables 3 config_UserChoices_PeriodLength
+IGCM_debug_PrintVariables 3 config_Ensemble_EnsembleName
+IGCM_debug_PrintVariables 3 config_Ensemble_EnsembleDate
 echo
 
 #==================================
 #R_SAVE : Job output directory
+#R_BUFR : Job output buffered directory
 if ( [ ! X${config_UserChoices_SpaceName} = X ] && [ ! X${config_UserChoices_ExperimentName} = X ] ) ; then
-    FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' )
+  FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' )
+  if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+    R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+    R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+  else
     R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
     R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
     R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
     R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
+  fi
 else
+  if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+    R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+    R_DODS=${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+  else
     R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
     R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
     R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
     R_DODS=${config_UserChoices_TagName}/${config_UserChoices_JobName}
+  fi
 fi
 #
Index: /trunk/libIGCM/AA_atlas_ORCA_LIM
===================================================================
--- /trunk/libIGCM/AA_atlas_ORCA_LIM	(revision 657)
+++ /trunk/libIGCM/AA_atlas_ORCA_LIM	(revision 658)
@@ -173,4 +173,10 @@
     IGCM_card_DefineVariableFromOption ${CARD_DIR}/config.card UserChoices ${option}
 done
+
+IGCM_card_DefineArrayFromSection       ${CARD_DIR}/config.card Ensemble
+typeset option
+for option in ${config_Ensemble[*]} ; do
+    IGCM_card_DefineVariableFromOption ${CARD_DIR}/config.card Ensemble ${option}
+done
 #
 echo
@@ -185,4 +191,6 @@
 IGCM_debug_PrintVariables 3 config_UserChoices_DateEnd
 IGCM_debug_PrintVariables 3 config_UserChoices_PeriodLength
+IGCM_debug_PrintVariables 3 config_Ensemble_EnsembleName
+IGCM_debug_PrintVariables 3 config_Ensemble_EnsembleDate
 echo
 
@@ -191,14 +199,28 @@
 #R_BUFR : Job output buffered directory
 if ( [ ! X${config_UserChoices_SpaceName} = X ] && [ ! X${config_UserChoices_ExperimentName} = X ] ) ; then
-    FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' )
+  FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' )
+  if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+    R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+    R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+  else
     R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
     R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
     R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
     R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
+  fi
 else
+  if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+    R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+    R_DODS=${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+  else
     R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
     R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
     R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
     R_DODS=${config_UserChoices_TagName}/${config_UserChoices_JobName}
+  fi
 fi
 #
Index: /trunk/libIGCM/AA_atlas_ORCHIDEE
===================================================================
--- /trunk/libIGCM/AA_atlas_ORCHIDEE	(revision 657)
+++ /trunk/libIGCM/AA_atlas_ORCHIDEE	(revision 658)
@@ -181,4 +181,10 @@
     IGCM_card_DefineVariableFromOption ${CARD_DIR}/config.card UserChoices ${option}
 done
+
+IGCM_card_DefineArrayFromSection       ${CARD_DIR}/config.card Ensemble
+typeset option
+for option in ${config_Ensemble[*]} ; do
+    IGCM_card_DefineVariableFromOption ${CARD_DIR}/config.card Ensemble ${option}
+done
 #
 echo
@@ -193,4 +199,6 @@
 IGCM_debug_PrintVariables 3 config_UserChoices_DateEnd
 IGCM_debug_PrintVariables 3 config_UserChoices_PeriodLength
+IGCM_debug_PrintVariables 3 config_Ensemble_EnsembleName
+IGCM_debug_PrintVariables 3 config_Ensemble_EnsembleDate
 echo
 
@@ -199,14 +207,28 @@
 #R_BUFR : Job output buffered directory
 if ( [ ! X${config_UserChoices_SpaceName} = X ] && [ ! X${config_UserChoices_ExperimentName} = X ] ) ; then
-    FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' )
+  FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' )
+  if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+    R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+    R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+  else
     R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
     R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
     R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
     R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
+  fi
 else
+  if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+    R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+    R_DODS=${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+  else
     R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
     R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
     R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
     R_DODS=${config_UserChoices_TagName}/${config_UserChoices_JobName}
+  fi
 fi
 #
Index: /trunk/libIGCM/AA_atlas_PISCES
===================================================================
--- /trunk/libIGCM/AA_atlas_PISCES	(revision 657)
+++ /trunk/libIGCM/AA_atlas_PISCES	(revision 658)
@@ -173,4 +173,9 @@
 done
 
+IGCM_card_DefineArrayFromSection       ${CARD_DIR}/config.card Ensemble
+typeset option
+for option in ${config_Ensemble[*]} ; do
+    IGCM_card_DefineVariableFromOption ${CARD_DIR}/config.card Ensemble ${option}
+done
 #
 echo
@@ -185,4 +190,6 @@
 IGCM_debug_PrintVariables 3 config_UserChoices_DateEnd
 IGCM_debug_PrintVariables 3 config_UserChoices_PeriodLength
+IGCM_debug_PrintVariables 3 config_Ensemble_EnsembleName
+IGCM_debug_PrintVariables 3 config_Ensemble_EnsembleDate
 echo
 
@@ -191,14 +198,28 @@
 #R_BUFR : Job output buffered directory
 if ( [ ! X${config_UserChoices_SpaceName} = X ] && [ ! X${config_UserChoices_ExperimentName} = X ] ) ; then
-    FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' )
+  FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' )
+  if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+    R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+    R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+  else
     R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
     R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
     R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
     R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
+  fi
 else
+  if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+    R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+    R_DODS=${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+  else
     R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
     R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
     R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
     R_DODS=${config_UserChoices_TagName}/${config_UserChoices_JobName}
+  fi
 fi
 #
Index: /trunk/libIGCM/AA_clean_month
===================================================================
--- /trunk/libIGCM/AA_clean_month	(revision 657)
+++ /trunk/libIGCM/AA_clean_month	(revision 658)
@@ -63,4 +63,10 @@
 done
 
+IGCM_card_DefineArrayFromSection ${SUBMIT_DIR}/config.card Ensemble
+
+for option in ${config_Ensemble[*]} ; do
+    IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/config.card Ensemble ${option}
+done
+
 IGCM_debug_Print 1 "DefineArrayFromOption  : config_UserChoices"
 IGCM_debug_PrintVariables 3 config_UserChoices_JobName
@@ -74,4 +80,6 @@
 IGCM_debug_PrintVariables 3 config_UserChoices_DateEnd
 IGCM_debug_PrintVariables 3 config_UserChoices_PeriodLength
+IGCM_debug_PrintVariables 3 config_Ensemble_EnsembleName
+IGCM_debug_PrintVariables 3 config_Ensemble_EnsembleDate
 
 #==================================
@@ -93,10 +101,20 @@
 #R_BUFR : Job output buffered directory
 if ( [ ! X${config_UserChoices_SpaceName} = X ] && [ ! X${config_UserChoices_ExperimentName} = X ] ) ; then
-    FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' )
+  FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' )
+  if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+  else
     R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
     R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
+  fi
 else
+  if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+  else
     R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
     R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
+  fi
 fi
 IGCM_sys_TestDirArchive ${R_SAVE}
Index: /trunk/libIGCM/AA_create_multi_se
===================================================================
--- /trunk/libIGCM/AA_create_multi_se	(revision 657)
+++ /trunk/libIGCM/AA_create_multi_se	(revision 658)
@@ -232,4 +232,10 @@
     IGCM_card_DefineVariableFromOption ${CARD_DIR}/config.card UserChoices ${option}
 done
+
+IGCM_card_DefineArrayFromSection       ${CARD_DIR}/config.card Ensemble
+typeset option
+for option in ${config_Ensemble[*]} ; do
+    IGCM_card_DefineVariableFromOption ${CARD_DIR}/config.card Ensemble ${option}
+done
 #
 echo
@@ -241,4 +247,6 @@
 IGCM_debug_PrintVariables 3 config_UserChoices_DateEnd
 IGCM_debug_PrintVariables 3 config_UserChoices_PeriodLength
+IGCM_debug_PrintVariables 3 config_Ensemble_EnsembleName
+IGCM_debug_PrintVariables 3 config_Ensemble_EnsembleDate
 echo
 
@@ -247,12 +255,24 @@
 #R_BUFR : Job output buffered directory
 if ( [ ! X${config_UserChoices_SpaceName} = X ] && [ ! X${config_UserChoices_ExperimentName} = X ] ) ; then
-    FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' )
+  FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' )
+  if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+    R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+  else
     R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
     R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
     R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
+  fi
 else
+  if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+    R_DODS=${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+  else
     R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
     R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
     R_DODS=${config_UserChoices_TagName}/${config_UserChoices_JobName}
+  fi
 fi
 #
Index: /trunk/libIGCM/AA_create_se
===================================================================
--- /trunk/libIGCM/AA_create_se	(revision 657)
+++ /trunk/libIGCM/AA_create_se	(revision 658)
@@ -250,4 +250,17 @@
 
 #==================================
+# Read Ensemble section: 
+IGCM_card_DefineArrayFromSection       ${CARD_DIR}/config.card Ensemble
+echo
+IGCM_debug_Print 1 "DefineArrayFromOption  : config_Ensemble"
+for option in ${config_Ensemble[*]} ; do
+    IGCM_card_DefineVariableFromOption ${CARD_DIR}/config.card Ensemble ${option}
+    eval auxprint=\${config_Ensemble_${option}}
+    IGCM_debug_Print 3 "${option} : ${auxprint}"
+done
+#
+echo
+
+#==================================
 # Read Post section: 
 IGCM_card_DefineArrayFromSection ${CARD_DIR}/config.card Post
@@ -280,12 +293,24 @@
 #R_BUFR : Job output buffered directory
 if ( [ ! X${config_UserChoices_SpaceName} = X ] && [ ! X${config_UserChoices_ExperimentName} = X ] ) ; then
-    FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' )
+  FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' )
+  if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+    R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+  else
     R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
     R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
     R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
+  fi
 else
+  if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+    R_DODS=${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+  else
     R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
     R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
     R_DODS=${config_UserChoices_TagName}/${config_UserChoices_JobName}
+  fi
 fi
 #
Index: /trunk/libIGCM/AA_create_ts
===================================================================
--- /trunk/libIGCM/AA_create_ts	(revision 657)
+++ /trunk/libIGCM/AA_create_ts	(revision 658)
@@ -270,4 +270,17 @@
 
 #==================================
+# Read Ensemble section: 
+IGCM_card_DefineArrayFromSection       ${CARD_DIR}/config.card Ensemble
+echo
+IGCM_debug_Print 1 "DefineArrayFromOption  : config_Ensemble"
+for option in ${config_Ensemble[*]} ; do
+    IGCM_card_DefineVariableFromOption ${CARD_DIR}/config.card Ensemble ${option}
+    eval auxprint=\${config_Ensemble_${option}}
+    IGCM_debug_Print 3 "${option} : ${auxprint}"
+done
+#
+echo
+
+#==================================
 # Read Post section: 
 IGCM_card_DefineArrayFromSection ${CARD_DIR}/config.card Post
@@ -300,12 +313,24 @@
 #R_BUFR : Job output buffered directory
 if ( [ ! X${config_UserChoices_SpaceName} = X ] && [ ! X${config_UserChoices_ExperimentName} = X ] ) ; then
-    FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' )
+  FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' )
+  if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+    R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+  else
     R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
     R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
     R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
+  fi
 else
+  if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+    R_DODS=${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+  else
     R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
     R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
     R_DODS=${config_UserChoices_TagName}/${config_UserChoices_JobName}
+  fi
 fi
 #
Index: /trunk/libIGCM/AA_monitoring
===================================================================
--- /trunk/libIGCM/AA_monitoring	(revision 657)
+++ /trunk/libIGCM/AA_monitoring	(revision 658)
@@ -230,4 +230,10 @@
     IGCM_card_DefineVariableFromOption ${CARD_DIR}/config.card UserChoices ${option}
 done
+
+IGCM_card_DefineArrayFromSection       ${CARD_DIR}/config.card Ensemble
+typeset option
+for option in ${config_Ensemble[*]} ; do
+    IGCM_card_DefineVariableFromOption ${CARD_DIR}/config.card Ensemble ${option}
+done
 IGCM_card_DefineArrayFromSection       ${CARD_DIR}/config.card ListOfComponents
 
@@ -236,14 +242,28 @@
 #R_BUFR : Job output buffered directory
 if ( [ ! X${config_UserChoices_SpaceName} = X ] && [ ! X${config_UserChoices_ExperimentName} = X ] ) ; then
-    FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' )
+  FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' )
+  if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+    R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+    R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+  else
     R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
     R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
     R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
     R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
+  fi
 else
+  if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+    R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+    R_DODS=${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+  else
     R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
     R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
     R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
     R_DODS=${config_UserChoices_TagName}/${config_UserChoices_JobName}
+  fi
 fi
 
Index: /trunk/libIGCM/AA_pack_debug
===================================================================
--- /trunk/libIGCM/AA_pack_debug	(revision 657)
+++ /trunk/libIGCM/AA_pack_debug	(revision 658)
@@ -241,8 +241,15 @@
 #
 # Read config.card
+
 IGCM_card_DefineArrayFromSection     ${CARD_DIR}/config.card UserChoices
 typeset option
 for option in ${config_UserChoices[*]} ; do
   IGCM_card_DefineVariableFromOption ${CARD_DIR}/config.card UserChoices ${option}
+done
+#
+IGCM_card_DefineArrayFromSection     ${CARD_DIR}/config.card Ensemble
+typeset option
+for option in ${config_Ensemble[*]} ; do
+  IGCM_card_DefineVariableFromOption ${CARD_DIR}/config.card Ensemble ${option}
 done
 #
@@ -258,4 +265,6 @@
 IGCM_debug_PrintVariables 3 config_UserChoices_DateEnd
 IGCM_debug_PrintVariables 3 config_UserChoices_PeriodLength
+IGCM_debug_PrintVariables 3 config_Ensemble_EnsembleName
+IGCM_debug_PrintVariables 3 config_Ensemble_EnsembleDate
 echo
 
@@ -268,9 +277,19 @@
 if ( [ ! X${config_UserChoices_SpaceName} = X ] && [ ! X${config_UserChoices_ExperimentName} = X ] ) ; then
   FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' )
-  R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
-  R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
+  if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+  else
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
+  fi
 else
-  R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
-  R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
+  if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+  else
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
+  fi
 fi
 IGCM_sys_TestDirArchive ${R_SAVE}
Index: /trunk/libIGCM/AA_pack_output
===================================================================
--- /trunk/libIGCM/AA_pack_output	(revision 657)
+++ /trunk/libIGCM/AA_pack_output	(revision 658)
@@ -225,4 +225,10 @@
 done
 #
+IGCM_card_DefineArrayFromSection     ${CARD_DIR}/config.card Ensemble
+typeset option
+for option in ${config_Ensemble[*]} ; do
+  IGCM_card_DefineVariableFromOption ${CARD_DIR}/config.card Ensemble ${option}
+done
+#
 echo
 IGCM_debug_Print 1 "DefineArrayFromOption  : config_UserChoices"
@@ -236,4 +242,6 @@
 IGCM_debug_PrintVariables 3 config_UserChoices_DateEnd
 IGCM_debug_PrintVariables 3 config_UserChoices_PeriodLength
+IGCM_debug_PrintVariables 3 config_Ensemble_EnsembleName
+IGCM_debug_PrintVariables 3 config_Ensemble_EnsembleDate
 echo
 
@@ -247,9 +255,19 @@
 if ( [ ! X${config_UserChoices_SpaceName} = X ] && [ ! X${config_UserChoices_ExperimentName} = X ] ) ; then
   FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' )
-  R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
-  R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
+  if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+  else
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
+  fi
 else
-  R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
-  R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
+  if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+  else
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
+  fi
 fi
 IGCM_sys_TestDirArchive ${R_SAVE}
Index: /trunk/libIGCM/AA_pack_restart
===================================================================
--- /trunk/libIGCM/AA_pack_restart	(revision 657)
+++ /trunk/libIGCM/AA_pack_restart	(revision 658)
@@ -248,4 +248,10 @@
 done
 #
+IGCM_card_DefineArrayFromSection     ${CARD_DIR}/config.card Ensemble
+typeset option
+for option in ${config_Ensemble[*]} ; do
+  IGCM_card_DefineVariableFromOption ${CARD_DIR}/config.card Ensemble ${option}
+done
+#
 echo
 IGCM_debug_Print 1 "DefineArrayFromOption  : config_UserChoices"
@@ -259,4 +265,6 @@
 IGCM_debug_PrintVariables 3 config_UserChoices_DateEnd
 IGCM_debug_PrintVariables 3 config_UserChoices_PeriodLength
+IGCM_debug_PrintVariables 3 config_Ensemble_EnsembleName
+IGCM_debug_PrintVariables 3 config_Ensemble_EnsembleDate
 echo
 
@@ -269,9 +277,19 @@
 if ( [ ! X${config_UserChoices_SpaceName} = X ] && [ ! X${config_UserChoices_ExperimentName} = X ] ) ; then
   FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' )
-  R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
-  R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
+  if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+  else
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
+  fi
 else
-  R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
-  R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
+  if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+  else
+    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
+    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
+  fi
 fi
 IGCM_sys_TestDirArchive ${R_SAVE}
Index: /trunk/libIGCM/libIGCM_config/libIGCM_config.ksh
===================================================================
--- /trunk/libIGCM/libIGCM_config/libIGCM_config.ksh	(revision 657)
+++ /trunk/libIGCM/libIGCM_config/libIGCM_config.ksh	(revision 658)
@@ -89,4 +89,23 @@
 
   #==================================
+  # Read Ensemble section:
+  IGCM_card_DefineArrayFromSection ${SUBMIT_DIR}/config.card Ensemble
+
+  for option in ${config_Ensemble[*]} ; do
+    IGCM_card_DefineVariableFromOption ${SUBMIT_DIR}/config.card Ensemble ${option}
+  done
+
+  IGCM_debug_Print 1 "DefineArrayFromOption  : config_Ensemble"
+  if [ X${config_Ensemble_EnsembleRun} != X ] ; then
+    IGCM_debug_PrintVariables 3 config_Ensemble_EnsembleRun
+  fi
+  if [ X${config_Ensemble_EnsembleName} != X ] ; then
+    IGCM_debug_PrintVariables 3 config_Ensemble_EnsembleName
+  fi
+  if [ X${config_Ensemble_EnsembleDate} != X ] ; then
+    IGCM_debug_PrintVariables 3 config_Ensemble_EnsembleDate
+  fi
+
+  #==================================
   # Read Post section:
   IGCM_card_DefineArrayFromSection ${SUBMIT_DIR}/config.card Post
@@ -198,13 +217,27 @@
   if ( [ ! X${config_UserChoices_SpaceName} = X ] && [ ! X${config_UserChoices_ExperimentName} = X ] ) ; then
     FreeName=$( echo ${config_UserChoices_JobName} | sed 's/.*_//' )
-    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
-    R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
-    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
-    R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
-  else
-    R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
-    R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
-    R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
-    R_DODS=${config_UserChoices_TagName}/${config_UserChoices_JobName}
+    if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then
+      R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+      R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+      R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+      R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${FreeName}
+    else
+      R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
+      R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
+      R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
+      R_DODS=${config_UserChoices_TagName}/${config_UserChoices_SpaceName}/${config_UserChoices_ExperimentName}/${FreeName}
+    fi
+  else
+    if ( [ ! X${config_Ensemble_EnsembleName} = X ] && [ ! X${config_Ensemble_EnsembleDate} = X ] ) ; then
+      R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+      R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+      R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+      R_DODS=${config_UserChoices_TagName}/${config_Ensemble_EnsembleName}/${config_Ensemble_EnsembleDate}/${config_UserChoices_JobName}
+    else
+      R_SAVE=${R_OUT}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
+      R_FIGR=${R_FIG}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
+      R_BUFR=${R_BUF}/${config_UserChoices_TagName}/${config_UserChoices_JobName}
+      R_DODS=${config_UserChoices_TagName}/${config_UserChoices_JobName}
+    fi
   fi
 
