Index: /TOOLS/ConsoGENCMIP6/bin/conso_gencmip6.py
===================================================================
--- /TOOLS/ConsoGENCMIP6/bin/conso_gencmip6.py	(revision 2424)
+++ /TOOLS/ConsoGENCMIP6/bin/conso_gencmip6.py	(revision 2425)
@@ -292,5 +292,5 @@
       filein  = os.path.join(DIR["DATA"], filename)
       if os.path.isfile(filein):
-        fileout = os.path.join(DIR["SAVE"],
+        fileout = os.path.join(DIR["SAVEDATA"],
                                "_".join((filename, suffix)))
         shutil.copy(filein, fileout)
@@ -327,5 +327,5 @@
   if args.verbose:
     print(DIR["DATA"])
-    print(DIR["SAVE"])
+    print(DIR["SAVEDATA"])
 
   (project, logins, today, total, utheo, ureal) = \
@@ -387,5 +387,4 @@
   if args.verbose:
     print("=> Save files")
-
   if not args.dryrun:
     save_files(OUT, today)
Index: /TOOLS/ConsoGENCMIP6/bin/gencmip6_path.py.init
===================================================================
--- /TOOLS/ConsoGENCMIP6/bin/gencmip6_path.py.init	(revision 2424)
+++ /TOOLS/ConsoGENCMIP6/bin/gencmip6_path.py.init	(revision 2425)
@@ -7,5 +7,5 @@
 # standard library imports
 import os
-# import os.path
+import os.path
 
 # Application library imports
@@ -16,4 +16,5 @@
 
 # Common paths
+# ============
 DIR = {
   "ROOT": ROOT_DIR,
@@ -23,6 +24,16 @@
   "DODS": None,
 }
+DIR["SAVEDATA"] = os.path.join(DIR["SAVE"], "data")
+DIR["SAVEPLOT"] = os.path.join(DIR["SAVE"], "plot")
+
+for dirname in DIR.itervalues():
+  if dirname and not os.path.isdir(dirname):
+    try :
+      os.makedirs(dirname)
+    except Exception as rc :
+      print("Could not create {}:\n{}".format(dirname, rc))
 
 # Common files
+# ============
 OUT = {
   "PARAM": "OUT_CONSO_PARAM",
Index: /TOOLS/ConsoGENCMIP6/bin/plot_bilan.py
===================================================================
--- /TOOLS/ConsoGENCMIP6/bin/plot_bilan.py	(revision 2424)
+++ /TOOLS/ConsoGENCMIP6/bin/plot_bilan.py	(revision 2425)
@@ -274,8 +274,9 @@
   # .. Initialization ..
   # ====================
-
   # ... Command line arguments ...
   # ------------------------------
   args = get_arguments()
+  if args.verbose:
+    print(args)
 
   # ... Turn interactive mode off ...
@@ -293,8 +294,10 @@
   # ... Files and directories ...
   # -----------------------------
-  file_param = get_last_file(DIR["SAVE"], OUT["PARAM"])
-  file_utheo = get_last_file(DIR["SAVE"], OUT["UTHEO"])
-  file_bilan = get_last_file(DIR["SAVE"], OUT["BILAN"])
-  img_name = "bilan.pdf"
+  file_param = get_last_file(DIR["SAVEDATA"], OUT["PARAM"])
+  file_utheo = get_last_file(DIR["SAVEDATA"], OUT["UTHEO"])
+  file_bilan = get_last_file(DIR["SAVEDATA"], OUT["BILAN"])
+  img_name = "bilan"
+
+  today = os.path.basename(file_param).strip(OUT["PARAM"])
 
   if args.verbose:
@@ -303,4 +306,7 @@
     print(file_bilan)
     print(img_name)
+    print(today)
+    print(DIR)
+    print(OUT)
 
   # .. Get project info ..
@@ -386,11 +392,19 @@
   # ... Save figure ...
   # -------------------
-  plot_save(os.path.join(DIR["PLOT"], img_name))
+  # plot_save(os.path.join(DIR["PLOT"], img_name))
+  img_in  = os.path.join(DIR["PLOT"], "{}.pdf".format(img_name))
+  plot_save(img_in)
+  if os.path.isdir(DIR["SAVEPLOT"]):
+    img_out = os.path.join(DIR["SAVEPLOT"],
+                           "{}_{}.pdf".format(img_name, today))
+    shutil.copy(img_in, img_out)
 
   # ... Publish figure on dods ...
   # ------------------------------
   if args.dods:
-    dods_cp(os.path.join(DIR["PLOT"], img_name))
+    dods_cp(img_in)
 
   if args.show:
     plt.show()
+
+  exit()
Index: /TOOLS/ConsoGENCMIP6/bin/plot_login.py
===================================================================
--- /TOOLS/ConsoGENCMIP6/bin/plot_login.py	(revision 2424)
+++ /TOOLS/ConsoGENCMIP6/bin/plot_login.py	(revision 2425)
@@ -10,6 +10,6 @@
 import os.path
 import numpy as np
-import matplotlib.pyplot as plt
-from matplotlib.backends.backend_pdf import PdfPages
+# import matplotlib.pyplot as plt
+# from matplotlib.backends.backend_pdf import PdfPages
 
 # Application library imports
@@ -147,4 +147,8 @@
                       help="plot all the logins" +
                            " (default: plot only non-zero)")
+  parser.add_argument("-s", "--show", action="store_true",
+                      help="interactive mode")
+  parser.add_argument("-d", "--dods", action="store_true",
+                      help="copy output on dods")
 
   return parser.parse_args()
@@ -159,10 +163,24 @@
   # ------------------------------
   args = get_arguments()
+  if args.verbose:
+    print(args)
+
+  # ... Turn interactive mode off ...
+  # ---------------------------------
+  if not args.show:
+    import matplotlib
+    matplotlib.use('Agg')
+
+  import matplotlib.pyplot as plt
+  from matplotlib.backends.backend_pdf import PdfPages
+
+  if not args.show:
+    plt.ioff()
 
   # ... Files and directories ...
   # -----------------------------
-  file_param = get_last_file(DIR["DATA"], OUT["PARAM"])
-  file_utheo = get_last_file(DIR["DATA"], OUT["UTHEO"])
-  file_login = get_last_file(DIR["DATA"], OUT["LOGIN"])
+  file_param = get_last_file(DIR["SAVE"], OUT["PARAM"])
+  file_utheo = get_last_file(DIR["SAVE"], OUT["UTHEO"])
+  file_login = get_last_file(DIR["SAVE"], OUT["LOGIN"])
   img_name = "bilan.pdf"
 
@@ -229,4 +247,11 @@
   plot_save(os.path.join(DIR["PLOT"], img_name))
 
-  plt.show()
+  # ... Publish figure on dods ...
+  # ------------------------------
+  if args.dods:
+    dods_cp(os.path.join(DIR["PLOT"], img_name))
+
+  if args.show:
+    plt.show()
+
   exit()
Index: /TOOLS/ConsoGENCMIP6/bin/plot_store.py
===================================================================
--- /TOOLS/ConsoGENCMIP6/bin/plot_store.py	(revision 2424)
+++ /TOOLS/ConsoGENCMIP6/bin/plot_store.py	(revision 2425)
@@ -10,6 +10,6 @@
 import os.path
 import numpy as np
-import matplotlib.pyplot as plt
-from matplotlib.backends.backend_pdf import PdfPages
+# import matplotlib.pyplot as plt
+# from matplotlib.backends.backend_pdf import PdfPages
 
 # Application library imports
@@ -194,4 +194,8 @@
                       default="IPSLCM6",
                       help="plot the whole period")
+  parser.add_argument("-s", "--show", action="store_true",
+                      help="interactive mode")
+  parser.add_argument("-d", "--dods", action="store_true",
+                      help="copy output on dods")
 
   return parser.parse_args()
@@ -209,9 +213,21 @@
     print(args)
 
+  # ... Turn interactive mode off ...
+  # ---------------------------------
+  if not args.show:
+    import matplotlib
+    matplotlib.use('Agg')
+
+  import matplotlib.pyplot as plt
+  from matplotlib.backends.backend_pdf import PdfPages
+
+  if not args.show:
+    plt.ioff()
+
   # ... Files and directories ...
   # -----------------------------
-  file_param = get_last_file(DIR["DATA"], OUT["PARAM"])
-  file_utheo = get_last_file(DIR["DATA"], OUT["UTHEO"])
-  file_store = get_last_file(DIR["DATA"], OUT["STORE"])
+  file_param = get_last_file(DIR["SAVE"], OUT["PARAM"])
+  file_utheo = get_last_file(DIR["SAVE"], OUT["UTHEO"])
+  file_store = get_last_file(DIR["SAVE"], OUT["STORE"])
   img_name = "bilan.pdf"
 
@@ -287,4 +303,11 @@
   plot_save(os.path.join(DIR["PLOT"], img_name))
 
-  plt.show()
+  # ... Publish figure on dods ...
+  # ------------------------------
+  if args.dods:
+    dods_cp(os.path.join(DIR["PLOT"], img_name))
+
+  if args.show:
+    plt.show()
+
   exit()
