[cpl-plugin-vimos] 02/04: New upstream version 2.9.9

Ole Streicher olebole-guest at moszumanska.debian.org
Wed Nov 27 15:15:35 UTC 2013


This is an automated email from the git hooks/post-receive script.

olebole-guest pushed a commit to branch debian
in repository cpl-plugin-vimos.

commit 916f755be465693a601cc09869c3158200d18ecd
Author: Ole Streicher <debian at liska.ath.cx>
Date:   Wed Nov 27 16:00:28 2013 +0100

    New upstream version 2.9.9
---
 Makefile.purify.in                               |    2 +-
 calib/dic/ESO-DFS-DIC.VIMOS_QC                   |    6 +-
 calib/dic/ESO-VLT-DIC.VIMOS_DRS                  |    4 +-
 calib/dic/ESO-VLT-DIC.VIMOS_ICS                  |    6 +-
 calib/dic/ESO-VLT-DIC.VIMOS_MPS                  |    2 +-
 calib/dic/ESO-VLT-DIC.VIMOS_OS                   |    4 +-
 calib/gasgano/config/VIMOS.prefs                 |    2 +-
 calib/gasgano/config/vimos.oca                   |   10 +-
 configure                                        |   20 +-
 configure.ac                                     |    2 +-
 external/libwcs/cel.c                            |    2 +-
 external/libwcs/lin.c                            |    2 +-
 external/libwcs/proj.c                           |    2 +-
 external/libwcs/sph.c                            |    2 +-
 external/libwcs/vimoswcslib.c                    |    2 +-
 external/libwcs/vimoswcslib.h                    |    2 +-
 external/libwcs/vimoswcstrig.c                   |    2 +-
 external/sextractor/source/wcs/cel.c             |    2 +-
 external/sextractor/source/wcs/lin.c             |    2 +-
 external/sextractor/source/wcs/proj.c            |    2 +-
 external/sextractor/source/wcs/sph.c             |    2 +-
 external/sextractor/source/wcs/tcel.c            |    2 +-
 external/sextractor/source/wcs/tlin.c            |    2 +-
 external/sextractor/source/wcs/tpgc.c            |    2 +-
 external/sextractor/source/wcs/wcs.c             |    2 +-
 external/sextractor/source/wcs/wcs_ori/Makefile  |    2 +-
 external/sextractor/source/wcs/wcs_ori/README    |    2 +-
 external/sextractor/source/wcs/wcs_ori/cel.c     |    2 +-
 external/sextractor/source/wcs/wcs_ori/lin.c     |    2 +-
 external/sextractor/source/wcs/wcs_ori/proj.c    |    2 +-
 external/sextractor/source/wcs/wcs_ori/sph.c     |    2 +-
 external/sextractor/source/wcs/wcs_ori/tcel.c    |    2 +-
 external/sextractor/source/wcs/wcs_ori/tlin.c    |    2 +-
 external/sextractor/source/wcs/wcs_ori/tpgc.c    |    2 +-
 external/sextractor/source/wcs/wcs_ori/tproj1.c  |    2 +-
 external/sextractor/source/wcs/wcs_ori/tproj2.c  |    2 +-
 external/sextractor/source/wcs/wcs_ori/tsph.c    |    2 +-
 external/sextractor/source/wcs/wcs_ori/twcs1.c   |    2 +-
 external/sextractor/source/wcs/wcs_ori/twcs2.c   |    2 +-
 external/sextractor/source/wcs/wcs_ori/wcs.c     |    2 +-
 external/sextractor/source/wcs/wcs_ori/wcstrig.c |    2 +-
 external/sextractor/source/wcs/wcstrig.c         |    2 +-
 html/dir_112173a6bb70e9f5e6440378f5599b04.html   |    2 +-
 html/group__VimosImageArray.html                 |    2 +-
 html/group__forsPaf.html                         |    2 +-
 html/group__fors__tools.html                     |    2 +-
 html/group__forsdfs.html                         |   30 +-
 html/group__forsqc.html                          |    2 +-
 html/group__moses.html                           |    2 +-
 html/group__vimos__calib__impl.html              |    2 +-
 html/group__vimos__calib__mult.html              |    2 +-
 html/group__vimos__science__impl.html            |    2 +-
 html/group__vmcpl.html                           |   12 +-
 html/group__vmimage.html                         |    2 +-
 html/group__vmimgastrometry.html                 |    2 +-
 html/group__vmtablearray.html                    |    2 +-
 html/index.html                                  |    2 +-
 html/modules.html                                |    2 +-
 irplib/irplib_calib.c                            |    6 +-
 irplib/irplib_calib.h                            |    6 +-
 irplib/irplib_cat.c                              |    6 +-
 irplib/irplib_cat.h                              |    6 +-
 irplib/irplib_distortion.c                       |    6 +-
 irplib/irplib_distortion.h                       |    6 +-
 irplib/irplib_flat.c                             |    6 +-
 irplib/irplib_flat.h                             |    6 +-
 irplib/irplib_framelist.c                        |    6 +-
 irplib/irplib_framelist.h                        |    6 +-
 irplib/irplib_hist.c                             |   12 +-
 irplib/irplib_hist.h                             |    6 +-
 irplib/irplib_ksigma_clip.c                      |    6 +-
 irplib/irplib_ksigma_clip.h                      |    6 +-
 irplib/irplib_ksigma_clip_body.h                 |    6 +-
 irplib/irplib_match_cats.c                       |    6 +-
 irplib/irplib_match_cats.h                       |    6 +-
 irplib/irplib_mkmaster.c                         |    6 +-
 irplib/irplib_mkmaster.h                         |    6 +-
 irplib/irplib_oddeven.c                          |    6 +-
 irplib/irplib_oddeven.h                          |    6 +-
 irplib/irplib_plugin.c                           |   19 +-
 irplib/irplib_plugin.h                           |    6 +-
 irplib/irplib_polynomial.c                       |    6 +-
 irplib/irplib_polynomial.h                       |    6 +-
 irplib/irplib_ppm.c                              |    6 +-
 irplib/irplib_ppm.h                              |    6 +-
 irplib/irplib_slitpos.c                          |   12 +-
 irplib/irplib_slitpos.h                          |    6 +-
 irplib/irplib_spectrum.c                         |    6 +-
 irplib/irplib_spectrum.h                         |    6 +-
 irplib/irplib_stdstar.c                          |    6 +-
 irplib/irplib_stdstar.h                          |    6 +-
 irplib/irplib_strehl.c                           |    6 +-
 irplib/irplib_strehl.h                           |    6 +-
 irplib/irplib_utils.c                            |   39 +-
 irplib/irplib_utils.h                            |   14 +-
 irplib/irplib_wavecal.c                          |    6 +-
 irplib/irplib_wavecal.h                          |    6 +-
 irplib/irplib_wavecal_impl.h                     |    6 +-
 irplib/irplib_wcs.c                              |    6 +-
 irplib/irplib_wcs.h                              |    6 +-
 irplib/irplib_wlxcorr.c                          |    6 +-
 irplib/irplib_wlxcorr.h                          |    6 +-
 irplib/tests/irplib_cat-test.c                   |    6 +-
 irplib/tests/irplib_polynomial-test.c            |    6 +-
 irplib/tests/irplib_wcs-test.c                   |    6 +-
 irplib/tests/irplib_wlxcorr-test.c               |    6 +-
 libpil/kazlib/CHANGES                            |    4 +-
 libpil/kazlib/Makefile.gcc                       |    4 +-
 libpil/kazlib/Makefile.vc                        |    4 +-
 libpil/kazlib/README                             |    4 +-
 libpil/kazlib/blast.pl                           |    4 +-
 libpil/kazlib/dict.c                             |    6 +-
 libpil/kazlib/dict.h                             |    4 +-
 libpil/kazlib/docs.dvi                           |  Bin 196916 -> 196916 bytes
 libpil/kazlib/docs.ltx                           |    4 +-
 libpil/kazlib/except.c                           |    6 +-
 libpil/kazlib/except.h                           |    4 +-
 libpil/kazlib/hash.c                             |    6 +-
 libpil/kazlib/hash.h                             |    4 +-
 libpil/kazlib/list.c                             |    6 +-
 libpil/kazlib/list.h                             |    4 +-
 libpil/kazlib/sfx.c                              |    6 +-
 libpil/kazlib/sfx.h                              |    4 +-
 libpil/pil/pilalias.c                            |    6 +-
 libpil/pil/pilalias.h                            |    6 +-
 libpil/pil/pilastroutils.c                       |    6 +-
 libpil/pil/pilastroutils.h                       |    6 +-
 libpil/pil/pilcatmap.c                           |   14 +-
 libpil/pil/pilcatmap.h                           |    6 +-
 libpil/pil/pilcdb.c                              |   15 +-
 libpil/pil/pilcdb.h                              |    6 +-
 libpil/pil/pildate.c                             |    6 +-
 libpil/pil/pildate.h                             |    6 +-
 libpil/pil/pildfsconfig.c                        |    6 +-
 libpil/pil/pildfsconfig.h                        |    6 +-
 libpil/pil/pildictionary.c                       |    6 +-
 libpil/pil/pildictionary.h                       |    6 +-
 libpil/pil/pilerrno.c                            |    6 +-
 libpil/pil/pilerrno.h                            |    6 +-
 libpil/pil/pilfileutils.c                        |    6 +-
 libpil/pil/pilfileutils.h                        |    6 +-
 libpil/pil/pilfits.c                             |    9 +-
 libpil/pil/pilfits.h                             |    6 +-
 libpil/pil/pilframe.c                            |    6 +-
 libpil/pil/pilframe.h                            |    6 +-
 libpil/pil/pilframeset.c                         |    6 +-
 libpil/pil/pilframeset.h                         |    6 +-
 libpil/pil/pilkeymap.c                           |   14 +-
 libpil/pil/pilkeymap.h                           |    6 +-
 libpil/pil/pilkeyword.c                          |    6 +-
 libpil/pil/pilkeyword.h                          |    6 +-
 libpil/pil/pillist.c                             |    6 +-
 libpil/pil/pillist.h                             |    6 +-
 libpil/pil/pilmacros.h                           |    6 +-
 libpil/pil/pilmemory.c                           |    6 +-
 libpil/pil/pilmemory.h                           |    6 +-
 libpil/pil/pilmessages.c                         |    6 +-
 libpil/pil/pilmessages.h                         |    6 +-
 libpil/pil/pilpaf.c                              |    6 +-
 libpil/pil/pilpaf.h                              |    6 +-
 libpil/pil/pilqc.c                               |    6 +-
 libpil/pil/pilqc.h                               |    6 +-
 libpil/pil/pilrecipe.c                           |    6 +-
 libpil/pil/pilrecipe.h                           |    6 +-
 libpil/pil/pilstrutils.c                         |   12 +-
 libpil/pil/pilstrutils.h                         |   12 +-
 libpil/pil/piltask.c                             |    6 +-
 libpil/pil/piltask.h                             |    6 +-
 libpil/pil/piltimer.c                            |    6 +-
 libpil/pil/piltimer.h                            |    6 +-
 libpil/pil/piltranslator.c                       |    6 +-
 libpil/pil/piltranslator.h                       |    6 +-
 libpil/pil/pilutils.c                            |    6 +-
 libpil/pil/pilutils.h                            |    6 +-
 libpil/tests/paf-test.c                          |    4 +-
 recipes/Makefile.am                              |   52 +-
 recipes/Makefile.in                              |   52 +-
 recipes/vimos_calib.c                            |   39 +-
 recipes/vimos_science.c                          |   25 +-
 recipes/vmbias.c                                 |   19 +-
 recipes/vmdark.c                                 |   16 +-
 recipes/vmdet.c                                  |    6 +-
 recipes/vmifucalib.c                             |   10 +-
 recipes/vmifucombine.c                           |    6 +-
 recipes/vmifucombinecube.cc                      |   12 +-
 recipes/vmifuscience.c                           |   12 +-
 recipes/vmifustandard.c                          |   10 +-
 recipes/vmimcalphot.c                            |    6 +-
 recipes/vmimflatscreen.c                         |   19 +-
 recipes/vmimflatsky.c                            |   18 +-
 recipes/vmimobsjitter.c                          |   10 +-
 recipes/vmimobsstare.c                           |    6 +-
 recipes/vmimpreimaging.c                         |    6 +-
 recipes/vmimstandard.c                           |    6 +-
 recipes/vmmasktoccd.c                            |    6 +-
 recipes/vmmoscombine.c                           |    6 +-
 recipes/vmmosobsjitter.c                         |    6 +-
 recipes/vmmosobsstare.c                          |    6 +-
 recipes/vmmosstandard.c                          |    6 +-
 recipes/vmskyccd.c                               |    6 +-
 recipes/vmspcaldisp.c                            |   12 +-
 recipes/vmspflat.c                               |    6 +-
 recipes/vmspphot.c                               |    6 +-
 reflex/VimosIfu.xml                              | 3167 +++++++-----
 reflex/VimosIfu.xml.in                           | 3163 +++++++-----
 reflex/VimosMos.xml.in                           | 5590 ++++++++++++----------
 reflex/vimos_mos_wkf.oca                         |  471 +-
 regtests/Makefile.am                             |    2 +-
 regtests/tests/Makefile.am                       |    4 +-
 regtests/tests/Makefile.in                       |    2 +-
 setup                                            |    4 +-
 vimos/TwoDLinearWCS.cc                           |   16 +-
 vimos/TwoDLinearWCS.h                            |    6 +-
 vimos/VimosIfuWCS.cc                             |    6 +-
 vimos/VimosIfuWCS.h                              |    6 +-
 vimos/VimosUtils.cc                              |    6 +-
 vimos/VimosUtils.h                               |    6 +-
 vimos/VimosUtils.tcc                             |    6 +-
 vimos/fors_dfs.c                                 |   60 +-
 vimos/fors_dfs.h                                 |   12 +-
 vimos/fors_paf.c                                 |    6 +-
 vimos/fors_paf.h                                 |    6 +-
 vimos/fors_qc.c                                  |    6 +-
 vimos/fors_qc.h                                  |    6 +-
 vimos/fors_tools.c                               |    6 +-
 vimos/fors_tools.h                               |    6 +-
 vimos/moses.c                                    |   28 +-
 vimos/moses.h                                    |    6 +-
 vimos/vimos_calib_impl.c                         |   43 +-
 vimos/vimos_calib_impl.h                         |    6 +-
 vimos/vimos_calib_mult.c                         |   43 +-
 vimos/vimos_calib_mult.h                         |    6 +-
 vimos/vimos_science_impl.c                       |   11 +-
 vimos/vimos_science_impl.h                       |    6 +-
 vimos/vmadf.c                                    |    6 +-
 vimos/vmadf.h                                    |    6 +-
 vimos/vmadfifutable.c                            |    6 +-
 vimos/vmadfifutable.h                            |    6 +-
 vimos/vmastrometrictable.c                       |    2 +-
 vimos/vmastrometrictable.h                       |    6 +-
 vimos/vmccdtable.c                               |    6 +-
 vimos/vmccdtable.h                               |    6 +-
 vimos/vmcpl.c                                    |   10 +-
 vimos/vmcpl.h                                    |   10 +-
 vimos/vmcube.c                                   |    6 +-
 vimos/vmcube.h                                   |    6 +-
 vimos/vmdetector.c                               |    6 +-
 vimos/vmdetector.h                               |    6 +-
 vimos/vmdistmodels.c                             |    6 +-
 vimos/vmdistmodels.h                             |    6 +-
 vimos/vmextincttable.c                           |    6 +-
 vimos/vmextincttable.h                           |    6 +-
 vimos/vmextractiontable.c                        |    6 +-
 vimos/vmextractiontable.h                        |    6 +-
 vimos/vmfit.c                                    |   14 +-
 vimos/vmfit.h                                    |    6 +-
 vimos/vmgalaxytable.c                            |    6 +-
 vimos/vmgalaxytable.h                            |    6 +-
 vimos/vmgrismtable.c                             |    6 +-
 vimos/vmgrismtable.h                             |    6 +-
 vimos/vmidstable.c                               |    6 +-
 vimos/vmidstable.h                               |    6 +-
 vimos/vmifu.c                                    |   16 +-
 vimos/vmifu.h                                    |    6 +-
 vimos/vmifuextraction.c                          |    6 +-
 vimos/vmifuextraction.h                          |    6 +-
 vimos/vmifufibers.c                              |   20 +-
 vimos/vmifufibers.h                              |    6 +-
 vimos/vmifuflat.c                                |    6 +-
 vimos/vmifuflat.h                                |    6 +-
 vimos/vmifuimage.c                               |    6 +-
 vimos/vmifuimage.h                               |    6 +-
 vimos/vmifusky.c                                 |    6 +-
 vimos/vmifusky.h                                 |    6 +-
 vimos/vmifusphotcalib.c                          |    6 +-
 vimos/vmifusphotcalib.h                          |    6 +-
 vimos/vmifutable.c                               |    6 +-
 vimos/vmifutable.h                               |    6 +-
 vimos/vmifutypes.c                               |    6 +-
 vimos/vmifutypes.h                               |    6 +-
 vimos/vmifuutils.c                               |    6 +-
 vimos/vmifuutils.h                               |    6 +-
 vimos/vmimage.c                                  |    6 +-
 vimos/vmimage.h                                  |    6 +-
 vimos/vmimagearray.c                             |    6 +-
 vimos/vmimagearray.h                             |    6 +-
 vimos/vmimageset.c                               |    6 +-
 vimos/vmimageset.h                               |    6 +-
 vimos/vmimgastrometry.c                          |    6 +-
 vimos/vmimgastrometry.h                          |    6 +-
 vimos/vmimgextraction.c                          |   10 +-
 vimos/vmimgextraction.h                          |    6 +-
 vimos/vmimgphotcalib.c                           |    6 +-
 vimos/vmimgphotcalib.h                           |    6 +-
 vimos/vmimgpreprocessing.c                       |    6 +-
 vimos/vmimgpreprocessing.h                       |    6 +-
 vimos/vmimgresampling.c                          |    6 +-
 vimos/vmimgresampling.h                          |    6 +-
 vimos/vmimgutils.c                               |    6 +-
 vimos/vmimgutils.h                               |    6 +-
 vimos/vmlinecatalog.c                            |    6 +-
 vimos/vmlinecatalog.h                            |    6 +-
 vimos/vmmath.c                                   |    6 +-
 vimos/vmmath.h                                   |    6 +-
 vimos/vmmatrix.c                                 |   10 +-
 vimos/vmmatrix.h                                 |    6 +-
 vimos/vmmosextraction.c                          |   36 +-
 vimos/vmmosextraction.h                          |    6 +-
 vimos/vmmosflat.c                                |    9 +-
 vimos/vmmosflat.h                                |    6 +-
 vimos/vmmosfringes.c                             |    6 +-
 vimos/vmmosfringes.h                             |    6 +-
 vimos/vmmosmodels.c                              |    6 +-
 vimos/vmmosmodels.h                              |    6 +-
 vimos/vmmossky.c                                 |    6 +-
 vimos/vmmossky.h                                 |    6 +-
 vimos/vmmossphotcalib.c                          |    6 +-
 vimos/vmmossphotcalib.h                          |    6 +-
 vimos/vmmosutils.c                               |    6 +-
 vimos/vmmosutils.h                               |    6 +-
 vimos/vmmoswavecalib.c                           |    6 +-
 vimos/vmmoswavecalib.h                           |    6 +-
 vimos/vmobjecttable.c                            |    6 +-
 vimos/vmobjecttable.h                            |    2 +-
 vimos/vmphotometrictable.c                       |    2 +-
 vimos/vmphotometrictable.h                       |    2 +-
 vimos/vmqcutils.c                                |    6 +-
 vimos/vmqcutils.h                                |    6 +-
 vimos/vmsextractor.c                             |    6 +-
 vimos/vmsextractor.h                             |    6 +-
 vimos/vmspecphottable.c                          |    6 +-
 vimos/vmspecphottable.h                          |    6 +-
 vimos/vmsphottable.c                             |    6 +-
 vimos/vmsphottable.h                             |    6 +-
 vimos/vmstarmatchtable.c                         |    6 +-
 vimos/vmstarmatchtable.h                         |    6 +-
 vimos/vmstartable.c                              |    6 +-
 vimos/vmstartable.h                              |    6 +-
 vimos/vmstdfluxtable.c                           |    6 +-
 vimos/vmstdfluxtable.h                           |    6 +-
 vimos/vmtable.c                                  |    6 +-
 vimos/vmtable.h                                  |    6 +-
 vimos/vmtablearray.c                             |    6 +-
 vimos/vmtablearray.h                             |    6 +-
 vimos/vmtypes.c                                  |    6 +-
 vimos/vmtypes.h                                  |    6 +-
 vimos/vmutils.c                                  |   12 +-
 vimos/vmutils.h                                  |   10 +-
 vimos/vmwcsutils.c                               |    6 +-
 vimos/vmwcsutils.h                               |    6 +-
 vimos/vmwindowtable.c                            |    6 +-
 vimos/vmwindowtable.h                            |    6 +-
 352 files changed, 8037 insertions(+), 6818 deletions(-)

diff --git a/Makefile.purify.in b/Makefile.purify.in
index d0084dd..03f2656 100644
--- a/Makefile.purify.in
+++ b/Makefile.purify.in
@@ -1,7 +1,7 @@
 #*******************************************************************************
 # E.S.O. - VLT project
 #
-# "@(#) $Id: Makefile.purify.in,v 1.1 2011/09/13 09:22:52 cgarcia Exp $"
+# "@(#) $Id: Makefile.purify.in,v 1.1 2011-09-13 09:22:52 cgarcia Exp $"
 #
 # Makefile of Pipeline subsystem.
 #
diff --git a/calib/dic/ESO-DFS-DIC.VIMOS_QC b/calib/dic/ESO-DFS-DIC.VIMOS_QC
index 1c0648e..dadac33 100644
--- a/calib/dic/ESO-DFS-DIC.VIMOS_QC
+++ b/calib/dic/ESO-DFS-DIC.VIMOS_QC
@@ -1,4 +1,4 @@
-# "$Id: ESO-DFS-DIC.VIMOS_QC,v 1.2 2011/10/28 11:29:23 cgarcia Exp $"
+# "$Id: ESO-DFS-DIC.VIMOS_QC,v 1.2 2011-10-28 11:29:23 cgarcia Exp $"
 # ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 # COPYRIGHT (c) 2002 European Southern Observatory (ESO)
 # LICENSE: GNU General Public License version 2 or later
@@ -13,13 +13,13 @@
 # DESCRIPTION:
 #   Data Interface Dictionary for VIMOS Quality control parameters.
 #
-# $Name: vimos-2_9_7 $
+# $Name: not supported by cvs2svn $
 # $Revision: 1.2 $
 #                            
 Dictionary Name:   ESO-DFS-DIC.VIMOS_QC
 Scope:             QC
 Source:            ESO DFS/DMD
-Version Control:   "@(#) $Id: ESO-DFS-DIC.VIMOS_QC,v 1.2 2011/10/28 11:29:23 cgarcia Exp $"
+Version Control:   "@(#) $Id: ESO-DFS-DIC.VIMOS_QC,v 1.2 2011-10-28 11:29:23 cgarcia Exp $"
 Revision:          1.1
 Date:              2003-09-17
 Status:            draft
diff --git a/calib/dic/ESO-VLT-DIC.VIMOS_DRS b/calib/dic/ESO-VLT-DIC.VIMOS_DRS
index a03a5a2..5becf83 100644
--- a/calib/dic/ESO-VLT-DIC.VIMOS_DRS
+++ b/calib/dic/ESO-VLT-DIC.VIMOS_DRS
@@ -1,11 +1,11 @@
 #
-#  "@(#) $Id: ESO-VLT-DIC.VIMOS_DRS,v 1.1 2012/09/26 12:47:51 cgarcia Exp $"
+#  "@(#) $Id: ESO-VLT-DIC.VIMOS_DRS,v 1.1 2012-09-26 12:47:51 cgarcia Exp $"
 #
 #
 Dictionary Name:   ESO-VLT-DIC.VIMOS_DRS
 Scope:             DFS
 Source:            bianca at ifctr.mi.cnr.it
-Date:              $Date: 2012/09/26 12:47:51 $
+Date:              $Date: 2012-09-26 12:47:51 $
 Version Control:   $Revision: 1.1 $
 Revision:          0.1
 Status:            Development
diff --git a/calib/dic/ESO-VLT-DIC.VIMOS_ICS b/calib/dic/ESO-VLT-DIC.VIMOS_ICS
index 4fc4138..153836c 100644
--- a/calib/dic/ESO-VLT-DIC.VIMOS_ICS
+++ b/calib/dic/ESO-VLT-DIC.VIMOS_ICS
@@ -1,12 +1,12 @@
 #
-#  "@(#) $Id: ESO-VLT-DIC.VIMOS_ICS,v 1.1 2012/09/26 12:47:51 cgarcia Exp $"
+#  "@(#) $Id: ESO-VLT-DIC.VIMOS_ICS,v 1.1 2012-09-26 12:47:51 cgarcia Exp $"
 #
 #
 Dictionary Name:   ESO-VLT-DIC.VIMOS_ICS
 Scope:             INSTRUMENT
 Source:            sylvie.brau-nogue at obs-mip.fr
-Date:              $Date: 2012/09/26 12:47:51 $
-Version Control:   $@(#) $Id: ESO-VLT-DIC.VIMOS_ICS,v 1.1 2012/09/26 12:47:51 cgarcia Exp $
+Date:              $Date: 2012-09-26 12:47:51 $
+Version Control:   $@(#) $Id: ESO-VLT-DIC.VIMOS_ICS,v 1.1 2012-09-26 12:47:51 cgarcia Exp $
 Revision:          $Revision: 1.1 $ 
 Status:            Development
 Description:       Based on GEN-SPE-ESO-19400-794, 1.0/8 
diff --git a/calib/dic/ESO-VLT-DIC.VIMOS_MPS b/calib/dic/ESO-VLT-DIC.VIMOS_MPS
index 662d8da..1d5cfaf 100644
--- a/calib/dic/ESO-VLT-DIC.VIMOS_MPS
+++ b/calib/dic/ESO-VLT-DIC.VIMOS_MPS
@@ -1,7 +1,7 @@
 #******************************************************************************
 # E.S.O. - VLT project
 #
-# "@(#) $Id: ESO-VLT-DIC.VIMOS_MPS,v 1.1 2012/09/26 12:47:51 cgarcia Exp $"
+# "@(#) $Id: ESO-VLT-DIC.VIMOS_MPS,v 1.1 2012-09-26 12:47:51 cgarcia Exp $"
 #******************************************************************************
 # 
 #   ESO-VLT-DIC.VIMOS-MPS - Data Interface Dictionary for VIMOS
diff --git a/calib/dic/ESO-VLT-DIC.VIMOS_OS b/calib/dic/ESO-VLT-DIC.VIMOS_OS
index 2b661bf..c42ec51 100644
--- a/calib/dic/ESO-VLT-DIC.VIMOS_OS
+++ b/calib/dic/ESO-VLT-DIC.VIMOS_OS
@@ -1,10 +1,10 @@
 #
-# "@(#) $Id: ESO-VLT-DIC.VIMOS_OS,v 1.1 2012/09/26 12:47:51 cgarcia Exp $"
+# "@(#) $Id: ESO-VLT-DIC.VIMOS_OS,v 1.1 2012-09-26 12:47:51 cgarcia Exp $"
 #
 Dictionary Name:   ESO-VLT-DIC.VIMOS_OS
 Scope:             OS
 Source:            marty at ira.bo.cnr.it
-Date:              $Date: 2012/09/26 12:47:51 $
+Date:              $Date: 2012-09-26 12:47:51 $
 Version Control:   $Revision: 1.1 $
 Revision:          0.2
 Status:            Development
diff --git a/calib/gasgano/config/VIMOS.prefs b/calib/gasgano/config/VIMOS.prefs
index 4cff734..b95d80b 100644
--- a/calib/gasgano/config/VIMOS.prefs
+++ b/calib/gasgano/config/VIMOS.prefs
@@ -53,7 +53,7 @@ PRINT_FONT=Monospaced:6
 PRINT_ORIENTATION=P
 RADEC_CONVERSION=true
 RB_EXTENSIONS=rb;rX;rY;rZ
-RECIPE_SET=vmbias=/home/quality/pipelines/vimos/lib/esopipes-plugins/vimos-2.9.7/vmbias.so;vmdark=/home/quality/pipelines/vimos/lib/esopipes-plugins/vimos-2.9.7/vmdark.so;vmdet=/home/quality/pipelines/vimos/lib/esopipes-plugins/vimos-2.9.7/vmdet.so;vmifucalib=/home/quality/pipelines/vimos/lib/esopipes-plugins/vimos-2.9.7/vmifucalib.so;vmifucombine=/home/quality/pipelines/vimos/lib/esopipes-plugins/vimos-2.9.7/vmifucombine.so;vmifuscience=/home/quality/pipelines/vimos/lib/esopipes-plugins [...]
+RECIPE_SET=vmbias=/home/quality/pipelines/vimos/lib/esopipes-plugins/vimos-2.9.9/vmbias.so;vmdark=/home/quality/pipelines/vimos/lib/esopipes-plugins/vimos-2.9.9/vmdark.so;vmdet=/home/quality/pipelines/vimos/lib/esopipes-plugins/vimos-2.9.9/vmdet.so;vmifucalib=/home/quality/pipelines/vimos/lib/esopipes-plugins/vimos-2.9.9/vmifucalib.so;vmifucombine=/home/quality/pipelines/vimos/lib/esopipes-plugins/vimos-2.9.9/vmifucombine.so;vmifuscience=/home/quality/pipelines/vimos/lib/esopipes-plugins [...]
 SCRIPTS_DIR=gas-scripts
 SHORTEN_FILES_PATH=false
 SHORT_FILENAME=true
diff --git a/calib/gasgano/config/vimos.oca b/calib/gasgano/config/vimos.oca
index 621efdf..eddabd9 100644
--- a/calib/gasgano/config/vimos.oca
+++ b/calib/gasgano/config/vimos.oca
@@ -475,7 +475,7 @@ select file as LINE_CATALOG from calibFiles where DO.CATG == "LINE_CATALOG"
    and inputFile.INS.GRIS2.ID?=INS.GRIS2.ID and inputFile.INS.GRIS3.ID?=INS.GRIS3.ID and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INS.GRIS1.ID?=INS.GRIS1.ID and inputFile.INS.GRIS4.ID?=INS.GRIS4.ID and inputFile.INSTRUME==INSTRUME;
 minRet = 1; maxRet = 1;
 select file as CONFIG_TABLE from calibFiles where DO.CATG == "CONFIG_TABLE"
-   and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS4.NAME?=INS.GRIS4.NAME and inputFile.INSTRUME==INSTRUME;
+   and inputFile.INS.GRIS2.ID?=INS.GRIS2.ID and inputFile.INS.GRIS3.ID?=INS.GRIS3.ID and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INS.GRIS1.ID?=INS.GRIS1.ID and inputFile.INS.GRIS4.ID?=INS.GRIS4.ID and inputFile.INSTRUME==INSTRUME;
   recipe vmmoscalib;
 }
 
@@ -498,10 +498,10 @@ select file as MOS_MASTER_SCREEN_FLAT from calibFiles where DO.CATG == "MOS_MAST
    and inputFile.INS.MSHU4.MODE?=INS.MSHU4.MODE and inputFile.DET.CHIP1.ID==DET.CHIP1.ID and inputFile.DET.WIN1.NY==DET.WIN1.NY and inputFile.INS.MSHU3.MODE?=INS.MSHU3.MODE and inputFile.INSTRUME==INSTRUME and inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.GRIS3.ID?=INS.GRIS3.ID and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME and inputFile.INS.GRIS1.ID?=INS.GRIS1.ID and inputFile.INS.MSHU2.MODE?=INS.MSHU2.MODE and inputFile.DET.NAME==DET. [...]
 minRet = 1; maxRet = 1;
 select file as GLOBAL_DISTORTION_TABLE from calibFiles where DO.CATG == "GLOBAL_DISTORTION_TABLE"
-   and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS4.NAME?=INS.GRIS4.NAME and inputFile.INSTRUME==INSTRUME;
+   and inputFile.INS.GRIS2.ID?=INS.GRIS2.ID and inputFile.INS.GRIS3.ID?=INS.GRIS3.ID and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INS.GRIS1.ID?=INS.GRIS1.ID and inputFile.INS.GRIS4.ID?=INS.GRIS4.ID and inputFile.INSTRUME==INSTRUME;
 minRet = 1; maxRet = 1;
 select file as CONFIG_TABLE from calibFiles where DO.CATG == "CONFIG_TABLE"
-   and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS4.NAME?=INS.GRIS4.NAME and inputFile.INSTRUME==INSTRUME;
+   and inputFile.INS.GRIS2.ID?=INS.GRIS2.ID and inputFile.INS.GRIS3.ID?=INS.GRIS3.ID and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INS.GRIS1.ID?=INS.GRIS1.ID and inputFile.INS.GRIS4.ID?=INS.GRIS4.ID and inputFile.INSTRUME==INSTRUME;
   recipe vmmosscience
   {
     "--flatfield=false";
@@ -719,10 +719,10 @@ select file as MOS_MASTER_SCREEN_FLAT from calibFiles where DO.CATG == "MOS_MAST
    and inputFile.INS.MSHU4.MODE?=INS.MSHU4.MODE and inputFile.DET.CHIP1.ID==DET.CHIP1.ID and inputFile.DET.WIN1.NY==DET.WIN1.NY and inputFile.INS.MSHU3.MODE?=INS.MSHU3.MODE and inputFile.INSTRUME==INSTRUME and inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.GRIS3.ID?=INS.GRIS3.ID and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME and inputFile.INS.GRIS1.ID?=INS.GRIS1.ID and inputFile.INS.MSHU2.MODE?=INS.MSHU2.MODE and inputFile.DET.NAME==DET. [...]
 minRet = 1; maxRet = 1;
 select file as GLOBAL_DISTORTION_TABLE from calibFiles where DO.CATG == "GLOBAL_DISTORTION_TABLE"
-   and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS4.NAME?=INS.GRIS4.NAME and inputFile.INSTRUME==INSTRUME;
+   and inputFile.INS.GRIS2.ID?=INS.GRIS2.ID and inputFile.INS.GRIS3.ID?=INS.GRIS3.ID and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INS.GRIS1.ID?=INS.GRIS1.ID and inputFile.INS.GRIS4.ID?=INS.GRIS4.ID and inputFile.INSTRUME==INSTRUME;
 minRet = 1; maxRet = 1;
 select file as CONFIG_TABLE from calibFiles where DO.CATG == "CONFIG_TABLE"
-   and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS4.NAME?=INS.GRIS4.NAME and inputFile.INSTRUME==INSTRUME;
+   and inputFile.INS.GRIS2.ID?=INS.GRIS2.ID and inputFile.INS.GRIS3.ID?=INS.GRIS3.ID and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INS.GRIS1.ID?=INS.GRIS1.ID and inputFile.INS.GRIS4.ID?=INS.GRIS4.ID and inputFile.INSTRUME==INSTRUME;
   recipe vmmosscience
   {
     "--flatfield=false";
diff --git a/configure b/configure
index 50b39f2..315cf5e 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for VIMOS Instrument Pipeline 2.9.7.
+# Generated by GNU Autoconf 2.69 for VIMOS Instrument Pipeline 2.9.9.
 #
 # Report bugs to <usd-help at eso.org>.
 #
@@ -590,8 +590,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='VIMOS Instrument Pipeline'
 PACKAGE_TARNAME='vimos'
-PACKAGE_VERSION='2.9.7'
-PACKAGE_STRING='VIMOS Instrument Pipeline 2.9.7'
+PACKAGE_VERSION='2.9.9'
+PACKAGE_STRING='VIMOS Instrument Pipeline 2.9.9'
 PACKAGE_BUGREPORT='usd-help at eso.org'
 PACKAGE_URL=''
 
@@ -1403,7 +1403,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures VIMOS Instrument Pipeline 2.9.7 to adapt to many kinds of systems.
+\`configure' configures VIMOS Instrument Pipeline 2.9.9 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1474,7 +1474,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of VIMOS Instrument Pipeline 2.9.7:";;
+     short | recursive ) echo "Configuration of VIMOS Instrument Pipeline 2.9.9:";;
    esac
   cat <<\_ACEOF
 
@@ -1606,7 +1606,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-VIMOS Instrument Pipeline configure 2.9.7
+VIMOS Instrument Pipeline configure 2.9.9
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2196,7 +2196,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by VIMOS Instrument Pipeline $as_me 2.9.7, which was
+It was created by VIMOS Instrument Pipeline $as_me 2.9.9, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3135,7 +3135,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='vimos'
- VERSION='2.9.7'
+ VERSION='2.9.9'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -19889,7 +19889,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by VIMOS Instrument Pipeline $as_me 2.9.7, which was
+This file was extended by VIMOS Instrument Pipeline $as_me 2.9.9, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -19955,7 +19955,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-VIMOS Instrument Pipeline config.status 2.9.7
+VIMOS Instrument Pipeline config.status 2.9.9
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index cac849d..bee116a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,6 +1,6 @@
 # Process this file with autoconf to produce a configure script.
 
-AC_INIT([VIMOS Instrument Pipeline], [2.9.7], [usd-help at eso.org], [vimos])
+AC_INIT([VIMOS Instrument Pipeline], [2.9.9], [usd-help at eso.org], [vimos])
 AC_PREREQ([2.59])
 
 AC_CONFIG_SRCDIR([Makefile.am])
diff --git a/external/libwcs/cel.c b/external/libwcs/cel.c
index 50aeec4..c8cd16e 100644
--- a/external/libwcs/cel.c
+++ b/external/libwcs/cel.c
@@ -231,7 +231,7 @@
 *      TSC: tangential spherical cube
 *
 *   Author: Mark Calabretta, Australia Telescope National Facility
-*   $Id: cel.c,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+*   $Id: cel.c,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
 *===========================================================================*/
 
 #include <math.h>
diff --git a/external/libwcs/lin.c b/external/libwcs/lin.c
index 6f4f694..b4a74eb 100644
--- a/external/libwcs/lin.c
+++ b/external/libwcs/lin.c
@@ -161,7 +161,7 @@
 *   leak will result.
 *
 *   Author: Mark Calabretta, Australia Telescope National Facility
-*   $Id: lin.c,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+*   $Id: lin.c,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
 *===========================================================================*/
 
 #include <math.h>
diff --git a/external/libwcs/proj.c b/external/libwcs/proj.c
index eab1a19..7cf7c56 100644
--- a/external/libwcs/proj.c
+++ b/external/libwcs/proj.c
@@ -189,7 +189,7 @@
 *   where the projection may diverge).
 *
 *   Author: Mark Calabretta, Australia Telescope National Facility
-*   $Id: proj.c,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+*   $Id: proj.c,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
 *===========================================================================*/
 
 #include <stdlib.h>
diff --git a/external/libwcs/sph.c b/external/libwcs/sph.c
index d0fe8e4..fcdcd67 100644
--- a/external/libwcs/sph.c
+++ b/external/libwcs/sph.c
@@ -86,7 +86,7 @@
 *                           0: Success.
 *
 *   Author: Mark Calabretta, Australia Telescope National Facility
-*   $Id: sph.c,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+*   $Id: sph.c,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
 *===========================================================================*/
 
 #include <math.h>
diff --git a/external/libwcs/vimoswcslib.c b/external/libwcs/vimoswcslib.c
index b80fb5d..b871184 100644
--- a/external/libwcs/vimoswcslib.c
+++ b/external/libwcs/vimoswcslib.c
@@ -375,7 +375,7 @@
 *      projections.
 *
 *   Author: Mark Calabretta, Australia Telescope National Facility
-*   $Id: vimoswcslib.c,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+*   $Id: vimoswcslib.c,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
 *===========================================================================*/
 
 #include <stdio.h>
diff --git a/external/libwcs/vimoswcslib.h b/external/libwcs/vimoswcslib.h
index ff74ab5..04edd62 100644
--- a/external/libwcs/vimoswcslib.h
+++ b/external/libwcs/vimoswcslib.h
@@ -29,7 +29,7 @@
 *                      AUSTRALIA
 *
 *   Author: Mark Calabretta, Australia Telescope National Facility
-*   $Id: vimoswcslib.h,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+*   $Id: vimoswcslib.h,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
 *===========================================================================*/
 
 #ifdef __cplusplus
diff --git a/external/libwcs/vimoswcstrig.c b/external/libwcs/vimoswcstrig.c
index a061807..7f718d0 100644
--- a/external/libwcs/vimoswcstrig.c
+++ b/external/libwcs/vimoswcstrig.c
@@ -30,7 +30,7 @@
 *   The functions defined herein are trigonometric or inverse trigonometric
 *   functions which take or return angular arguments in decimal degrees.
 *
-*   $Id: vimoswcstrig.c,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+*   $Id: vimoswcstrig.c,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
 *---------------------------------------------------------------------------*/
 
 #include <math.h>
diff --git a/external/sextractor/source/wcs/cel.c b/external/sextractor/source/wcs/cel.c
index 0ed4bf6..25eba51 100644
--- a/external/sextractor/source/wcs/cel.c
+++ b/external/sextractor/source/wcs/cel.c
@@ -231,7 +231,7 @@
 *      TSC: tangential spherical cube
 *
 *   Author: Mark Calabretta, Australia Telescope National Facility
-*   $Id: cel.c,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+*   $Id: cel.c,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
 *===========================================================================*/
 
 #include "cel.h"
diff --git a/external/sextractor/source/wcs/lin.c b/external/sextractor/source/wcs/lin.c
index 7100219..6a38b3a 100644
--- a/external/sextractor/source/wcs/lin.c
+++ b/external/sextractor/source/wcs/lin.c
@@ -138,7 +138,7 @@
 *   leak will result.
 *
 *   Author: Mark Calabretta, Australia Telescope National Facility
-*   $Id: lin.c,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+*   $Id: lin.c,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
 *===========================================================================*/
 
 #include <math.h>
diff --git a/external/sextractor/source/wcs/proj.c b/external/sextractor/source/wcs/proj.c
index 0418638..9a591a4 100644
--- a/external/sextractor/source/wcs/proj.c
+++ b/external/sextractor/source/wcs/proj.c
@@ -190,7 +190,7 @@
 *   of fitness for any purpose.
 *
 *   Author: Mark Calabretta, Australia Telescope National Facility
-*   $Id: proj.c,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+*   $Id: proj.c,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
 *===========================================================================*/
 
 #include "proj.h"
diff --git a/external/sextractor/source/wcs/sph.c b/external/sextractor/source/wcs/sph.c
index 0a8332b..f747926 100644
--- a/external/sextractor/source/wcs/sph.c
+++ b/external/sextractor/source/wcs/sph.c
@@ -86,7 +86,7 @@
 *                           0: Success.
 *
 *   Author: Mark Calabretta, Australia Telescope National Facility
-*   $Id: sph.c,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+*   $Id: sph.c,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
 *===========================================================================*/
 
 #include "wcstrig.h"
diff --git a/external/sextractor/source/wcs/tcel.c b/external/sextractor/source/wcs/tcel.c
index c33f3ce..dc684e9 100644
--- a/external/sextractor/source/wcs/tcel.c
+++ b/external/sextractor/source/wcs/tcel.c
@@ -30,7 +30,7 @@
 *   tcel tests the spherical projection driver routines supplied with WCSLIB
 *   by drawing native and celestial coordinate grids for Bonne's projection.
 *
-*   $Id: tcel.c,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+*   $Id: tcel.c,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
 *---------------------------------------------------------------------------*/
 
 #include <stdio.h>
diff --git a/external/sextractor/source/wcs/tlin.c b/external/sextractor/source/wcs/tlin.c
index 835f272..cfb00ae 100644
--- a/external/sextractor/source/wcs/tlin.c
+++ b/external/sextractor/source/wcs/tlin.c
@@ -29,7 +29,7 @@
 *
 *   tlin tests the linear transformation routines supplied with WCSLIB.
 *
-*   $Id: tlin.c,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+*   $Id: tlin.c,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
 *---------------------------------------------------------------------------*/
 
 #include <stdio.h>
diff --git a/external/sextractor/source/wcs/tpgc.c b/external/sextractor/source/wcs/tpgc.c
index 9cac336..7c6d91f 100644
--- a/external/sextractor/source/wcs/tpgc.c
+++ b/external/sextractor/source/wcs/tpgc.c
@@ -31,7 +31,7 @@
 * These are provided to allow call-by-value semantics particularly in relation
 * to the use of constant arguments.
 *
-* $Id: tpgc.c,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+* $Id: tpgc.c,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
 *---------------------------------------------------------------------------*/
 
 void pgbeg (unit, file, nxsub, nysub)
diff --git a/external/sextractor/source/wcs/wcs.c b/external/sextractor/source/wcs/wcs.c
index 5cd86e3..82949ca 100644
--- a/external/sextractor/source/wcs/wcs.c
+++ b/external/sextractor/source/wcs/wcs.c
@@ -347,7 +347,7 @@
 *      projections.
 *
 *   Author: Mark Calabretta, Australia Telescope National Facility
-*   $Id: wcs.c,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+*   $Id: wcs.c,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
 *===========================================================================*/
 
 #include "stdio.h"
diff --git a/external/sextractor/source/wcs/wcs_ori/Makefile b/external/sextractor/source/wcs/wcs_ori/Makefile
index 155e479..16dcea7 100644
--- a/external/sextractor/source/wcs/wcs_ori/Makefile
+++ b/external/sextractor/source/wcs/wcs_ori/Makefile
@@ -40,7 +40,7 @@
 #
 #       Likewise, the SGI compiler doesn't have the IEEE signbit() function.
 #
-# $Id: Makefile,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+# $Id: Makefile,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
 #-----------------------------------------------------------------------------
 # C compiler and options.
   CC := cc
diff --git a/external/sextractor/source/wcs/wcs_ori/README b/external/sextractor/source/wcs/wcs_ori/README
index b911be3..4f1ee5e 100644
--- a/external/sextractor/source/wcs/wcs_ori/README
+++ b/external/sextractor/source/wcs/wcs_ori/README
@@ -162,4 +162,4 @@ Author
 Mark Calabretta, Australia Telescope National Facility
 mcalabre at atnf.csiro.au
 
-$Id: README,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+$Id: README,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
diff --git a/external/sextractor/source/wcs/wcs_ori/cel.c b/external/sextractor/source/wcs/wcs_ori/cel.c
index 62eaede..ba4234c 100644
--- a/external/sextractor/source/wcs/wcs_ori/cel.c
+++ b/external/sextractor/source/wcs/wcs_ori/cel.c
@@ -231,7 +231,7 @@
 *      TSC: tangential spherical cube
 *
 *   Author: Mark Calabretta, Australia Telescope National Facility
-*   $Id: cel.c,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+*   $Id: cel.c,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
 *===========================================================================*/
 
 #include "cel.h"
diff --git a/external/sextractor/source/wcs/wcs_ori/lin.c b/external/sextractor/source/wcs/wcs_ori/lin.c
index 7100219..6a38b3a 100644
--- a/external/sextractor/source/wcs/wcs_ori/lin.c
+++ b/external/sextractor/source/wcs/wcs_ori/lin.c
@@ -138,7 +138,7 @@
 *   leak will result.
 *
 *   Author: Mark Calabretta, Australia Telescope National Facility
-*   $Id: lin.c,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+*   $Id: lin.c,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
 *===========================================================================*/
 
 #include <math.h>
diff --git a/external/sextractor/source/wcs/wcs_ori/proj.c b/external/sextractor/source/wcs/wcs_ori/proj.c
index e2e5d1a..d735029 100644
--- a/external/sextractor/source/wcs/wcs_ori/proj.c
+++ b/external/sextractor/source/wcs/wcs_ori/proj.c
@@ -190,7 +190,7 @@
 *   of fitness for any purpose.
 *
 *   Author: Mark Calabretta, Australia Telescope National Facility
-*   $Id: proj.c,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+*   $Id: proj.c,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
 *===========================================================================*/
 
 #include "proj.h"
diff --git a/external/sextractor/source/wcs/wcs_ori/sph.c b/external/sextractor/source/wcs/wcs_ori/sph.c
index a0ef05d..54b1d86 100644
--- a/external/sextractor/source/wcs/wcs_ori/sph.c
+++ b/external/sextractor/source/wcs/wcs_ori/sph.c
@@ -86,7 +86,7 @@
 *                           0: Success.
 *
 *   Author: Mark Calabretta, Australia Telescope National Facility
-*   $Id: sph.c,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+*   $Id: sph.c,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
 *===========================================================================*/
 
 #include "wcstrig.h"
diff --git a/external/sextractor/source/wcs/wcs_ori/tcel.c b/external/sextractor/source/wcs/wcs_ori/tcel.c
index c33f3ce..dc684e9 100644
--- a/external/sextractor/source/wcs/wcs_ori/tcel.c
+++ b/external/sextractor/source/wcs/wcs_ori/tcel.c
@@ -30,7 +30,7 @@
 *   tcel tests the spherical projection driver routines supplied with WCSLIB
 *   by drawing native and celestial coordinate grids for Bonne's projection.
 *
-*   $Id: tcel.c,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+*   $Id: tcel.c,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
 *---------------------------------------------------------------------------*/
 
 #include <stdio.h>
diff --git a/external/sextractor/source/wcs/wcs_ori/tlin.c b/external/sextractor/source/wcs/wcs_ori/tlin.c
index 835f272..cfb00ae 100644
--- a/external/sextractor/source/wcs/wcs_ori/tlin.c
+++ b/external/sextractor/source/wcs/wcs_ori/tlin.c
@@ -29,7 +29,7 @@
 *
 *   tlin tests the linear transformation routines supplied with WCSLIB.
 *
-*   $Id: tlin.c,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+*   $Id: tlin.c,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
 *---------------------------------------------------------------------------*/
 
 #include <stdio.h>
diff --git a/external/sextractor/source/wcs/wcs_ori/tpgc.c b/external/sextractor/source/wcs/wcs_ori/tpgc.c
index 9cac336..7c6d91f 100644
--- a/external/sextractor/source/wcs/wcs_ori/tpgc.c
+++ b/external/sextractor/source/wcs/wcs_ori/tpgc.c
@@ -31,7 +31,7 @@
 * These are provided to allow call-by-value semantics particularly in relation
 * to the use of constant arguments.
 *
-* $Id: tpgc.c,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+* $Id: tpgc.c,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
 *---------------------------------------------------------------------------*/
 
 void pgbeg (unit, file, nxsub, nysub)
diff --git a/external/sextractor/source/wcs/wcs_ori/tproj1.c b/external/sextractor/source/wcs/wcs_ori/tproj1.c
index ac605d6..4d499b8 100644
--- a/external/sextractor/source/wcs/wcs_ori/tproj1.c
+++ b/external/sextractor/source/wcs/wcs_ori/tproj1.c
@@ -29,7 +29,7 @@
 *
 *   tproj1 tests forward and reverse spherical projections for closure.
 *
-*   $Id: tproj1.c,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+*   $Id: tproj1.c,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
 *---------------------------------------------------------------------------*/
 
 #include <stdio.h>
diff --git a/external/sextractor/source/wcs/wcs_ori/tproj2.c b/external/sextractor/source/wcs/wcs_ori/tproj2.c
index e78670c..224d563 100644
--- a/external/sextractor/source/wcs/wcs_ori/tproj2.c
+++ b/external/sextractor/source/wcs/wcs_ori/tproj2.c
@@ -29,7 +29,7 @@
 *
 *   tproj2 tests projection routines by plotting test grids using PGPLOT.
 *
-*   $Id: tproj2.c,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+*   $Id: tproj2.c,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
 *---------------------------------------------------------------------------*/
 
 #include <stdio.h>
diff --git a/external/sextractor/source/wcs/wcs_ori/tsph.c b/external/sextractor/source/wcs/wcs_ori/tsph.c
index 6bff183..7636a50 100644
--- a/external/sextractor/source/wcs/wcs_ori/tsph.c
+++ b/external/sextractor/source/wcs/wcs_ori/tsph.c
@@ -30,7 +30,7 @@
 *   tsph tests the forward and reverse spherical coordinate transformation
 *   routines for closure.
 *
-*   $Id: tsph.c,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+*   $Id: tsph.c,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
 *---------------------------------------------------------------------------*/
 
 #include <stdio.h>
diff --git a/external/sextractor/source/wcs/wcs_ori/twcs1.c b/external/sextractor/source/wcs/wcs_ori/twcs1.c
index f9ecf73..37f0ebd 100644
--- a/external/sextractor/source/wcs/wcs_ori/twcs1.c
+++ b/external/sextractor/source/wcs/wcs_ori/twcs1.c
@@ -30,7 +30,7 @@
 *   twcs1 tests wcsfwd() and wcsrev() for closure on the 1 degree celestial
 *   grid for a number of selected projections.
 *
-*   $Id: twcs1.c,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+*   $Id: twcs1.c,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
 *---------------------------------------------------------------------------*/
 
 #include <stdio.h>
diff --git a/external/sextractor/source/wcs/wcs_ori/twcs2.c b/external/sextractor/source/wcs/wcs_ori/twcs2.c
index cc10775..daddafa 100644
--- a/external/sextractor/source/wcs/wcs_ori/twcs2.c
+++ b/external/sextractor/source/wcs/wcs_ori/twcs2.c
@@ -32,7 +32,7 @@
 *   with a white dot on a graphical display of the projection while bad
 *   solutions are flagged with a red circle.
 *
-*   $Id: twcs2.c,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+*   $Id: twcs2.c,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
 *---------------------------------------------------------------------------*/
 
 #include <stdio.h>
diff --git a/external/sextractor/source/wcs/wcs_ori/wcs.c b/external/sextractor/source/wcs/wcs_ori/wcs.c
index 208b808..4216aa7 100644
--- a/external/sextractor/source/wcs/wcs_ori/wcs.c
+++ b/external/sextractor/source/wcs/wcs_ori/wcs.c
@@ -347,7 +347,7 @@
 *      projections.
 *
 *   Author: Mark Calabretta, Australia Telescope National Facility
-*   $Id: wcs.c,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+*   $Id: wcs.c,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
 *===========================================================================*/
 
 #include "wcs.h"
diff --git a/external/sextractor/source/wcs/wcs_ori/wcstrig.c b/external/sextractor/source/wcs/wcs_ori/wcstrig.c
index 2d5d0b5..d880609 100644
--- a/external/sextractor/source/wcs/wcs_ori/wcstrig.c
+++ b/external/sextractor/source/wcs/wcs_ori/wcstrig.c
@@ -30,7 +30,7 @@
 *   The functions defined herein are trigonometric or inverse trigonometric
 *   functions which take or return angular arguments in decimal degrees.
 *
-*   $Id: wcstrig.c,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+*   $Id: wcstrig.c,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
 *---------------------------------------------------------------------------*/
 
 #include "wcstrig.h"
diff --git a/external/sextractor/source/wcs/wcstrig.c b/external/sextractor/source/wcs/wcstrig.c
index e177564..d936cc6 100644
--- a/external/sextractor/source/wcs/wcstrig.c
+++ b/external/sextractor/source/wcs/wcstrig.c
@@ -30,7 +30,7 @@
 *   The functions defined herein are trigonometric or inverse trigonometric
 *   functions which take or return angular arguments in decimal degrees.
 *
-*   $Id: wcstrig.c,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+*   $Id: wcstrig.c,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
 *---------------------------------------------------------------------------*/
 
 #include "wcstrig.h"
diff --git a/html/dir_112173a6bb70e9f5e6440378f5599b04.html b/html/dir_112173a6bb70e9f5e6440378f5599b04.html
index 9f6670f..c702cf9 100644
--- a/html/dir_112173a6bb70e9f5e6440378f5599b04.html
+++ b/html/dir_112173a6bb70e9f5e6440378f5599b04.html
@@ -18,7 +18,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">VIMOS DRS Reference Manual
-    <span id="projectnumber">2.9.7</span>
+    <span id="projectnumber">2.9.9</span>
    </div>
   </td>
  </tr>
diff --git a/html/group__VimosImageArray.html b/html/group__VimosImageArray.html
index 4b81574..f5d7982 100644
--- a/html/group__VimosImageArray.html
+++ b/html/group__VimosImageArray.html
@@ -18,7 +18,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">VIMOS DRS Reference Manual
-    <span id="projectnumber">2.9.7</span>
+    <span id="projectnumber">2.9.9</span>
    </div>
   </td>
  </tr>
diff --git a/html/group__forsPaf.html b/html/group__forsPaf.html
index 18742ec..ac2ac37 100644
--- a/html/group__forsPaf.html
+++ b/html/group__forsPaf.html
@@ -18,7 +18,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">VIMOS DRS Reference Manual
-    <span id="projectnumber">2.9.7</span>
+    <span id="projectnumber">2.9.9</span>
    </div>
   </td>
  </tr>
diff --git a/html/group__fors__tools.html b/html/group__fors__tools.html
index 66b280a..3599d24 100644
--- a/html/group__fors__tools.html
+++ b/html/group__fors__tools.html
@@ -18,7 +18,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">VIMOS DRS Reference Manual
-    <span id="projectnumber">2.9.7</span>
+    <span id="projectnumber">2.9.9</span>
    </div>
   </td>
  </tr>
diff --git a/html/group__forsdfs.html b/html/group__forsdfs.html
index c6ba49d..2807363 100644
--- a/html/group__forsdfs.html
+++ b/html/group__forsdfs.html
@@ -18,7 +18,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">VIMOS DRS Reference Manual
-    <span id="projectnumber">2.9.7</span>
+    <span id="projectnumber">2.9.9</span>
    </div>
   </td>
  </tr>
@@ -79,9 +79,6 @@ Functions</h2></td></tr>
 <tr class="memitem:gaf327994c9f97caba177eef18692b1824"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__forsdfs.html#gaf327994c9f97caba177eef18692b1824">dfs_save_table</a> (cpl_frameset *frameset, const cpl_table *table, const char *category, cpl_propertylist *header, const cpl_parameterlist *parlist, const char *recipename, const char *version)</td></tr>
 <tr class="memdesc:gaf327994c9f97caba177eef18692b1824"><td class="mdescLeft"> </td><td class="mdescRight">Saving table data of given category.  <a href="#gaf327994c9f97caba177eef18692b1824">More...</a><br/></td></tr>
 <tr class="separator:gaf327994c9f97caba177eef18692b1824"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga0f3cd02c4a410bb2c31e0976c542d399"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__forsdfs.html#ga0f3cd02c4a410bb2c31e0976c542d399">dfs_files_dont_exist</a> (cpl_frameset *frameset)</td></tr>
-<tr class="memdesc:ga0f3cd02c4a410bb2c31e0976c542d399"><td class="mdescLeft"> </td><td class="mdescRight">Check if all SOF files exist.  <a href="#ga0f3cd02c4a410bb2c31e0976c542d399">More...</a><br/></td></tr>
-<tr class="separator:ga0f3cd02c4a410bb2c31e0976c542d399"><td class="memSeparator" colspan="2"> </td></tr>
 <tr class="memitem:gae17908f224eaaa5696f0dc084a964435"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__forsdfs.html#gae17908f224eaaa5696f0dc084a964435">dfs_equal_keyword</a> (cpl_frameset *frameset, const char *keyword)</td></tr>
 <tr class="memdesc:gae17908f224eaaa5696f0dc084a964435"><td class="mdescLeft"> </td><td class="mdescRight">Saving table data of given category.  <a href="#gae17908f224eaaa5696f0dc084a964435">More...</a><br/></td></tr>
 <tr class="separator:gae17908f224eaaa5696f0dc084a964435"><td class="memSeparator" colspan="2"> </td></tr>
@@ -135,31 +132,6 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="ga0f3cd02c4a410bb2c31e0976c542d399"></a>
-<div class="memitem">
-<div class="memproto">
-      <table class="memname">
-        <tr>
-          <td class="memname">int dfs_files_dont_exist </td>
-          <td>(</td>
-          <td class="paramtype">cpl_frameset * </td>
-          <td class="paramname"><em>frameset</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-</div><div class="memdoc">
-
-<p>Check if all SOF files exist. </p>
-<dl class="params"><dt>Parameters</dt><dd>
-  <table class="params">
-    <tr><td class="paramname">frameset</td><td>The input set-of-frames</td></tr>
-  </table>
-  </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>1 if not all files exist, 0 if they all exist. </dd></dl>
-
-</div>
-</div>
 <a class="anchor" id="ga48768c59ba1e2bf1776ad4770ab09fbb"></a>
 <div class="memitem">
 <div class="memproto">
diff --git a/html/group__forsqc.html b/html/group__forsqc.html
index 2ae9022..509cf91 100644
--- a/html/group__forsqc.html
+++ b/html/group__forsqc.html
@@ -18,7 +18,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">VIMOS DRS Reference Manual
-    <span id="projectnumber">2.9.7</span>
+    <span id="projectnumber">2.9.9</span>
    </div>
   </td>
  </tr>
diff --git a/html/group__moses.html b/html/group__moses.html
index 07ebaba..306df50 100644
--- a/html/group__moses.html
+++ b/html/group__moses.html
@@ -18,7 +18,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">VIMOS DRS Reference Manual
-    <span id="projectnumber">2.9.7</span>
+    <span id="projectnumber">2.9.9</span>
    </div>
   </td>
  </tr>
diff --git a/html/group__vimos__calib__impl.html b/html/group__vimos__calib__impl.html
index 1f203e4..1cdae3f 100644
--- a/html/group__vimos__calib__impl.html
+++ b/html/group__vimos__calib__impl.html
@@ -18,7 +18,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">VIMOS DRS Reference Manual
-    <span id="projectnumber">2.9.7</span>
+    <span id="projectnumber">2.9.9</span>
    </div>
   </td>
  </tr>
diff --git a/html/group__vimos__calib__mult.html b/html/group__vimos__calib__mult.html
index 64ad2fa..c39882a 100644
--- a/html/group__vimos__calib__mult.html
+++ b/html/group__vimos__calib__mult.html
@@ -18,7 +18,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">VIMOS DRS Reference Manual
-    <span id="projectnumber">2.9.7</span>
+    <span id="projectnumber">2.9.9</span>
    </div>
   </td>
  </tr>
diff --git a/html/group__vimos__science__impl.html b/html/group__vimos__science__impl.html
index 9877c4f..8ad2226 100644
--- a/html/group__vimos__science__impl.html
+++ b/html/group__vimos__science__impl.html
@@ -18,7 +18,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">VIMOS DRS Reference Manual
-    <span id="projectnumber">2.9.7</span>
+    <span id="projectnumber">2.9.9</span>
    </div>
   </td>
  </tr>
diff --git a/html/group__vmcpl.html b/html/group__vmcpl.html
index 0045f58..8eeab36 100644
--- a/html/group__vmcpl.html
+++ b/html/group__vmcpl.html
@@ -18,7 +18,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">VIMOS DRS Reference Manual
-    <span id="projectnumber">2.9.7</span>
+    <span id="projectnumber">2.9.9</span>
    </div>
   </td>
  </tr>
@@ -68,9 +68,9 @@ Functions</h2></td></tr>
 <tr class="memitem:ga13543b342969ae3aacc5fd926105a96d"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__vmcpl.html#ga13543b342969ae3aacc5fd926105a96d">vmCplRecipeStop</a> (void)</td></tr>
 <tr class="memdesc:ga13543b342969ae3aacc5fd926105a96d"><td class="mdescLeft"> </td><td class="mdescRight">Shutdown the VIMOS recipe subsystems.  <a href="#ga13543b342969ae3aacc5fd926105a96d">More...</a><br/></td></tr>
 <tr class="separator:ga13543b342969ae3aacc5fd926105a96d"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:ga5977f010336596911a1ee7dccb20bded"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__vmcpl.html#ga5977f010336596911a1ee7dccb20bded">vmCplPostProcessFrames</a> (PilSetOfFrames *sof, char *recipename)</td></tr>
-<tr class="memdesc:ga5977f010336596911a1ee7dccb20bded"><td class="mdescLeft"> </td><td class="mdescRight">Apply post processing steps to all frames in a set of frames.  <a href="#ga5977f010336596911a1ee7dccb20bded">More...</a><br/></td></tr>
-<tr class="separator:ga5977f010336596911a1ee7dccb20bded"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ga55ed826abea1c0b71f532a0c291713c2"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__vmcpl.html#ga55ed826abea1c0b71f532a0c291713c2">vmCplPostProcessFrames</a> (PilSetOfFrames *sof, const char *recipename)</td></tr>
+<tr class="memdesc:ga55ed826abea1c0b71f532a0c291713c2"><td class="mdescLeft"> </td><td class="mdescRight">Apply post processing steps to all frames in a set of frames.  <a href="#ga55ed826abea1c0b71f532a0c291713c2">More...</a><br/></td></tr>
+<tr class="separator:ga55ed826abea1c0b71f532a0c291713c2"><td class="memSeparator" colspan="2"> </td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <p>This module provides the necessary adaptor functionality in order to execute data reduction tasks using the CPL recipe interface. </p>
@@ -205,7 +205,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a class="anchor" id="ga5977f010336596911a1ee7dccb20bded"></a>
+<a class="anchor" id="ga55ed826abea1c0b71f532a0c291713c2"></a>
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
@@ -218,7 +218,7 @@ Functions</h2></td></tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">char * </td>
+          <td class="paramtype">const char * </td>
           <td class="paramname"><em>recipename</em> </td>
         </tr>
         <tr>
diff --git a/html/group__vmimage.html b/html/group__vmimage.html
index 495bd60..ff5eb1a 100644
--- a/html/group__vmimage.html
+++ b/html/group__vmimage.html
@@ -18,7 +18,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">VIMOS DRS Reference Manual
-    <span id="projectnumber">2.9.7</span>
+    <span id="projectnumber">2.9.9</span>
    </div>
   </td>
  </tr>
diff --git a/html/group__vmimgastrometry.html b/html/group__vmimgastrometry.html
index d720bd3..f26bf55 100644
--- a/html/group__vmimgastrometry.html
+++ b/html/group__vmimgastrometry.html
@@ -18,7 +18,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">VIMOS DRS Reference Manual
-    <span id="projectnumber">2.9.7</span>
+    <span id="projectnumber">2.9.9</span>
    </div>
   </td>
  </tr>
diff --git a/html/group__vmtablearray.html b/html/group__vmtablearray.html
index 3f57285..c2e7ceb 100644
--- a/html/group__vmtablearray.html
+++ b/html/group__vmtablearray.html
@@ -18,7 +18,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">VIMOS DRS Reference Manual
-    <span id="projectnumber">2.9.7</span>
+    <span id="projectnumber">2.9.9</span>
    </div>
   </td>
  </tr>
diff --git a/html/index.html b/html/index.html
index d79e686..edb88ba 100644
--- a/html/index.html
+++ b/html/index.html
@@ -18,7 +18,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">VIMOS DRS Reference Manual
-    <span id="projectnumber">2.9.7</span>
+    <span id="projectnumber">2.9.9</span>
    </div>
   </td>
  </tr>
diff --git a/html/modules.html b/html/modules.html
index d035a3c..b80a10d 100644
--- a/html/modules.html
+++ b/html/modules.html
@@ -18,7 +18,7 @@
  <tr style="height: 56px;">
   <td style="padding-left: 0.5em;">
    <div id="projectname">VIMOS DRS Reference Manual
-    <span id="projectnumber">2.9.7</span>
+    <span id="projectnumber">2.9.9</span>
    </div>
   </td>
  </tr>
diff --git a/irplib/irplib_calib.c b/irplib/irplib_calib.c
index 90f5e60..00ade1d 100644
--- a/irplib/irplib_calib.c
+++ b/irplib/irplib_calib.c
@@ -1,4 +1,4 @@
-/* $Id: irplib_calib.c,v 1.19 2013/03/01 10:26:22 llundin Exp $
+/* $Id: irplib_calib.c,v 1.19 2013-03-01 10:26:22 llundin Exp $
  *
  * This file is part of the irplib package
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: llundin $
- * $Date: 2013/03/01 10:26:22 $
+ * $Date: 2013-03-01 10:26:22 $
  * $Revision: 1.19 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/irplib/irplib_calib.h b/irplib/irplib_calib.h
index 95102b1..e889751 100644
--- a/irplib/irplib_calib.h
+++ b/irplib/irplib_calib.h
@@ -1,4 +1,4 @@
-/* $Id: irplib_calib.h,v 1.8 2007/02/12 10:34:51 amodigli Exp $
+/* $Id: irplib_calib.h,v 1.8 2007-02-12 10:34:51 amodigli Exp $
  *
  * This file is part of the irplib package
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: amodigli $
- * $Date: 2007/02/12 10:34:51 $
+ * $Date: 2007-02-12 10:34:51 $
  * $Revision: 1.8 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef IRPLIB_CALIB_H
diff --git a/irplib/irplib_cat.c b/irplib/irplib_cat.c
index 54667d3..16e6a32 100644
--- a/irplib/irplib_cat.c
+++ b/irplib/irplib_cat.c
@@ -1,4 +1,4 @@
-/* $Id: irplib_cat.c,v 1.10 2009/12/01 12:34:25 cgarcia Exp $
+/* $Id: irplib_cat.c,v 1.10 2009-12-01 12:34:25 cgarcia Exp $
  *
  * This file is part of the irplib package
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2009/12/01 12:34:25 $
+ * $Date: 2009-12-01 12:34:25 $
  * $Revision: 1.10 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/irplib/irplib_cat.h b/irplib/irplib_cat.h
index 77143e0..314aef6 100644
--- a/irplib/irplib_cat.h
+++ b/irplib/irplib_cat.h
@@ -1,4 +1,4 @@
-/* $Id: irplib_cat.h,v 1.5 2009/12/16 14:49:52 cgarcia Exp $
+/* $Id: irplib_cat.h,v 1.5 2009-12-16 14:49:52 cgarcia Exp $
  *
  * This file is part of the irplib package
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2009/12/16 14:49:52 $
+ * $Date: 2009-12-16 14:49:52 $
  * $Revision: 1.5 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef IRPLIB_CAT_H
diff --git a/irplib/irplib_distortion.c b/irplib/irplib_distortion.c
index 1a3e6ec..02a53dc 100644
--- a/irplib/irplib_distortion.c
+++ b/irplib/irplib_distortion.c
@@ -1,4 +1,4 @@
-/* $Id: irplib_distortion.c,v 1.52 2013/01/29 08:43:33 jtaylor Exp $
+/* $Id: irplib_distortion.c,v 1.52 2013-01-29 08:43:33 jtaylor Exp $
  *
  * This file is part of the irplib package
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: jtaylor $
- * $Date: 2013/01/29 08:43:33 $
+ * $Date: 2013-01-29 08:43:33 $
  * $Revision: 1.52 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/irplib/irplib_distortion.h b/irplib/irplib_distortion.h
index 079d02f..69076dd 100644
--- a/irplib/irplib_distortion.h
+++ b/irplib/irplib_distortion.h
@@ -1,4 +1,4 @@
-/* $Id: irplib_distortion.h,v 1.6 2013/01/29 08:43:33 jtaylor Exp $
+/* $Id: irplib_distortion.h,v 1.6 2013-01-29 08:43:33 jtaylor Exp $
  *
  * This file is part of the irplib package
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: jtaylor $
- * $Date: 2013/01/29 08:43:33 $
+ * $Date: 2013-01-29 08:43:33 $
  * $Revision: 1.6 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef IRPLIB_DISTORTION_H
diff --git a/irplib/irplib_flat.c b/irplib/irplib_flat.c
index b5d0454..4b83bc8 100644
--- a/irplib/irplib_flat.c
+++ b/irplib/irplib_flat.c
@@ -1,4 +1,4 @@
-/* $Id: irplib_flat.c,v 1.15 2007/08/07 12:15:41 llundin Exp $
+/* $Id: irplib_flat.c,v 1.15 2007-08-07 12:15:41 llundin Exp $
  *
  * This file is part of the irplib package
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: llundin $
- * $Date: 2007/08/07 12:15:41 $
+ * $Date: 2007-08-07 12:15:41 $
  * $Revision: 1.15 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/irplib/irplib_flat.h b/irplib/irplib_flat.h
index eeead11..bc8c450 100644
--- a/irplib/irplib_flat.h
+++ b/irplib/irplib_flat.h
@@ -1,4 +1,4 @@
-/* $Id: irplib_flat.h,v 1.4 2005/09/15 11:47:16 llundin Exp $
+/* $Id: irplib_flat.h,v 1.4 2005-09-15 11:47:16 llundin Exp $
  *
  * This file is part of the irplib package
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: llundin $
- * $Date: 2005/09/15 11:47:16 $
+ * $Date: 2005-09-15 11:47:16 $
  * $Revision: 1.4 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef IRPLIB_FLAT_H
diff --git a/irplib/irplib_framelist.c b/irplib/irplib_framelist.c
index 171164a..fb0c2b4 100644
--- a/irplib/irplib_framelist.c
+++ b/irplib/irplib_framelist.c
@@ -1,4 +1,4 @@
-/* $Id: irplib_framelist.c,v 1.30 2013/02/27 16:05:13 jtaylor Exp $
+/* $Id: irplib_framelist.c,v 1.30 2013-02-27 16:05:13 jtaylor Exp $
  *
  * This file is part of the irplib package 
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: jtaylor $
- * $Date: 2013/02/27 16:05:13 $
+ * $Date: 2013-02-27 16:05:13 $
  * $Revision: 1.30 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 
diff --git a/irplib/irplib_framelist.h b/irplib/irplib_framelist.h
index 7bbd375..b61ad0b 100644
--- a/irplib/irplib_framelist.h
+++ b/irplib/irplib_framelist.h
@@ -1,4 +1,4 @@
-/* $Id: irplib_framelist.h,v 1.8 2008/11/20 10:24:47 llundin Exp $
+/* $Id: irplib_framelist.h,v 1.8 2008-11-20 10:24:47 llundin Exp $
  *
  * This file is part of the irplib package 
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: llundin $
- * $Date: 2008/11/20 10:24:47 $
+ * $Date: 2008-11-20 10:24:47 $
  * $Revision: 1.8 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef IRPLIB_FRAMELIST_H
diff --git a/irplib/irplib_hist.c b/irplib/irplib_hist.c
index 88ee684..1f480df 100644
--- a/irplib/irplib_hist.c
+++ b/irplib/irplib_hist.c
@@ -20,11 +20,11 @@
  */
 
 /*
- * $Author: kmirny $
- * $Id: irplib_hist.c,v 1.7 2009/10/15 14:02:18 kmirny Exp $
- * $Date: 2009/10/15 14:02:18 $
- * $Revision: 1.7 $
- * $Name: vimos-2_9_7 $
+ * $Author: jtaylor $
+ * $Id: irplib_hist.c,v 1.8 2013-07-04 12:10:12 jtaylor Exp $
+ * $Date: 2013-07-04 12:10:12 $
+ * $Revision: 1.8 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -218,7 +218,7 @@ irplib_hist_fill(irplib_hist     * hist,
     for (i = 0; i < nsamples; i++)
     {
     	int pos = 0;
-    	if(bpm_data && bpm_data[i] == CPL_BINARY_1)
+        if(bpm_data && bpm_data[i] != CPL_BINARY_0)
     	{
     		continue;
     	}
diff --git a/irplib/irplib_hist.h b/irplib/irplib_hist.h
index bfebbf7..08c7d00 100644
--- a/irplib/irplib_hist.h
+++ b/irplib/irplib_hist.h
@@ -1,4 +1,4 @@
-/* $Id: irplib_hist.h,v 1.3 2007/09/07 14:23:50 lbilbao Exp $
+/* $Id: irplib_hist.h,v 1.3 2007-09-07 14:23:50 lbilbao Exp $
  *
  * This file is part of the irplib package
  * Copyright (C) 2002, 2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: lbilbao $
- * $Date: 2007/09/07 14:23:50 $
+ * $Date: 2007-09-07 14:23:50 $
  * $Revision: 1.3 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef IRPLIB_HIST_H
diff --git a/irplib/irplib_ksigma_clip.c b/irplib/irplib_ksigma_clip.c
index 71b6866..8fd696d 100644
--- a/irplib/irplib_ksigma_clip.c
+++ b/irplib/irplib_ksigma_clip.c
@@ -1,4 +1,4 @@
-/* $Id: irplib_ksigma_clip.c,v 1.1 2011/11/02 13:18:28 amodigli Exp $
+/* $Id: irplib_ksigma_clip.c,v 1.1 2011-11-02 13:18:28 amodigli Exp $
  *
  * This file is part of the irplib package
  * Copyright (C) 2002, 2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: amodigli $
- * $Date: 2011/11/02 13:18:28 $
+ * $Date: 2011-11-02 13:18:28 $
  * $Revision: 1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/irplib/irplib_ksigma_clip.h b/irplib/irplib_ksigma_clip.h
index c78ee0d..c7e8107 100644
--- a/irplib/irplib_ksigma_clip.h
+++ b/irplib/irplib_ksigma_clip.h
@@ -1,4 +1,4 @@
-/* $Id: irplib_ksigma_clip.h,v 1.1 2011/11/02 13:18:28 amodigli Exp $
+/* $Id: irplib_ksigma_clip.h,v 1.1 2011-11-02 13:18:28 amodigli Exp $
  *
  * This file is part of the irplib package
  * Copyright (C) 2002, 2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: amodigli $
- * $Date: 2011/11/02 13:18:28 $
+ * $Date: 2011-11-02 13:18:28 $
  * $Revision: 1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef IRPLIB_KSIGMA_CLIP_H
diff --git a/irplib/irplib_ksigma_clip_body.h b/irplib/irplib_ksigma_clip_body.h
index c787943..f196fb9 100644
--- a/irplib/irplib_ksigma_clip_body.h
+++ b/irplib/irplib_ksigma_clip_body.h
@@ -1,4 +1,4 @@
-/* $Id: irplib_ksigma_clip_body.h,v 1.1 2011/11/02 13:18:28 amodigli Exp $
+/* $Id: irplib_ksigma_clip_body.h,v 1.1 2011-11-02 13:18:28 amodigli Exp $
  *
  * This file is part of the irplib package 
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: amodigli $
- * $Date: 2011/11/02 13:18:28 $
+ * $Date: 2011-11-02 13:18:28 $
  * $Revision: 1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #define TYPE_ADD(a) CONCAT2X(a, CPL_TYPE)
diff --git a/irplib/irplib_match_cats.c b/irplib/irplib_match_cats.c
index 2daf6fd..da84b9e 100644
--- a/irplib/irplib_match_cats.c
+++ b/irplib/irplib_match_cats.c
@@ -1,4 +1,4 @@
-/* $Id: irplib_match_cats.c,v 1.10 2009/12/18 10:44:48 cgarcia Exp $
+/* $Id: irplib_match_cats.c,v 1.10 2009-12-18 10:44:48 cgarcia Exp $
  *
  * This file is part of the irplib package
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2009/12/18 10:44:48 $
+ * $Date: 2009-12-18 10:44:48 $
  * $Revision: 1.10 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/irplib/irplib_match_cats.h b/irplib/irplib_match_cats.h
index aa1e707..40f587d 100644
--- a/irplib/irplib_match_cats.h
+++ b/irplib/irplib_match_cats.h
@@ -1,4 +1,4 @@
-/* $Id: irplib_match_cats.h,v 1.5 2009/12/18 10:44:48 cgarcia Exp $
+/* $Id: irplib_match_cats.h,v 1.5 2009-12-18 10:44:48 cgarcia Exp $
  *
  * This file is part of the irplib package
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2009/12/18 10:44:48 $
+ * $Date: 2009-12-18 10:44:48 $
  * $Revision: 1.5 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef IRPLIB_MATCH_CATS_H
diff --git a/irplib/irplib_mkmaster.c b/irplib/irplib_mkmaster.c
index 076f1c1..237bb46 100644
--- a/irplib/irplib_mkmaster.c
+++ b/irplib/irplib_mkmaster.c
@@ -1,4 +1,4 @@
-/* $Id: irplib_mkmaster.c,v 1.6 2013/02/27 16:00:51 jtaylor Exp $
+/* $Id: irplib_mkmaster.c,v 1.6 2013-02-27 16:00:51 jtaylor Exp $
  *
  * This file is part of the irplib package
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: jtaylor $
- * $Date: 2013/02/27 16:00:51 $
+ * $Date: 2013-02-27 16:00:51 $
  * $Revision: 1.6 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/irplib/irplib_mkmaster.h b/irplib/irplib_mkmaster.h
index bd220f6..edc8743 100644
--- a/irplib/irplib_mkmaster.h
+++ b/irplib/irplib_mkmaster.h
@@ -1,4 +1,4 @@
-/* $Id: irplib_mkmaster.h,v 1.3 2011/11/02 13:17:25 amodigli Exp $
+/* $Id: irplib_mkmaster.h,v 1.3 2011-11-02 13:17:25 amodigli Exp $
  *
  * This file is part of the irplib package
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: amodigli $
- * $Date: 2011/11/02 13:17:25 $
+ * $Date: 2011-11-02 13:17:25 $
  * $Revision: 1.3 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef IRPLIB_MKMASTER_H
diff --git a/irplib/irplib_oddeven.c b/irplib/irplib_oddeven.c
index 6d1fc48..82933d2 100644
--- a/irplib/irplib_oddeven.c
+++ b/irplib/irplib_oddeven.c
@@ -1,4 +1,4 @@
-/* $Id: irplib_oddeven.c,v 1.9 2012/01/12 11:50:41 llundin Exp $
+/* $Id: irplib_oddeven.c,v 1.9 2012-01-12 11:50:41 llundin Exp $
  *
  * This file is part of the irplib package
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: llundin $
- * $Date: 2012/01/12 11:50:41 $
+ * $Date: 2012-01-12 11:50:41 $
  * $Revision: 1.9 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/irplib/irplib_oddeven.h b/irplib/irplib_oddeven.h
index e5488c7..4dc1b51 100644
--- a/irplib/irplib_oddeven.h
+++ b/irplib/irplib_oddeven.h
@@ -1,4 +1,4 @@
-/* $Id: irplib_oddeven.h,v 1.4 2006/10/06 20:46:04 yjung Exp $
+/* $Id: irplib_oddeven.h,v 1.4 2006-10-06 20:46:04 yjung Exp $
  *
  * This file is part of the irplib package
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: yjung $
- * $Date: 2006/10/06 20:46:04 $
+ * $Date: 2006-10-06 20:46:04 $
  * $Revision: 1.4 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef IRPLIB_ODDEVEN_H
diff --git a/irplib/irplib_plugin.c b/irplib/irplib_plugin.c
index 5ff2a4b..023b932 100644
--- a/irplib/irplib_plugin.c
+++ b/irplib/irplib_plugin.c
@@ -1,4 +1,4 @@
-/* $Id: irplib_plugin.c,v 1.39 2012/02/03 14:19:06 llundin Exp $
+/* $Id: irplib_plugin.c,v 1.40 2013-08-22 17:44:56 cgarcia Exp $
  *
  * This file is part of the irplib package 
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -19,10 +19,10 @@
  */
 
 /*
- * $Author: llundin $
- * $Date: 2012/02/03 14:19:06 $
- * $Revision: 1.39 $
- * $Name: vimos-2_9_7 $
+ * $Author: cgarcia $
+ * $Date: 2013-08-22 17:44:56 $
+ * $Revision: 1.40 $
+ * $Name: not supported by cvs2svn $
  */
 
 /*-----------------------------------------------------------------------------
@@ -765,7 +765,9 @@ static void recipe_sof_test_image_empty(cpl_plugin * plugin, size_t nstr,
 
     for (i = 0; i < nstr; i++) {
         cpl_frame * f = cpl_frame_new();
-        char * rawname = cpl_sprintf("raw%05u.fits", (unsigned)(i+1));
+        char * rawname = cpl_sprintf("%s-raw%05u.fits",
+                                     cpl_plugin_get_name(plugin),
+                                     (unsigned)(i+1));
 
         error = cpl_image_save(iempty, rawname,CPL_BPP_IEEE_FLOAT, NULL,
                                CPL_IO_DEFAULT);
@@ -1023,13 +1025,16 @@ static void recipe_frameset_load(cpl_frameset * set, const char *name)
     /* Loop over all the lines in the set-of-frames file */
     for (line_number = 0; fgets(line, LINE_LEN_MAX - 1, fp); line_number++) {
 
+        char scan_fmt[50];
         cpl_frame_group grp;
         cpl_frame * frame;
         int n;
 
         if (line[0] == '#') continue;
 
-        n = sscanf(line, "%s %s %s", path, tag, group);
+        snprintf(scan_fmt, 49, "%%%ds %%%ds %%%ds", LINE_LEN_MAX - 1,
+                 LINE_LEN_MAX - 1, LINE_LEN_MAX - 1); 
+        n = sscanf(line, scan_fmt, path, tag, group);
 
         if (n < 1) {
             cpl_msg_warning(cpl_func, "Spurious line no. %d in %s: %s",
diff --git a/irplib/irplib_plugin.h b/irplib/irplib_plugin.h
index a640eaa..f99cc01 100644
--- a/irplib/irplib_plugin.h
+++ b/irplib/irplib_plugin.h
@@ -1,4 +1,4 @@
-/* $Id: irplib_plugin.h,v 1.23 2012/01/11 08:03:37 llundin Exp $
+/* $Id: irplib_plugin.h,v 1.23 2012-01-11 08:03:37 llundin Exp $
  *
  * This file is part of the irplib package 
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: llundin $
- * $Date: 2012/01/11 08:03:37 $
+ * $Date: 2012-01-11 08:03:37 $
  * $Revision: 1.23 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef IRPLIB_PLUGIN_H
diff --git a/irplib/irplib_polynomial.c b/irplib/irplib_polynomial.c
index a96cf19..1bd1ace 100644
--- a/irplib/irplib_polynomial.c
+++ b/irplib/irplib_polynomial.c
@@ -1,4 +1,4 @@
-/* $Id: irplib_polynomial.c,v 1.35 2013/01/29 08:43:33 jtaylor Exp $
+/* $Id: irplib_polynomial.c,v 1.35 2013-01-29 08:43:33 jtaylor Exp $
  *
  * This file is part of the ESO Common Pipeline Library
  * Copyright (C) 2001-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: jtaylor $
- * $Date: 2013/01/29 08:43:33 $
+ * $Date: 2013-01-29 08:43:33 $
  * $Revision: 1.35 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/irplib/irplib_polynomial.h b/irplib/irplib_polynomial.h
index cf43284..fa0c16d 100644
--- a/irplib/irplib_polynomial.h
+++ b/irplib/irplib_polynomial.h
@@ -1,4 +1,4 @@
-/* $Id: irplib_polynomial.h,v 1.10 2013/01/29 08:43:33 jtaylor Exp $
+/* $Id: irplib_polynomial.h,v 1.10 2013-01-29 08:43:33 jtaylor Exp $
  *
  * This file is part of the ESO Common Pipeline Library
  * Copyright (C) 2007 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: jtaylor $
- * $Date: 2013/01/29 08:43:33 $
+ * $Date: 2013-01-29 08:43:33 $
  * $Revision: 1.10 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef IRPLIB_POLYNOMIAL_H
diff --git a/irplib/irplib_ppm.c b/irplib/irplib_ppm.c
index 9251b2b..74e9fd6 100644
--- a/irplib/irplib_ppm.c
+++ b/irplib/irplib_ppm.c
@@ -1,4 +1,4 @@
-/* $Id: irplib_ppm.c,v 1.31 2012/06/11 07:24:09 llundin Exp $
+/* $Id: irplib_ppm.c,v 1.31 2012-06-11 07:24:09 llundin Exp $
  *
  * This file is part of the irplib package
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: llundin $
- * $Date: 2012/06/11 07:24:09 $
+ * $Date: 2012-06-11 07:24:09 $
  * $Revision: 1.31 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/irplib/irplib_ppm.h b/irplib/irplib_ppm.h
index d802d57..5639665 100644
--- a/irplib/irplib_ppm.h
+++ b/irplib/irplib_ppm.h
@@ -1,4 +1,4 @@
-/* $Id: irplib_ppm.h,v 1.5 2007/07/23 09:27:07 yjung Exp $
+/* $Id: irplib_ppm.h,v 1.5 2007-07-23 09:27:07 yjung Exp $
  *
  * This file is part of the irplib package
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: yjung $
- * $Date: 2007/07/23 09:27:07 $
+ * $Date: 2007-07-23 09:27:07 $
  * $Revision: 1.5 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef IRPLIB_PPM_H
diff --git a/irplib/irplib_slitpos.c b/irplib/irplib_slitpos.c
index b75381c..346a02a 100644
--- a/irplib/irplib_slitpos.c
+++ b/irplib/irplib_slitpos.c
@@ -1,4 +1,4 @@
-/* $Id: irplib_slitpos.c,v 1.30 2011/11/23 13:58:45 yjung Exp $
+/* $Id: irplib_slitpos.c,v 1.31 2013-07-04 12:10:12 jtaylor Exp $
  *
  * This file is part of the irplib package
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -19,10 +19,10 @@
  */
 
 /*
- * $Author: yjung $
- * $Date: 2011/11/23 13:58:45 $
- * $Revision: 1.30 $
- * $Name: vimos-2_9_7 $
+ * $Author: jtaylor $
+ * $Date: 2013-07-04 12:10:12 $
+ * $Revision: 1.31 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -456,7 +456,7 @@ cpl_error_code irplib_slitpos_find_vert_slit_ends(const cpl_image * self,
 #else
 
     itop = npix - 1;
-    while (itop > ibot && pbinary[itop] != CPL_BINARY_1) itop--;
+    while (itop > ibot && pbinary[itop] == CPL_BINARY_0) itop--;
 
 #endif
 
diff --git a/irplib/irplib_slitpos.h b/irplib/irplib_slitpos.h
index a5f700b..5b124fe 100644
--- a/irplib/irplib_slitpos.h
+++ b/irplib/irplib_slitpos.h
@@ -1,4 +1,4 @@
-/* $Id: irplib_slitpos.h,v 1.6 2006/11/29 13:22:59 yjung Exp $
+/* $Id: irplib_slitpos.h,v 1.6 2006-11-29 13:22:59 yjung Exp $
  *
  * This file is part of the irplib package
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: yjung $
- * $Date: 2006/11/29 13:22:59 $
+ * $Date: 2006-11-29 13:22:59 $
  * $Revision: 1.6 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef IRPLIB_SLITPOS_H
diff --git a/irplib/irplib_spectrum.c b/irplib/irplib_spectrum.c
index b02c4ff..1174ddd 100644
--- a/irplib/irplib_spectrum.c
+++ b/irplib/irplib_spectrum.c
@@ -1,4 +1,4 @@
-/* $Id: irplib_spectrum.c,v 1.29 2012/01/12 11:50:41 llundin Exp $
+/* $Id: irplib_spectrum.c,v 1.29 2012-01-12 11:50:41 llundin Exp $
  *
  * This file is part of the irplib package
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: llundin $
- * $Date: 2012/01/12 11:50:41 $
+ * $Date: 2012-01-12 11:50:41 $
  * $Revision: 1.29 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/irplib/irplib_spectrum.h b/irplib/irplib_spectrum.h
index 3525398..00fca96 100644
--- a/irplib/irplib_spectrum.h
+++ b/irplib/irplib_spectrum.h
@@ -1,4 +1,4 @@
-/* $Id: irplib_spectrum.h,v 1.7 2009/07/30 12:38:37 yjung Exp $
+/* $Id: irplib_spectrum.h,v 1.7 2009-07-30 12:38:37 yjung Exp $
  *
  * This file is part of the irplib package
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: yjung $
- * $Date: 2009/07/30 12:38:37 $
+ * $Date: 2009-07-30 12:38:37 $
  * $Revision: 1.7 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef IRPLIB_SPECTRUM_H
diff --git a/irplib/irplib_stdstar.c b/irplib/irplib_stdstar.c
index 62d315f..71b1fa9 100644
--- a/irplib/irplib_stdstar.c
+++ b/irplib/irplib_stdstar.c
@@ -1,4 +1,4 @@
-/* $Id: irplib_stdstar.c,v 1.45 2013/03/01 10:27:07 llundin Exp $
+/* $Id: irplib_stdstar.c,v 1.45 2013-03-01 10:27:07 llundin Exp $
  *
  * This file is part of the irplib package
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: llundin $
- * $Date: 2013/03/01 10:27:07 $
+ * $Date: 2013-03-01 10:27:07 $
  * $Revision: 1.45 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/irplib/irplib_stdstar.h b/irplib/irplib_stdstar.h
index 0e6e33b..9657d34 100644
--- a/irplib/irplib_stdstar.h
+++ b/irplib/irplib_stdstar.h
@@ -1,4 +1,4 @@
-/* $Id: irplib_stdstar.h,v 1.16 2013/02/27 10:37:52 llundin Exp $
+/* $Id: irplib_stdstar.h,v 1.16 2013-02-27 10:37:52 llundin Exp $
  *
  * This file is part of the irplib package
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: llundin $
- * $Date: 2013/02/27 10:37:52 $
+ * $Date: 2013-02-27 10:37:52 $
  * $Revision: 1.16 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef IRPLIB_STDSTAR_H
diff --git a/irplib/irplib_strehl.c b/irplib/irplib_strehl.c
index 818ee5f..4e58397 100644
--- a/irplib/irplib_strehl.c
+++ b/irplib/irplib_strehl.c
@@ -1,4 +1,4 @@
-/* $Id: irplib_strehl.c,v 1.43 2009/11/18 21:37:48 llundin Exp $
+/* $Id: irplib_strehl.c,v 1.43 2009-11-18 21:37:48 llundin Exp $
  *
  * This file is part of the irplib package
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: llundin $
- * $Date: 2009/11/18 21:37:48 $
+ * $Date: 2009-11-18 21:37:48 $
  * $Revision: 1.43 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/irplib/irplib_strehl.h b/irplib/irplib_strehl.h
index 3745432..4acce38 100644
--- a/irplib/irplib_strehl.h
+++ b/irplib/irplib_strehl.h
@@ -1,4 +1,4 @@
-/* $Id: irplib_strehl.h,v 1.12 2009/06/29 14:32:53 kmirny Exp $
+/* $Id: irplib_strehl.h,v 1.12 2009-06-29 14:32:53 kmirny Exp $
  *
  * This file is part of the irplib package
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: kmirny $
- * $Date: 2009/06/29 14:32:53 $
+ * $Date: 2009-06-29 14:32:53 $
  * $Revision: 1.12 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef IRPLIB_STREHL_H
diff --git a/irplib/irplib_utils.c b/irplib/irplib_utils.c
index ecd7625..2b13ab7 100644
--- a/irplib/irplib_utils.c
+++ b/irplib/irplib_utils.c
@@ -1,4 +1,4 @@
-/* $Id: irplib_utils.c,v 1.84 2013/03/15 09:06:06 jtaylor Exp $
+/* $Id: irplib_utils.c,v 1.85 2013-07-04 12:10:55 jtaylor Exp $
  *
  * This file is part of the irplib package
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: jtaylor $
- * $Date: 2013/03/15 09:06:06 $
- * $Revision: 1.84 $
- * $Name: vimos-2_9_7 $
+ * $Date: 2013-07-04 12:10:55 $
+ * $Revision: 1.85 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -1553,23 +1553,20 @@ cpl_error_code irplib_frameset_sort(const cpl_frameset *  self, int* iindex, dou
 
 static double frame_get_exptime(const cpl_frame * pframe)
 {
-    cpl_propertylist       *plist = 0;
-    double                  dval = 0;
-
-    plist = cpl_propertylist_load(cpl_frame_get_filename(pframe),0);
-	if(plist)
-	{
-      cpl_error_code err = CPL_ERROR_NONE;  
-	    dval = cpl_propertylist_get_double(plist, "EXPTIME");
-       err = cpl_error_get_code();
-       if (err != CPL_ERROR_NONE)
-       {
-         cpl_msg_error(cpl_func, "error during reading EXPTIME key from the frame [%s]", cpl_frame_get_filename(pframe));
-       }
-	}
-	/* Free and return */
-	cpl_propertylist_delete(plist);
-	return dval;
+    double dval = 0;
+    cpl_propertylist * plist =
+        cpl_propertylist_load_regexp(cpl_frame_get_filename(pframe), 0,
+                                     "EXPTIME", CPL_FALSE);
+    if(plist) {
+        dval = cpl_propertylist_get_double(plist, "EXPTIME");
+        if (cpl_error_get_code() != CPL_ERROR_NONE) {
+            cpl_msg_error(cpl_func, "error during reading EXPTIME key from "
+                          "the frame [%s]", cpl_frame_get_filename(pframe));
+        }
+    }
+    /* Free and return */
+    cpl_propertylist_delete(plist);
+    return dval;
 }
 
 
diff --git a/irplib/irplib_utils.h b/irplib/irplib_utils.h
index 911c2b7..7f7caa8 100644
--- a/irplib/irplib_utils.h
+++ b/irplib/irplib_utils.h
@@ -1,4 +1,4 @@
-/* $Id: irplib_utils.h,v 1.59 2013/03/15 09:06:06 jtaylor Exp $
+/* $Id: irplib_utils.h,v 1.60 2013-08-21 14:55:14 cgarcia Exp $
  *
  * This file is part of the irplib package
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -19,11 +19,11 @@
  */
 
 /*
- * $Author: jtaylor $
- * $Date: 2013/03/15 09:06:06 $
- * $Revision: 1.59 $
- * $Name: vimos-2_9_7 $
- * $Log: irplib_utils.h,v $
+ * $Author: cgarcia $
+ * $Date: 2013-08-21 14:55:14 $
+ * $Revision: 1.60 $
+ * $Name: not supported by cvs2svn $
+ * $Log: not supported by cvs2svn $
  * Revision 1.59  2013/03/15 09:06:06  jtaylor
  * add irplib_aligned_{[mc]alloc,free}
  *
@@ -67,7 +67,7 @@
  -----------------------------------------------------------------------------*/
 
 #include <cpl.h>
-
+#include <math.h>
 #include <stdarg.h>
 
 /*-----------------------------------------------------------------------------
diff --git a/irplib/irplib_wavecal.c b/irplib/irplib_wavecal.c
index 3ee0de1..fe4b5b6 100644
--- a/irplib/irplib_wavecal.c
+++ b/irplib/irplib_wavecal.c
@@ -1,4 +1,4 @@
-/* $Id: irplib_wavecal.c,v 1.52 2012/08/03 21:05:32 llundin Exp $
+/* $Id: irplib_wavecal.c,v 1.52 2012-08-03 21:05:32 llundin Exp $
  *
  * This file is part of the IRPLIB Pipeline
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: llundin $
- * $Date: 2012/08/03 21:05:32 $
+ * $Date: 2012-08-03 21:05:32 $
  * $Revision: 1.52 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/irplib/irplib_wavecal.h b/irplib/irplib_wavecal.h
index 2387ace..9ec1ed5 100644
--- a/irplib/irplib_wavecal.h
+++ b/irplib/irplib_wavecal.h
@@ -1,4 +1,4 @@
-/* $Id: irplib_wavecal.h,v 1.18 2012/08/03 21:05:33 llundin Exp $
+/* $Id: irplib_wavecal.h,v 1.18 2012-08-03 21:05:33 llundin Exp $
  *
  * This file is part of the IRPLIB Pipeline
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: llundin $
- * $Date: 2012/08/03 21:05:33 $
+ * $Date: 2012-08-03 21:05:33 $
  * $Revision: 1.18 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef IRPLIB_WAVECAL_H
diff --git a/irplib/irplib_wavecal_impl.h b/irplib/irplib_wavecal_impl.h
index c52db5e..ee99093 100644
--- a/irplib/irplib_wavecal_impl.h
+++ b/irplib/irplib_wavecal_impl.h
@@ -1,4 +1,4 @@
-/* $Id: irplib_wavecal_impl.h,v 1.7 2012/08/03 21:05:34 llundin Exp $
+/* $Id: irplib_wavecal_impl.h,v 1.7 2012-08-03 21:05:34 llundin Exp $
  *
  * This file is part of the IRPLIB Pipeline
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: llundin $
- * $Date: 2012/08/03 21:05:34 $
+ * $Date: 2012-08-03 21:05:34 $
  * $Revision: 1.7 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef IRPLIB_WAVECAL_IMPL_H
diff --git a/irplib/irplib_wcs.c b/irplib/irplib_wcs.c
index eefea6a..51ae836 100644
--- a/irplib/irplib_wcs.c
+++ b/irplib/irplib_wcs.c
@@ -1,4 +1,4 @@
-/* $Id: irplib_wcs.c,v 1.8 2010/10/07 14:10:55 llundin Exp $
+/* $Id: irplib_wcs.c,v 1.8 2010-10-07 14:10:55 llundin Exp $
  *
  * This file is part of the irplib package
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: llundin $
- * $Date: 2010/10/07 14:10:55 $
+ * $Date: 2010-10-07 14:10:55 $
  * $Revision: 1.8 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/irplib/irplib_wcs.h b/irplib/irplib_wcs.h
index 60da33e..cc5c45c 100644
--- a/irplib/irplib_wcs.h
+++ b/irplib/irplib_wcs.h
@@ -1,4 +1,4 @@
-/* $Id: irplib_wcs.h,v 1.7 2010/10/07 14:10:55 llundin Exp $
+/* $Id: irplib_wcs.h,v 1.7 2010-10-07 14:10:55 llundin Exp $
  *
  * This file is part of the irplib package
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: llundin $
- * $Date: 2010/10/07 14:10:55 $
+ * $Date: 2010-10-07 14:10:55 $
  * $Revision: 1.7 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef IRPLIB_WCS_H
diff --git a/irplib/irplib_wlxcorr.c b/irplib/irplib_wlxcorr.c
index 6d3d974..eeb5ea1 100644
--- a/irplib/irplib_wlxcorr.c
+++ b/irplib/irplib_wlxcorr.c
@@ -1,4 +1,4 @@
-/* $Id: irplib_wlxcorr.c,v 1.58 2013/01/29 08:43:33 jtaylor Exp $
+/* $Id: irplib_wlxcorr.c,v 1.58 2013-01-29 08:43:33 jtaylor Exp $
  *
  * This file is part of the IRPLIB package
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: jtaylor $
- * $Date: 2013/01/29 08:43:33 $
+ * $Date: 2013-01-29 08:43:33 $
  * $Revision: 1.58 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/irplib/irplib_wlxcorr.h b/irplib/irplib_wlxcorr.h
index dc8c066..467f599 100644
--- a/irplib/irplib_wlxcorr.h
+++ b/irplib/irplib_wlxcorr.h
@@ -1,4 +1,4 @@
-/* $Id: irplib_wlxcorr.h,v 1.22 2013/01/29 08:43:33 jtaylor Exp $
+/* $Id: irplib_wlxcorr.h,v 1.22 2013-01-29 08:43:33 jtaylor Exp $
  *
  * This file is part of the IRPLIB package
  * Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: jtaylor $
- * $Date: 2013/01/29 08:43:33 $
+ * $Date: 2013-01-29 08:43:33 $
  * $Revision: 1.22 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef IRPLIB_WLXCORR_H
diff --git a/irplib/tests/irplib_cat-test.c b/irplib/tests/irplib_cat-test.c
index 7c32a4b..dba945b 100644
--- a/irplib/tests/irplib_cat-test.c
+++ b/irplib/tests/irplib_cat-test.c
@@ -1,4 +1,4 @@
-/* $Id: irplib_cat-test.c,v 1.10 2013/01/29 08:43:33 jtaylor Exp $
+/* $Id: irplib_cat-test.c,v 1.10 2013-01-29 08:43:33 jtaylor Exp $
  *
  * This file is part of the ESO Common Pipeline Library
  * Copyright (C) 2001-2008 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: jtaylor $
- * $Date: 2013/01/29 08:43:33 $
+ * $Date: 2013-01-29 08:43:33 $
  * $Revision: 1.10 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 /*-----------------------------------------------------------------------------
diff --git a/irplib/tests/irplib_polynomial-test.c b/irplib/tests/irplib_polynomial-test.c
index 41ff202..33a50c9 100644
--- a/irplib/tests/irplib_polynomial-test.c
+++ b/irplib/tests/irplib_polynomial-test.c
@@ -1,4 +1,4 @@
-/* $Id: irplib_polynomial-test.c,v 1.37 2013/01/29 08:43:33 jtaylor Exp $
+/* $Id: irplib_polynomial-test.c,v 1.37 2013-01-29 08:43:33 jtaylor Exp $
  *
  * This file is part of the ESO Common Pipeline Library
  * Copyright (C) 2001-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: jtaylor $
- * $Date: 2013/01/29 08:43:33 $
+ * $Date: 2013-01-29 08:43:33 $
  * $Revision: 1.37 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 /*-----------------------------------------------------------------------------
diff --git a/irplib/tests/irplib_wcs-test.c b/irplib/tests/irplib_wcs-test.c
index d769e31..2b6e19b 100644
--- a/irplib/tests/irplib_wcs-test.c
+++ b/irplib/tests/irplib_wcs-test.c
@@ -1,4 +1,4 @@
-/* $Id: irplib_wcs-test.c,v 1.9 2013/01/29 08:43:33 jtaylor Exp $
+/* $Id: irplib_wcs-test.c,v 1.9 2013-01-29 08:43:33 jtaylor Exp $
  *
  * This file is part of the ESO Common Pipeline Library
  * Copyright (C) 2001-2008 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: jtaylor $
- * $Date: 2013/01/29 08:43:33 $
+ * $Date: 2013-01-29 08:43:33 $
  * $Revision: 1.9 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 /*-----------------------------------------------------------------------------
diff --git a/irplib/tests/irplib_wlxcorr-test.c b/irplib/tests/irplib_wlxcorr-test.c
index 616a37b..767121a 100644
--- a/irplib/tests/irplib_wlxcorr-test.c
+++ b/irplib/tests/irplib_wlxcorr-test.c
@@ -1,4 +1,4 @@
-/* $Id: irplib_wlxcorr-test.c,v 1.16 2013/01/29 08:43:33 jtaylor Exp $
+/* $Id: irplib_wlxcorr-test.c,v 1.16 2013-01-29 08:43:33 jtaylor Exp $
  *
  * This file is part of the ESO Common Pipeline Library
  * Copyright (C) 2001-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: jtaylor $
- * $Date: 2013/01/29 08:43:33 $
+ * $Date: 2013-01-29 08:43:33 $
  * $Revision: 1.16 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 /*-----------------------------------------------------------------------------
diff --git a/libpil/kazlib/CHANGES b/libpil/kazlib/CHANGES
index 0a11d11..00a2757 100644
--- a/libpil/kazlib/CHANGES
+++ b/libpil/kazlib/CHANGES
@@ -289,5 +289,5 @@ New in 1.5
        a different allocator when there are nodes in the dictionary; it might
        lead to the error of freeing a node with an incorrect allocator.]
 
-$Id: CHANGES,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
-$Name: vimos-2_9_7 $
+$Id: CHANGES,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
+$Name: not supported by cvs2svn $
diff --git a/libpil/kazlib/Makefile.gcc b/libpil/kazlib/Makefile.gcc
index fdca460..d219246 100644
--- a/libpil/kazlib/Makefile.gcc
+++ b/libpil/kazlib/Makefile.gcc
@@ -1,5 +1,5 @@
-# $Id: Makefile.gcc,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
-# $Name: vimos-2_9_7 $
+# $Id: Makefile.gcc,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
+# $Name: not supported by cvs2svn $
 
 CC	= gcc
 #CFLAGS	= -Wid-clash-15 -Wall -Wmissing-prototypes -ansi -pedantic -g
diff --git a/libpil/kazlib/Makefile.vc b/libpil/kazlib/Makefile.vc
index c44ea9b..f23c94a 100644
--- a/libpil/kazlib/Makefile.vc
+++ b/libpil/kazlib/Makefile.vc
@@ -1,5 +1,5 @@
-# $Id: Makefile.vc,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
-# $Name: vimos-2_9_7 $
+# $Id: Makefile.vc,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
+# $Name: not supported by cvs2svn $
 
 CC	= cl
 CFLAGS	= /nologo /Za /W3 /Ox
diff --git a/libpil/kazlib/README b/libpil/kazlib/README
index d351a48..967c951 100644
--- a/libpil/kazlib/README
+++ b/libpil/kazlib/README
@@ -65,5 +65,5 @@ executable build. I have now wrapped the declarations of these rcsid[] arrays
 so they are conditional on KAZLIB_RCSID being defined. For many users, these
 are just a waste of space.
 
-$Id: README,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
-$Name: vimos-2_9_7 $
+$Id: README,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
+$Name: not supported by cvs2svn $
diff --git a/libpil/kazlib/blast.pl b/libpil/kazlib/blast.pl
index 9629417..172de5d 100755
--- a/libpil/kazlib/blast.pl
+++ b/libpil/kazlib/blast.pl
@@ -13,8 +13,8 @@
 # The purpose of using the prime modulus number is to generate a repeatable
 # sequence of unique keys that is (possibly) not in sorted order.
 #
-# $Id: blast.pl,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
-# $Name: vimos-2_9_7 $
+# $Id: blast.pl,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
+# $Name: not supported by cvs2svn $
 #
 
 # $modulus = 200003;
diff --git a/libpil/kazlib/dict.c b/libpil/kazlib/dict.c
index d5d553a..c243dbb 100644
--- a/libpil/kazlib/dict.c
+++ b/libpil/kazlib/dict.c
@@ -14,8 +14,8 @@
  * into proprietary software; there is no requirement for such software to
  * contain a copyright notice related to this source.
  *
- * $Id: dict.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
- * $Name: vimos-2_9_7 $
+ * $Id: dict.c,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
+ * $Name: not supported by cvs2svn $
  */
 
 #include <stdlib.h>
@@ -25,7 +25,7 @@
 #include "dict.h"
 
 #ifdef KAZLIB_RCSID
-static const char rcsid[] = "$Id: dict.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $";
+static const char rcsid[] = "$Id: dict.c,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $";
 #endif
 
 /*
diff --git a/libpil/kazlib/dict.h b/libpil/kazlib/dict.h
index ebb6fe7..241225e 100644
--- a/libpil/kazlib/dict.h
+++ b/libpil/kazlib/dict.h
@@ -14,8 +14,8 @@
  * into proprietary software; there is no requirement for such software to
  * contain a copyright notice related to this source.
  *
- * $Id: dict.h,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
- * $Name: vimos-2_9_7 $
+ * $Id: dict.h,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef DICT_H
diff --git a/libpil/kazlib/docs.dvi b/libpil/kazlib/docs.dvi
index cb0338c..24149a0 100644
Binary files a/libpil/kazlib/docs.dvi and b/libpil/kazlib/docs.dvi differ
diff --git a/libpil/kazlib/docs.ltx b/libpil/kazlib/docs.ltx
index 142c85d..a3ade07 100644
--- a/libpil/kazlib/docs.ltx
+++ b/libpil/kazlib/docs.ltx
@@ -1,6 +1,6 @@
 %
-% $Id: docs.ltx,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
-% $Name: vimos-2_9_7 $
+% $Id: docs.ltx,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
+% $Name: not supported by cvs2svn $
 %
 
 \documentclass{article}
diff --git a/libpil/kazlib/except.c b/libpil/kazlib/except.c
index f948ab2..d344332 100644
--- a/libpil/kazlib/except.c
+++ b/libpil/kazlib/except.c
@@ -13,8 +13,8 @@
  * This source code may be translated into executable form and incorporated
  * into proprietary software; there is no requirement for such software to
  * contain a copyright notice related to this source.
- * $Id: except.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
- * $Name: vimos-2_9_7 $
+ * $Id: except.c,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
+ * $Name: not supported by cvs2svn $
  */
 
 #include <assert.h>
@@ -27,7 +27,7 @@
 #define XCEPT_BUFFER_SIZE	1024
 
 #ifdef KAZLIB_RCSID
-static const char rcsid[] = "$Id: except.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $";
+static const char rcsid[] = "$Id: except.c,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $";
 #endif
 
 #define group except_group
diff --git a/libpil/kazlib/except.h b/libpil/kazlib/except.h
index e9aa077..13bd274 100644
--- a/libpil/kazlib/except.h
+++ b/libpil/kazlib/except.h
@@ -14,8 +14,8 @@
  * into proprietary software; there is no requirement for such software to
  * contain a copyright notice related to this source.
  *
- * $Id: except.h,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
- * $Name: vimos-2_9_7 $
+ * $Id: except.h,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef XCEPT_H
diff --git a/libpil/kazlib/hash.c b/libpil/kazlib/hash.c
index e38f07f..5f20d63 100644
--- a/libpil/kazlib/hash.c
+++ b/libpil/kazlib/hash.c
@@ -14,8 +14,8 @@
  * into proprietary software; there is no requirement for such software to
  * contain a copyright notice related to this source.
  *
- * $Id: hash.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
- * $Name: vimos-2_9_7 $
+ * $Id: hash.c,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
+ * $Name: not supported by cvs2svn $
  */
 
 #include <stdlib.h>
@@ -26,7 +26,7 @@
 #include "hash.h"
 
 #ifdef KAZLIB_RCSID
-static const char rcsid[] = "$Id: hash.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $";
+static const char rcsid[] = "$Id: hash.c,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $";
 #endif
 
 #define INIT_BITS	6
diff --git a/libpil/kazlib/hash.h b/libpil/kazlib/hash.h
index 2d70448..7d330ea 100644
--- a/libpil/kazlib/hash.h
+++ b/libpil/kazlib/hash.h
@@ -14,8 +14,8 @@
  * into proprietary software; there is no requirement for such software to
  * contain a copyright notice related to this source.
  *
- * $Id: hash.h,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
- * $Name: vimos-2_9_7 $
+ * $Id: hash.h,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef HASH_H
diff --git a/libpil/kazlib/list.c b/libpil/kazlib/list.c
index 72fd2b8..c41a6c2 100644
--- a/libpil/kazlib/list.c
+++ b/libpil/kazlib/list.c
@@ -14,8 +14,8 @@
  * into proprietary software; there is no requirement for such software to
  * contain a copyright notice related to this source.
  *
- * $Id: list.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
- * $Name: vimos-2_9_7 $
+ * $Id: list.c,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
+ * $Name: not supported by cvs2svn $
  */
 
 
@@ -44,7 +44,7 @@
 #define lnode_prev(N)		((N)->prev)
 
 #ifdef KAZLIB_RCSID
-static const char rcsid[] = "$Id: list.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $";
+static const char rcsid[] = "$Id: list.c,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $";
 #endif
 
 /*
diff --git a/libpil/kazlib/list.h b/libpil/kazlib/list.h
index 1ca7688..6826ada 100644
--- a/libpil/kazlib/list.h
+++ b/libpil/kazlib/list.h
@@ -14,8 +14,8 @@
  * into proprietary software; there is no requirement for such software to
  * contain a copyright notice related to this source.
  *
- * $Id: list.h,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
- * $Name: vimos-2_9_7 $
+ * $Id: list.h,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef LIST_H
diff --git a/libpil/kazlib/sfx.c b/libpil/kazlib/sfx.c
index cc48658..f6d29f4 100644
--- a/libpil/kazlib/sfx.c
+++ b/libpil/kazlib/sfx.c
@@ -17,8 +17,8 @@
  * into proprietary software; there is no requirement for such software to
  * contain a copyright notice related to this source.
  *
- * $Id: sfx.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
- * $Name: vimos-2_9_7 $
+ * $Id: sfx.c,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
+ * $Name: not supported by cvs2svn $
  */
 
 #include <ctype.h>
@@ -33,7 +33,7 @@
 #endif
 
 #ifdef KAZLIB_RCSID
-static const char rcsid[] = "$Id: sfx.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $";
+static const char rcsid[] = "$Id: sfx.c,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $";
 #endif
 
 /*
diff --git a/libpil/kazlib/sfx.h b/libpil/kazlib/sfx.h
index 63b366b..82122dc 100644
--- a/libpil/kazlib/sfx.h
+++ b/libpil/kazlib/sfx.h
@@ -17,8 +17,8 @@
  * into proprietary software; there is no requirement for such software to
  * contain a copyright notice related to this source.
  *
- * $Id: sfx.h,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
- * $Name: vimos-2_9_7 $
+ * $Id: sfx.h,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef SFX_H
diff --git a/libpil/pil/pilalias.c b/libpil/pil/pilalias.c
index f06d6cf..92d67f7 100644
--- a/libpil/pil/pilalias.c
+++ b/libpil/pil/pilalias.c
@@ -1,4 +1,4 @@
-/* $Id: pilalias.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilalias.c,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/libpil/pil/pilalias.h b/libpil/pil/pilalias.h
index 39f460e..7d653d2 100644
--- a/libpil/pil/pilalias.h
+++ b/libpil/pil/pilalias.h
@@ -1,4 +1,4 @@
-/* $Id: pilalias.h,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilalias.h,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
  
 #ifndef _PIL_ALIAS_H
diff --git a/libpil/pil/pilastroutils.c b/libpil/pil/pilastroutils.c
index 399db24..b46c001 100644
--- a/libpil/pil/pilastroutils.c
+++ b/libpil/pil/pilastroutils.c
@@ -1,4 +1,4 @@
-/* $Id: pilastroutils.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilastroutils.c,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/libpil/pil/pilastroutils.h b/libpil/pil/pilastroutils.h
index 6450778..24e0bbe 100644
--- a/libpil/pil/pilastroutils.h
+++ b/libpil/pil/pilastroutils.h
@@ -1,4 +1,4 @@
-/* $Id: pilastroutils.h,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilastroutils.h,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef _PIL_ASTROUTILS_H
diff --git a/libpil/pil/pilcatmap.c b/libpil/pil/pilcatmap.c
index 656eb7d..4dc4719 100644
--- a/libpil/pil/pilcatmap.c
+++ b/libpil/pil/pilcatmap.c
@@ -1,4 +1,4 @@
-/* $Id: pilcatmap.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilcatmap.c,v 1.2 2013-08-07 18:22:16 cgarcia Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -19,10 +19,10 @@
  */
 
 /*
- * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
- * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Author: cgarcia $
+ * $Date: 2013-08-07 18:22:16 $
+ * $Revision: 1.2 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -59,7 +59,7 @@ static PilDictNode *
 _pilCatmapAllocator(void *context)
 {
 
-    context = NULL;  /* To avoid compiler warnings */
+    (void)context;  /* To avoid compiler warnings */
 
     return pil_malloc(sizeof(PilDictNode));
 
@@ -70,7 +70,7 @@ static void
 _pilCatmapDeallocator(PilDictNode *node, void *context)
 {
 
-    context = NULL;  /* To avoid compiler warnings */
+    (void)context;  /* To avoid compiler warnings */
 
     if (node != NULL) {
         char *key = (void *)pilDictGetKey(node);
diff --git a/libpil/pil/pilcatmap.h b/libpil/pil/pilcatmap.h
index ebb0d67..5e0aaca 100644
--- a/libpil/pil/pilcatmap.h
+++ b/libpil/pil/pilcatmap.h
@@ -1,4 +1,4 @@
-/* $Id: pilcatmap.h,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilcatmap.h,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef _PIL_CATMAP_H
diff --git a/libpil/pil/pilcdb.c b/libpil/pil/pilcdb.c
index 54ac024..fa8012e 100644
--- a/libpil/pil/pilcdb.c
+++ b/libpil/pil/pilcdb.c
@@ -1,4 +1,4 @@
-/* $Id: pilcdb.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilcdb.c,v 1.2 2013-08-07 16:25:37 cgarcia Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -19,10 +19,10 @@
  */
 
 /*
- * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
- * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Author: cgarcia $
+ * $Date: 2013-08-07 16:25:37 $
+ * $Revision: 1.2 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -208,7 +208,7 @@ inline static void deletePilCdbValue(PilCdbValue *db_data)
 
 inline static PilCdbEntry *newPilCdbEntry(void *context)
 {
-
+  (void)context;
   return newPilDictNode(NULL);
 
 }
@@ -227,6 +227,7 @@ inline static PilCdbEntry *newPilCdbEntry(void *context)
 inline static void deletePilCdbEntry(PilCdbEntry *db_entry, void *context)
 {
 
+  (void)context;
   if (db_entry) {
 
     /*
@@ -266,6 +267,7 @@ inline static void deletePilCdbEntry(PilCdbEntry *db_entry, void *context)
 inline static PilCdbGroup *newPilCdbGroup(void *context)
 {
 
+  (void)context;
   PilCdbGroup *new = newPilDictNode(NULL);
   PilDictionary *entries;
 
@@ -299,6 +301,7 @@ inline static PilCdbGroup *newPilCdbGroup(void *context)
 inline static void deletePilCdbGroup(PilCdbGroup *db_group, void *context)
 {
 
+  (void)context;
   PilDictionary *entries;
 
 
diff --git a/libpil/pil/pilcdb.h b/libpil/pil/pilcdb.h
index e2649f0..a794461 100644
--- a/libpil/pil/pilcdb.h
+++ b/libpil/pil/pilcdb.h
@@ -1,4 +1,4 @@
-/* $Id: pilcdb.h,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilcdb.h,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef _PIL_CDB_H
diff --git a/libpil/pil/pildate.c b/libpil/pil/pildate.c
index 3136203..d0fae74 100644
--- a/libpil/pil/pildate.c
+++ b/libpil/pil/pildate.c
@@ -1,4 +1,4 @@
-/* $Id: pildate.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pildate.c,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/libpil/pil/pildate.h b/libpil/pil/pildate.h
index d98a852..02650c0 100644
--- a/libpil/pil/pildate.h
+++ b/libpil/pil/pildate.h
@@ -1,4 +1,4 @@
-/* $Id: pildate.h,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pildate.h,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef _PIL_DATE_H
diff --git a/libpil/pil/pildfsconfig.c b/libpil/pil/pildfsconfig.c
index c90c9e5..590a59c 100644
--- a/libpil/pil/pildfsconfig.c
+++ b/libpil/pil/pildfsconfig.c
@@ -1,4 +1,4 @@
-/* $Id: pildfsconfig.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pildfsconfig.c,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/libpil/pil/pildfsconfig.h b/libpil/pil/pildfsconfig.h
index adec4ef..5b1ab67 100644
--- a/libpil/pil/pildfsconfig.h
+++ b/libpil/pil/pildfsconfig.h
@@ -1,4 +1,4 @@
-/* $Id: pildfsconfig.h,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pildfsconfig.h,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef _PIL_DFSCONFIG_H
diff --git a/libpil/pil/pildictionary.c b/libpil/pil/pildictionary.c
index b00d694..c3057b6 100644
--- a/libpil/pil/pildictionary.c
+++ b/libpil/pil/pildictionary.c
@@ -1,4 +1,4 @@
-/* $Id: pildictionary.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pildictionary.c,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/libpil/pil/pildictionary.h b/libpil/pil/pildictionary.h
index aa20457..6cb9591 100644
--- a/libpil/pil/pildictionary.h
+++ b/libpil/pil/pildictionary.h
@@ -1,4 +1,4 @@
-/* $Id: pildictionary.h,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pildictionary.h,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef _PIL_DICTIONARY_H
diff --git a/libpil/pil/pilerrno.c b/libpil/pil/pilerrno.c
index 8ec2ab2..61b74ea 100644
--- a/libpil/pil/pilerrno.c
+++ b/libpil/pil/pilerrno.c
@@ -1,4 +1,4 @@
-/* $Id: pilerrno.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilerrno.c,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
  
 #ifdef HAVE_CONFIG_H
diff --git a/libpil/pil/pilerrno.h b/libpil/pil/pilerrno.h
index 571fae1..60951bb 100644
--- a/libpil/pil/pilerrno.h
+++ b/libpil/pil/pilerrno.h
@@ -1,4 +1,4 @@
-/* $Id: pilerrno.h,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilerrno.h,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef _PIL_ERRNO_H
diff --git a/libpil/pil/pilfileutils.c b/libpil/pil/pilfileutils.c
index f1a02de..b69b35b 100644
--- a/libpil/pil/pilfileutils.c
+++ b/libpil/pil/pilfileutils.c
@@ -1,4 +1,4 @@
-/* $Id: pilfileutils.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilfileutils.c,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/libpil/pil/pilfileutils.h b/libpil/pil/pilfileutils.h
index 0665657..579bdfc 100644
--- a/libpil/pil/pilfileutils.h
+++ b/libpil/pil/pilfileutils.h
@@ -1,4 +1,4 @@
-/* $Id: pilfileutils.h,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilfileutils.h,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef _PIL_FILEUTILS_H
diff --git a/libpil/pil/pilfits.c b/libpil/pil/pilfits.c
index 2c44e47..2e747fd 100644
--- a/libpil/pil/pilfits.c
+++ b/libpil/pil/pilfits.c
@@ -1,4 +1,4 @@
-/* $Id: pilfits.c,v 1.4 2011/12/23 15:00:11 cgarcia Exp $
+/* $Id: pilfits.c,v 1.5 2013-08-07 16:26:39 cgarcia Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2011/12/23 15:00:11 $
- * $Revision: 1.4 $
- * $Name: vimos-2_9_7 $
+ * $Date: 2013-08-07 16:26:39 $
+ * $Revision: 1.5 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -1271,6 +1271,7 @@ int pilFitsHdrCopy(const char *filename, unsigned int target, const char *hint,
     int re_status;
     int status = 0;
     int key_count = 0;
+    (void)hint;
 
     regex_t re;
 
diff --git a/libpil/pil/pilfits.h b/libpil/pil/pilfits.h
index 21eaf36..f9cf292 100644
--- a/libpil/pil/pilfits.h
+++ b/libpil/pil/pilfits.h
@@ -1,4 +1,4 @@
-/* $Id: pilfits.h,v 1.2 2011/01/31 08:30:46 cizzo Exp $
+/* $Id: pilfits.h,v 1.2 2011-01-31 08:30:46 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2011/01/31 08:30:46 $
+ * $Date: 2011-01-31 08:30:46 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef _PIL_FITS_H
diff --git a/libpil/pil/pilframe.c b/libpil/pil/pilframe.c
index 0a4e0f9..5f7f2ca 100644
--- a/libpil/pil/pilframe.c
+++ b/libpil/pil/pilframe.c
@@ -1,4 +1,4 @@
-/* $Id: pilframe.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilframe.c,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/libpil/pil/pilframe.h b/libpil/pil/pilframe.h
index 4acede6..55e693b 100644
--- a/libpil/pil/pilframe.h
+++ b/libpil/pil/pilframe.h
@@ -1,4 +1,4 @@
-/* $Id: pilframe.h,v 1.2 2012/06/14 15:46:12 cgarcia Exp $
+/* $Id: pilframe.h,v 1.2 2012-06-14 15:46:12 cgarcia Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2012/06/14 15:46:12 $
+ * $Date: 2012-06-14 15:46:12 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef _PIL_FRAME_H
diff --git a/libpil/pil/pilframeset.c b/libpil/pil/pilframeset.c
index 72daf83..a5cc8a2 100644
--- a/libpil/pil/pilframeset.c
+++ b/libpil/pil/pilframeset.c
@@ -1,4 +1,4 @@
-/* $Id: pilframeset.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilframeset.c,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/libpil/pil/pilframeset.h b/libpil/pil/pilframeset.h
index bafe76e..9f50f8f 100644
--- a/libpil/pil/pilframeset.h
+++ b/libpil/pil/pilframeset.h
@@ -1,4 +1,4 @@
-/* $Id: pilframeset.h,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilframeset.h,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef PIL_FRAMESET_H
diff --git a/libpil/pil/pilkeymap.c b/libpil/pil/pilkeymap.c
index 79b2a61..33e546f 100644
--- a/libpil/pil/pilkeymap.c
+++ b/libpil/pil/pilkeymap.c
@@ -1,4 +1,4 @@
-/* $Id: pilkeymap.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilkeymap.c,v 1.2 2013-08-07 18:22:16 cgarcia Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -19,10 +19,10 @@
  */
 
 /*
- * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
- * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Author: cgarcia $
+ * $Date: 2013-08-07 18:22:16 $
+ * $Revision: 1.2 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -61,7 +61,7 @@ static PilDictNode *
 _pilKeymapAllocator(void *context)
 {
 
-    context = NULL;  /* To avoid compiler warnings */
+    (void)context;  /* To avoid compiler warnings */
 
     return pil_malloc(sizeof(PilDictNode));
 
@@ -72,7 +72,7 @@ static void
 _pilKeymapDeallocator(PilDictNode *node, void *context)
 {
 
-    context = NULL;  /* To avoid compiler warnings */
+    (void)context;  /* To avoid compiler warnings */
 
     if (node != NULL) {
         char *key = (void *)pilDictGetKey(node);
diff --git a/libpil/pil/pilkeymap.h b/libpil/pil/pilkeymap.h
index c804210..755fab4 100644
--- a/libpil/pil/pilkeymap.h
+++ b/libpil/pil/pilkeymap.h
@@ -1,4 +1,4 @@
-/* $Id: pilkeymap.h,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilkeymap.h,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef _PIL_KEYMAP_H
diff --git a/libpil/pil/pilkeyword.c b/libpil/pil/pilkeyword.c
index a6d634c..61bc861 100644
--- a/libpil/pil/pilkeyword.c
+++ b/libpil/pil/pilkeyword.c
@@ -1,4 +1,4 @@
-/* $Id: pilkeyword.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilkeyword.c,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/libpil/pil/pilkeyword.h b/libpil/pil/pilkeyword.h
index 4596dec..9cf8769 100644
--- a/libpil/pil/pilkeyword.h
+++ b/libpil/pil/pilkeyword.h
@@ -1,4 +1,4 @@
-/* $Id: pilkeyword.h,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilkeyword.h,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
  
 #ifndef _PIL_KEYWORD_H
diff --git a/libpil/pil/pillist.c b/libpil/pil/pillist.c
index 93091ea..8a6c77f 100644
--- a/libpil/pil/pillist.c
+++ b/libpil/pil/pillist.c
@@ -1,4 +1,4 @@
-/* $Id: pillist.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pillist.c,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/libpil/pil/pillist.h b/libpil/pil/pillist.h
index e117554..57f318b 100644
--- a/libpil/pil/pillist.h
+++ b/libpil/pil/pillist.h
@@ -1,4 +1,4 @@
-/* $Id: pillist.h,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pillist.h,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef _PIL_LIST_H
diff --git a/libpil/pil/pilmacros.h b/libpil/pil/pilmacros.h
index 52ed353..efa09f0 100644
--- a/libpil/pil/pilmacros.h
+++ b/libpil/pil/pilmacros.h
@@ -1,4 +1,4 @@
-/* $Id: pilmacros.h,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilmacros.h,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 /*
diff --git a/libpil/pil/pilmemory.c b/libpil/pil/pilmemory.c
index f02dccd..73e5dbc 100644
--- a/libpil/pil/pilmemory.c
+++ b/libpil/pil/pilmemory.c
@@ -1,4 +1,4 @@
-/* $Id: pilmemory.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilmemory.c,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/libpil/pil/pilmemory.h b/libpil/pil/pilmemory.h
index 645ae9c..6bf0c17 100644
--- a/libpil/pil/pilmemory.h
+++ b/libpil/pil/pilmemory.h
@@ -1,4 +1,4 @@
-/* $Id: pilmemory.h,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilmemory.h,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef _PIL_MEMORY_H
diff --git a/libpil/pil/pilmessages.c b/libpil/pil/pilmessages.c
index c3beb0d..2ffa876 100644
--- a/libpil/pil/pilmessages.c
+++ b/libpil/pil/pilmessages.c
@@ -1,4 +1,4 @@
-/* $Id: pilmessages.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilmessages.c,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/libpil/pil/pilmessages.h b/libpil/pil/pilmessages.h
index b8b17cb..18d5e13 100644
--- a/libpil/pil/pilmessages.h
+++ b/libpil/pil/pilmessages.h
@@ -1,4 +1,4 @@
-/* $Id: pilmessages.h,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilmessages.h,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef _PIL_MESSAGES_H
diff --git a/libpil/pil/pilpaf.c b/libpil/pil/pilpaf.c
index 64e8096..dd7d177 100644
--- a/libpil/pil/pilpaf.c
+++ b/libpil/pil/pilpaf.c
@@ -1,4 +1,4 @@
-/* $Id: pilpaf.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilpaf.c,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/libpil/pil/pilpaf.h b/libpil/pil/pilpaf.h
index db1aed2..2a59960 100644
--- a/libpil/pil/pilpaf.h
+++ b/libpil/pil/pilpaf.h
@@ -1,4 +1,4 @@
-/* $Id: pilpaf.h,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilpaf.h,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
  
 #ifndef _PIL_PAF_H
diff --git a/libpil/pil/pilqc.c b/libpil/pil/pilqc.c
index cbe258c..3a3980d 100644
--- a/libpil/pil/pilqc.c
+++ b/libpil/pil/pilqc.c
@@ -1,4 +1,4 @@
-/* $Id: pilqc.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilqc.c,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/libpil/pil/pilqc.h b/libpil/pil/pilqc.h
index 9e65259..eeec77e 100644
--- a/libpil/pil/pilqc.h
+++ b/libpil/pil/pilqc.h
@@ -1,4 +1,4 @@
-/* $Id: pilqc.h,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilqc.h,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef _PIL_QC_H
diff --git a/libpil/pil/pilrecipe.c b/libpil/pil/pilrecipe.c
index eeee338..5d038af 100644
--- a/libpil/pil/pilrecipe.c
+++ b/libpil/pil/pilrecipe.c
@@ -1,4 +1,4 @@
-/* $Id: pilrecipe.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilrecipe.c,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/libpil/pil/pilrecipe.h b/libpil/pil/pilrecipe.h
index 7683708..c242d5c 100644
--- a/libpil/pil/pilrecipe.h
+++ b/libpil/pil/pilrecipe.h
@@ -1,4 +1,4 @@
-/* $Id: pilrecipe.h,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilrecipe.h,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef _PIL_RECIPE_H
diff --git a/libpil/pil/pilstrutils.c b/libpil/pil/pilstrutils.c
index da698ff..bf5f4f5 100644
--- a/libpil/pil/pilstrutils.c
+++ b/libpil/pil/pilstrutils.c
@@ -1,4 +1,4 @@
-/* $Id: pilstrutils.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilstrutils.c,v 1.2 2013-04-23 14:26:36 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -19,10 +19,10 @@
  */
 
 /*
- * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
- * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Author: cgarcia $
+ * $Date: 2013-04-23 14:26:36 $
+ * $Revision: 1.2 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -61,7 +61,7 @@
  * to the caller can be deallocated using @b pil_free().
  */
 
-inline char *
+char *
 pil_strdup(const char *string)
 {
 
diff --git a/libpil/pil/pilstrutils.h b/libpil/pil/pilstrutils.h
index fbde6c3..f0fb404 100644
--- a/libpil/pil/pilstrutils.h
+++ b/libpil/pil/pilstrutils.h
@@ -1,4 +1,4 @@
-/* $Id: pilstrutils.h,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilstrutils.h,v 1.2 2013-04-23 14:24:10 cgarcia Exp $
  *
 * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -19,10 +19,10 @@
  */
 
 /*
- * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
- * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Author: cgarcia $
+ * $Date: 2013-04-23 14:24:10 $
+ * $Revision: 1.2 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef _PIL_STRUTILS_H
@@ -39,7 +39,7 @@ PIL_BEGIN_DECLS
  * Utilities returning a newly allocated string.
  */
 
-extern char *pil_strdup(const char *);
+char *pil_strdup(const char *);
 extern char *pil_strndup(const char *, size_t);
 
 PIL_END_DECLS
diff --git a/libpil/pil/piltask.c b/libpil/pil/piltask.c
index 3f6e84b..e57f8e8 100644
--- a/libpil/pil/piltask.c
+++ b/libpil/pil/piltask.c
@@ -1,4 +1,4 @@
-/* $Id: piltask.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: piltask.c,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/libpil/pil/piltask.h b/libpil/pil/piltask.h
index c28da1d..09c135b 100644
--- a/libpil/pil/piltask.h
+++ b/libpil/pil/piltask.h
@@ -1,4 +1,4 @@
-/* $Id: piltask.h,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: piltask.h,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef _PIL_TASK_H
diff --git a/libpil/pil/piltimer.c b/libpil/pil/piltimer.c
index dd10247..17d96d6 100644
--- a/libpil/pil/piltimer.c
+++ b/libpil/pil/piltimer.c
@@ -1,4 +1,4 @@
-/* $Id: piltimer.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: piltimer.c,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/libpil/pil/piltimer.h b/libpil/pil/piltimer.h
index 3da9a55..6d3ffa7 100644
--- a/libpil/pil/piltimer.h
+++ b/libpil/pil/piltimer.h
@@ -1,4 +1,4 @@
-/* $Id: piltimer.h,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: piltimer.h,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef _PIL_TIMER_H
diff --git a/libpil/pil/piltranslator.c b/libpil/pil/piltranslator.c
index e1506ec..a451558 100644
--- a/libpil/pil/piltranslator.c
+++ b/libpil/pil/piltranslator.c
@@ -1,4 +1,4 @@
-/* $Id: piltranslator.c,v 1.4 2012/11/08 17:57:37 cgarcia Exp $
+/* $Id: piltranslator.c,v 1.4 2012-11-08 17:57:37 cgarcia Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2012/11/08 17:57:37 $
+ * $Date: 2012-11-08 17:57:37 $
  * $Revision: 1.4 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/libpil/pil/piltranslator.h b/libpil/pil/piltranslator.h
index d83abb9..c50731d 100644
--- a/libpil/pil/piltranslator.h
+++ b/libpil/pil/piltranslator.h
@@ -1,4 +1,4 @@
-/* $Id: piltranslator.h,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: piltranslator.h,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS pipeline library
  * Copyright (C) 2000-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef _PIL_TRANSLATOR_H_
diff --git a/libpil/pil/pilutils.c b/libpil/pil/pilutils.c
index bedc493..9347768 100644
--- a/libpil/pil/pilutils.c
+++ b/libpil/pil/pilutils.c
@@ -1,4 +1,4 @@
-/* $Id: pilutils.c,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilutils.c,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/libpil/pil/pilutils.h b/libpil/pil/pilutils.h
index 46fa29e..4a16939 100644
--- a/libpil/pil/pilutils.h
+++ b/libpil/pil/pilutils.h
@@ -1,4 +1,4 @@
-/* $Id: pilutils.h,v 1.1.1.1 2008/10/21 09:10:13 cizzo Exp $
+/* $Id: pilutils.h,v 1.1.1.1 2008-10-21 09:10:13 cizzo Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2008/10/21 09:10:13 $
+ * $Date: 2008-10-21 09:10:13 $
  * $Revision: 1.1.1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef _PIL_UTILS_H
diff --git a/libpil/tests/paf-test.c b/libpil/tests/paf-test.c
index 90d36cb..fef3c13 100644
--- a/libpil/tests/paf-test.c
+++ b/libpil/tests/paf-test.c
@@ -1,4 +1,4 @@
-/* $Id: paf-test.c,v 1.1.1.1 2008/10/21 09:10:12 cizzo Exp $
+/* $Id: paf-test.c,v 1.1.1.1 2008-10-21 09:10:12 cizzo Exp $
  * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  * COPYRIGHT (c) 2000 European Southern Observatory
  * LICENSE: GNU General Public License version 2 or later
@@ -12,7 +12,7 @@
  *
  * DESCRIPTION:
  *
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  * $Revision: 1.1.1.1 $
  * ----------------------------------------------------------------------------
  */
diff --git a/recipes/Makefile.am b/recipes/Makefile.am
index 1d25531..30be1a5 100644
--- a/recipes/Makefile.am
+++ b/recipes/Makefile.am
@@ -58,92 +58,92 @@ endif
 
 vmbias_la_SOURCES = vmbias.c
 vmbias_la_LIBADD = $(LIBVIMOS)
-vmbias_la_LDFLAGS = -module -avoid-version -no-undefined
+vmbias_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmbias_la_DEPENDENCIES = $(LIBVIMOS)
 
 vmdark_la_SOURCES = vmdark.c
 vmdark_la_LIBADD = $(LIBVIMOS)
-vmdark_la_LDFLAGS = -module -avoid-version -no-undefined
+vmdark_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmdark_la_DEPENDENCIES = $(LIBVIMOS)
 
 vmifucalib_la_SOURCES = vmifucalib.c
 vmifucalib_la_LIBADD = $(LIBVIMOS)
-vmifucalib_la_LDFLAGS = -module -avoid-version -no-undefined
+vmifucalib_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmifucalib_la_DEPENDENCIES = $(LIBVIMOS)
 
 vmifucombine_la_SOURCES = vmifucombine.c
 vmifucombine_la_LIBADD = $(LIBVIMOS)
-vmifucombine_la_LDFLAGS = -module -avoid-version -no-undefined
+vmifucombine_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmifucombine_la_DEPENDENCIES = $(LIBVIMOS)
 
 vmifucombinecube_la_SOURCES = vmifucombinecube.cc
 vmifucombinecube_la_LIBADD = $(LIBVIMOS)
-vmifucombinecube_la_LDFLAGS = -module -avoid-version -no-undefined
+vmifucombinecube_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmifucombinecube_la_DEPENDENCIES = $(LIBVIMOS)
 
 vmifuscience_la_SOURCES = vmifuscience.c
 vmifuscience_la_LIBADD = $(LIBVIMOS)
-vmifuscience_la_LDFLAGS = -module -avoid-version -no-undefined
+vmifuscience_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmifuscience_la_DEPENDENCIES = $(LIBVIMOS)
 
 vmifustandard_la_SOURCES = vmifustandard.c
 vmifustandard_la_LIBADD = $(LIBVIMOS)
-vmifustandard_la_LDFLAGS = -module -avoid-version -no-undefined
+vmifustandard_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmifustandard_la_DEPENDENCIES = $(LIBVIMOS)
 
 vmmosstandard_la_SOURCES = vmmosstandard.c
 vmmosstandard_la_LIBADD = $(LIBVIMOS)
-vmmosstandard_la_LDFLAGS = -module -avoid-version -no-undefined
+vmmosstandard_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmmosstandard_la_DEPENDENCIES = $(LIBVIMOS)
 
 vmmoscombine_la_SOURCES = vmmoscombine.c
 vmmoscombine_la_LIBADD = $(LIBVIMOS)
-vmmoscombine_la_LDFLAGS = -module -avoid-version -no-undefined
+vmmoscombine_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmmoscombine_la_DEPENDENCIES = $(LIBVIMOS)
 
 vmspphot_la_SOURCES = vmspphot.c
 vmspphot_la_LIBADD = $(LIBVIMOS)
-vmspphot_la_LDFLAGS = -module -avoid-version -no-undefined
+vmspphot_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmspphot_la_DEPENDENCIES = $(LIBVIMOS)
 
 vmdet_la_SOURCES = vmdet.c
 vmdet_la_LIBADD = $(LIBVIMOS)
-vmdet_la_LDFLAGS = -module -avoid-version -no-undefined
+vmdet_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmdet_la_DEPENDENCIES = $(LIBVIMOS)
 
 vmimcalphot_la_SOURCES = vmimcalphot.c
 vmimcalphot_la_LIBADD = $(LIBVIMOS)
-vmimcalphot_la_LDFLAGS = -module -avoid-version -no-undefined
+vmimcalphot_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmimcalphot_la_DEPENDENCIES = $(LIBVIMOS)
 
 vmimflatscreen_la_SOURCES = vmimflatscreen.c
 vmimflatscreen_la_LIBADD = $(LIBVIMOS)
-vmimflatscreen_la_LDFLAGS = -module -avoid-version -no-undefined
+vmimflatscreen_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmimflatscreen_la_DEPENDENCIES = $(LIBVIMOS)
 
 vmimflatsky_la_SOURCES = vmimflatsky.c
 vmimflatsky_la_LIBADD = $(LIBVIMOS)
-vmimflatsky_la_LDFLAGS = -module -avoid-version -no-undefined
+vmimflatsky_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmimflatsky_la_DEPENDENCIES = $(LIBVIMOS)
 
 vmimobsjitter_la_SOURCES = vmimobsjitter.c
 vmimobsjitter_la_LIBADD = $(LIBVIMOS)
-vmimobsjitter_la_LDFLAGS = -module -avoid-version -no-undefined
+vmimobsjitter_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmimobsjitter_la_DEPENDENCIES = $(LIBVIMOS)
 
 vmimobsstare_la_SOURCES = vmimobsstare.c
 vmimobsstare_la_LIBADD = $(LIBVIMOS)
-vmimobsstare_la_LDFLAGS = -module -avoid-version -no-undefined
+vmimobsstare_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmimobsstare_la_DEPENDENCIES = $(LIBVIMOS)
 
 vmimpreimaging_la_SOURCES = vmimpreimaging.c
 vmimpreimaging_la_LIBADD = $(LIBVIMOS)
-vmimpreimaging_la_LDFLAGS = -module -avoid-version -no-undefined
+vmimpreimaging_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmimpreimaging_la_DEPENDENCIES = $(LIBVIMOS)
 
 vmimstandard_la_SOURCES = vmimstandard.c
 vmimstandard_la_LIBADD = $(LIBVIMOS)
-vmimstandard_la_LDFLAGS = -module -avoid-version -no-undefined
+vmimstandard_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmimstandard_la_DEPENDENCIES = $(LIBVIMOS)
 
 if ONLINE_MODE
@@ -152,17 +152,17 @@ else
 vmmasktoccd_la_SOURCES =
 endif
 vmmasktoccd_la_LIBADD = $(LIBVIMOS)
-vmmasktoccd_la_LDFLAGS = -module -avoid-version -no-undefined
+vmmasktoccd_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmmasktoccd_la_DEPENDENCIES = $(LIBVIMOS)
 
 vmmosobsjitter_la_SOURCES = vmmosobsjitter.c
 vmmosobsjitter_la_LIBADD = $(LIBVIMOS)
-vmmosobsjitter_la_LDFLAGS = -module -avoid-version -no-undefined
+vmmosobsjitter_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmmosobsjitter_la_DEPENDENCIES = $(LIBVIMOS)
 
 vmmosobsstare_la_SOURCES = vmmosobsstare.c
 vmmosobsstare_la_LIBADD = $(LIBVIMOS)
-vmmosobsstare_la_LDFLAGS = -module -avoid-version -no-undefined
+vmmosobsstare_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmmosobsstare_la_DEPENDENCIES = $(LIBVIMOS)
 
 if ONLINE_MODE
@@ -171,25 +171,25 @@ else
 vmskyccd_la_SOURCES =
 endif
 vmskyccd_la_LIBADD = $(LIBVIMOS)
-vmskyccd_la_LDFLAGS = -module -avoid-version -no-undefined
+vmskyccd_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmskyccd_la_DEPENDENCIES = $(LIBVIMOS)
 
 vmspcaldisp_la_SOURCES = vmspcaldisp.c
 vmspcaldisp_la_LIBADD = $(LIBVIMOS)
-vmspcaldisp_la_LDFLAGS = -module -avoid-version -no-undefined
+vmspcaldisp_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmspcaldisp_la_DEPENDENCIES = $(LIBVIMOS)
 
 vmspflat_la_SOURCES = vmspflat.c
 vmspflat_la_LIBADD = $(LIBVIMOS)
-vmspflat_la_LDFLAGS = -module -avoid-version -no-undefined
+vmspflat_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmspflat_la_DEPENDENCIES = $(LIBVIMOS)
 
 vmmoscalib_la_SOURCES = vimos_calib.c
 vmmoscalib_la_LIBADD = $(LIBVIMOS)
-vmmoscalib_la_LDFLAGS = -module -avoid-version  -no-undefined
+vmmoscalib_la_LDFLAGS = -module -avoid-version  -no-undefined $(CPL_LDFLAGS)
 vmmoscalib_la_DEPENDENCIES = $(LIBVIMOS)
 
 vmmosscience_la_SOURCES = vimos_science.c
 vmmosscience_la_LIBADD = $(LIBVIMOS)
-vmmosscience_la_LDFLAGS = -module -avoid-version -no-undefined
+vmmosscience_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmmosscience_la_DEPENDENCIES = $(LIBVIMOS)
diff --git a/recipes/Makefile.in b/recipes/Makefile.in
index 128c2f4..a50f866 100644
--- a/recipes/Makefile.in
+++ b/recipes/Makefile.in
@@ -540,109 +540,109 @@ noinst_HEADERS =
 
 vmbias_la_SOURCES = vmbias.c
 vmbias_la_LIBADD = $(LIBVIMOS)
-vmbias_la_LDFLAGS = -module -avoid-version -no-undefined
+vmbias_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmbias_la_DEPENDENCIES = $(LIBVIMOS)
 vmdark_la_SOURCES = vmdark.c
 vmdark_la_LIBADD = $(LIBVIMOS)
-vmdark_la_LDFLAGS = -module -avoid-version -no-undefined
+vmdark_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmdark_la_DEPENDENCIES = $(LIBVIMOS)
 vmifucalib_la_SOURCES = vmifucalib.c
 vmifucalib_la_LIBADD = $(LIBVIMOS)
-vmifucalib_la_LDFLAGS = -module -avoid-version -no-undefined
+vmifucalib_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmifucalib_la_DEPENDENCIES = $(LIBVIMOS)
 vmifucombine_la_SOURCES = vmifucombine.c
 vmifucombine_la_LIBADD = $(LIBVIMOS)
-vmifucombine_la_LDFLAGS = -module -avoid-version -no-undefined
+vmifucombine_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmifucombine_la_DEPENDENCIES = $(LIBVIMOS)
 vmifucombinecube_la_SOURCES = vmifucombinecube.cc
 vmifucombinecube_la_LIBADD = $(LIBVIMOS)
-vmifucombinecube_la_LDFLAGS = -module -avoid-version -no-undefined
+vmifucombinecube_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmifucombinecube_la_DEPENDENCIES = $(LIBVIMOS)
 vmifuscience_la_SOURCES = vmifuscience.c
 vmifuscience_la_LIBADD = $(LIBVIMOS)
-vmifuscience_la_LDFLAGS = -module -avoid-version -no-undefined
+vmifuscience_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmifuscience_la_DEPENDENCIES = $(LIBVIMOS)
 vmifustandard_la_SOURCES = vmifustandard.c
 vmifustandard_la_LIBADD = $(LIBVIMOS)
-vmifustandard_la_LDFLAGS = -module -avoid-version -no-undefined
+vmifustandard_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmifustandard_la_DEPENDENCIES = $(LIBVIMOS)
 vmmosstandard_la_SOURCES = vmmosstandard.c
 vmmosstandard_la_LIBADD = $(LIBVIMOS)
-vmmosstandard_la_LDFLAGS = -module -avoid-version -no-undefined
+vmmosstandard_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmmosstandard_la_DEPENDENCIES = $(LIBVIMOS)
 vmmoscombine_la_SOURCES = vmmoscombine.c
 vmmoscombine_la_LIBADD = $(LIBVIMOS)
-vmmoscombine_la_LDFLAGS = -module -avoid-version -no-undefined
+vmmoscombine_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmmoscombine_la_DEPENDENCIES = $(LIBVIMOS)
 vmspphot_la_SOURCES = vmspphot.c
 vmspphot_la_LIBADD = $(LIBVIMOS)
-vmspphot_la_LDFLAGS = -module -avoid-version -no-undefined
+vmspphot_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmspphot_la_DEPENDENCIES = $(LIBVIMOS)
 vmdet_la_SOURCES = vmdet.c
 vmdet_la_LIBADD = $(LIBVIMOS)
-vmdet_la_LDFLAGS = -module -avoid-version -no-undefined
+vmdet_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmdet_la_DEPENDENCIES = $(LIBVIMOS)
 vmimcalphot_la_SOURCES = vmimcalphot.c
 vmimcalphot_la_LIBADD = $(LIBVIMOS)
-vmimcalphot_la_LDFLAGS = -module -avoid-version -no-undefined
+vmimcalphot_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmimcalphot_la_DEPENDENCIES = $(LIBVIMOS)
 vmimflatscreen_la_SOURCES = vmimflatscreen.c
 vmimflatscreen_la_LIBADD = $(LIBVIMOS)
-vmimflatscreen_la_LDFLAGS = -module -avoid-version -no-undefined
+vmimflatscreen_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmimflatscreen_la_DEPENDENCIES = $(LIBVIMOS)
 vmimflatsky_la_SOURCES = vmimflatsky.c
 vmimflatsky_la_LIBADD = $(LIBVIMOS)
-vmimflatsky_la_LDFLAGS = -module -avoid-version -no-undefined
+vmimflatsky_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmimflatsky_la_DEPENDENCIES = $(LIBVIMOS)
 vmimobsjitter_la_SOURCES = vmimobsjitter.c
 vmimobsjitter_la_LIBADD = $(LIBVIMOS)
-vmimobsjitter_la_LDFLAGS = -module -avoid-version -no-undefined
+vmimobsjitter_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmimobsjitter_la_DEPENDENCIES = $(LIBVIMOS)
 vmimobsstare_la_SOURCES = vmimobsstare.c
 vmimobsstare_la_LIBADD = $(LIBVIMOS)
-vmimobsstare_la_LDFLAGS = -module -avoid-version -no-undefined
+vmimobsstare_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmimobsstare_la_DEPENDENCIES = $(LIBVIMOS)
 vmimpreimaging_la_SOURCES = vmimpreimaging.c
 vmimpreimaging_la_LIBADD = $(LIBVIMOS)
-vmimpreimaging_la_LDFLAGS = -module -avoid-version -no-undefined
+vmimpreimaging_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmimpreimaging_la_DEPENDENCIES = $(LIBVIMOS)
 vmimstandard_la_SOURCES = vmimstandard.c
 vmimstandard_la_LIBADD = $(LIBVIMOS)
-vmimstandard_la_LDFLAGS = -module -avoid-version -no-undefined
+vmimstandard_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmimstandard_la_DEPENDENCIES = $(LIBVIMOS)
 @ONLINE_MODE_FALSE at vmmasktoccd_la_SOURCES = 
 @ONLINE_MODE_TRUE at vmmasktoccd_la_SOURCES = vmmasktoccd.c
 vmmasktoccd_la_LIBADD = $(LIBVIMOS)
-vmmasktoccd_la_LDFLAGS = -module -avoid-version -no-undefined
+vmmasktoccd_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmmasktoccd_la_DEPENDENCIES = $(LIBVIMOS)
 vmmosobsjitter_la_SOURCES = vmmosobsjitter.c
 vmmosobsjitter_la_LIBADD = $(LIBVIMOS)
-vmmosobsjitter_la_LDFLAGS = -module -avoid-version -no-undefined
+vmmosobsjitter_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmmosobsjitter_la_DEPENDENCIES = $(LIBVIMOS)
 vmmosobsstare_la_SOURCES = vmmosobsstare.c
 vmmosobsstare_la_LIBADD = $(LIBVIMOS)
-vmmosobsstare_la_LDFLAGS = -module -avoid-version -no-undefined
+vmmosobsstare_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmmosobsstare_la_DEPENDENCIES = $(LIBVIMOS)
 @ONLINE_MODE_FALSE at vmskyccd_la_SOURCES = 
 @ONLINE_MODE_TRUE at vmskyccd_la_SOURCES = vmskyccd.c
 vmskyccd_la_LIBADD = $(LIBVIMOS)
-vmskyccd_la_LDFLAGS = -module -avoid-version -no-undefined
+vmskyccd_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmskyccd_la_DEPENDENCIES = $(LIBVIMOS)
 vmspcaldisp_la_SOURCES = vmspcaldisp.c
 vmspcaldisp_la_LIBADD = $(LIBVIMOS)
-vmspcaldisp_la_LDFLAGS = -module -avoid-version -no-undefined
+vmspcaldisp_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmspcaldisp_la_DEPENDENCIES = $(LIBVIMOS)
 vmspflat_la_SOURCES = vmspflat.c
 vmspflat_la_LIBADD = $(LIBVIMOS)
-vmspflat_la_LDFLAGS = -module -avoid-version -no-undefined
+vmspflat_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmspflat_la_DEPENDENCIES = $(LIBVIMOS)
 vmmoscalib_la_SOURCES = vimos_calib.c
 vmmoscalib_la_LIBADD = $(LIBVIMOS)
-vmmoscalib_la_LDFLAGS = -module -avoid-version  -no-undefined
+vmmoscalib_la_LDFLAGS = -module -avoid-version  -no-undefined $(CPL_LDFLAGS)
 vmmoscalib_la_DEPENDENCIES = $(LIBVIMOS)
 vmmosscience_la_SOURCES = vimos_science.c
 vmmosscience_la_LIBADD = $(LIBVIMOS)
-vmmosscience_la_LDFLAGS = -module -avoid-version -no-undefined
+vmmosscience_la_LDFLAGS = -module -avoid-version -no-undefined $(CPL_LDFLAGS)
 vmmosscience_la_DEPENDENCIES = $(LIBVIMOS)
 all: all-am
 
diff --git a/recipes/vimos_calib.c b/recipes/vimos_calib.c
index 87265b4..46bbd5d 100644
--- a/recipes/vimos_calib.c
+++ b/recipes/vimos_calib.c
@@ -1,4 +1,4 @@
-/* $Id: vimos_calib.c,v 1.14 2010/11/05 09:35:23 cizzo Exp $
+/* $Id: vimos_calib.c,v 1.16 2013-10-22 16:55:57 cgarcia Exp $
  *
  * This file is part of the VIMOS Data Reduction Pipeline
  * Copyright (C) 2006 European Southern Observatory
@@ -19,10 +19,10 @@
  */
 
 /*
- * $Author: cizzo $
- * $Date: 2010/11/05 09:35:23 $
- * $Revision: 1.14 $
- * $Name: vimos-2_9_7 $
+ * $Author: cgarcia $
+ * $Date: 2013-10-22 16:55:57 $
+ * $Revision: 1.16 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -441,32 +441,6 @@ static int vimos_calib_create(cpl_plugin *plugin)
     cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV);
     cpl_parameterlist_append(recipe->parameters, p);
 
-    /*
-     * Computation of QC1 parameters
-     */
-
-    p = cpl_parameter_new_value("vimos.vmmoscalib.qc",
-                                CPL_TYPE_BOOL,
-                                "Compute QC1 parameters",
-                                "vimos.vmmoscalib",
-                                TRUE);
-    cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, "qc");
-    cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV);
-    cpl_parameterlist_append(recipe->parameters, p);
-
-    /*
-     * Create check products
-     */
-
-    p = cpl_parameter_new_value("vimos.vmmoscalib.check",
-                                CPL_TYPE_BOOL,
-                                "Create intermediate products",
-                                "vimos.vmmoscalib",
-                                FALSE);
-    cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, "check");
-    cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV);
-    cpl_parameterlist_append(recipe->parameters, p);
-
     return 0;
 }
 
@@ -536,9 +510,6 @@ static int vimos_calib(cpl_parameterlist *parlist, cpl_frameset *frameset)
     int               status;
 
 
-    if (dfs_files_dont_exist(frameset))
-        vimos_multi_exit(NULL);
-
     /*
      * Check whether there is spectral multiplexing here
      */
diff --git a/recipes/vimos_science.c b/recipes/vimos_science.c
index e3ff052..e472102 100644
--- a/recipes/vimos_science.c
+++ b/recipes/vimos_science.c
@@ -1,4 +1,4 @@
-/* $Id: vimos_science.c,v 1.33 2013/04/12 09:31:59 cgarcia Exp $
+/* $Id: vimos_science.c,v 1.36 2013-08-23 10:17:39 cgarcia Exp $
  *
  * This file is part of the VIMOS Data Reduction Pipeline
  * Copyright (C) 2006 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/04/12 09:31:59 $
- * $Revision: 1.33 $
- * $Name: vimos-2_9_7 $
+ * $Date: 2013-08-23 10:17:39 $
+ * $Revision: 1.36 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -694,7 +694,6 @@ static int vimos_science_mult(cpl_parameterlist *parlist,
     const char       *disp_coeff_tag    = "MOS_DISP_COEFF";
     const char       *global_dist_tag   = "GLOBAL_DISTORTION_TABLE";
     const char       *science_tag       = "MOS_SCIENCE";
-    const char       *tag               = NULL;
     const char       *name              = NULL;
     cpl_frame        *frame             = NULL;
     cpl_table        *slits             = NULL;
@@ -710,7 +709,6 @@ static int vimos_science_mult(cpl_parameterlist *parlist,
     int               i, multiplex, ngroups;
     int               status;
     int               mos;
-    int               standard;
     int               have_slit;
     int               have_curv;
     int               have_disp;
@@ -777,12 +775,10 @@ static int vimos_science_mult(cpl_parameterlist *parlist,
         }
 
         mos = cpl_frameset_count_tags(frameset, science_tag);
-        standard = 0;
 
         if (mos == 0) {
             science_tag = "MOS_STANDARD";
             mos = cpl_frameset_count_tags(frameset, science_tag);
-            standard = 1;
         }
 
         if (mos == 0) {
@@ -947,7 +943,7 @@ static int vimos_science_mult(cpl_parameterlist *parlist,
 
     if (multiplex != cpl_fits_count_extensions(cpl_frame_get_filename(frame))) {
         cpl_msg_error(recipe, "Expected %d data sections in input %s: " 
-                      "%d found.", multiplex, curv_coeff_tag,
+                      "%"CPL_SIZE_FORMAT" found.", multiplex, curv_coeff_tag,
                       cpl_fits_count_extensions(cpl_frame_get_filename(frame)));
         return -1;
     }
@@ -968,7 +964,7 @@ static int vimos_science_mult(cpl_parameterlist *parlist,
 
     if (multiplex != cpl_fits_count_extensions(name)) {
         cpl_msg_error(recipe, "Expected %d data sections in input %s: " 
-                      "%d found.", multiplex, disp_coeff_tag,
+                      "%"CPL_SIZE_FORMAT" found.", multiplex, disp_coeff_tag,
                       cpl_fits_count_extensions(name));
         return -1;
     }
@@ -993,7 +989,6 @@ static int vimos_science_mult(cpl_parameterlist *parlist,
             char *tmpname;
 
             name  = cpl_frame_get_filename(frame);
-            tag   = cpl_frame_get_tag(frame);
             type  = cpl_frame_get_type(frame);
             group = cpl_frame_get_group(frame);
 
@@ -1195,9 +1190,9 @@ static int vimos_science(cpl_parameterlist *parlist, cpl_frameset *frameset,
         int               ext_mode;
         double            detection;
         int               photometry;
-        int               skylocal, skyglobal, skymedian;
+        int               skylocal, skyglobal;
         int               rotate      = 1;
-        int               rotate_back = -1;
+        /* int               rotate_back = -1;*/
         cpl_frameset     *work;
         cpl_frame       **mos_science;
         cpl_frame        *frame;
@@ -1355,8 +1350,8 @@ static int vimos_science(cpl_parameterlist *parlist, cpl_frameset *frameset,
                                  "vimos.vmmosscience.skyglobal", NULL);
         skylocal  = dfs_get_parameter_bool(parlist, 
                                  "vimos.vmmosscience.skylocal", NULL);
-        skymedian = dfs_get_parameter_bool(parlist, 
-                                 "vimos.vmmosscience.skymedian", NULL);
+        //skymedian = dfs_get_parameter_bool(parlist, 
+        //                          "vimos.vmmosscience.skymedian", NULL);
 
         if (!skyglobal && !skylocal) {
             cpl_msg_error(recipe, "In the case of dithered observations "
diff --git a/recipes/vmbias.c b/recipes/vmbias.c
index 2355c5f..54160f5 100644
--- a/recipes/vmbias.c
+++ b/recipes/vmbias.c
@@ -1,4 +1,4 @@
-/* $Id: vmbias.c,v 1.6 2012/01/26 16:06:20 cgarcia Exp $
+/* $Id: vmbias.c,v 1.8 2013-07-11 11:44:09 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2005 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2012/01/26 16:06:20 $
- * $Revision: 1.6 $
- * $Name: vimos-2_9_7 $
+ * $Date: 2013-07-11 11:44:09 $
+ * $Revision: 1.8 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -56,6 +56,7 @@
 #include "vmimgutils.h"
 #include "vmqcutils.h"
 #include "vmcpl.h"
+#include "fors_dfs.c"
 
 
 static cxint vmbias(PilSetOfFrames *);
@@ -797,7 +798,7 @@ vmbias(PilSetOfFrames *sof)
 
     if (validateFrames && biasCount < 2) {
         validateFrames = 0;
-        cpl_msg_warning(task, "Too few bias frames (%d) in input. Skipping "
+        cpl_msg_warning(task, "Too few bias frames (%zd) in input. Skipping "
                       "frame selection task!", biasCount);
     }
 
@@ -900,7 +901,7 @@ vmbias(PilSetOfFrames *sof)
                     deleteTable(ccdTable);
                     return EXIT_FAILURE;
                 }
-                cpl_msg_info(task, "  Bias %d of %d done", i + 1, biasCount);
+                cpl_msg_info(task, "  Bias %d of %zd done", i + 1, biasCount);
             }
         }
 
@@ -1009,7 +1010,7 @@ vmbias(PilSetOfFrames *sof)
 
             pil_free(refList);
 
-            cpl_msg_info(task, "%d raw bias frames selected.", goodFrames);
+            cpl_msg_info(task, "%zd raw bias frames selected.", goodFrames);
 
 
             /*
@@ -1035,7 +1036,7 @@ vmbias(PilSetOfFrames *sof)
                     return EXIT_FAILURE;
                 }
 
-                cpl_msg_info(task, "%d out of %d consistent bias frames "
+                cpl_msg_info(task, "%zd out of %zd consistent bias frames "
                            "selected from input set", goodFrames, biasCount);
             }
         }
@@ -1072,7 +1073,7 @@ vmbias(PilSetOfFrames *sof)
         mBias = duplicateImage(biasList[0]);
     }
     else if (goodFrames >= minFrames) {
-        cpl_msg_info(task, "Combining %d frames with method '%s'", goodFrames,
+        cpl_msg_info(task, "Combining %zd frames with method '%s'", goodFrames,
                    methodNames[methodEntry]);
 
         mBias = frComb(biasList, goodFrames, method, &combParameter, 0);
diff --git a/recipes/vmdark.c b/recipes/vmdark.c
index 1c1b8f3..17956c2 100644
--- a/recipes/vmdark.c
+++ b/recipes/vmdark.c
@@ -1,4 +1,4 @@
-/* $Id: vmdark.c,v 1.5 2012/01/26 16:06:35 cgarcia Exp $
+/* $Id: vmdark.c,v 1.6 2013-08-07 16:41:46 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2005 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2012/01/26 16:06:35 $
- * $Revision: 1.5 $
- * $Name: vimos-2_9_7 $
+ * $Date: 2013-08-07 16:41:46 $
+ * $Revision: 1.6 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -819,7 +819,7 @@ vmdark(PilSetOfFrames *sof)
 
   if (validateFrames && darkCount < 2) {
     validateFrames = 0;
-    cpl_msg_warning(task, "Too few dark frames (%d) in input. Skipping "
+    cpl_msg_warning(task, "Too few dark frames (%zd) in input. Skipping "
                   "frame validation task!", darkCount);
   }
 
@@ -1141,7 +1141,7 @@ vmdark(PilSetOfFrames *sof)
         deleteCcdTable(ccdTable);
         return EXIT_FAILURE;
       }
-      cpl_msg_info(task, "  Dark %d of %d done", i + 1, darkCount);
+      cpl_msg_info(task, "  Dark %d of %zd done", i + 1, darkCount);
     }
   }
 
@@ -1291,7 +1291,7 @@ vmdark(PilSetOfFrames *sof)
 
     if (goodFrames) {
       cpl_msg_info(task, 
-           "%d out of %d consistent dark frames selected from input set", 
+           "%zd out of %zd consistent dark frames selected from input set", 
            goodFrames, darkCount);
     }
 
@@ -1329,7 +1329,7 @@ vmdark(PilSetOfFrames *sof)
     mDark = duplicateImage(darkList[0]);
   }
   else if (goodFrames >= minFrames) {
-    cpl_msg_info(task, "Combining %d frames with method '%s'", goodFrames,
+    cpl_msg_info(task, "Combining %zd frames with method '%s'", goodFrames,
                combMethodNames[combMethodEntry]);
 
     if (combMethod == COMB_AVERAGE) {
diff --git a/recipes/vmdet.c b/recipes/vmdet.c
index df4b86d..bd6d18b 100644
--- a/recipes/vmdet.c
+++ b/recipes/vmdet.c
@@ -1,4 +1,4 @@
-/* $Id: vmdet.c,v 1.4 2012/01/26 16:06:47 cgarcia Exp $
+/* $Id: vmdet.c,v 1.4 2012-01-26 16:06:47 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2005 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2012/01/26 16:06:47 $
+ * $Date: 2012-01-26 16:06:47 $
  * $Revision: 1.4 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/recipes/vmifucalib.c b/recipes/vmifucalib.c
index 939b97d..d0f9b84 100644
--- a/recipes/vmifucalib.c
+++ b/recipes/vmifucalib.c
@@ -1,4 +1,4 @@
-/* $Id: vmifucalib.c,v 1.11 2012/05/24 14:11:09 cgarcia Exp $
+/* $Id: vmifucalib.c,v 1.12 2013-08-07 16:30:28 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2005 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2012/05/24 14:11:09 $
- * $Revision: 1.11 $
- * $Name: vimos-2_9_7 $
+ * $Date: 2013-08-07 16:30:28 $
+ * $Revision: 1.12 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -190,7 +190,7 @@ vmifucalib_create(cpl_plugin *plugin)
     cpl_recipe    *recipe;
     cpl_parameter *p;
 
-    cx_string *path = cx_string_new();
+/*    cx_string *path = cx_string_new(); */
     cxint status = 0;
 
     /* 
diff --git a/recipes/vmifucombine.c b/recipes/vmifucombine.c
index a5aee0a..2e3c2d9 100644
--- a/recipes/vmifucombine.c
+++ b/recipes/vmifucombine.c
@@ -1,4 +1,4 @@
-/* $Id: vmifucombine.c,v 1.3 2011/03/14 15:28:58 cizzo Exp $
+/* $Id: vmifucombine.c,v 1.3 2011-03-14 15:28:58 cizzo Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2005 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2011/03/14 15:28:58 $
+ * $Date: 2011-03-14 15:28:58 $
  * $Revision: 1.3 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/recipes/vmifucombinecube.cc b/recipes/vmifucombinecube.cc
index c622ad1..c3eb8dc 100644
--- a/recipes/vmifucombinecube.cc
+++ b/recipes/vmifucombinecube.cc
@@ -1,4 +1,4 @@
-/* $Id: vmifucombinecube.cc,v 1.5 2013/01/29 18:15:24 cgarcia Exp $
+/* $Id: vmifucombinecube.cc,v 1.7 2013-08-23 10:23:38 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2009 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/01/29 18:15:24 $
- * $Revision: 1.5 $
- * $Name: vimos-2_9_7 $
+ * $Date: 2013-08-23 10:23:38 $
+ * $Revision: 1.7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -259,13 +259,15 @@ vmifucombinecube_exec(cpl_plugin *plugin)
     try
     {
         if (vmifucombinecube(sof) == EXIT_SUCCESS) {
+         
+            const char * recipe_name = "vmifucombinecube";
        
             /*
              * Post process the product frames registered in the set
              * of frames.
              */
 
-            status = vmCplPostProcessFrames(sof, "vmifucombinecube");
+            status = vmCplPostProcessFrames(sof, recipe_name);
           
             if (status == 0) {
   
diff --git a/recipes/vmifuscience.c b/recipes/vmifuscience.c
index 1eee3ce..65756b4 100644
--- a/recipes/vmifuscience.c
+++ b/recipes/vmifuscience.c
@@ -1,4 +1,4 @@
-/* $Id: vmifuscience.c,v 1.10 2012/06/14 15:54:46 cgarcia Exp $
+/* $Id: vmifuscience.c,v 1.11 2013-08-07 16:42:52 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2005 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2012/06/14 15:54:46 $
- * $Revision: 1.10 $
- * $Name: vimos-2_9_7 $
+ * $Date: 2013-08-07 16:42:52 $
+ * $Revision: 1.11 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -952,7 +952,7 @@ vmifuscience(PilSetOfFrames *sof)
         detectedCount = cpl_table_get_nrow(detect);
       }
       if (detectedCount > 0) {
-        cpl_msg_info(task, "Detection threshold: %f, Detected spectra: %d",
+        cpl_msg_info(task, "Detection threshold: %f, Detected spectra: %zd",
                      minSignal, detectedCount);
       }
       minSignal -= 3.0;
@@ -975,7 +975,7 @@ vmifuscience(PilSetOfFrames *sof)
 
       cpl_msg_indent_more();
       if (detectedCount > 1) {
-        cpl_msg_info(task, "%d spectra detected on scientific exposure.", 
+        cpl_msg_info(task, "%zd spectra detected on scientific exposure.", 
                      detectedCount);
         cpl_msg_indent_less();
         cpl_msg_info(task, "Tracing detected spectra...");
diff --git a/recipes/vmifustandard.c b/recipes/vmifustandard.c
index f4789c7..1ebb9ea 100644
--- a/recipes/vmifustandard.c
+++ b/recipes/vmifustandard.c
@@ -1,4 +1,4 @@
-/* $Id: vmifustandard.c,v 1.6 2012/06/14 15:54:26 cgarcia Exp $
+/* $Id: vmifustandard.c,v 1.7 2013-08-07 16:45:33 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2005 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2012/06/14 15:54:26 $
- * $Revision: 1.6 $
- * $Name: vimos-2_9_7 $
+ * $Date: 2013-08-07 16:45:33 $
+ * $Revision: 1.7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -1047,7 +1047,7 @@ vmifustandard(PilSetOfFrames *sof)
 
       cpl_msg_indent_more();
       if (detectedCount > 1) {
-        cpl_msg_info(task, "%d spectra detected on standard star exposure.", 
+        cpl_msg_info(task, "%zd spectra detected on standard star exposure.", 
                    detectedCount);
         cpl_msg_indent_less();
         cpl_msg_info(task, "Tracing detected spectra...");
diff --git a/recipes/vmimcalphot.c b/recipes/vmimcalphot.c
index c939e67..2e33ef2 100644
--- a/recipes/vmimcalphot.c
+++ b/recipes/vmimcalphot.c
@@ -1,4 +1,4 @@
-/* $Id: vmimcalphot.c,v 1.5 2012/11/08 17:56:57 cgarcia Exp $
+/* $Id: vmimcalphot.c,v 1.5 2012-11-08 17:56:57 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2005 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2012/11/08 17:56:57 $
+ * $Date: 2012-11-08 17:56:57 $
  * $Revision: 1.5 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/recipes/vmimflatscreen.c b/recipes/vmimflatscreen.c
index 81564cf..1428e0d 100644
--- a/recipes/vmimflatscreen.c
+++ b/recipes/vmimflatscreen.c
@@ -1,4 +1,4 @@
-/* $Id: vmimflatscreen.c,v 1.3 2011/03/14 15:28:58 cizzo Exp $
+/* $Id: vmimflatscreen.c,v 1.4 2013-07-11 11:49:24 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2005 European Southern Observatory
@@ -19,10 +19,10 @@
  */
 
 /*
- * $Author: cizzo $
- * $Date: 2011/03/14 15:28:58 $
- * $Revision: 1.3 $
- * $Name: vimos-2_9_7 $
+ * $Author: cgarcia $
+ * $Date: 2013-07-11 11:49:24 $
+ * $Revision: 1.4 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -901,7 +901,7 @@ vmimflatscreen(PilSetOfFrames *sof)
 
   if (validateFrames && flatCount < 2) {
     validateFrames = 0;
-    cpl_msg_warning(task, "Too few screen flat field frames (%d) in input. "
+    cpl_msg_warning(task, "Too few screen flat field frames (%zd) in input. "
                   "Skipping frame validation task!", flatCount);
   }
 
@@ -1276,7 +1276,7 @@ vmimflatscreen(PilSetOfFrames *sof)
         deleteCcdTable(ccdTable);
         return EXIT_FAILURE;
       }
-      cpl_msg_info(task, "  Flat field %d of %d done", i + 1, flatCount);
+      cpl_msg_info(task, "  Flat field %d of %zd done", i + 1, flatCount);
     }
   }
 
@@ -1399,7 +1399,7 @@ vmimflatscreen(PilSetOfFrames *sof)
     }
 
     if (goodFrames) {
-      cpl_msg_info(task, "%d out of %d consistent screen flat field frames "
+      cpl_msg_info(task, "%zd out of %zd consistent screen flat field frames "
                  "selected from input set", goodFrames, flatCount);
     }
 
@@ -1436,7 +1436,7 @@ vmimflatscreen(PilSetOfFrames *sof)
     mFlat = duplicateImage(flatList[0]);
   }
   else if (goodFrames >= minFrames) {
-    cpl_msg_info(task, "Combining %d frames with method '%s'", goodFrames,
+    cpl_msg_info(task, "Combining %zd frames with method '%s'", goodFrames,
                combMethodNames[combMethodEntry]);
 
     if (combMethod == COMB_AVERAGE) {
@@ -1797,7 +1797,6 @@ vmimflatscreen(PilSetOfFrames *sof)
     if (cleanBadPixels(mFlatClean, ccdTable, 0) == EXIT_FAILURE) {
       cpl_msg_error(task, "Problems modeling screen flat field continuum");
       deleteImage(mFlat);
-      deleteImage(mFlatFilt);
       deleteImage(mFlatClean);
       deleteCcdTable(ccdTable);
       return EXIT_FAILURE;
diff --git a/recipes/vmimflatsky.c b/recipes/vmimflatsky.c
index 8d31da2..80766df 100644
--- a/recipes/vmimflatsky.c
+++ b/recipes/vmimflatsky.c
@@ -1,4 +1,4 @@
-/* $Id: vmimflatsky.c,v 1.4 2011/03/14 15:28:58 cizzo Exp $
+/* $Id: vmimflatsky.c,v 1.5 2013-08-07 16:45:33 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2005 European Southern Observatory
@@ -19,10 +19,10 @@
  */
 
 /*
- * $Author: cizzo $
- * $Date: 2011/03/14 15:28:58 $
- * $Revision: 1.4 $
- * $Name: vimos-2_9_7 $
+ * $Author: cgarcia $
+ * $Date: 2013-08-07 16:45:33 $
+ * $Revision: 1.5 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -918,7 +918,7 @@ vmimflatsky(PilSetOfFrames *sof)
 
   if (validateFrames && flatCount < 2) {
     validateFrames = 0;
-    cpl_msg_warning(task, "Too few sky flat field frames (%d) in input. "
+    cpl_msg_warning(task, "Too few sky flat field frames (%zd) in input. "
                   "Skipping frame validation task!", flatCount);
   }
 
@@ -1330,7 +1330,7 @@ vmimflatsky(PilSetOfFrames *sof)
         deleteCcdTable(ccdTable);
         return EXIT_FAILURE;
       }
-      cpl_msg_info(task, "  Flat field %d of %d done", i + 1, flatCount);
+      cpl_msg_info(task, "  Flat field %d of %zd done", i + 1, flatCount);
     }
   }
 
@@ -1455,7 +1455,7 @@ vmimflatsky(PilSetOfFrames *sof)
     }
 
     if (goodFrames) {
-      cpl_msg_info(task, "%d out of %d consistent sky flat field frames "
+      cpl_msg_info(task, "%zd out of %zd consistent sky flat field frames "
                  "selected from input set", goodFrames, flatCount);
     }
 
@@ -1505,7 +1505,7 @@ vmimflatsky(PilSetOfFrames *sof)
   }
 
   if (goodFrames >= minFrames) {
-    cpl_msg_info(task, "Combining %d frames with method '%s'", goodFrames,
+    cpl_msg_info(task, "Combining %zd frames with method '%s'", goodFrames,
                combMethodNames[combMethodEntry]);
 
     if (combMethod == COMB_AVERAGE) {
diff --git a/recipes/vmimobsjitter.c b/recipes/vmimobsjitter.c
index 1361852..c0e3946 100644
--- a/recipes/vmimobsjitter.c
+++ b/recipes/vmimobsjitter.c
@@ -1,4 +1,4 @@
-/* $Id: vmimobsjitter.c,v 1.13 2012/11/08 17:56:57 cgarcia Exp $
+/* $Id: vmimobsjitter.c,v 1.14 2013-08-07 16:45:33 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2005 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2012/11/08 17:56:57 $
- * $Revision: 1.13 $
- * $Name: vimos-2_9_7 $
+ * $Date: 2013-08-07 16:45:33 $
+ * $Revision: 1.14 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -1274,7 +1274,7 @@ vmimobsjitter(PilSetOfFrames *sof)
     frameCount = pilSofFrameCount(sof, pilTrnGetCategory("ImgScience"));
 
     if (frameCount < minFrames) {
-        cpl_msg_error(task, "Too few (%d) science field observations in input "
+        cpl_msg_error(task, "Too few (%zd) science field observations in input "
                 "for combination method '%s'!", frameCount, stackMethodTag);
         return EXIT_FAILURE;
     }
diff --git a/recipes/vmimobsstare.c b/recipes/vmimobsstare.c
index bccc035..7c713c0 100644
--- a/recipes/vmimobsstare.c
+++ b/recipes/vmimobsstare.c
@@ -1,4 +1,4 @@
-/* $Id: vmimobsstare.c,v 1.13 2012/11/08 17:56:57 cgarcia Exp $
+/* $Id: vmimobsstare.c,v 1.13 2012-11-08 17:56:57 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2005 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2012/11/08 17:56:57 $
+ * $Date: 2012-11-08 17:56:57 $
  * $Revision: 1.13 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/recipes/vmimpreimaging.c b/recipes/vmimpreimaging.c
index 3d58cd1..244f657 100644
--- a/recipes/vmimpreimaging.c
+++ b/recipes/vmimpreimaging.c
@@ -1,4 +1,4 @@
-/* $Id: vmimpreimaging.c,v 1.8 2012/11/08 17:56:57 cgarcia Exp $
+/* $Id: vmimpreimaging.c,v 1.8 2012-11-08 17:56:57 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2005 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2012/11/08 17:56:57 $
+ * $Date: 2012-11-08 17:56:57 $
  * $Revision: 1.8 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/recipes/vmimstandard.c b/recipes/vmimstandard.c
index c9cfa6f..cc489b6 100644
--- a/recipes/vmimstandard.c
+++ b/recipes/vmimstandard.c
@@ -1,4 +1,4 @@
-/* $Id: vmimstandard.c,v 1.13 2012/01/26 16:07:06 cgarcia Exp $
+/* $Id: vmimstandard.c,v 1.13 2012-01-26 16:07:06 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2005 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2012/01/26 16:07:06 $
+ * $Date: 2012-01-26 16:07:06 $
  * $Revision: 1.13 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/recipes/vmmasktoccd.c b/recipes/vmmasktoccd.c
index 44bac1b..5bc304d 100644
--- a/recipes/vmmasktoccd.c
+++ b/recipes/vmmasktoccd.c
@@ -1,4 +1,4 @@
-/* $Id: vmmasktoccd.c,v 1.12 2012/06/12 09:34:40 cgarcia Exp $
+/* $Id: vmmasktoccd.c,v 1.12 2012-06-12 09:34:40 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2005 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2012/06/12 09:34:40 $
+ * $Date: 2012-06-12 09:34:40 $
  * $Revision: 1.12 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/recipes/vmmoscombine.c b/recipes/vmmoscombine.c
index e6a7fea..8d6fa59 100644
--- a/recipes/vmmoscombine.c
+++ b/recipes/vmmoscombine.c
@@ -1,4 +1,4 @@
-/* $Id: vmmoscombine.c,v 1.3 2011/03/14 15:28:58 cizzo Exp $
+/* $Id: vmmoscombine.c,v 1.3 2011-03-14 15:28:58 cizzo Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2005 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2011/03/14 15:28:58 $
+ * $Date: 2011-03-14 15:28:58 $
  * $Revision: 1.3 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/recipes/vmmosobsjitter.c b/recipes/vmmosobsjitter.c
index beff2be..77dbd9e 100644
--- a/recipes/vmmosobsjitter.c
+++ b/recipes/vmmosobsjitter.c
@@ -1,4 +1,4 @@
-/* $Id: vmmosobsjitter.c,v 1.5 2012/10/30 10:36:05 cgarcia Exp $
+/* $Id: vmmosobsjitter.c,v 1.5 2012-10-30 10:36:05 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2005 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2012/10/30 10:36:05 $
+ * $Date: 2012-10-30 10:36:05 $
  * $Revision: 1.5 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/recipes/vmmosobsstare.c b/recipes/vmmosobsstare.c
index df55b49..5f4da48 100644
--- a/recipes/vmmosobsstare.c
+++ b/recipes/vmmosobsstare.c
@@ -1,4 +1,4 @@
-/* $Id: vmmosobsstare.c,v 1.4 2011/03/14 15:28:58 cizzo Exp $
+/* $Id: vmmosobsstare.c,v 1.4 2011-03-14 15:28:58 cizzo Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2005 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2011/03/14 15:28:58 $
+ * $Date: 2011-03-14 15:28:58 $
  * $Revision: 1.4 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/recipes/vmmosstandard.c b/recipes/vmmosstandard.c
index 5e06b54..083a15a 100644
--- a/recipes/vmmosstandard.c
+++ b/recipes/vmmosstandard.c
@@ -1,4 +1,4 @@
-/* $Id: vmmosstandard.c,v 1.4 2011/03/14 15:28:58 cizzo Exp $
+/* $Id: vmmosstandard.c,v 1.4 2011-03-14 15:28:58 cizzo Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2005 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2011/03/14 15:28:58 $
+ * $Date: 2011-03-14 15:28:58 $
  * $Revision: 1.4 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/recipes/vmskyccd.c b/recipes/vmskyccd.c
index 0eacb41..d701860 100644
--- a/recipes/vmskyccd.c
+++ b/recipes/vmskyccd.c
@@ -1,4 +1,4 @@
-/* $Id: vmskyccd.c,v 1.10 2012/11/08 17:56:57 cgarcia Exp $
+/* $Id: vmskyccd.c,v 1.10 2012-11-08 17:56:57 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2005 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2012/11/08 17:56:57 $
+ * $Date: 2012-11-08 17:56:57 $
  * $Revision: 1.10 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/recipes/vmspcaldisp.c b/recipes/vmspcaldisp.c
index 89a4765..5f2a8d1 100644
--- a/recipes/vmspcaldisp.c
+++ b/recipes/vmspcaldisp.c
@@ -1,4 +1,4 @@
-/* $Id: vmspcaldisp.c,v 1.4 2011/03/14 15:28:58 cizzo Exp $
+/* $Id: vmspcaldisp.c,v 1.5 2013-08-07 16:45:33 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2005 European Southern Observatory
@@ -19,10 +19,10 @@
  */
 
 /*
- * $Author: cizzo $
- * $Date: 2011/03/14 15:28:58 $
- * $Revision: 1.4 $
- * $Name: vimos-2_9_7 $
+ * $Author: cgarcia $
+ * $Date: 2013-08-07 16:45:33 $
+ * $Revision: 1.5 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -1379,7 +1379,7 @@ vmspcaldisp(PilSetOfFrames *sof)
         pil_free(lampRon);
         return EXIT_FAILURE;
       }
-      cpl_msg_info(task, "  Arc lamp %d of %d done", i + 1, lampCount);
+      cpl_msg_info(task, "  Arc lamp %d of %zd done", i + 1, lampCount);
     }
 
     pil_free(lampGain);
diff --git a/recipes/vmspflat.c b/recipes/vmspflat.c
index 07feb1a..eaab7de 100644
--- a/recipes/vmspflat.c
+++ b/recipes/vmspflat.c
@@ -1,4 +1,4 @@
-/* $Id: vmspflat.c,v 1.4 2011/03/14 15:28:58 cizzo Exp $
+/* $Id: vmspflat.c,v 1.4 2011-03-14 15:28:58 cizzo Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2005 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2011/03/14 15:28:58 $
+ * $Date: 2011-03-14 15:28:58 $
  * $Revision: 1.4 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/recipes/vmspphot.c b/recipes/vmspphot.c
index ba40ef3..13a03fd 100644
--- a/recipes/vmspphot.c
+++ b/recipes/vmspphot.c
@@ -1,4 +1,4 @@
-/* $Id: vmspphot.c,v 1.3 2011/03/14 15:28:58 cizzo Exp $
+/* $Id: vmspphot.c,v 1.3 2011-03-14 15:28:58 cizzo Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2005 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2011/03/14 15:28:58 $
+ * $Date: 2011-03-14 15:28:58 $
  * $Revision: 1.3 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/reflex/VimosIfu.xml b/reflex/VimosIfu.xml
index 3d6ea7a..5a65654 100644
--- a/reflex/VimosIfu.xml
+++ b/reflex/VimosIfu.xml
@@ -149,13 +149,13 @@
         <property name="_renderFirst" class="ptolemy.kernel.util.SingletonAttribute">
         </property>
     </property>
-    <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:38241:5:3">
+    <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44576:71:63">
     </property>
     <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.kepler.moml.CompositeClassEntity">
         <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
         </property>
     </property>
-    <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="8.1.devel">
+    <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="9.1.devel">
     </property>
     <property name="ROOT_DATA_DIR" class="ptolemy.data.expr.FileParameter" value="ROOT_DATA_PATH_TO_REPLACE/">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
@@ -206,7 +206,7 @@
             </property>
         </property>
     </property>
-    <property name="BOOKKEEPING_DIR" class="ptolemy.data.expr.FileParameter" value="$ROOT_DATA_DIR/reflex_book_keeping/VimosIfu">
+    <property name="BOOKKEEPING_DIR" class="ptolemy.data.expr.FileParameter" value="$ROOT_DATA_DIR/reflex_book_keeping/vimos-ifu">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>none</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>yang zhao, edward lee</configure></property>
@@ -253,7 +253,7 @@
         <property name="allowDirectories" class="ptolemy.data.expr.Parameter" value="true">
         </property>
     </property>
-    <property name="LOGS_DIR" class="ptolemy.data.expr.FileParameter" value="$ROOT_DATA_DIR/reflex_logs/VimosIfu">
+    <property name="LOGS_DIR" class="ptolemy.data.expr.FileParameter" value="$ROOT_DATA_DIR/reflex_logs/vimos-ifu">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>none</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>yang zhao, edward lee</configure></property>
@@ -300,7 +300,7 @@
         <property name="allowDirectories" class="ptolemy.data.expr.Parameter" value="true">
         </property>
     </property>
-    <property name="TMP_PRODUCTS_DIR" class="ptolemy.data.expr.FileParameter" value="$ROOT_DATA_DIR/reflex_tmp_products/VimosIfu">
+    <property name="TMP_PRODUCTS_DIR" class="ptolemy.data.expr.FileParameter" value="$ROOT_DATA_DIR/reflex_tmp_products/vimos-ifu">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>none</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>yang zhao, edward lee</configure></property>
@@ -394,7 +394,7 @@
         <property name="allowDirectories" class="ptolemy.data.expr.Parameter" value="true">
         </property>
     </property>
-    <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={238, 55, 1673, 1021}, maximized=false}">
+    <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={0, 86, 1673, 1021}, maximized=false}">
     </property>
     <property name="_vergilSize" class="ptolemy.actor.gui.SizeAttribute" value="[1357, 868]">
     </property>
@@ -867,7 +867,7 @@
         </property>
         <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
         </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[815.0, 350.0]">
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[815.0, 290.0]">
         </property>
     </property>
     <property name="FITS_VIEWER" class="ptolemy.data.expr.StringParameter" value="fv">
@@ -901,7 +901,7 @@
         </property>
         <property name="_editorFactory" class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
         </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[625.0, 360.0]">
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[625.0, 300.0]">
         </property>
     </property>
     <property name="ESORexArgs" class="ptolemy.data.expr.StringParameter" value="--suppress-prefix=TRUE">
@@ -969,10 +969,10 @@
         </property>
         <property name="_editorFactory" class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
         </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[625.0, 285.0]">
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[625.0, 250.0]">
         </property>
     </property>
-    <property name="END_PRODUCTS_SUBDIR" class="ptolemy.data.expr.StringParameter" value="2013-02-20T15:23:03/VIMOS.2011-05-02T01:47:52.778">
+    <property name="END_PRODUCTS_SUBDIR" class="ptolemy.data.expr.StringParameter" value="2013-08-27T12:22:25/VIMOS.2011-05-02T01:47:52.778">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
@@ -1006,7 +1006,7 @@
         <property name="_location" class="ptolemy.kernel.util.Location" value="[450.0, 1155.0]">
         </property>
     </property>
-    <property name="GLOBAL_TIMESTAMP" class="ptolemy.data.expr.StringParameter" value="2013-02-20T15:23:03">
+    <property name="GLOBAL_TIMESTAMP" class="ptolemy.data.expr.StringParameter" value="2013-08-27T12:24:23">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
@@ -1084,7 +1084,7 @@
         </property>
         <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
         </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[815.0, 270.0]">
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[815.0, 235.0]">
         </property>
     </property>
     <property name="Rectangle" class="ptolemy.vergil.kernel.attributes.RectangleAttribute">
@@ -1444,7 +1444,7 @@
         <property name="_location" class="ptolemy.kernel.util.Location" value="[-530.0, -20.0]">
         </property>
     </property>
-    <property name="RAWDATA_DIR" class="ptolemy.data.expr.FileParameter" value="$ROOT_DATA_DIR/reflex_input/Vimos">
+    <property name="RAWDATA_DIR" class="ptolemy.data.expr.FileParameter" value="$ROOT_DATA_DIR/reflex_input/vimos">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>none</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>yang zhao, edward lee</configure></property>
@@ -1540,9 +1540,9 @@
         <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:436:1:urn:lsid:kepler-project.org/ns/:21155:114:1">
         </property>
     </property>
-    <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:436:1:urn:lsid:kepler-project.org/ns/:12776:4:415:urn:lsid:kepler-project.org/ns/:12776:55:75:urn:lsid:kepler-project.org/ns/:12776:59:142:urn:lsid:kepler-project.org/ns/:12776:68:228:urn:lsid:kepler-project.org/ns/:12776:84:51:urn:lsid:kepler-project.org/ns/:2745:31:9:urn:lsid:kepler-project.org/ns/:2745:32:214:urn:lsid:kepler-project.org/ns/:2745:45:122:urn:lsid:kepl [...]
+    <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:436:1:urn:lsid:kepler-project.org/ns/:12776:4:415:urn:lsid:kepler-project.org/ns/:12776:55:75:urn:lsid:kepler-project.org/ns/:12776:59:142:urn:lsid:kepler-project.org/ns/:12776:68:228:urn:lsid:kepler-project.org/ns/:12776:84:51:urn:lsid:kepler-project.org/ns/:2745:31:9:urn:lsid:kepler-project.org/ns/:2745:32:214:urn:lsid:kepler-project.org/ns/:2745:45:122:urn:lsid:kepl [...]
     </property>
-    <property name="CALIB_DATA_DIR" class="ptolemy.data.expr.FileParameter" value="CALIB_DATA_PATH_TO_REPLACE/vimos-2.9.7/">
+    <property name="CALIB_DATA_DIR" class="ptolemy.data.expr.FileParameter" value="CALIB_DATA_PATH_TO_REPLACE/vimos-2.9.9/">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>none</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>yang zhao, edward lee</configure></property>
@@ -1606,7 +1606,7 @@
         </property>
         <property name="italic" class="ptolemy.data.expr.Parameter" value="false">
         </property>
-        <property name="text" class="ptolemy.kernel.util.StringAttribute" value="VIMOS Workflow For IFU Spectroscopy Data (v. 2.9.7)
">
+        <property name="text" class="ptolemy.kernel.util.StringAttribute" value="VIMOS Workflow For IFU Spectroscopy Data (v. 2.9.9)
">
             <property name="_style" class="ptolemy.actor.gui.style.TextStyle">
                 <property name="height" class="ptolemy.data.expr.Parameter" value="20">
                 </property>
@@ -1635,7 +1635,7 @@
         </property>
         <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
         </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[-15.0, -20.0]">
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[-200.0, -5.0]">
         </property>
         <property name="" class="ptolemy.vergil.basic.DocAttribute">
             <property name="description" class="ptolemy.kernel.util.StringAttribute" value="Use the Annotation attribute to annotate a workflow. Double-click the attribute to customize the content, font size, color, and basic formatting (bold and italics).">
@@ -1691,7 +1691,7 @@
         </property>
         <property name="_editorFactory" class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
         </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[625.0, 175.0]">
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[620.0, 155.0]">
         </property>
         <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:421:1">
         </property>
@@ -1740,7 +1740,7 @@
         </property>
         <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
         </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[815.0, 165.0]">
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[810.0, 145.0]">
         </property>
         <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:436:1:urn:lsid:kepler-project.org/ns/:16482:52:1:urn:lsid:kepler-project.org/ns/:16989:16:1">
         </property>
@@ -2121,376 +2121,418 @@
         <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:421:1">
         </property>
     </property>
-    <entity name="FitsRouter" class="org.eso.FitsRouter">
+    <property name="DataSelectionMethod" class="ptolemy.data.expr.StringParameter" value="Interactive">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>1.0</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The FitsRouter routes files base on their category: by default, all the files are routed to the rejected directory, but the user can add additional port and configure the actor to route particular files there.</p>
<p>Basic Mode: create an output port named as a category (e.g.: FLAT), all files belonging to that category will be routed to that port.</p>
& [...]
-<property name="port:in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input data</configure></property>
-<property name="port:sof rejected" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The rejected SoF</configure></property>
-<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:29452:77:19">
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>StringParameter specifies a persistent string. </p>

<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p></configure></property>
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:43955:86:1">
         </property>
-        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.FitsRouter">
-            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.data.expr.StringParameter">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1185:1">
             </property>
         </property>
-        <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Parameter">
         </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[-320.0, 945.0]">
+        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Parameter">
         </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:903:1:urn:lsid:kepler-project.org/ns/:15314:175:95:urn:lsid:kepler-project.org/ns/:21155:63:93">
+        <property name="_hideName" class="ptolemy.kernel.util.SingletonAttribute">
         </property>
-        <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+        <property name="_icon" class="ptolemy.vergil.icon.ValueIcon">
+            <property name="_color" class="ptolemy.actor.gui.ColorAttribute" value="{1.0, 0.0, 0.0, 1.0}">
+            </property>
         </property>
-        <property name="bias_config" class="ptolemy.data.expr.Parameter" value=""BIAS"">
+        <property name="_smallIconDescription" class="ptolemy.kernel.util.SingletonConfigurableAttribute">
+            <configure>
+        <svg>
+          <text x="20" style="font-size:14; font-family:SansSerif; fill:red" y="20">-S-</text>
+        </svg>
+      </configure>
         </property>
-        <property name="sci_config" class="ptolemy.data.expr.Parameter" value=""IFU_SCIENCE"">
+        <property name="_editorFactory" class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
         </property>
-        <property name="std_config" class="ptolemy.data.expr.Parameter" value=""IFU_STANDARD"">
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[625.0, 360.0]">
         </property>
-        <property name="static_config" class="ptolemy.data.expr.Parameter" value=""LINE_CATALOG,IFU_IDENT,EXTINCT_TABLE,STD_FLUX_TABLE,IFU_TABLE,CCD_TABLE"">
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:421:1">
         </property>
-        <property name="calib_config" class="ptolemy.data.expr.Parameter" value=""IFU_SCREEN_FLAT,IFU_ARC_SPECTRUM"">
+    </property>
+    <property name="Annotation7" class="ptolemy.vergil.kernel.attributes.TextAttribute">
+        <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
         </property>
-        <property name="" class="ptolemy.vergil.basic.DocAttribute">
-            <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>The FitsRouter routes files base on their category: by default, all the files are routed to the rejected directory, but the user can add additional port and configure the actor to route particular files there.</p>
<p>Basic Mode: create an output port named as a category (e.g.: FLAT), all files belonging to that category will be routed to that port.</p>
<p>A [...]
-            </property>
-            <property name="author" class="ptolemy.kernel.util.StringAttribute" value="ESO">
-            </property>
-            <property name="version" class="ptolemy.kernel.util.StringAttribute" value="1.0">
-            </property>
-            <property name="class (parameter)" class="ptolemy.data.expr.StringParameter" value="">
-            </property>
-            <property name="semanticType41 (parameter)" class="ptolemy.data.expr.StringParameter" value="">
-            </property>
-            <property name="in (port)" class="ptolemy.kernel.util.StringAttribute" value="The input data">
-            </property>
-            <property name="sof rejected (port)" class="ptolemy.kernel.util.StringAttribute" value="The rejected SoF">
-            </property>
-            <property name="entityId (parameter)" class="ptolemy.data.expr.StringParameter" value="">
-            </property>
+        <property name="_hideAllParameters" class="ptolemy.data.expr.Parameter" value="true">
         </property>
-        <property name="calib_aux_config" class="ptolemy.data.expr.Parameter" value=""LINE_CATALOG,IFU_IDENT,CCD_TABLE"">
+        <property name="textSize" class="ptolemy.data.expr.Parameter" value="14">
         </property>
-        <property name="sci_aux_config" class="ptolemy.data.expr.Parameter" value=""EXTINCT_TABLE,CCD_TABLE"">
+        <property name="textColor" class="ptolemy.actor.gui.ColorAttribute" value="{0.4,0.4,0.0,1.0}">
         </property>
-        <port name="in" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-            </property>
-            <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </port>
-        <port name="sof rejected" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="multiport"/>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
-            </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
-            </property>
-        </port>
-        <port name="calib" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
-        </port>
-        <port name="sci" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
-            </property>
-        </port>
-        <port name="std" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
-            </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
-        </port>
-        <port name="static" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
-            </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
-        </port>
-        <port name="bias" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
-            </property>
-        </port>
-        <port name="calib_aux" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="EAST">
-            </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
-        </port>
-        <port name="sci_aux" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
-            </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+        <property name="fontFamily" class="ptolemy.data.expr.StringParameter" value="SansSerif">
+        </property>
+        <property name="bold" class="ptolemy.data.expr.Parameter" value="false">
+        </property>
+        <property name="italic" class="ptolemy.data.expr.Parameter" value="false">
+        </property>
+        <property name="text" class="ptolemy.kernel.util.StringAttribute" value="Selection method for the Data Set Chooser">
+            <property name="_style" class="ptolemy.actor.gui.style.TextStyle">
+                <property name="height" class="ptolemy.data.expr.Parameter" value="20">
+                </property>
+                <property name="width" class="ptolemy.data.expr.Parameter" value="80">
+                </property>
             </property>
-        </port>
-    </entity>
-    <entity name="MasterBias" class="ptolemy.actor.TypedCompositeActor">
-        <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="8.1.devel">
         </property>
-        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:29452:25:11">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Use the Annotation attribute to annotate a workflow. Double-click the attribute to customize the content, font size, color, and basic formatting (bold and italics).</configure></property>
+<property name="prop:fontFamily" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font face. Select a font from the drop-down menu. The default is "SansSerif".</configure></property>
+<property name="prop:italic" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Select to indicate that the type should be italics. By default, type will not be italicized.</configure></property>
+<property name="prop:bold" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Select to indicate that the type should be bold. By default, type will not be bold.</configure></property>
+<property name="prop:textColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
+<property name="prop:textSize" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font size. Select an integer from the drop-down menu or specify a new size by typing it directly into the value field.  The default is 14.</configure></property>
+<property name="prop:text" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The text of the annotation.</configure></property>
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:43955:85:3">
         </property>
-        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.TypedCompositeActor">
-            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1">
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.vergil.kernel.attributes.TextAttribute">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1199:1">
             </property>
         </property>
-        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Actor">
+        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#DocumentationActor">
         </property>
-        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#GeneralPurpose">
+        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
         </property>
-        <property name="semanticType22" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Workflow">
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[865.0, 350.0]">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:436:1">
         </property>
+    </property>
+    <property name="ProvenanceExplorerEnabled" class="ptolemy.data.expr.StringParameter" value="true">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</ [...]
-</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[-80.0, 745.0]">
-        </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:15314:186:32:urn:lsid:kepler-project.org/ns/:21155:130:113">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>StringParameter specifies a persistent string. </p>

<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p></configure></property>
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44576:60:1">
         </property>
-        <property name="StackMethod" class="ptolemy.kernel.util.Attribute">
-            <property name="_location" class="ptolemy.kernel.util.Attribute">
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.data.expr.StringParameter">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1185:1">
             </property>
         </property>
-        <port name="sof_in" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[20.0, 80.0]">
+        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Parameter">
+        </property>
+        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Parameter">
+        </property>
+        <property name="_hideName" class="ptolemy.kernel.util.SingletonAttribute">
+        </property>
+        <property name="_icon" class="ptolemy.vergil.icon.ValueIcon">
+            <property name="_color" class="ptolemy.actor.gui.ColorAttribute" value="{1.0, 0.0, 0.0, 1.0}">
             </property>
-        </port>
-        <port name="sof_out" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[700.0, 105.0]">
+        </property>
+        <property name="_smallIconDescription" class="ptolemy.kernel.util.SingletonConfigurableAttribute">
+            <configure>
+        <svg>
+          <text x="20" style="font-size:14; font-family:SansSerif; fill:red" y="20">-S-</text>
+        </svg>
+      </configure>
+        </property>
+        <property name="_editorFactory" class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
+        </property>
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[625.0, 390.0]">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:421:1:urn:lsid:kepler-project.org/ns/:43955:86:1">
+        </property>
+    </property>
+    <property name="Annotation8" class="ptolemy.vergil.kernel.attributes.TextAttribute">
+        <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+        </property>
+        <property name="_hideAllParameters" class="ptolemy.data.expr.Parameter" value="true">
+        </property>
+        <property name="textSize" class="ptolemy.data.expr.Parameter" value="14">
+        </property>
+        <property name="textColor" class="ptolemy.actor.gui.ColorAttribute" value="{0.4,0.4,0.0,1.0}">
+        </property>
+        <property name="fontFamily" class="ptolemy.data.expr.StringParameter" value="SansSerif">
+        </property>
+        <property name="bold" class="ptolemy.data.expr.Parameter" value="false">
+        </property>
+        <property name="italic" class="ptolemy.data.expr.Parameter" value="false">
+        </property>
+        <property name="text" class="ptolemy.kernel.util.StringAttribute" value="Show Provenance Explorer window">
+            <property name="_style" class="ptolemy.actor.gui.style.TextStyle">
+                <property name="height" class="ptolemy.data.expr.Parameter" value="20">
+                </property>
+                <property name="width" class="ptolemy.data.expr.Parameter" value="80">
+                </property>
             </property>
-        </port>
-        <entity name="SofSplitter" class="org.eso.SofSplitter">
+        </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofSplitter takes a set of files as input and split it into smaller sets based on the purpose. This smaller sets can then be sent to e.g. a RecipeExecuter</configure></property>
-<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sof</configure></property>
-<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The grouped sofs</configure></property>
-<property name="port:#groups" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of groups generated</configure></property>
-<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:187:1">
-            </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofSplitter">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
-                </property>
-            </property>
-            <property name="semanticType" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[105.0, 60.0]">
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Use the Annotation attribute to annotate a workflow. Double-click the attribute to customize the content, font size, color, and basic formatting (bold and italics).</configure></property>
+<property name="prop:fontFamily" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font face. Select a font from the drop-down menu. The default is "SansSerif".</configure></property>
+<property name="prop:italic" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Select to indicate that the type should be italics. By default, type will not be italicized.</configure></property>
+<property name="prop:bold" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Select to indicate that the type should be bold. By default, type will not be bold.</configure></property>
+<property name="prop:textColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
+<property name="prop:textSize" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font size. Select an integer from the drop-down menu or specify a new size by typing it directly into the value field.  The default is 14.</configure></property>
+<property name="prop:text" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The text of the annotation.</configure></property>
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44576:61:1">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.vergil.kernel.attributes.TextAttribute">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1199:1">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org/ns/:12925:5:1">
+        </property>
+        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#DocumentationActor">
+        </property>
+        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
+        </property>
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[865.0, 380.0]">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:436:1:urn:lsid:kepler-project.org/ns/:43955:85:3">
+        </property>
+    </property>
+    <property name="Annotation9" class="ptolemy.vergil.kernel.attributes.TextAttribute">
+        <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+        </property>
+        <property name="_hideAllParameters" class="ptolemy.data.expr.Parameter" value="true">
+        </property>
+        <property name="textSize" class="ptolemy.data.expr.Parameter" value="14">
+            <property name="_editorFactory" class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
             </property>
-            <port name="sof in" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-                </property>
-            </port>
-            <port name="sof out" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-                </property>
-            </port>
-            <port name="#groups" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+        </property>
+        <property name="textColor" class="ptolemy.actor.gui.ColorAttribute" value="{1.0,0.0,0.0,1.0}">
+        </property>
+        <property name="fontFamily" class="ptolemy.data.expr.StringParameter" value="SansSerif">
+        </property>
+        <property name="bold" class="ptolemy.data.expr.Parameter" value="true">
+        </property>
+        <property name="italic" class="ptolemy.data.expr.Parameter" value="false">
+        </property>
+        <property name="text" class="ptolemy.kernel.util.StringAttribute" value="This is a basic workflow to help with data 
organisation and execution of the pipeline. 
The workflow was generated without a 
review of the quality of the science products.">
+            <property name="_style" class="ptolemy.actor.gui.style.TextStyle">
+                <property name="height" class="ptolemy.data.expr.Parameter" value="20">
                 </property>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+                <property name="width" class="ptolemy.data.expr.Parameter" value="80">
                 </property>
-            </port>
-        </entity>
-        <entity name="SofAccumulator" class="org.eso.SofAccumulator">
-            <property name="same dataset" class="ptolemy.data.expr.Parameter" value="true">
             </property>
+        </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofAccumulator is meant to be used together with the SofSplitter: it puts back together in a single set of files the tokens generated by the PurposeSerializer (and usually processed by the RecipeExecuter)</configure></property>
-<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sofs</configure></property>
-<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The grouped sof</configure></property>
-<property name="port:#groups" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of groups to collect</configure></property>
-<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:same dataset" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If true the SofAccumulator throws an error if the input tokens do not belong all to the same dataset</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:188:1">
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Use the Annotation attribute to annotate a workflow. Double-click the attribute to customize the content, font size, color, and basic formatting (bold and italics).</configure></property>
+<property name="prop:fontFamily" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font face. Select a font from the drop-down menu. The default is "SansSerif".</configure></property>
+<property name="prop:italic" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Select to indicate that the type should be italics. By default, type will not be italicized.</configure></property>
+<property name="prop:bold" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Select to indicate that the type should be bold. By default, type will not be bold.</configure></property>
+<property name="prop:textColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
+<property name="prop:textSize" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font size. Select an integer from the drop-down menu or specify a new size by typing it directly into the value field.  The default is 14.</configure></property>
+<property name="prop:text" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The text of the annotation.</configure></property>
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31617:223:8">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.vergil.kernel.attributes.TextAttribute">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1199:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofAccumulator">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
-                </property>
+        </property>
+        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#DocumentationActor">
+        </property>
+        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
+        </property>
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[910.0, -10.0]">
+        </property>
+        <property name="" class="ptolemy.vergil.basic.DocAttribute">
+            <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Edward A. Lee">
             </property>
-            <property name="semanticType" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+            <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[565.0, 75.0]">
+            <property name="textSize (parameter)" class="ptolemy.data.expr.StringParameter" value="The font size. Select an integer from the drop-down menu or specify a new size by typing it directly into the value field.  The default is 14.">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org/ns/:12925:7:1">
+            <property name="textColor (parameter)" class="ptolemy.data.expr.StringParameter" value="The font color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}">
             </property>
-            <port name="sof in" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-                </property>
-            </port>
-            <port name="#groups" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-                </property>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
-                </property>
-            </port>
-            <port name="sof out" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-                </property>
-            </port>
-        </entity>
-        <entity name="vmbias_1" class="org.eso.RecipeExecuter">
-            <property name="Recipe Failure Mode" class="ptolemy.data.expr.StringParameter" value="$RecipeFailureMode">
+            <property name="fontFamily (parameter)" class="ptolemy.data.expr.StringParameter" value="The font face. Select a font from the drop-down menu. The default is "SansSerif".">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[320.0, 50.0]">
+            <property name="bold (parameter)" class="ptolemy.data.expr.StringParameter" value="Select to indicate that the type should be bold. By default, type will not be bold.">
             </property>
-        </entity>
-        <relation name="relation2" class="ptolemy.actor.TypedIORelation">
-        </relation>
-        <relation name="relation4" class="ptolemy.actor.TypedIORelation">
-        </relation>
-        <relation name="relation5" class="ptolemy.actor.TypedIORelation">
-        </relation>
-        <relation name="relation8" class="ptolemy.actor.TypedIORelation">
-            <vertex name="vertex1" value="[190.0, 80.0]">
-            </vertex>
-        </relation>
-        <relation name="relation" class="ptolemy.actor.TypedIORelation">
-        </relation>
-        <link port="sof_in" relation="relation4"/>
-        <link port="sof_out" relation="relation5"/>
-        <link port="SofSplitter.sof in" relation="relation4"/>
-        <link port="SofSplitter.sof out" relation="relation8"/>
-        <link port="SofSplitter.#groups" relation="relation2"/>
-        <link port="SofAccumulator.sof in" relation="relation"/>
-        <link port="SofAccumulator.#groups" relation="relation2"/>
-        <link port="SofAccumulator.sof out" relation="relation5"/>
-        <link port="vmbias_1.sof in" relation="relation8"/>
-        <link port="vmbias_1.sof out" relation="relation"/>
-    </entity>
-    <entity name="SofCombiner" class="org.eso.SofCombiner">
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofCombiner takes as input a number of set of files and combines them into one set of files that contains only the files whose purposes are present in all the input tokens. With this respect empty tokens are ignored and files with universal purpose are always collected</configure></property>
-<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sofs</configure></property>
-<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The combined sof</configure></property>
-<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:189:1">
-        </property>
-        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofCombiner">
-            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+            <property name="italic (parameter)" class="ptolemy.data.expr.StringParameter" value="Select to indicate that the type should be italics. By default, type will not be italicized.">
+            </property>
+            <property name="text (parameter)" class="ptolemy.data.expr.StringParameter" value="The text of the annotation.">
             </property>
         </property>
-        <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:436:1">
         </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[100.0, 920.0]">
+        <property name="_renderLast" class="ptolemy.kernel.util.SingletonAttribute">
         </property>
+    </property>
+    <property name="Setup Directory5" class="ptolemy.vergil.kernel.attributes.RectangleAttribute">
         <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
         </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:908:1">
+        <property name="_hideAllParameters" class="ptolemy.data.expr.Parameter" value="true">
         </property>
-        <port name="sof in" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="multiport"/>
-            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-            </property>
-        </port>
-        <port name="sof in opt" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="multiport"/>
-            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-            </property>
-        </port>
-        <port name="sof out" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="multiport"/>
-            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[905.0, -15.0]">
+        </property>
+        <property name="lineWidth" class="ptolemy.data.expr.Parameter" value="5">
+        </property>
+        <property name="lineColor" class="ptolemy.actor.gui.ColorAttribute" value="{1.0,0.0,0.0,1.0}">
+        </property>
+        <property name="width" class="ptolemy.data.expr.Parameter" value="375.0">
+        </property>
+        <property name="height" class="ptolemy.data.expr.Parameter" value="80.0">
+        </property>
+        <property name="centered" class="ptolemy.data.expr.Parameter" value="false">
+        </property>
+        <property name="fillColor" class="ptolemy.actor.gui.ColorAttribute" value="{0.99607843,0.9490196,0.7254902,1.0}">
+        </property>
+        <property name="rounding" class="ptolemy.data.expr.Parameter" value="20">
+        </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The Rectangle attribute renders a rectangle on the Workflow canvas. Single-click the rectangle to drag the resize handles and adjust the shape's size, or double-click the rectangle to customize its height, width, line width, color, and fill color.</p></configure></property>
+<property name="prop:lineWidth" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line width. The value is a double that defaults to 1.0.</configure></property>
+<property name="prop:height" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The vertical extent. The value is a double that defaults to 100.0.</configure></property>
+<property name="prop:dashArray" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify a dash-pattern for dashed or dotted lines. The value consists of an array of doubles that specify the length of the alternating solid and transparent segments. An empty value indicates that the line should not be dashed (the default).</configure></property>
+<property name="prop:centered" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Indicate whether the shape should be centered on its origin. By default, the location is the upper-left corner.</configure></property>
+<property name="prop:rounding" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The amount of rounding of the corners. The value is a double that defaults to 0.0, which indicates no rounding.</configure></property>
+<property name="prop:width" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The horizontal extent. The value is a double that defaults to 100.0.</configure></property>
+<property name="prop:lineColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
+<property name="prop:fillColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The fill color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. By default, the value is "none."</configure></property>
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44576:62:1">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.vergil.kernel.attributes.RectangleAttribute">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1197:1">
             </property>
-        </port>
-    </entity>
-    <entity name="SofCombiner2" class="org.eso.SofCombiner">
+        </property>
+        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#DecorativeActor">
+        </property>
+        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:434:1:urn:lsid:kepler-project.org/ns/:25158:26:1:urn:lsid:kepler-project.org/ns/:31617:222:11">
+        </property>
+    </property>
+    <entity name="FitsRouter" class="org.eso.FitsRouter">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofCombiner takes as input a number of set of files and combines them into one set of files that contains only the files whose purposes are present in all the input tokens. With this respect empty tokens are ignored and files with universal purpose are always collected</configure></property>
-<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sofs</configure></property>
-<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The combined sof</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>1.0</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The FitsRouter routes files base on their category: by default, all the files are routed to the rejected directory, but the user can add additional port and configure the actor to route particular files there.</p>
<p>Basic Mode: create an output port named as a category (e.g.: FLAT), all files belonging to that category will be routed to that port.</p>
& [...]
+<property name="port:in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input data</configure></property>
+<property name="port:sof rejected" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The rejected SoF</configure></property>
 <property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
 <property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
 <property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:190:1">
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:29452:77:19">
         </property>
-        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofCombiner">
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.FitsRouter">
             <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
             </property>
         </property>
         <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
         </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[825.0, 815.0]">
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[-320.0, 945.0]">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:903:1:urn:lsid:kepler-project.org/ns/:15314:175:95:urn:lsid:kepler-project.org/ns/:21155:63:93">
         </property>
         <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
         </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:908:1">
+        <property name="bias_config" class="ptolemy.data.expr.Parameter" value=""BIAS"">
         </property>
-        <port name="sof in" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="multiport"/>
-            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+        <property name="sci_config" class="ptolemy.data.expr.Parameter" value=""IFU_SCIENCE"">
+        </property>
+        <property name="std_config" class="ptolemy.data.expr.Parameter" value=""IFU_STANDARD"">
+        </property>
+        <property name="static_config" class="ptolemy.data.expr.Parameter" value=""LINE_CATALOG,IFU_IDENT,EXTINCT_TABLE,STD_FLUX_TABLE,IFU_TABLE,CCD_TABLE"">
+        </property>
+        <property name="calib_config" class="ptolemy.data.expr.Parameter" value=""IFU_SCREEN_FLAT,IFU_ARC_SPECTRUM"">
+        </property>
+        <property name="" class="ptolemy.vergil.basic.DocAttribute">
+            <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>The FitsRouter routes files base on their category: by default, all the files are routed to the rejected directory, but the user can add additional port and configure the actor to route particular files there.</p>
<p>Basic Mode: create an output port named as a category (e.g.: FLAT), all files belonging to that category will be routed to that port.</p>
<p>A [...]
             </property>
-        </port>
-        <port name="sof in opt" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="multiport"/>
-            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            <property name="author" class="ptolemy.kernel.util.StringAttribute" value="ESO">
             </property>
-        </port>
-        <port name="sof out" class="ptolemy.actor.TypedIOPort">
+            <property name="version" class="ptolemy.kernel.util.StringAttribute" value="1.0">
+            </property>
+            <property name="class (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+            </property>
+            <property name="in (port)" class="ptolemy.kernel.util.StringAttribute" value="The input data">
+            </property>
+            <property name="sof rejected (port)" class="ptolemy.kernel.util.StringAttribute" value="The rejected SoF">
+            </property>
+            <property name="semanticType41 (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+            </property>
+            <property name="entityId (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+            </property>
+        </property>
+        <property name="calib_aux_config" class="ptolemy.data.expr.Parameter" value=""LINE_CATALOG,IFU_IDENT,CCD_TABLE"">
+        </property>
+        <property name="sci_aux_config" class="ptolemy.data.expr.Parameter" value=""EXTINCT_TABLE,CCD_TABLE"">
+        </property>
+        <port name="in" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+            <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </port>
+        <port name="sof rejected" class="ptolemy.actor.TypedIOPort">
             <property name="output"/>
             <property name="multiport"/>
-            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+            </property>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            </property>
+        </port>
+        <port name="calib" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+        </port>
+        <port name="sci" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+            </property>
+        </port>
+        <port name="std" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+            </property>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+        </port>
+        <port name="static" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+            </property>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+        </port>
+        <port name="bias" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+            </property>
+        </port>
+        <port name="calib_aux" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="EAST">
+            </property>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+        </port>
+        <port name="sci_aux" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+            </property>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
         </port>
     </entity>
-    <entity name="VmifuCalib" class="ptolemy.actor.TypedCompositeActor">
+    <entity name="MasterBias" class="ptolemy.actor.TypedCompositeActor">
         <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="8.1.devel">
         </property>
-        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:29452:30:11">
+        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:29452:25:11">
         </property>
         <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.TypedCompositeActor">
             <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1">
@@ -2507,18 +2549,22 @@
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</ [...]
-</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[160.0, 915.0]">
+</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[-80.0, 745.0]">
         </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:15314:197:41:urn:lsid:kepler-project.org/ns/:21155:64:67">
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:15314:186:32:urn:lsid:kepler-project.org/ns/:21155:130:113">
+        </property>
+        <property name="StackMethod" class="ptolemy.kernel.util.Attribute">
+            <property name="_location" class="ptolemy.kernel.util.Attribute">
+            </property>
         </property>
         <port name="sof_in" class="ptolemy.actor.TypedIOPort">
             <property name="input"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[35.0, 135.0]">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[20.0, 80.0]">
             </property>
         </port>
         <port name="sof_out" class="ptolemy.actor.TypedIOPort">
             <property name="output"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[645.0, 145.0]">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[700.0, 105.0]">
             </property>
         </port>
         <entity name="SofSplitter" class="org.eso.SofSplitter">
@@ -2528,12 +2574,12 @@
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
 <property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofSplitter takes a set of files as input and split it into smaller sets based on the purpose. This smaller sets can then be sent to e.g. a RecipeExecuter</configure></property>
 <property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sof</configure></property>
-<property name="port:#groups" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of groups generated</configure></property>
 <property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The grouped sofs</configure></property>
+<property name="port:#groups" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of groups generated</configure></property>
 <property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
 <property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
 <property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:198:2">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:187:1">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofSplitter">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
@@ -2541,12 +2587,10 @@
             </property>
             <property name="semanticType" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[130.0, 110.0]">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[105.0, 60.0]">
             </property>
             <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org/ns/:12925:5:1">
             </property>
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
             <port name="sof in" class="ptolemy.actor.TypedIOPort">
                 <property name="input"/>
                 <property name="multiport"/>
@@ -2561,9 +2605,9 @@
             </port>
             <port name="#groups" class="ptolemy.actor.TypedIOPort">
                 <property name="output"/>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
                 </property>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
                 </property>
             </port>
         </entity>
@@ -2576,13 +2620,13 @@
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
 <property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofAccumulator is meant to be used together with the SofSplitter: it puts back together in a single set of files the tokens generated by the PurposeSerializer (and usually processed by the RecipeExecuter)</configure></property>
 <property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sofs</configure></property>
-<property name="port:#groups" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of groups to collect</configure></property>
 <property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The grouped sof</configure></property>
+<property name="port:#groups" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of groups to collect</configure></property>
 <property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
 <property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
 <property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
 <property name="prop:same dataset" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If true the SofAccumulator throws an error if the input tokens do not belong all to the same dataset</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:199:2">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:188:1">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofAccumulator">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
@@ -2590,23 +2634,25 @@
             </property>
             <property name="semanticType" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[535.0, 120.0]">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[565.0, 75.0]">
             </property>
             <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org/ns/:12925:7:1">
             </property>
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
             <port name="sof in" class="ptolemy.actor.TypedIOPort">
                 <property name="input"/>
                 <property name="multiport"/>
                 <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
                 </property>
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="0">
+                </property>
             </port>
             <port name="#groups" class="ptolemy.actor.TypedIOPort">
                 <property name="input"/>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
                 </property>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+                </property>
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
                 </property>
             </port>
             <port name="sof out" class="ptolemy.actor.TypedIOPort">
@@ -2616,13 +2662,22 @@
                 </property>
             </port>
         </entity>
-        <entity name="vmifucalib_1" class="org.eso.RecipeExecuter">
+        <entity name="vmbias_1" class="org.eso.RecipeExecuter">
             <property name="Recipe Failure Mode" class="ptolemy.data.expr.StringParameter" value="$RecipeFailureMode">
             </property>
-            <property name="Output Files Category" class="ptolemy.data.expr.StringParameter" value="IFU_TRACE,IFU_IDS,IFU_TRANSMISSION">
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[350.0, 80.0]">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[320.0, 50.0]">
             </property>
+            <port name="sof in" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+                </property>
+            </port>
+            <port name="sop in" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+                </property>
+            </port>
         </entity>
         <relation name="relation2" class="ptolemy.actor.TypedIORelation">
         </relation>
@@ -2630,8 +2685,8 @@
         </relation>
         <relation name="relation5" class="ptolemy.actor.TypedIORelation">
         </relation>
-        <relation name="relation3" class="ptolemy.actor.TypedIORelation">
-            <vertex name="vertex1" value="[245.0, 140.0]">
+        <relation name="relation8" class="ptolemy.actor.TypedIORelation">
+            <vertex name="vertex1" value="[190.0, 80.0]">
             </vertex>
         </relation>
         <relation name="relation" class="ptolemy.actor.TypedIORelation">
@@ -2639,18 +2694,106 @@
         <link port="sof_in" relation="relation4"/>
         <link port="sof_out" relation="relation5"/>
         <link port="SofSplitter.sof in" relation="relation4"/>
-        <link port="SofSplitter.sof out" relation="relation3"/>
+        <link port="SofSplitter.sof out" relation="relation8"/>
         <link port="SofSplitter.#groups" relation="relation2"/>
         <link port="SofAccumulator.sof in" relation="relation"/>
         <link port="SofAccumulator.#groups" relation="relation2"/>
         <link port="SofAccumulator.sof out" relation="relation5"/>
-        <link port="vmifucalib_1.sof in" relation="relation3"/>
-        <link port="vmifucalib_1.sof out" relation="relation"/>
+        <link port="vmbias_1.sof in" relation="relation8"/>
+        <link port="vmbias_1.sof out" relation="relation"/>
     </entity>
-    <entity name="FluxStandard" class="ptolemy.actor.TypedCompositeActor">
+    <entity name="SofCombiner" class="org.eso.SofCombiner">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofCombiner takes as input a number of set of files and combines them into one set of files that contains only the files whose purposes are present in all the input tokens. With this respect empty tokens are ignored and files with universal purpose are always collected</configure></property>
+<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sofs</configure></property>
+<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The combined sof</configure></property>
+<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:189:1">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofCombiner">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+            </property>
+        </property>
+        <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+        </property>
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[100.0, 920.0]">
+        </property>
+        <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:908:1">
+        </property>
+        <port name="sof in" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="multiport"/>
+            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+        </port>
+        <port name="sof in opt" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="multiport"/>
+            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+        </port>
+        <port name="sof out" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="multiport"/>
+            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+        </port>
+    </entity>
+    <entity name="SofCombiner2" class="org.eso.SofCombiner">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofCombiner takes as input a number of set of files and combines them into one set of files that contains only the files whose purposes are present in all the input tokens. With this respect empty tokens are ignored and files with universal purpose are always collected</configure></property>
+<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sofs</configure></property>
+<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The combined sof</configure></property>
+<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:190:1">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofCombiner">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+            </property>
+        </property>
+        <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+        </property>
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[825.0, 815.0]">
+        </property>
+        <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:908:1">
+        </property>
+        <port name="sof in" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="multiport"/>
+            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+        </port>
+        <port name="sof in opt" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="multiport"/>
+            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+        </port>
+        <port name="sof out" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="multiport"/>
+            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+        </port>
+    </entity>
+    <entity name="VmifuCalib" class="ptolemy.actor.TypedCompositeActor">
         <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="8.1.devel">
         </property>
-        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:29452:33:18">
+        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:29452:30:11">
         </property>
         <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.TypedCompositeActor">
             <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1">
@@ -2667,22 +2810,18 @@
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</ [...]
-</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[540.0, 640.0]">
+</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[160.0, 915.0]">
         </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:15314:221:97:urn:lsid:kepler-project.org/ns/:21155:65:80">
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:15314:197:41:urn:lsid:kepler-project.org/ns/:21155:64:67">
         </property>
         <port name="sof_in" class="ptolemy.actor.TypedIOPort">
             <property name="input"/>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{20.0, 200.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[35.0, 135.0]">
             </property>
         </port>
         <port name="sof_out" class="ptolemy.actor.TypedIOPort">
             <property name="output"/>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[540.0, 200.0]">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[645.0, 145.0]">
             </property>
         </port>
         <entity name="SofSplitter" class="org.eso.SofSplitter">
@@ -2692,12 +2831,12 @@
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
 <property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofSplitter takes a set of files as input and split it into smaller sets based on the purpose. This smaller sets can then be sent to e.g. a RecipeExecuter</configure></property>
 <property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sof</configure></property>
-<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The grouped sofs</configure></property>
 <property name="port:#groups" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of groups generated</configure></property>
+<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The grouped sofs</configure></property>
 <property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
 <property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
 <property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:222:2">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:198:2">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofSplitter">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
@@ -2705,7 +2844,7 @@
             </property>
             <property name="semanticType" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[100.0, 175.0]">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[130.0, 110.0]">
             </property>
             <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org/ns/:12925:5:1">
             </property>
@@ -2740,13 +2879,192 @@
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
 <property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofAccumulator is meant to be used together with the SofSplitter: it puts back together in a single set of files the tokens generated by the PurposeSerializer (and usually processed by the RecipeExecuter)</configure></property>
 <property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sofs</configure></property>
-<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The grouped sof</configure></property>
 <property name="port:#groups" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of groups to collect</configure></property>
+<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The grouped sof</configure></property>
 <property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
 <property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
 <property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
 <property name="prop:same dataset" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If true the SofAccumulator throws an error if the input tokens do not belong all to the same dataset</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:223:2">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:199:2">
+            </property>
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofAccumulator">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+                </property>
+            </property>
+            <property name="semanticType" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[535.0, 120.0]">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org/ns/:12925:7:1">
+            </property>
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <port name="sof in" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                </property>
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="0">
+                </property>
+            </port>
+            <port name="#groups" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+                </property>
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+                </property>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+                </property>
+            </port>
+            <port name="sof out" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                </property>
+            </port>
+        </entity>
+        <entity name="vmifucalib_1" class="org.eso.RecipeExecuter">
+            <property name="Recipe Failure Mode" class="ptolemy.data.expr.StringParameter" value="$RecipeFailureMode">
+            </property>
+            <property name="Output Files Category" class="ptolemy.data.expr.StringParameter" value="IFU_TRACE,IFU_IDS,IFU_TRANSMISSION">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[350.0, 80.0]">
+            </property>
+            <port name="sof in" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+                </property>
+            </port>
+            <port name="sop in" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+                </property>
+            </port>
+        </entity>
+        <relation name="relation2" class="ptolemy.actor.TypedIORelation">
+        </relation>
+        <relation name="relation4" class="ptolemy.actor.TypedIORelation">
+        </relation>
+        <relation name="relation5" class="ptolemy.actor.TypedIORelation">
+        </relation>
+        <relation name="relation3" class="ptolemy.actor.TypedIORelation">
+            <vertex name="vertex1" value="[245.0, 140.0]">
+            </vertex>
+        </relation>
+        <relation name="relation" class="ptolemy.actor.TypedIORelation">
+        </relation>
+        <link port="sof_in" relation="relation4"/>
+        <link port="sof_out" relation="relation5"/>
+        <link port="SofSplitter.sof in" relation="relation4"/>
+        <link port="SofSplitter.sof out" relation="relation3"/>
+        <link port="SofSplitter.#groups" relation="relation2"/>
+        <link port="SofAccumulator.sof in" relation="relation"/>
+        <link port="SofAccumulator.#groups" relation="relation2"/>
+        <link port="SofAccumulator.sof out" relation="relation5"/>
+        <link port="vmifucalib_1.sof in" relation="relation3"/>
+        <link port="vmifucalib_1.sof out" relation="relation"/>
+    </entity>
+    <entity name="FluxStandard" class="ptolemy.actor.TypedCompositeActor">
+        <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="8.1.devel">
+        </property>
+        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:29452:33:18">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.TypedCompositeActor">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1">
+            </property>
+        </property>
+        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Actor">
+        </property>
+        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#GeneralPurpose">
+        </property>
+        <property name="semanticType22" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Workflow">
+        </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</ [...]
+</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[540.0, 640.0]">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:15314:221:97:urn:lsid:kepler-project.org/ns/:21155:65:80">
+        </property>
+        <port name="sof_in" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{20.0, 200.0}">
+            </property>
+        </port>
+        <port name="sof_out" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[540.0, 200.0]">
+            </property>
+        </port>
+        <entity name="SofSplitter" class="org.eso.SofSplitter">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofSplitter takes a set of files as input and split it into smaller sets based on the purpose. This smaller sets can then be sent to e.g. a RecipeExecuter</configure></property>
+<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sof</configure></property>
+<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The grouped sofs</configure></property>
+<property name="port:#groups" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of groups generated</configure></property>
+<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:222:2">
+            </property>
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofSplitter">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+                </property>
+            </property>
+            <property name="semanticType" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[100.0, 175.0]">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org/ns/:12925:5:1">
+            </property>
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <port name="sof in" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                </property>
+            </port>
+            <port name="sof out" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                </property>
+            </port>
+            <port name="#groups" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+                </property>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+                </property>
+            </port>
+        </entity>
+        <entity name="SofAccumulator" class="org.eso.SofAccumulator">
+            <property name="same dataset" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofAccumulator is meant to be used together with the SofSplitter: it puts back together in a single set of files the tokens generated by the PurposeSerializer (and usually processed by the RecipeExecuter)</configure></property>
+<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sofs</configure></property>
+<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The grouped sof</configure></property>
+<property name="port:#groups" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of groups to collect</configure></property>
+<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:same dataset" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If true the SofAccumulator throws an error if the input tokens do not belong all to the same dataset</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:223:2">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofAccumulator">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
@@ -2765,9 +3083,13 @@
                 <property name="multiport"/>
                 <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
                 </property>
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="0">
+                </property>
             </port>
             <port name="#groups" class="ptolemy.actor.TypedIOPort">
                 <property name="input"/>
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+                </property>
                 <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
                 </property>
                 <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
@@ -2787,6 +3109,17 @@
             </property>
             <property name="_location" class="ptolemy.kernel.util.Location" value="[260.0, 140.0]">
             </property>
+            <port name="sof in" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+                </property>
+            </port>
+            <port name="sop in" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+                </property>
+            </port>
         </entity>
         <relation name="relation2" class="ptolemy.actor.TypedIORelation">
         </relation>
@@ -2967,9 +3300,13 @@
                 <property name="multiport"/>
                 <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
                 </property>
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="0">
+                </property>
             </port>
             <port name="#groups" class="ptolemy.actor.TypedIOPort">
                 <property name="input"/>
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+                </property>
                 <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
                 </property>
                 <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
@@ -2987,6 +3324,17 @@
             </property>
             <property name="_location" class="ptolemy.kernel.util.Location" value="[290.0, 150.0]">
             </property>
+            <port name="sof in" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+                </property>
+            </port>
+            <port name="sop in" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+                </property>
+            </port>
         </entity>
         <relation name="relation" class="ptolemy.actor.TypedIORelation">
         </relation>
@@ -3099,8 +3447,6 @@
             </property>
         </property>
         <property name="DDF Director" class="ptolemy.domains.ddf.kernel.DDFDirector">
-            <property name="timeResolution" class="ptolemy.actor.parameters.SharedParameter" value="1E-10">
-            </property>
             <property name="iterations" class="ptolemy.data.expr.Parameter" value="0">
             </property>
             <property name="maximumReceiverCapacity" class="ptolemy.data.expr.Parameter" value="0">
@@ -3278,12 +3624,12 @@
             </property>
         </entity>
         <entity name="String Constant" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$GLOBAL_TIMESTAMP">
+            </property>
             <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
             </property>
             <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="$GLOBAL_TIMESTAMP">
-            </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
@@ -3351,12 +3697,12 @@
             </property>
         </entity>
         <entity name="String Constant2" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="processing dataset ">
+            </property>
             <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
             </property>
             <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="processing dataset ">
-            </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
@@ -3392,12 +3738,12 @@
             </port>
         </entity>
         <entity name="String Constant3" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$END_PRODUCTS_DIR">
+            </property>
             <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
             </property>
             <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="$END_PRODUCTS_DIR">
-            </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
@@ -3461,12 +3807,12 @@
             </port>
         </entity>
         <entity name="String Constant4" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value=" out of ">
+            </property>
             <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
             </property>
             <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value=" out of ">
-            </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
@@ -3569,7 +3915,7 @@
             </property>
         </entity>
         <entity name="Directory Maker" class="org.resurgence.actor.DirectoryMaker">
-            <property name="Directory name" class="ptolemy.actor.parameters.PortParameter" value="">
+            <property name="Directory name" class="ptolemy.actor.parameters.PortParameter" value="ROOT_DATA_PATH_TO_REPLACE//reflex_end_products/2013-08-21T19:40:25/VIMOS.2011-05-02T01:47:52.778">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
@@ -3613,7 +3959,7 @@
             </port>
         </entity>
         <entity name="Display" class="ptolemy.actor.lib.gui.Display">
-            <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={1367, 140, 510, 393}, maximized=false}">
+            <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={1367, 140, 516, 395}, maximized=false}">
             </property>
             <property name="_paneSize" class="ptolemy.actor.gui.SizeAttribute" value="[508, 346]">
             </property>
@@ -3696,12 +4042,12 @@
             </port>
         </entity>
         <entity name="String Constant5" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$N_SELECTED_DATASETS: ">
+            </property>
             <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
             </property>
             <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="$N_SELECTED_DATASETS: ">
-            </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
@@ -3819,54 +4165,114 @@
         <link port="String Constant5.output" relation="relation9"/>
         <link port="String Constant5.trigger" relation="relation7"/>
     </entity>
-    <entity name="Close DataSet" class="ptolemy.actor.TypedCompositeActor">
-        <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="7.0.2">
-        </property>
-        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:25158:63:2">
-        </property>
-        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.TypedCompositeActor">
-            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1">
-            </property>
-        </property>
-        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Actor">
-        </property>
-        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#GeneralPurpose">
-        </property>
-        <property name="semanticType22" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Workflow">
-        </property>
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</ [...]
-</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[1140.0, 1070.0]">
-        </property>
-        <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={22, 86, 1298, 809}, maximized=false}">
+    <entity name="DataOrganizer" class="org.eso.DataOrganizer">
+        <display name="Data Organiser"/>
+        <property name="OCA File" class="ptolemy.data.expr.FileParameter" value="/usr/local/share/esopipes/vimos-2.9.9/reflex/vimos_ifu_wkf.oca">
         </property>
-        <property name="_vergilSize" class="ptolemy.actor.gui.SizeAttribute" value="[988, 658]">
+        <property name="Keywords to be displayed" class="ptolemy.data.expr.StringParameter" value="OBS.TARG.NAME,OBS.ID,OBS.NAME,OCS.CON.QUAD,INS.MODE,INS.PIXSCALE,OBS.TPLNO,INS.GRIS1.NAME,INS.GRIS2.NAME,INS.GRIS3.NAME,INS.GRIS4.NAME">
         </property>
-        <property name="_vergilZoomFactor" class="ptolemy.data.expr.ExpertParameter" value="1.3678500665865">
+        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:38241:4:2">
         </property>
-        <property name="_vergilCenter" class="ptolemy.data.expr.ExpertParameter" value="{1315.1506933890578, 786.5234375}">
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.DataOrganizer">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+            </property>
         </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:15314:107:61">
+        <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
         </property>
-        <property name="Annotation" class="ptolemy.vergil.kernel.attributes.TextAttribute">
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+        <property name="" class="ptolemy.vergil.basic.DocAttribute">
+            <property name="author" class="ptolemy.kernel.util.StringAttribute" value="ESO">
             </property>
-            <property name="_hideAllParameters" class="ptolemy.data.expr.Parameter" value="true">
+            <property name="version" class="ptolemy.kernel.util.StringAttribute" value="1.0">
             </property>
-            <property name="textSize" class="ptolemy.data.expr.Parameter" value="14">
+            <property name="OCA File (parameter)" class="ptolemy.data.expr.StringParameter" value="The filename (full path) containing the OCA rules used for classification and organization. Look at the user manual for more info.">
             </property>
-            <property name="textColor" class="ptolemy.actor.gui.ColorAttribute" value="{0.0, 0.0, 1.0, 1.0}">
+            <property name="Keywords to be displayed (parameter)" class="ptolemy.data.expr.StringParameter" value="A comma separated list of FITS keywords which are extracted from all files in addition to the ones selected by the OCA rules">
             </property>
-            <property name="fontFamily" class="ptolemy.data.expr.StringParameter" value="SansSerif">
+            <property name="class (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+            </property>
+            <property name="semanticType41 (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+            </property>
+            <property name="LoSOs (port)" class="ptolemy.kernel.util.StringAttribute" value="The produced LoSOs">
+            </property>
+            <property name="data dir (port)" class="ptolemy.kernel.util.StringAttribute" value="The directory containing the input data. It is scanned recursively.">
+            </property>
+            <property name="entityId (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+            </property>
+        </property>
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[-495.0, 740.0]">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:workflow:6:1:urn:lsid:kepler-project.org/ns/:5968:13:3:urn:lsid:kepler-project.org/ns/:13180:2:2:urn:lsid:kepler-project.org/ns/:13643:11:1:urn:lsid:kepler-project.org/ns/:15314:296:12:urn:lsid:kepler-project.org/ns/:21155:60:16:urn:lsid:kepler-project.org/ns/:29452:73:5:urn:lsid:kepler-project.org/ns/:31989:76:1">
+        </property>
+        <port name="input data" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+            </property>
+        </port>
+        <port name="datasets out" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+            </property>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            </property>
+        </port>
+    </entity>
+    <entity name="Initialize" class="ptolemy.actor.TypedCompositeActor">
+        <display name="Initialise"/>
+        <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="7.0.2">
+        </property>
+        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31989:132:2">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.TypedCompositeActor">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1">
+            </property>
+        </property>
+        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Actor">
+        </property>
+        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#GeneralPurpose">
+        </property>
+        <property name="semanticType22" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Workflow">
+        </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</ [...]
+</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[-495.0, 630.0]">
+        </property>
+        <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={330, 179, 1361, 932}, maximized=false}">
+        </property>
+        <property name="_vergilSize" class="ptolemy.actor.gui.SizeAttribute" value="[1657, 1009]">
+        </property>
+        <property name="_vergilZoomFactor" class="ptolemy.data.expr.ExpertParameter" value="0.6681514476615">
+        </property>
+        <property name="_vergilCenter" class="ptolemy.data.expr.ExpertParameter" value="{740.9883333333332, 743.9433333333333}">
+        </property>
+        <property name="" class="ptolemy.vergil.basic.DocAttribute">
+            <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</p>&#10 [...]
+            </property>
+            <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Yuhong Xiong">
+            </property>
+            <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
+            </property>
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:14094:70:17:urn:lsid:kepler-project.org/ns/:15314:48:9:urn:lsid:kepler-project.org/ns/:21155:108:26:urn:lsid:kepler-project.org/ns/:29452:63:3">
+        </property>
+        <property name="Annotation" class="ptolemy.vergil.kernel.attributes.TextAttribute">
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <property name="_hideAllParameters" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+            <property name="textSize" class="ptolemy.data.expr.Parameter" value="14">
+            </property>
+            <property name="textColor" class="ptolemy.actor.gui.ColorAttribute" value="{0.0, 0.0, 1.0, 1.0}">
+            </property>
+            <property name="fontFamily" class="ptolemy.data.expr.StringParameter" value="SansSerif">
             </property>
             <property name="bold" class="ptolemy.data.expr.Parameter" value="false">
             </property>
             <property name="italic" class="ptolemy.data.expr.Parameter" value="false">
             </property>
-            <property name="text" class="ptolemy.kernel.util.StringAttribute" value="This subworkflow modifies the END_PRODUCTS_SUBDIR variable, 
increasing one number each a data set is run">
+            <property name="text" class="ptolemy.kernel.util.StringAttribute" value="This subworkflow is in charge of two things:

 -Deleting the workflow directories if requested.

 -Providing the value of the raw data directory">
                 <property name="_style" class="ptolemy.actor.gui.style.TextStyle">
                     <property name="height" class="ptolemy.data.expr.Parameter" value="20">
                     </property>
@@ -3895,130 +4301,143 @@
             </property>
             <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{155.0, 580.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{500.0, 575.0}">
             </property>
         </property>
-        <port name="current_dataset" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{185.0, 205.0}">
+        <property name="DDF Director" class="ptolemy.domains.ddf.kernel.DDFDirector">
+            <property name="iterations" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            <property name="maximumReceiverCapacity" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-        </port>
-        <port name="final_files" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[5.0, 405.0]">
+            <property name="runUntilDeadlockInOneIteration" class="ptolemy.data.expr.Parameter" value="true">
             </property>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Gang Zhou</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
            <p> The dynamic dataflow (DDF) domain is a superset of the synchronous
            dataflow(SDF) and Boolean dataflow(BDF) domains. In the SDF domain,
            an actor consumes and produces a fixed number of tokens per firing.
            This static information makes possible compile-time scheduling. In the
            DDF domain, there are few  [...]
+<property name="prop:iterations" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify the number of times a workflow is iterated. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. </configure></property>
+<property name="prop:maximumReceiverCapacity" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A Parameter representing the maximum capacity of each receiver controlled by this director. This is an integer that defaults to 0, which means the queue in each receiver is unbounded. To specify bounded queues, set this to a positive integer. </configure></property>
+<property name="prop:runUntilDeadlockInOneIteration" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A parameter indicating whether one iteration consists of repeated basic iterations until deadlock. If this parameter is true, the model will be executed until deadlock in one iteration. The default value is a BooleanToken with the value false. It cannot be set to true if this director is at the top level.</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31989:107:1">
             </property>
-        </port>
-        <entity name="String Constant" class="ptolemy.actor.lib.StringConst">
-            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.domains.ddf.kernel.DDFDirector">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:directorclass:5:1">
+                </property>
             </property>
-            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Director">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="README">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Director">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{215.0, 265.0}">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:director:5:1">
+            </property>
+        </property>
+        <port name="raw_data_dir" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{1150.0, 375.0}">
+            </property>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+            </property>
+        </port>
+        <entity name="Variable Setter" class="ptolemy.actor.lib.SetVariable">
+            <property name="variableName" class="ptolemy.kernel.util.StringAttribute" value="GLOBAL_TIMESTAMP">
+            </property>
+            <property name="delayed" class="ptolemy.data.expr.Parameter" value="false">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee, Steve Neuendorffer, Jerome Blanc</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
-<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
-<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
-<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
-<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:123:3">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
Set the value of a variable. The result may occur at two different times, depending on the value of the delayed parameter. 
If delayed is true, then the change to the value of the variable is implemented in a change request, and consequently will not take hold until the end of the current toplevel iteration. This helps ensure that users of value of the variable will see changes t [...]
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:47:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.SetVariable">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:886:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
-            </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Variable">
             </property>
-            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
-                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
-                </property>
-                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
-                </property>
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#LocalInput">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{730.0, 535.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{510.0, 370.0}">
             </property>
             <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:10:1">
             </property>
-            <port name="trigger" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            <port name="output" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="_expertMode" class="ptolemy.kernel.util.SingletonAttribute">
                 </property>
             </port>
         </entity>
-        <entity name="Display Current Dataset" class="ptolemy.actor.lib.gui.Display">
-            <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={66, 937, 1325, 200}, maximized=false}">
+        <entity name="Elements To Array" class="ptolemy.actor.lib.ElementsToArray">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
<p>The ElementsToArray actor reads individual elements via its input port and outputs an array consisting of those elements.</p>

<p>The actor accepts input elements of any one type (int, double, etc.). The type must be consistent. Each time the actor fires, it reads one token from each channel of the input port and outputs a corresponding array.</p>&# [...]
+<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts tokens of any one type. The type must be consistent.</configure></property>
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts an assembled array. The type of the array elements matches that of the input.</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:32:1">
             </property>
-            <property name="_paneSize" class="ptolemy.actor.gui.SizeAttribute" value="[1323, 153]">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.ElementsToArray">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:908:1">
+                </property>
             </property>
-            <property name="rowsDisplayed" class="ptolemy.data.expr.Parameter" value="10">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#ArrayActor">
             </property>
-            <property name="columnsDisplayed" class="ptolemy.data.expr.Parameter" value="120">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#DataArrayOperation">
             </property>
-            <property name="suppressBlankLines" class="ptolemy.data.expr.Parameter" value="false">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{985.0, 360.0}">
             </property>
-            <property name="title" class="ptolemy.data.expr.StringParameter" value="Current Dataset">
+        </entity>
+        <entity name="Time Stamp" class="org.sdm.spa.Timestamp">
+            <property name="format" class="ptolemy.data.expr.StringParameter" value="yyyy-MM-dd'T'HH:mm:ss">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong, Edward A. Lee</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Ilkay Altintas</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The Display actor reads tokens of any type via its input multiport, and displays each token on a separate line in a text display window.</p>

<p>Specify the size of the text display window with the rowsDisplayed and columnsDisplayed parameters. Simply resizing the window onscreen does not persistently change the size when the workflow is saved, closed, and the [...]
-<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts tokens of any type.</configure></property>
-<property name="prop:suppressBlankLines" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether the actor should display blank lines (the default) or suppress them.</configure></property>
-<property name="prop:rowsDisplayed" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The vertical size of the display, in rows. The value is an integer that defaults to 10.</configure></property>
-<property name="prop:columnsDisplayed" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The horizontal size of the display, in columns. The value is an integer that defaults to 40.</configure></property>
-<property name="prop:title" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The title of the text display window. If specified, the value will appear in the title bar of the text display window.</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:3:12">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The TimeStamp actor outputs the current date and time.</p>

<p>Dates and times can be formatted in a variety of ways. Select a format from the drop-down menu beside the format parameter, or enter a pattern directly into the format field. For more information about date format patterns, see http://java.sun.com/docs/books/tutorial/i18n/format/datepattern.html.&l [...]
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the current time stamp as a string.</configure></property>
+<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time.</configure></property>
+<property name="prop:format" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The date format. Select a format string from the drop-down menu or type in a custom format string directly into the field. For more information about date formatting patterns, see http://java.sun.com/docs/books/tutorial/i18n/format/datepattern.html</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:370:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.gui.Display">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:883:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.sdm.spa.Timestamp">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1136:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#TextualOutputActor">
-            </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#TextualOutput">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#ClockActor">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{795.0, 170.0}">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#LocalInput">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:7:1:urn:lsid:kepler-project.org/ns/:13643:22:2">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{360.0, 380.0}">
             </property>
             <property name="" class="ptolemy.vergil.basic.DocAttribute">
-                <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>The Display actor reads tokens of any type via its input multiport, and displays each token on a separate line in a text display window.</p>

<p>Specify the size of the text display window with the rowsDisplayed and columnsDisplayed parameters. Simply resizing the window onscreen does not persistently change the size when the workflow is saved, closed, and then re- [...]
-                </property>
-                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Yuhong Xiong, Edward A. Lee">
+                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Ilkay Altintas">
                 </property>
                 <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
                 </property>
-                <property name="rowsDisplayed (parameter)" class="ptolemy.data.expr.StringParameter" value="The vertical size of the display, in rows. The value is an integer that defaults to 10.">
-                </property>
-                <property name="columnsDisplayed (parameter)" class="ptolemy.data.expr.StringParameter" value="The horizontal size of the display, in columns. The value is an integer that defaults to 40.">
-                </property>
-                <property name="suppressBlankLines (parameter)" class="ptolemy.data.expr.StringParameter" value="Specify whether the actor should display blank lines (the default) or suppress them.">
+                <property name="format (parameter)" class="ptolemy.data.expr.StringParameter" value="The date format. Select a format string from the drop-down menu or type in a custom format string directly into the field. For more information about date formatting patterns, see http://java.sun.com/docs/books/tutorial/i18n/format/datepattern.html">
                 </property>
-                <property name="title (parameter)" class="ptolemy.data.expr.StringParameter" value="The title of the text display window. If specified, the value will appear in the title bar of the text display window.">
+                <property name="output (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts the current time stamp as a string.">
                 </property>
-                <property name="input (port)" class="ptolemy.kernel.util.StringAttribute" value="A multiport that accepts tokens of any type.">
+                <property name="trigger (port)" class="ptolemy.kernel.util.StringAttribute" value="A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time.">
                 </property>
             </property>
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
         </entity>
-        <entity name="String Constant2" class="ptolemy.actor.lib.StringConst">
-            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
+        <entity name="String Constant" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="if [ "x$EraseDirs" = "xtrue" ]; then  echo "Deleting files"; rm -rf $BOOKKEEPING_DIR/*;  rm -rf $LOGS_DIR/*; rm -rf $TMP_PRODUCTS_DIR/* ;  else echo "Will not delete files"; fi">
             </property>
-            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="$END_PRODUCTS_DIR">
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
@@ -4029,7 +4448,7 @@
 <property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
 <property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
 <property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:121:3">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:204:1">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
@@ -4045,25 +4464,15 @@
                 <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
                 </property>
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{725.0, 435.0}">
-            </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1">
-            </property>
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{665.0, 695.0}">
             </property>
-            <port name="trigger" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
-                </property>
-            </port>
         </entity>
-        <entity name="String Constant3" class="ptolemy.actor.lib.StringConst">
-            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
+        <entity name="String Constant2" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$RAWDATA_DIR">
             </property>
-            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value=" Dataset has been reduced and saved in ">
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
@@ -4074,7 +4483,7 @@
 <property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
 <property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
 <property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:19:3">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:204:1">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
@@ -4090,156 +4499,117 @@
                 <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
                 </property>
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{255.0, 355.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{825.0, 320.0}">
             </property>
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1:urn:lsid:kepler-project.org/ns/:13643:21:2">
-            </property>
-            <port name="trigger" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
-                </property>
-            </port>
         </entity>
-        <entity name="Final directory path" class="org.resurgence.actor.StringAccumulator">
-            <property name="Substring separator" class="ptolemy.data.expr.Parameter" value=""/"">
-            </property>
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke Sudholt</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>
The StringAccumulator actor reads multiple strings via its input port and outputs a string containing all of the input values. The characters separating the substrings in the output string can be specified with the substringSeparator parameter.</p></configure></property>
-<property name="port:whole" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the full string.</configure></property>
-<property name="port:parts" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts substrings.</configure></property>
-<property name="prop:Substring separator" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The characters used to separate the elements in the output string. By default, the value is "".</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:25:2">
-            </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.resurgence.actor.StringAccumulator">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1117:1">
-                </property>
-            </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
+        <entity name="DirectoryEraser" class="ptolemy.actor.lib.Exec">
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#IterativeOperation">
+            <property name="command" class="ptolemy.actor.parameters.PortParameter" value="sh">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{370.0, 445.0}">
+            <property name="directory" class="ptolemy.data.expr.FileParameter" value="$CWD">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:292:1">
+            <property name="environment" class="ptolemy.data.expr.Parameter" value="{{name = "", value = ""}}">
             </property>
-        </entity>
-        <entity name="Write README" class="org.geon.FileWrite">
-            <property name="fileName" class="ptolemy.actor.parameters.FilePortParameter" value="System.out">
+            <property name="prependPlatformDependentShellCommand" class="ptolemy.data.expr.Parameter" value="false">
             </property>
-            <property name="append" class="ptolemy.data.expr.Parameter" value="true">
+            <property name="throwExceptionOnNonZeroReturn" class="ptolemy.data.expr.Parameter" value="true">
             </property>
-            <property name="confirmOverwrite" class="ptolemy.data.expr.Parameter" value="false">
+            <property name="waitForProcess" class="ptolemy.data.expr.Parameter" value="true">
             </property>
-            <property name="alwaysFlush" class="ptolemy.data.expr.Parameter" value="false">
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="1">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>No author given</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Xiaojun Liu, Edward A. Lee, Steve Neuendorffer</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The FileWriter actor reads a string and writes it to a file. The actor outputs the file path of the generated file.</p>

<p>Specify a destination file path with the fileName parameter. If the specified file does not exist, then the actor will create it.  If the file already exists, then the actor will ask for permission to overwrite it (unless the append param [...]
-<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input port that receives a string to write to a file.</configure></property>
-<property name="port:url" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the file name of the generated file.</configure></property>
-<property name="prop:append" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether to append the input string to an existing, specified file. By default, the actor will overwrite any preexisting file.</configure></property>
-<property name="prop:confirmOverwrite" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether the actor should confirm before overwriting an existing file. By default, the actor will not ask for confirmation.</configure></property>
-<property name="prop:fileName" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The name of the file to which to write. See FileParameter for more information about specifying file names. </configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:118:5">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
<p>The External Execution actor executes a system command from a workflow. The actor accepts a command, a directory and environment in which to execute the command, and a command input string. Once the command has finished executing, the actor will output the execution results along with any errors. If no results are generated, the actor will output an empty string.</p>&# [...]
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts data generated by the executed command, output as a string after the command has finished executing. If the command generates no data on standard out, then the empty string (a string of length zero) is generated. </configure></property>
+<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input port that accepts strings to pass to the standard input of the subprocess. Note that a newline is not appended to the string. If you require a newline, add one using the AddSubtract actor. This port is an input port of type String.</configure></property>
+<property name="port:error" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts any errors generated by the command execution. Errors are output as a string after the command has finished executing. If the execution generates no errors, an empty string is output. </configure></property>
+<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If connected, a token must be available on this port before actor will execute.</configure></property>
+<property name="port:exitCode" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the command's exit code. A non-zero value signifies an error.</configure></property>
+<property name="prop:environment" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An array of records that name an environment variable and a value:
 
  {{name = "NAME1", value = "value1"}...}
  
Where NAME1 is the name of the environment variable, and value1 is the value. 
For example, {{name = "PTII", value = "c:/ptII"}} would set the value of the PTII to c:/ptII. 
If the parameter is set to {{name="&quot [...]
+<property name="prop:directory" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The directory in which to execute the command. The default value of this parameter $CWD, which represents the user's current working or home directory. </configure></property>
+<property name="prop:throwExceptionOnNonZeroReturn" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If true, then throw an exception if the subprocess returns non-zero.</configure></property>
+<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If a positive integer, then it is the maximum number of times to execute the actor.</configure></property>
+<property name="prop:prependPlatformDependentShellCommand" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
If true, then prepend the platform dependent shell command to the
parsed value of the command parameter.  By setting this argument
to true, it is possible to invoke commands in a platform neutral
method.
<p>Under Windows NT or XP, the arguments "cmd.exe" and "/C" are
prepended.  Under Windows 95, the arguments "com [...]
+<property name="prop:waitForProcess" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If true, then actor will wait until subprocess completes.</configure></property>
+<property name="prop:command" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The command to be executed (e.g., echo "Hello, world."). The command can be specified via either the command port or parameter.</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:102:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.geon.FileWrite">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1003:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.Exec">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:976:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#WriterOutputActor">
-            </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#LocalOutput">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#ExternalExecutionEnvironmentActor">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{880.0, 380.0}">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#UnixCommand">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:144:1">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{135.0, 390.0}">
             </property>
             <property name="" class="ptolemy.vergil.basic.DocAttribute">
-                <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>The FileWriter actor reads a string and writes it to a file. The actor outputs the file path of the generated file.</p>

<p>Specify a destination file path with the fileName parameter. If the specified file does not exist, then the actor will create it.  If the file already exists, then the actor will ask for permission to overwrite it (unless the append parameter  [...]
-                </property>
-                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="No author given">
+                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Xiaojun Liu, Edward A. Lee, Steve Neuendorffer">
                 </property>
                 <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
                 </property>
-                <property name="append (parameter)" class="ptolemy.data.expr.StringParameter" value="Specify whether to append the input string to an existing, specified file. By default, the actor will overwrite any preexisting file.">
+                <property name="directory (parameter)" class="ptolemy.data.expr.StringParameter" value="The directory in which to execute the command. The default value of this parameter $CWD, which represents the user's current working or home directory. ">
                 </property>
-                <property name="confirmOverwrite (parameter)" class="ptolemy.data.expr.StringParameter" value="Specify whether the actor should confirm before overwriting an existing file. By default, the actor will not ask for confirmation.">
+                <property name="environment (parameter)" class="ptolemy.data.expr.StringParameter" value="An array of records that name an environment variable and a value:
 
  {{name = "NAME1", value = "value1"}...}
  
Where NAME1 is the name of the environment variable, and value1 is the value. 
For example, {{name = "PTII", value = "c:/ptII"}} would set the value of the PTII to c:/ptII. 
If the parameter is set to {{name= [...]
                 </property>
-                <property name="input (port)" class="ptolemy.kernel.util.StringAttribute" value="An input port that receives a string to write to a file.">
+                <property name="prependPlatformDependentShellCommand (parameter)" class="ptolemy.data.expr.StringParameter" value="
If true, then prepend the platform dependent shell command to the
parsed value of the command parameter.  By setting this argument
to true, it is possible to invoke commands in a platform neutral
method.
<p>Under Windows NT or XP, the arguments "cmd.exe" and "/C" are
prepended.  Under Windows 95, the argument [...]
                 </property>
-                <property name="url (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts the file name of the generated file.">
+                <property name="throwExceptionOnNonZeroReturn (parameter)" class="ptolemy.data.expr.StringParameter" value="If true, then throw an exception if the subprocess returns non-zero.">
                 </property>
-                <property name="fileName (parameter)" class="ptolemy.data.expr.StringParameter" value="The name of the file to which to write. See FileParameter for more information about specifying file names. ">
+                <property name="waitForProcess (parameter)" class="ptolemy.data.expr.StringParameter" value="If true, then actor will wait until subprocess completes.">
+                </property>
+                <property name="firingCountLimit (parameter)" class="ptolemy.data.expr.StringParameter" value="If a positive integer, then it is the maximum number of times to execute the actor.">
+                </property>
+                <property name="output (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts data generated by the executed command, output as a string after the command has finished executing. If the command generates no data on standard out, then the empty string (a string of length zero) is generated. ">
+                </property>
+                <property name="trigger (port)" class="ptolemy.kernel.util.StringAttribute" value="If connected, a token must be available on this port before actor will execute.">
+                </property>
+                <property name="error (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts any errors generated by the command execution. Errors are output as a string after the command has finished executing. If the execution generates no errors, an empty string is output. ">
+                </property>
+                <property name="input (port)" class="ptolemy.kernel.util.StringAttribute" value="An input port that accepts strings to pass to the standard input of the subprocess. Note that a newline is not appended to the string. If you require a newline, add one using the AddSubtract actor. This port is an input port of type String.">
+                </property>
+                <property name="exitCode (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts the command's exit code. A non-zero value signifies an error.">
+                </property>
+                <property name="command (parameter)" class="ptolemy.data.expr.StringParameter" value="The command to be executed (e.g., echo "Hello, world."). The command can be specified via either the command port or parameter.">
                 </property>
             </property>
-            <port name="fileName" class="ptolemy.actor.parameters.ParameterPort">
+            <port name="output" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                </property>
+            </port>
+            <port name="command" class="ptolemy.actor.parameters.ParameterPort">
                 <property name="input"/>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
                 </property>
             </port>
-            <port name="url" class="ptolemy.actor.TypedIOPort">
+            <port name="error" class="ptolemy.actor.TypedIOPort">
                 <property name="output"/>
-                <property name="_hide" class="ptolemy.data.expr.SingletonParameter" value="true">
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
                 </property>
             </port>
-        </entity>
-        <entity name="String Constant4" class="ptolemy.actor.lib.StringConst">
-            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
-            </property>
-            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
-            </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="$END_PRODUCTS_SUBDIR">
-            </property>
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
-<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
-<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
-<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
-<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:23:2">
-            </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
-                </property>
-            </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
-            </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
-            </property>
-            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
-                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
-                </property>
-                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
-                </property>
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{265.0, 530.0}">
-            </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1">
-            </property>
-            <port name="trigger" class="ptolemy.actor.TypedIOPort">
+            <port name="input" class="ptolemy.actor.TypedIOPort">
                 <property name="input"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                </property>
+            </port>
+            <port name="exitCode" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
                 </property>
             </port>
         </entity>
-        <entity name="String Constant5" class="ptolemy.actor.lib.StringConst">
-            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
+        <entity name="String Constant3" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$CALIB_DATA_DIR">
             </property>
-            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="$GLOBAL_TIMESTAMP">
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
@@ -4250,7 +4620,7 @@
 <property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
 <property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
 <property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:122:3">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:14094:71:2">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
@@ -4266,174 +4636,285 @@
                 <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
                 </property>
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{720.0, 500.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{835.0, 455.0}">
             </property>
             <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1">
             </property>
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
-            <port name="trigger" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
-                </property>
-            </port>
         </entity>
-        <entity name="Write to stdout" class="org.geon.FileWrite">
-            <property name="fileName" class="ptolemy.actor.parameters.FilePortParameter" value="/dev/stdout">
-            </property>
-            <property name="append" class="ptolemy.data.expr.Parameter" value="true">
-            </property>
-            <property name="confirmOverwrite" class="ptolemy.data.expr.Parameter" value="false">
-            </property>
-            <property name="alwaysFlush" class="ptolemy.data.expr.Parameter" value="true">
-            </property>
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>No author given</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The FileWriter actor reads a string and writes it to a file. The actor outputs the file path of the generated file.</p>

<p>Specify a destination file path with the fileName parameter. If the specified file does not exist, then the actor will create it.  If the file already exists, then the actor will ask for permission to overwrite it (unless the append param [...]
-<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input port that receives a string to write to a file.</configure></property>
-<property name="port:url" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the file name of the generated file.</configure></property>
-<property name="prop:append" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether to append the input string to an existing, specified file. By default, the actor will overwrite any preexisting file.</configure></property>
-<property name="prop:confirmOverwrite" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether the actor should confirm before overwriting an existing file. By default, the actor will not ask for confirmation.</configure></property>
-<property name="prop:fileName" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The name of the file to which to write. See FileParameter for more information about specifying file names. </configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:24:2">
-            </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.geon.FileWrite">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1003:1">
-                </property>
-            </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#WriterOutputActor">
+        <relation name="relation" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#LocalOutput">
+        </relation>
+        <relation name="relation2" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{840.0, 255.0}">
+            <vertex name="vertex1" value="[665.0, 385.0]">
+            </vertex>
+        </relation>
+        <relation name="relation3" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:144:1:urn:lsid:kepler-project.org/ns/:15165:55:3">
+        </relation>
+        <relation name="relation4" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-        </entity>
-        <entity name="String Constant6" class="ptolemy.actor.lib.StringConst">
-            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
+        </relation>
+        <relation name="relation5" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
+        </relation>
+        <relation name="relation6" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="$END_PRODUCTS_DIR">
+        </relation>
+        <relation name="relation7" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
+        </relation>
+        <link port="raw_data_dir" relation="relation7"/>
+        <link port="Variable Setter.input" relation="relation3"/>
+        <link port="Variable Setter.output" relation="relation2"/>
+        <link port="Elements To Array.input" relation="relation"/>
+        <link port="Elements To Array.input" relation="relation4"/>
+        <link port="Elements To Array.output" relation="relation7"/>
+        <link port="Time Stamp.output" relation="relation3"/>
+        <link port="Time Stamp.trigger" relation="relation6"/>
+        <link port="String Constant.output" relation="relation5"/>
+        <link port="String Constant2.output" relation="relation"/>
+        <link port="String Constant2.trigger" relation="relation2"/>
+        <link port="DirectoryEraser.output" relation="relation6"/>
+        <link port="DirectoryEraser.input" relation="relation5"/>
+        <link port="String Constant3.output" relation="relation4"/>
+        <link port="String Constant3.trigger" relation="relation2"/>
+    </entity>
+    <entity name="SofCombiner4" class="org.eso.SofCombiner">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
-<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
-<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
-<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
-<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:23:5">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofCombiner takes as input a number of set of files and combines them into one set of files that contains only the files whose purposes are present in all the input tokens. With this respect empty tokens are ignored and files with universal purpose are always collected</configure></property>
+<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sofs</configure></property>
+<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The combined sof</configure></property>
+<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:29452:78:2">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofCombiner">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
-                </property>
+        </property>
+        <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+        </property>
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[-120.0, 745.0]">
+        </property>
+        <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:908:1">
+        </property>
+        <port name="sof in" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="multiport"/>
+            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
+        </port>
+        <port name="sof in opt" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="multiport"/>
+            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
+        </port>
+        <port name="sof out" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="multiport"/>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
             </property>
-            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
-                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
-                </property>
-                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
-                </property>
+        </port>
+    </entity>
+    <entity name="Data Set Selection" class="ptolemy.actor.TypedCompositeActor">
+        <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="8.1.devel">
+        </property>
+        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44497:12:2">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.TypedCompositeActor">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{265.0, 405.0}">
+        </property>
+        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Actor">
+        </property>
+        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#GeneralPurpose">
+        </property>
+        <property name="semanticType22" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Workflow">
+        </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</ [...]
+</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[-490.0, 855.0]">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:31989:70:2">
+        </property>
+        <property name="DDF Director" class="ptolemy.domains.ddf.kernel.DDFDirector">
+            <property name="iterations" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1">
+            <property name="maximumReceiverCapacity" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-            <port name="trigger" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
-                </property>
-            </port>
-        </entity>
-        <entity name="Path to README" class="org.resurgence.actor.StringAccumulator">
-            <property name="Substring separator" class="ptolemy.data.expr.Parameter" value=""/"">
+            <property name="runUntilDeadlockInOneIteration" class="ptolemy.data.expr.Parameter" value="true">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke Sudholt</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Gang Zhou</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>
The StringAccumulator actor reads multiple strings via its input port and outputs a string containing all of the input values. The characters separating the substrings in the output string can be specified with the substringSeparator parameter.</p></configure></property>
-<property name="port:whole" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the full string.</configure></property>
-<property name="port:parts" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts substrings.</configure></property>
-<property name="prop:Substring separator" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The characters used to separate the elements in the output string. By default, the value is "".</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:124:4">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
            <p> The dynamic dataflow (DDF) domain is a superset of the synchronous
            dataflow(SDF) and Boolean dataflow(BDF) domains. In the SDF domain,
            an actor consumes and produces a fixed number of tokens per firing.
            This static information makes possible compile-time scheduling. In the
            DDF domain, there are few  [...]
+<property name="prop:maximumReceiverCapacity" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A Parameter representing the maximum capacity of each receiver controlled by this director. This is an integer that defaults to 0, which means the queue in each receiver is unbounded. To specify bounded queues, set this to a positive integer. </configure></property>
+<property name="prop:iterations" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify the number of times a workflow is iterated. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. </configure></property>
+<property name="prop:runUntilDeadlockInOneIteration" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A parameter indicating whether one iteration consists of repeated basic iterations until deadlock. If this parameter is true, the model will be executed until deadlock in one iteration. The default value is a BooleanToken with the value false. It cannot be set to true if this director is at the top level.</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31617:99:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.resurgence.actor.StringAccumulator">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1117:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.domains.ddf.kernel.DDFDirector">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:directorclass:5:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Director">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#IterativeOperation">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Director">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{870.0, 485.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{-10.0, 285.0}">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:292:1">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:director:5:1">
             </property>
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="false">
+        </property>
+        <port name="datasets_in" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="multiport"/>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{-5.0, 415.0}">
             </property>
-            <port name="whole" class="ptolemy.actor.TypedIOPort">
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+            </property>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            </property>
+        </port>
+        <port name="dataset_out" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="multiport"/>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{220.0, 415.0}">
+            </property>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+            </property>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            </property>
+        </port>
+        <entity name="DataSetChooser" class="org.eso.DataSetChooser">
+            <display name="Data Set Chooser"/>
+            <property name="Selection mode" class="ptolemy.data.expr.StringParameter" value="$DataSelectionMethod">
+            </property>
+            <property name="FITS Viewer" class="ptolemy.data.expr.StringParameter" value="$FITS_VIEWER">
+            </property>
+            <property name="Mode" class="ptolemy.data.expr.StringParameter" value="Select">
+            </property>
+            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44497:11:1">
+            </property>
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.DataSetChooser">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+                </property>
+            </property>
+            <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+            </property>
+            <property name="" class="ptolemy.vergil.basic.DocAttribute">
+                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="ESO">
+                </property>
+                <property name="version" class="ptolemy.kernel.util.StringAttribute" value="1.0">
+                </property>
+                <property name="FITS Viewer (parameter)" class="ptolemy.data.expr.StringParameter" value="The application used to inspect FITS files">
+                </property>
+                <property name="Mode (parameter)" class="ptolemy.data.expr.StringParameter" value="<p>Skip: automatically select all files and don't show any window;</p><p>Display: select all the files and allow the user only to view them;</p><p>Select: standard mode.</p>">
+                </property>
+                <property name="class (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+                </property>
+                <property name="semanticType41 (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+                </property>
+                <property name="LoSOs (port)" class="ptolemy.kernel.util.StringAttribute" value="The input LoSOs">
+                </property>
+                <property name="sof (port)" class="ptolemy.kernel.util.StringAttribute" value="The SoF of the current LoSO">
+                </property>
+                <property name="sop (port)" class="ptolemy.kernel.util.StringAttribute" value="The SoP of the current LoSO">
+                </property>
+                <property name="entityId (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+                </property>
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{75.0, 395.0}">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:workflow:5:1:urn:lsid:kepler-project.org/ns/:12776:6:1:urn:lsid:kepler-project.org/ns/:13961:210:1:urn:lsid:kepler-project.org/ns/:31617:78:3">
+            </property>
+            <port name="datasets in" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="WEST">
+                </property>
+            </port>
+            <port name="dataset out" class="ptolemy.actor.TypedIOPort">
                 <property name="output"/>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+                <property name="multiport"/>
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="EAST">
+                </property>
+            </port>
+            <port name="#selected" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="_hide" class="ptolemy.data.expr.SingletonParameter" value="false">
                 </property>
             </port>
         </entity>
-        <entity name="Final message" class="org.resurgence.actor.StringAccumulator">
-            <property name="Substring separator" class="ptolemy.data.expr.Parameter" value="""">
+        <entity name="Variable Setter" class="ptolemy.actor.lib.SetVariable">
+            <property name="variableName" class="ptolemy.kernel.util.StringAttribute" value="N_SELECTED_DATASETS">
+            </property>
+            <property name="delayed" class="ptolemy.data.expr.Parameter" value="false">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke Sudholt</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee, Steve Neuendorffer, Jerome Blanc</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>
The StringAccumulator actor reads multiple strings via its input port and outputs a string containing all of the input values. The characters separating the substrings in the output string can be specified with the substringSeparator parameter.</p></configure></property>
-<property name="port:whole" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the full string.</configure></property>
-<property name="port:parts" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts substrings.</configure></property>
-<property name="prop:Substring separator" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The characters used to separate the elements in the output string. By default, the value is "".</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:26:1">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
Set the value of a variable. The result may occur at two different times, depending on the value of the delayed parameter. 
If delayed is true, then the change to the value of the variable is implemented in a change request, and consequently will not take hold until the end of the current toplevel iteration. This helps ensure that users of value of the variable will see changes t [...]
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31989:67:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.resurgence.actor.StringAccumulator">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1117:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.SetVariable">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:886:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Variable">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#IterativeOperation">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#LocalInput">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{75.0, 510.0}">
+            </property>
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{470.0, 325.0}">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:10:1:urn:lsid:kepler-project.org/ns/:13757:404:3:urn:lsid:kepler-project.org/ns/:31617:89:8">
             </property>
             <property name="" class="ptolemy.vergil.basic.DocAttribute">
-                <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>
The StringAccumulator actor reads multiple strings via its input port and outputs a string containing all of the input values. The characters separating the substrings in the output string can be specified with the substringSeparator parameter.</p>">
+                <property name="description" class="ptolemy.kernel.util.StringAttribute" value="
Set the value of a variable. The result may occur at two different times, depending on the value of the delayed parameter. 
If delayed is true, then the change to the value of the variable is implemented in a change request, and consequently will not take hold until the end of the current toplevel iteration. This helps ensure that users of value of the variable will see changes to the [...]
                 </property>
-                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Wibke Sudholt">
+                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Edward Lee, Steve Neuendorffer, Jerome Blanc">
                 </property>
                 <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
                 </property>
-                <property name="Substring separator (parameter)" class="ptolemy.data.expr.StringParameter" value="The characters used to separate the elements in the output string. By default, the value is "".">
-                </property>
-                <property name="parts (port)" class="ptolemy.kernel.util.StringAttribute" value="A multiport that accepts substrings.">
-                </property>
-                <property name="whole (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts the full string.">
-                </property>
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:292:1">
+            <property name="requiredFiringsPerIteration" class="ptolemy.data.expr.Parameter" value="1">
             </property>
+            <port name="input" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+                </property>
+            </port>
+            <port name="output" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+                </property>
+            </port>
         </entity>
         <relation name="relation" class="ptolemy.actor.TypedIORelation">
             <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-            <vertex name="vertex1" value="[570.0, 355.0]">
-            </vertex>
         </relation>
         <relation name="relation2" class="ptolemy.actor.TypedIORelation">
             <property name="width" class="ptolemy.data.expr.Parameter" value="1">
@@ -4443,126 +4924,107 @@
             <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
         </relation>
-        <relation name="relation4" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </relation>
-        <relation name="relation5" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </relation>
-        <relation name="relation6" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </relation>
-        <relation name="relation7" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </relation>
-        <relation name="relation8" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </relation>
-        <relation name="relation9" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </relation>
-        <relation name="relation10" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-            <vertex name="vertex1" value="[85.0, 405.0]">
-            </vertex>
-        </relation>
-        <relation name="relation11" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </relation>
-        <link port="current_dataset" relation="relation7"/>
-        <link port="final_files" relation="relation10"/>
-        <link port="String Constant.output" relation="relation9"/>
-        <link port="String Constant.trigger" relation="relation"/>
-        <link port="Display Current Dataset.input" relation="relation"/>
-        <link port="String Constant2.output" relation="relation2"/>
-        <link port="String Constant2.trigger" relation="relation"/>
-        <link port="String Constant3.output" relation="relation11"/>
-        <link port="String Constant3.trigger" relation="relation10"/>
-        <link port="Final directory path.parts" relation="relation5"/>
-        <link port="Final directory path.parts" relation="relation3"/>
-        <link port="Final directory path.whole" relation="relation4"/>
-        <link port="Write README.input" relation="relation"/>
-        <link port="Write README.fileName" relation="relation6"/>
-        <link port="String Constant4.output" relation="relation3"/>
-        <link port="String Constant4.trigger" relation="relation10"/>
-        <link port="String Constant5.output" relation="relation8"/>
-        <link port="String Constant5.trigger" relation="relation"/>
-        <link port="Write to stdout.input" relation="relation"/>
-        <link port="String Constant6.output" relation="relation5"/>
-        <link port="String Constant6.trigger" relation="relation10"/>
-        <link port="Path to README.parts" relation="relation2"/>
-        <link port="Path to README.parts" relation="relation8"/>
-        <link port="Path to README.parts" relation="relation9"/>
-        <link port="Path to README.whole" relation="relation6"/>
-        <link port="Final message.parts" relation="relation7"/>
-        <link port="Final message.parts" relation="relation11"/>
-        <link port="Final message.parts" relation="relation4"/>
-        <link port="Final message.whole" relation="relation"/>
+        <link port="datasets_in" relation="relation3"/>
+        <link port="dataset_out" relation="relation"/>
+        <link port="DataSetChooser.datasets in" relation="relation3"/>
+        <link port="DataSetChooser.dataset out" relation="relation"/>
+        <link port="DataSetChooser.#selected" relation="relation2"/>
+        <link port="Variable Setter.input" relation="relation2"/>
     </entity>
-    <entity name="DataOrganizer" class="org.eso.DataOrganizer">
-        <display name="Data Organiser"/>
-        <property name="OCA File" class="ptolemy.data.expr.FileParameter" value="/usr/local/share/esopipes/vimos-2.9.7/reflex/vimos_ifu_wkf.oca">
+    <entity name="ProvenanceExplorer" class="org.eso.ProvenanceExplorer">
+        <property name="Enabled" class="ptolemy.data.expr.StringParameter" value="$ProvenanceExplorerEnabled">
         </property>
-        <property name="Keywords to be displayed" class="ptolemy.data.expr.StringParameter" value="OBS.TARG.NAME,OBS.ID,OBS.NAME,OCS.CON.QUAD,INS.MODE,INS.PIXSCALE,OBS.TPLNO,INS.GRIS1.NAME,INS.GRIS2.NAME,INS.GRIS3.NAME,INS.GRIS4.NAME">
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[1240.0, 1075.0]">
         </property>
-        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:38241:4:2">
+    </entity>
+    <entity name="ProductRenamer" class="ptolemy.actor.lib.python.PythonScript">
+        <property name="jythonClassName" class="ptolemy.kernel.util.StringAttribute" value="Main">
         </property>
-        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.DataOrganizer">
+        <property name="script" class="ptolemy.kernel.util.StringAttribute" value="import os
import shutil

from ptolemy.data import StringToken, IntToken
from ptolemy.data.expr import Parameter
from org.eso.util import JSONTools
from nom.tam.fits import Fits
from nom.tam.fits import FitsFactory
from ptolemy.kernel.util import IllegalActionException
from org.eso.service import ExecutionServiceDB
import org.apache.log4j
from java.util import Has [...]
+        </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Renames recipe products based on FITS keywords</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure> This actor moves (or copies or links) its input sof to a final product directory based on some FITS keywords.
 Usually, it should be connected to the output of the recipes that produce final products. If the recipe produces more products that are not relevant to rename, an output filter can be put in the recipe.</configure></property>
+<property name="port:sof_out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The final list of files produced</configure></property>
+<property name="port:sof_in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The files to be copied/moved or linked</configure></property>
+<property name="prop:RenameKeywords" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The list of keywords used to create the new name</configure></property>
+<property name="prop:OutputExistsMode" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>This parameter defines the behaviour in case the output files already exists: it can be "append_version" (create a new file with a running index suffix), "overwrite" (replace the existing file), "stop" (stop the workflow)</configure></property>
+<property name="prop:script" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:FinalProductDirectory" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The directory where the files are going to be copied/linked or renamed. It is usually set to END_PRODUCTS_DIR</configure></property>
+<property name="prop:SubDir" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If it is not empty, a subdirectory will be created with this string. The value can contain backslashes (and intermediate directories will be created). It will usually be END_PROD_SUBDIR, created somewhere in the workflow</configure></property>
+<property name="prop:CopyMode" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>There are several options: "copy", "move" or "link".</configure></property>
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44576:74:2">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.python.PythonScript">
             <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
             </property>
         </property>
         <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
         </property>
+        <property name="_editorFactory" class="ptolemy.vergil.toolbox.TextEditorConfigureFactory">
+            <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="script">
+            </property>
+        </property>
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[1120.0, 725.0]">
+        </property>
+        <property name="RenameKeywords" class="ptolemy.data.expr.StringParameter" value="HIERARCH.ESO.OBS.NAME,'_',HIERARCH.ESO.PRO.CATG">
+        </property>
+        <property name="FinalProductDirectory" class="ptolemy.data.expr.StringParameter" value="$END_PRODUCTS_DIR">
+        </property>
+        <property name="SubDir" class="ptolemy.data.expr.StringParameter" value="$END_PRODUCTS_SUBDIR">
+        </property>
+        <property name="CopyMode" class="ptolemy.data.expr.StringParameter" value="copy">
+        </property>
+        <property name="OutputExistsMode" class="ptolemy.data.expr.StringParameter" value="append_version">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:910:1:urn:lsid:kepler-project.org/ns/:24723:4:5:urn:lsid:kepler-project.org/ns/:25047:16:2:urn:lsid:kepler-project.org/ns/:25158:50:1:urn:lsid:kepler-project.org/ns/:38241:57:8">
+        </property>
         <property name="" class="ptolemy.vergil.basic.DocAttribute">
+            <property name="description" class="ptolemy.kernel.util.StringAttribute" value=" This actor moves (or copies or links) its input sof to a final product directory based on some FITS keywords.
 Usually, it should be connected to the output of the recipes that produce final products. If the recipe produces more products that are not relevant to rename, an output filter can be put in the recipe.">
+            </property>
             <property name="author" class="ptolemy.kernel.util.StringAttribute" value="ESO">
             </property>
-            <property name="version" class="ptolemy.kernel.util.StringAttribute" value="1.0">
+            <property name="version" class="ptolemy.kernel.util.StringAttribute" value="2.0">
             </property>
-            <property name="OCA File (parameter)" class="ptolemy.data.expr.StringParameter" value="The filename (full path) containing the OCA rules used for classification and organization. Look at the user manual for more info.">
+            <property name="RenameKeywords (parameter)" class="ptolemy.data.expr.StringParameter" value="The list of keywords used to create the new name">
             </property>
-            <property name="Keywords to be displayed (parameter)" class="ptolemy.data.expr.StringParameter" value="A comma separated list of FITS keywords which are extracted from all files in addition to the ones selected by the OCA rules">
+            <property name="FinalProductDirectory (parameter)" class="ptolemy.data.expr.StringParameter" value="The directory where the files are going to be copied/linked or renamed. It is usually set to END_PRODUCTS_DIR">
             </property>
-            <property name="class (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+            <property name="SubDir (parameter)" class="ptolemy.data.expr.StringParameter" value="If it is not empty, a subdirectory will be created with this string. The value can contain backslashes (and intermediate directories will be created). It will usually be END_PROD_SUBDIR, created somewhere in the workflow">
             </property>
-            <property name="semanticType41 (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+            <property name="CopyMode (parameter)" class="ptolemy.data.expr.StringParameter" value="There are several options: "copy", "move" or "link".">
             </property>
-            <property name="LoSOs (port)" class="ptolemy.kernel.util.StringAttribute" value="The produced LoSOs">
+            <property name="OutputExistsMode (parameter)" class="ptolemy.data.expr.StringParameter" value="This parameter defines the behaviour in case the output files already exists: it can be "append_version" (create a new file with a running index suffix), "overwrite" (replace the existing file), "stop" (stop the workflow)">
             </property>
-            <property name="data dir (port)" class="ptolemy.kernel.util.StringAttribute" value="The directory containing the input data. It is scanned recursively.">
+            <property name="script (parameter)" class="ptolemy.data.expr.StringParameter" value="">
             </property>
-            <property name="entityId (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+            <property name="sof_out (port)" class="ptolemy.kernel.util.StringAttribute" value="The final list of files produced">
+            </property>
+            <property name="sof_in (port)" class="ptolemy.kernel.util.StringAttribute" value="The files to be copied/moved or linked">
             </property>
         </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[-495.0, 740.0]">
-        </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:workflow:6:1:urn:lsid:kepler-project.org/ns/:5968:13:3:urn:lsid:kepler-project.org/ns/:13180:2:2:urn:lsid:kepler-project.org/ns/:13643:11:1:urn:lsid:kepler-project.org/ns/:15314:296:12:urn:lsid:kepler-project.org/ns/:21155:60:16:urn:lsid:kepler-project.org/ns/:29452:73:5:urn:lsid:kepler-project.org/ns/:31989:76:1">
+        <property name="BookkeepingDir" class="ptolemy.data.expr.StringParameter" value="$BOOKKEEPING_DIR">
         </property>
-        <port name="input data" class="ptolemy.actor.TypedIOPort">
+        <port name="sof_in" class="ptolemy.actor.TypedIOPort">
             <property name="input"/>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+            <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="WEST">
             </property>
         </port>
-        <port name="datasets out" class="ptolemy.actor.TypedIOPort">
+        <port name="sof_out" class="ptolemy.actor.TypedIOPort">
             <property name="output"/>
+            <property name="multiport"/>
             <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
             </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
-            </property>
         </port>
     </entity>
-    <entity name="Initialize" class="ptolemy.actor.TypedCompositeActor">
-        <display name="Initialise"/>
+    <entity name="Close DataSet" class="ptolemy.actor.TypedCompositeActor">
         <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="7.0.2">
         </property>
-        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31989:132:2">
+        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44576:50:17">
         </property>
         <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.TypedCompositeActor">
             <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1">
@@ -4579,25 +5041,17 @@
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</ [...]
-</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[-495.0, 630.0]">
-        </property>
-        <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={330, 179, 1361, 932}, maximized=false}">
+</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[1115.0, 1070.0]">
         </property>
-        <property name="_vergilSize" class="ptolemy.actor.gui.SizeAttribute" value="[1657, 1009]">
+        <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={616, 37, 1304, 811}, maximized=false}">
         </property>
-        <property name="_vergilZoomFactor" class="ptolemy.data.expr.ExpertParameter" value="0.6681514476615">
+        <property name="_vergilSize" class="ptolemy.actor.gui.SizeAttribute" value="[988, 658]">
         </property>
-        <property name="_vergilCenter" class="ptolemy.data.expr.ExpertParameter" value="{740.9883333333332, 743.9433333333333}">
+        <property name="_vergilZoomFactor" class="ptolemy.data.expr.ExpertParameter" value="1.5267529457215">
         </property>
-        <property name="" class="ptolemy.vergil.basic.DocAttribute">
-            <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</p>&#10 [...]
-            </property>
-            <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Yuhong Xiong">
-            </property>
-            <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
-            </property>
+        <property name="_vergilCenter" class="ptolemy.data.expr.ExpertParameter" value="{1284.5625, 895.4900050607288}">
         </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:14094:70:17:urn:lsid:kepler-project.org/ns/:15314:48:9:urn:lsid:kepler-project.org/ns/:21155:108:26:urn:lsid:kepler-project.org/ns/:29452:63:3">
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:31989:45:2:urn:lsid:kepler-project.org/ns/:43955:74:3:urn:lsid:kepler-project.org/ns/:44497:3:4">
         </property>
         <property name="Annotation" class="ptolemy.vergil.kernel.attributes.TextAttribute">
             <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
@@ -4614,7 +5068,7 @@
             </property>
             <property name="italic" class="ptolemy.data.expr.Parameter" value="false">
             </property>
-            <property name="text" class="ptolemy.kernel.util.StringAttribute" value="This subworkflow is in charge of two things:

 -Deleting the workflow directories if requested.

 -Providing the value of the raw data directory">
+            <property name="text" class="ptolemy.kernel.util.StringAttribute" value="This subworkflow modifies takes care of the final tasks:
-Creating a README file with the list of files
-Displaying a window with the finished datasets
-Creating input for ProvenanceExplorer">
                 <property name="_style" class="ptolemy.actor.gui.style.TextStyle">
                     <property name="height" class="ptolemy.data.expr.Parameter" value="20">
                     </property>
@@ -4633,7 +5087,7 @@
 <property name="prop:textColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
 <property name="prop:textSize" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font size. Select an integer from the drop-down menu or specify a new size by typing it directly into the value field.  The default is 14.</configure></property>
 <property name="prop:text" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The text of the annotation.</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:436:1">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44576:49:1">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.vergil.kernel.attributes.TextAttribute">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1199:1">
@@ -4643,145 +5097,142 @@
             </property>
             <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{500.0, 575.0}">
-            </property>
-        </property>
-        <property name="DDF Director" class="ptolemy.domains.ddf.kernel.DDFDirector">
-            <property name="timeResolution" class="ptolemy.actor.parameters.SharedParameter" value="1E-10">
-            </property>
-            <property name="iterations" class="ptolemy.data.expr.Parameter" value="0">
-            </property>
-            <property name="maximumReceiverCapacity" class="ptolemy.data.expr.Parameter" value="0">
-            </property>
-            <property name="runUntilDeadlockInOneIteration" class="ptolemy.data.expr.Parameter" value="true">
-            </property>
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Gang Zhou</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
            <p> The dynamic dataflow (DDF) domain is a superset of the synchronous
            dataflow(SDF) and Boolean dataflow(BDF) domains. In the SDF domain,
            an actor consumes and produces a fixed number of tokens per firing.
            This static information makes possible compile-time scheduling. In the
            DDF domain, there are few  [...]
-<property name="prop:iterations" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify the number of times a workflow is iterated. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. </configure></property>
-<property name="prop:maximumReceiverCapacity" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A Parameter representing the maximum capacity of each receiver controlled by this director. This is an integer that defaults to 0, which means the queue in each receiver is unbounded. To specify bounded queues, set this to a positive integer. </configure></property>
-<property name="prop:runUntilDeadlockInOneIteration" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A parameter indicating whether one iteration consists of repeated basic iterations until deadlock. If this parameter is true, the model will be executed until deadlock in one iteration. The default value is a BooleanToken with the value false. It cannot be set to true if this director is at the top level.</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31989:107:1">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[280.0, 680.0]">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.domains.ddf.kernel.DDFDirector">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:directorclass:5:1">
-                </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:436:1">
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Director">
+        </property>
+        <port name="current_dataset" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{431.6612027096115, 167.69104677914112}">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Director">
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{215.0, 265.0}">
+        </port>
+        <port name="final_files" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{66.66120270961146, 397.6910467791411}">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:director:5:1">
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
             </property>
-        </property>
-        <port name="raw_data_dir" class="ptolemy.actor.TypedIOPort">
+        </port>
+        <port name="bookkeeping_db" class="ptolemy.actor.TypedIOPort">
             <property name="output"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{1150.0, 375.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[480.0, 575.0]">
             </property>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+        </port>
+        <port name="global_timestamp" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[485.0, 640.0]">
             </property>
         </port>
-        <entity name="Variable Setter" class="ptolemy.actor.lib.SetVariable">
-            <property name="variableName" class="ptolemy.kernel.util.StringAttribute" value="GLOBAL_TIMESTAMP">
+        <entity name="String Constant" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="README">
             </property>
-            <property name="delayed" class="ptolemy.data.expr.Parameter" value="false">
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
+            </property>
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee, Steve Neuendorffer, Jerome Blanc</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
Set the value of a variable. The result may occur at two different times, depending on the value of the delayed parameter. 
If delayed is true, then the change to the value of the variable is implemented in a change request, and consequently will not take hold until the end of the current toplevel iteration. This helps ensure that users of value of the variable will see changes t [...]
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:47:1">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
+<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
+<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
+<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:123:3">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.SetVariable">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:886:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Variable">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#LocalInput">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{510.0, 370.0}">
+            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
+                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
+                </property>
+                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
+                </property>
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{731.6612027096114, 477.6910467791411}">
             </property>
             <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:10:1">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1">
             </property>
-            <port name="output" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="_expertMode" class="ptolemy.kernel.util.SingletonAttribute">
+            <port name="trigger" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
                 </property>
             </port>
         </entity>
-        <entity name="Elements To Array" class="ptolemy.actor.lib.ElementsToArray">
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
<p>The ElementsToArray actor reads individual elements via its input port and outputs an array consisting of those elements.</p>

<p>The actor accepts input elements of any one type (int, double, etc.). The type must be consistent. Each time the actor fires, it reads one token from each channel of the input port and outputs a corresponding array.</p>&# [...]
-<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts tokens of any one type. The type must be consistent.</configure></property>
-<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts an assembled array. The type of the array elements matches that of the input.</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:32:1">
+        <entity name="Finished Datasets" class="ptolemy.actor.lib.gui.Display">
+            <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={33, 726, 1331, 202}, maximized=false}">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.ElementsToArray">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:908:1">
-                </property>
+            <property name="_paneSize" class="ptolemy.actor.gui.SizeAttribute" value="[1323, 153]">
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#ArrayActor">
+            <property name="rowsDisplayed" class="ptolemy.data.expr.Parameter" value="10">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#DataArrayOperation">
+            <property name="columnsDisplayed" class="ptolemy.data.expr.Parameter" value="120">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{985.0, 360.0}">
+            <property name="suppressBlankLines" class="ptolemy.data.expr.Parameter" value="false">
             </property>
-        </entity>
-        <entity name="Time Stamp" class="org.sdm.spa.Timestamp">
-            <property name="format" class="ptolemy.data.expr.StringParameter" value="yyyy-MM-dd'T'HH:mm:ss">
+            <property name="title" class="ptolemy.data.expr.StringParameter" value="Current Dataset">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Ilkay Altintas</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong, Edward A. Lee</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The TimeStamp actor outputs the current date and time.</p>

<p>Dates and times can be formatted in a variety of ways. Select a format from the drop-down menu beside the format parameter, or enter a pattern directly into the format field. For more information about date format patterns, see http://java.sun.com/docs/books/tutorial/i18n/format/datepattern.html.&l [...]
-<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the current time stamp as a string.</configure></property>
-<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time.</configure></property>
-<property name="prop:format" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The date format. Select a format string from the drop-down menu or type in a custom format string directly into the field. For more information about date formatting patterns, see http://java.sun.com/docs/books/tutorial/i18n/format/datepattern.html</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:370:1">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The Display actor reads tokens of any type via its input multiport, and displays each token on a separate line in a text display window.</p>

<p>Specify the size of the text display window with the rowsDisplayed and columnsDisplayed parameters. Simply resizing the window onscreen does not persistently change the size when the workflow is saved, closed, and the [...]
+<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts tokens of any type.</configure></property>
+<property name="prop:suppressBlankLines" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether the actor should display blank lines (the default) or suppress them.</configure></property>
+<property name="prop:rowsDisplayed" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The vertical size of the display, in rows. The value is an integer that defaults to 10.</configure></property>
+<property name="prop:columnsDisplayed" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The horizontal size of the display, in columns. The value is an integer that defaults to 40.</configure></property>
+<property name="prop:title" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The title of the text display window. If specified, the value will appear in the title bar of the text display window.</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44576:53:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.sdm.spa.Timestamp">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1136:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.gui.Display">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:883:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#ClockActor">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#TextualOutputActor">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#LocalInput">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#TextualOutput">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{360.0, 380.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{801.6612027096114, 157.69104677914112}">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:7:1:urn:lsid:kepler-project.org/ns/:13643:22:2:urn:lsid:kepler-project.org/ns/:17547:3:12">
             </property>
             <property name="" class="ptolemy.vergil.basic.DocAttribute">
-                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Ilkay Altintas">
+                <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>The Display actor reads tokens of any type via its input multiport, and displays each token on a separate line in a text display window.</p>

<p>Specify the size of the text display window with the rowsDisplayed and columnsDisplayed parameters. Simply resizing the window onscreen does not persistently change the size when the workflow is saved, closed, and then re- [...]
+                </property>
+                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Yuhong Xiong, Edward A. Lee">
                 </property>
                 <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
                 </property>
-                <property name="format (parameter)" class="ptolemy.data.expr.StringParameter" value="The date format. Select a format string from the drop-down menu or type in a custom format string directly into the field. For more information about date formatting patterns, see http://java.sun.com/docs/books/tutorial/i18n/format/datepattern.html">
+                <property name="rowsDisplayed (parameter)" class="ptolemy.data.expr.StringParameter" value="The vertical size of the display, in rows. The value is an integer that defaults to 10.">
                 </property>
-                <property name="output (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts the current time stamp as a string.">
+                <property name="columnsDisplayed (parameter)" class="ptolemy.data.expr.StringParameter" value="The horizontal size of the display, in columns. The value is an integer that defaults to 40.">
                 </property>
-                <property name="trigger (port)" class="ptolemy.kernel.util.StringAttribute" value="A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time.">
+                <property name="suppressBlankLines (parameter)" class="ptolemy.data.expr.StringParameter" value="Specify whether the actor should display blank lines (the default) or suppress them.">
+                </property>
+                <property name="title (parameter)" class="ptolemy.data.expr.StringParameter" value="The title of the text display window. If specified, the value will appear in the title bar of the text display window.">
+                </property>
+                <property name="input (port)" class="ptolemy.kernel.util.StringAttribute" value="A multiport that accepts tokens of any type.">
                 </property>
-            </property>
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
         </entity>
-        <entity name="String Constant" class="ptolemy.actor.lib.StringConst">
-            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="1">
+        <entity name="String Constant2" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$END_PRODUCTS_DIR">
             </property>
-            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="if [ "x$EraseDirs" = "xtrue" ]; then  echo "Deleting files"; rm -rf $BOOKKEEPING_DIR/*;  rm -rf $LOGS_DIR/*; rm -rf $TMP_PRODUCTS_DIR/* ;  else echo "Will not delete files"; fi">
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
@@ -4792,7 +5243,7 @@
 <property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
 <property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
 <property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:204:1">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:121:3">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
@@ -4808,15 +5259,25 @@
                 <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
                 </property>
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{665.0, 695.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{731.6612027096114, 402.6910467791411}">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1">
+            </property>
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
+            <port name="trigger" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+                </property>
+            </port>
         </entity>
-        <entity name="String Constant2" class="ptolemy.actor.lib.StringConst">
-            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="1">
+        <entity name="String Constant3" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value=" Dataset has been reduced and saved in ">
             </property>
-            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="$RAWDATA_DIR">
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
@@ -4827,7 +5288,7 @@
 <property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
 <property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
 <property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:204:1">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:19:3">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
@@ -4843,117 +5304,113 @@
                 <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
                 </property>
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{825.0, 320.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{266.6612027096115, 232.69104677914112}">
+            </property>
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1:urn:lsid:kepler-project.org/ns/:13643:21:2">
             </property>
+            <port name="trigger" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+                </property>
+            </port>
         </entity>
-        <entity name="DirectoryEraser" class="ptolemy.actor.lib.Exec">
-            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="1">
+        <entity name="Final directory path" class="org.resurgence.actor.StringAccumulator">
+            <property name="Substring separator" class="ptolemy.data.expr.Parameter" value=""/"">
             </property>
-            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke Sudholt</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>
The StringAccumulator actor reads multiple strings via its input port and outputs a string containing all of the input values. The characters separating the substrings in the output string can be specified with the substringSeparator parameter.</p></configure></property>
+<property name="port:whole" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the full string.</configure></property>
+<property name="port:parts" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts substrings.</configure></property>
+<property name="prop:Substring separator" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The characters used to separate the elements in the output string. By default, the value is "".</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:25:2">
             </property>
-            <property name="command" class="ptolemy.actor.parameters.PortParameter" value="sh">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.resurgence.actor.StringAccumulator">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1117:1">
+                </property>
             </property>
-            <property name="directory" class="ptolemy.data.expr.FileParameter" value="$CWD">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
             </property>
-            <property name="environment" class="ptolemy.data.expr.Parameter" value="{{name = "", value = ""}}">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#IterativeOperation">
             </property>
-            <property name="prependPlatformDependentShellCommand" class="ptolemy.data.expr.Parameter" value="false">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{341.6612027096115, 352.6910467791411}">
             </property>
-            <property name="throwExceptionOnNonZeroReturn" class="ptolemy.data.expr.Parameter" value="true">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:292:1">
             </property>
-            <property name="waitForProcess" class="ptolemy.data.expr.Parameter" value="true">
+        </entity>
+        <entity name="Write README" class="org.geon.FileWrite">
+            <property name="fileName" class="ptolemy.actor.parameters.FilePortParameter" value="ROOT_DATA_PATH_TO_REPLACE//reflex_end_products/2013-09-24T10:31:32/README">
+            </property>
+            <property name="append" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+            <property name="confirmOverwrite" class="ptolemy.data.expr.Parameter" value="false">
+            </property>
+            <property name="alwaysFlush" class="ptolemy.data.expr.Parameter" value="false">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Xiaojun Liu, Edward A. Lee, Steve Neuendorffer</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>No author given</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
<p>The External Execution actor executes a system command from a workflow. The actor accepts a command, a directory and environment in which to execute the command, and a command input string. Once the command has finished executing, the actor will output the execution results along with any errors. If no results are generated, the actor will output an empty string.</p>&# [...]
-<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts data generated by the executed command, output as a string after the command has finished executing. If the command generates no data on standard out, then the empty string (a string of length zero) is generated. </configure></property>
-<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input port that accepts strings to pass to the standard input of the subprocess. Note that a newline is not appended to the string. If you require a newline, add one using the AddSubtract actor. This port is an input port of type String.</configure></property>
-<property name="port:error" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts any errors generated by the command execution. Errors are output as a string after the command has finished executing. If the execution generates no errors, an empty string is output. </configure></property>
-<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If connected, a token must be available on this port before actor will execute.</configure></property>
-<property name="port:exitCode" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the command's exit code. A non-zero value signifies an error.</configure></property>
-<property name="prop:environment" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An array of records that name an environment variable and a value:
 
  {{name = "NAME1", value = "value1"}...}
  
Where NAME1 is the name of the environment variable, and value1 is the value. 
For example, {{name = "PTII", value = "c:/ptII"}} would set the value of the PTII to c:/ptII. 
If the parameter is set to {{name="&quot [...]
-<property name="prop:directory" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The directory in which to execute the command. The default value of this parameter $CWD, which represents the user's current working or home directory. </configure></property>
-<property name="prop:throwExceptionOnNonZeroReturn" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If true, then throw an exception if the subprocess returns non-zero.</configure></property>
-<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If a positive integer, then it is the maximum number of times to execute the actor.</configure></property>
-<property name="prop:prependPlatformDependentShellCommand" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
If true, then prepend the platform dependent shell command to the
parsed value of the command parameter.  By setting this argument
to true, it is possible to invoke commands in a platform neutral
method.
<p>Under Windows NT or XP, the arguments "cmd.exe" and "/C" are
prepended.  Under Windows 95, the arguments "com [...]
-<property name="prop:waitForProcess" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If true, then actor will wait until subprocess completes.</configure></property>
-<property name="prop:command" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The command to be executed (e.g., echo "Hello, world."). The command can be specified via either the command port or parameter.</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:102:1">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The FileWriter actor reads a string and writes it to a file. The actor outputs the file path of the generated file.</p>

<p>Specify a destination file path with the fileName parameter. If the specified file does not exist, then the actor will create it.  If the file already exists, then the actor will ask for permission to overwrite it (unless the append param [...]
+<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input port that receives a string to write to a file.</configure></property>
+<property name="port:url" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the file name of the generated file.</configure></property>
+<property name="prop:append" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether to append the input string to an existing, specified file. By default, the actor will overwrite any preexisting file.</configure></property>
+<property name="prop:confirmOverwrite" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether the actor should confirm before overwriting an existing file. By default, the actor will not ask for confirmation.</configure></property>
+<property name="prop:fileName" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The name of the file to which to write. See FileParameter for more information about specifying file names. </configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:43955:73:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.Exec">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:976:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.geon.FileWrite">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1003:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#ExternalExecutionEnvironmentActor">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#WriterOutputActor">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#UnixCommand">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#LocalOutput">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{135.0, 390.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{766.6612027096114, 557.6910467791411}">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:144:1:urn:lsid:kepler-project.org/ns/:15314:118:5">
             </property>
             <property name="" class="ptolemy.vergil.basic.DocAttribute">
-                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Xiaojun Liu, Edward A. Lee, Steve Neuendorffer">
-                </property>
-                <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
-                </property>
-                <property name="firingCountLimit (parameter)" class="ptolemy.data.expr.StringParameter" value="If a positive integer, then it is the maximum number of times to execute the actor.">
-                </property>
-                <property name="directory (parameter)" class="ptolemy.data.expr.StringParameter" value="The directory in which to execute the command. The default value of this parameter $CWD, which represents the user's current working or home directory. ">
-                </property>
-                <property name="environment (parameter)" class="ptolemy.data.expr.StringParameter" value="An array of records that name an environment variable and a value:
 
  {{name = "NAME1", value = "value1"}...}
  
Where NAME1 is the name of the environment variable, and value1 is the value. 
For example, {{name = "PTII", value = "c:/ptII"}} would set the value of the PTII to c:/ptII. 
If the parameter is set to {{name= [...]
-                </property>
-                <property name="prependPlatformDependentShellCommand (parameter)" class="ptolemy.data.expr.StringParameter" value="
If true, then prepend the platform dependent shell command to the
parsed value of the command parameter.  By setting this argument
to true, it is possible to invoke commands in a platform neutral
method.
<p>Under Windows NT or XP, the arguments "cmd.exe" and "/C" are
prepended.  Under Windows 95, the argument [...]
-                </property>
-                <property name="throwExceptionOnNonZeroReturn (parameter)" class="ptolemy.data.expr.StringParameter" value="If true, then throw an exception if the subprocess returns non-zero.">
+                <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>The FileWriter actor reads a string and writes it to a file. The actor outputs the file path of the generated file.</p>

<p>Specify a destination file path with the fileName parameter. If the specified file does not exist, then the actor will create it.  If the file already exists, then the actor will ask for permission to overwrite it (unless the append parameter  [...]
                 </property>
-                <property name="waitForProcess (parameter)" class="ptolemy.data.expr.StringParameter" value="If true, then actor will wait until subprocess completes.">
+                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="No author given">
                 </property>
-                <property name="output (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts data generated by the executed command, output as a string after the command has finished executing. If the command generates no data on standard out, then the empty string (a string of length zero) is generated. ">
+                <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
                 </property>
-                <property name="trigger (port)" class="ptolemy.kernel.util.StringAttribute" value="If connected, a token must be available on this port before actor will execute.">
+                <property name="append (parameter)" class="ptolemy.data.expr.StringParameter" value="Specify whether to append the input string to an existing, specified file. By default, the actor will overwrite any preexisting file.">
                 </property>
-                <property name="error (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts any errors generated by the command execution. Errors are output as a string after the command has finished executing. If the execution generates no errors, an empty string is output. ">
+                <property name="confirmOverwrite (parameter)" class="ptolemy.data.expr.StringParameter" value="Specify whether the actor should confirm before overwriting an existing file. By default, the actor will not ask for confirmation.">
                 </property>
-                <property name="input (port)" class="ptolemy.kernel.util.StringAttribute" value="An input port that accepts strings to pass to the standard input of the subprocess. Note that a newline is not appended to the string. If you require a newline, add one using the AddSubtract actor. This port is an input port of type String.">
+                <property name="input (port)" class="ptolemy.kernel.util.StringAttribute" value="An input port that receives a string to write to a file.">
                 </property>
-                <property name="exitCode (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts the command's exit code. A non-zero value signifies an error.">
+                <property name="url (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts the file name of the generated file.">
                 </property>
-                <property name="command (parameter)" class="ptolemy.data.expr.StringParameter" value="The command to be executed (e.g., echo "Hello, world."). The command can be specified via either the command port or parameter.">
+                <property name="fileName (parameter)" class="ptolemy.data.expr.StringParameter" value="The name of the file to which to write. See FileParameter for more information about specifying file names. ">
                 </property>
             </property>
-            <port name="output" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-                </property>
-            </port>
-            <port name="command" class="ptolemy.actor.parameters.ParameterPort">
-                <property name="input"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-                </property>
-            </port>
-            <port name="error" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-                </property>
-            </port>
-            <port name="input" class="ptolemy.actor.TypedIOPort">
+            <port name="fileName" class="ptolemy.actor.parameters.ParameterPort">
                 <property name="input"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
                 </property>
             </port>
-            <port name="exitCode" class="ptolemy.actor.TypedIOPort">
+            <port name="url" class="ptolemy.actor.TypedIOPort">
                 <property name="output"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                <property name="_hide" class="ptolemy.data.expr.SingletonParameter" value="true">
                 </property>
             </port>
         </entity>
-        <entity name="String Constant3" class="ptolemy.actor.lib.StringConst">
-            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="1">
+        <entity name="String Constant4" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$END_PRODUCTS_SUBDIR">
             </property>
-            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="$CALIB_DATA_DIR">
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
@@ -4964,7 +5421,7 @@
 <property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
 <property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
 <property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:14094:71:2">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:23:2">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
@@ -4980,394 +5437,417 @@
                 <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
                 </property>
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{835.0, 455.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{231.66120270961147, 402.6910467791411}">
             </property>
             <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1">
             </property>
+            <port name="trigger" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+                </property>
+            </port>
         </entity>
-        <relation name="relation" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+        <entity name="String Constant5" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$GLOBAL_TIMESTAMP">
             </property>
-        </relation>
-        <relation name="relation2" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
             </property>
-            <vertex name="vertex1" value="[665.0, 385.0]">
-            </vertex>
-        </relation>
-        <relation name="relation3" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-        </relation>
-        <relation name="relation4" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
+<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
+<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
+<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:122:3">
             </property>
-        </relation>
-        <relation name="relation5" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
+                </property>
             </property>
-        </relation>
-        <relation name="relation6" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
             </property>
-        </relation>
-        <relation name="relation7" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
+            </property>
+            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
+                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
+                </property>
+                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
+                </property>
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{741.6612027096114, 442.6910467791411}">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1">
+            </property>
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <port name="trigger" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+                </property>
+            </port>
+        </entity>
+        <entity name="Write to stdout" class="org.geon.FileWrite">
+            <property name="fileName" class="ptolemy.actor.parameters.FilePortParameter" value="/dev/stdout">
+            </property>
+            <property name="append" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+            <property name="confirmOverwrite" class="ptolemy.data.expr.Parameter" value="false">
+            </property>
+            <property name="alwaysFlush" class="ptolemy.data.expr.Parameter" value="true">
             </property>
-        </relation>
-        <link port="raw_data_dir" relation="relation7"/>
-        <link port="Variable Setter.input" relation="relation3"/>
-        <link port="Variable Setter.output" relation="relation2"/>
-        <link port="Elements To Array.input" relation="relation"/>
-        <link port="Elements To Array.input" relation="relation4"/>
-        <link port="Elements To Array.output" relation="relation7"/>
-        <link port="Time Stamp.output" relation="relation3"/>
-        <link port="Time Stamp.trigger" relation="relation6"/>
-        <link port="String Constant.output" relation="relation5"/>
-        <link port="String Constant2.output" relation="relation"/>
-        <link port="String Constant2.trigger" relation="relation2"/>
-        <link port="DirectoryEraser.output" relation="relation6"/>
-        <link port="DirectoryEraser.input" relation="relation5"/>
-        <link port="String Constant3.output" relation="relation4"/>
-        <link port="String Constant3.trigger" relation="relation2"/>
-    </entity>
-    <entity name="DataFilter" class="org.eso.DataFilter">
-        <property name="Mode" class="ptolemy.data.expr.StringParameter" value="Skip">
-        </property>
-        <property name="FITS Viewer" class="ptolemy.data.expr.StringParameter" value="$FITS_VIEWER">
-        </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The DataFilter displays all the files in a given SoF and allows the user to view their header, view them in an external application, select or deselect only some of them and then continue or pause the workflow.</configure></property>
-<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input SoF</configure></property>
-<property name="port:sof rejected" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The rejected SoF</configure></property>
-<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The selected SoF</configure></property>
-<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:FITS Viewer" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The application used to inspect FITS files</configure></property>
-<property name="prop:Mode" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>Skip: automatically select all files and don't show any window;</p><p>Display: select all the files and allow the user only to view them;</p><p>Select: standard mode.</p></configure></property>
-<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:29452:75:2">
-        </property>
-        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.DataFilter">
-            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>No author given</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The FileWriter actor reads a string and writes it to a file. The actor outputs the file path of the generated file.</p>

<p>Specify a destination file path with the fileName parameter. If the specified file does not exist, then the actor will create it.  If the file already exists, then the actor will ask for permission to overwrite it (unless the append param [...]
+<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input port that receives a string to write to a file.</configure></property>
+<property name="port:url" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the file name of the generated file.</configure></property>
+<property name="prop:append" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether to append the input string to an existing, specified file. By default, the actor will overwrite any preexisting file.</configure></property>
+<property name="prop:confirmOverwrite" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether the actor should confirm before overwriting an existing file. By default, the actor will not ask for confirmation.</configure></property>
+<property name="prop:fileName" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The name of the file to which to write. See FileParameter for more information about specifying file names. </configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:24:2">
             </property>
-        </property>
-        <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
-        </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[1135.0, 670.0]">
-        </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:901:1">
-        </property>
-        <port name="sof in" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="multiport"/>
-            <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.geon.FileWrite">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1003:1">
+                </property>
             </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#WriterOutputActor">
             </property>
-        </port>
-        <port name="sof out" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="multiport"/>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#LocalOutput">
             </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{846.6612027096114, 242.69104677914112}">
             </property>
-        </port>
-        <port name="sof rejected" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="multiport"/>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:144:1:urn:lsid:kepler-project.org/ns/:15165:55:3">
+            </property>
+        </entity>
+        <entity name="String Constant6" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$END_PRODUCTS_DIR">
+            </property>
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
+            </property>
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-        </port>
-    </entity>
-    <entity name="SofCombiner4" class="org.eso.SofCombiner">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofCombiner takes as input a number of set of files and combines them into one set of files that contains only the files whose purposes are present in all the input tokens. With this respect empty tokens are ignored and files with universal purpose are always collected</configure></property>
-<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sofs</configure></property>
-<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The combined sof</configure></property>
-<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:29452:78:2">
-        </property>
-        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofCombiner">
-            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
+<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
+<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
+<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:23:5">
             </property>
-        </property>
-        <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
-        </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[-120.0, 745.0]">
-        </property>
-        <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
-        </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:908:1">
-        </property>
-        <port name="sof in" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="multiport"/>
-            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
+                </property>
             </property>
-        </port>
-        <port name="sof in opt" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="multiport"/>
-            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
             </property>
-        </port>
-        <port name="sof out" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="multiport"/>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
+            </property>
+            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
+                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
+                </property>
+                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
+                </property>
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{236.66120270961147, 342.6910467791411}">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1">
+            </property>
+            <port name="trigger" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+                </property>
+            </port>
+        </entity>
+        <entity name="Path to README" class="org.resurgence.actor.StringAccumulator">
+            <property name="Substring separator" class="ptolemy.data.expr.Parameter" value=""/"">
             </property>
-        </port>
-    </entity>
-    <entity name="ProductRenamer" class="ptolemy.actor.lib.python.PythonScript">
-        <property name="script" class="ptolemy.kernel.util.StringAttribute" value="import os
import shutil

from ptolemy.data import StringToken, IntToken
from ptolemy.data.expr import Parameter
from org.eso.util import JSONTools
from nom.tam.fits import Fits
from ptolemy.kernel.util import IllegalActionException
import org.apache.log4j

class Main :
  "ProductRenamer"

  def fire(self) :

    #Get the logger
    l [...]
-        </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Renames recipe products based on FITS keywords</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure> This actor moves (or copies or links) its input sof to a final product directory based on some FITS keywords.
 Usually, it should be connected to the output of the recipes that produce final products. If the recipe produces more products that are not relevant to rename, an output filter can be put in the recipe.</configure></property>
-<property name="port:sof_out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The final list of files produced</configure></property>
-<property name="port:sof_in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The files to be copied/moved or linked</configure></property>
-<property name="prop:RenameKeywords" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The list of keywords used to create the new name. This is actually a string of comma separated values, each containing either the name of keyword or a constant string value. For instance, a valid value would be DATE,'-',HIERARCH.ESO.DPR.CATG</configure></property>
-<property name="prop:OutputExistsMode" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>This parameter defines the behaviour in case the output files already exists: it can be "append_version" (create a new file with a running index suffix), "overwrite" (replace the existing file), "stop" (stop the workflow)</configure></property>
-<property name="prop:script" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:FinalProductDirectory" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The directory where the files are going to be copied/linked or renamed. It is usually set to END_PRODUCTS_DIR</configure></property>
-<property name="prop:SubDir" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If it is not empty, a subdirectory will be created with this string. The value can contain backslashes (and intermediate directories will be created). It will usually be END_PROD_SUBDIR, created somewhere in the workflow</configure></property>
-<property name="prop:CopyMode" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>There are several options: "copy", "move" or "link".</configure></property>
-</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:29452:79:5">
-        </property>
-        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.python.PythonScript">
-            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke Sudholt</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>
The StringAccumulator actor reads multiple strings via its input port and outputs a string containing all of the input values. The characters separating the substrings in the output string can be specified with the substringSeparator parameter.</p></configure></property>
+<property name="port:whole" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the full string.</configure></property>
+<property name="port:parts" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts substrings.</configure></property>
+<property name="prop:Substring separator" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The characters used to separate the elements in the output string. By default, the value is "".</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:43955:72:1">
             </property>
-        </property>
-        <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
-        </property>
-        <property name="_editorFactory" class="ptolemy.vergil.toolbox.TextEditorConfigureFactory">
-            <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="script">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.resurgence.actor.StringAccumulator">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1117:1">
+                </property>
             </property>
-        </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[1135.0, 875.0]">
-        </property>
-        <property name="RenameKeywords" class="ptolemy.data.expr.StringParameter" value="HIERARCH.ESO.OBS.NAME,'_',HIERARCH.ESO.PRO.CATG">
-        </property>
-        <property name="FinalProductDirectory" class="ptolemy.data.expr.StringParameter" value="$END_PRODUCTS_DIR">
-        </property>
-        <property name="SubDir" class="ptolemy.data.expr.StringParameter" value="$END_PRODUCTS_SUBDIR">
-        </property>
-        <property name="CopyMode" class="ptolemy.data.expr.StringParameter" value="copy">
-        </property>
-        <property name="OutputExistsMode" class="ptolemy.data.expr.StringParameter" value="append_version">
-        </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:910:1">
-        </property>
-        <port name="sof_in" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
             </property>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#IterativeOperation">
             </property>
-        </port>
-        <port name="sof_out" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="multiport"/>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{876.6612027096114, 427.6910467791411}">
             </property>
-        </port>
-    </entity>
-    <entity name="Data Set Selection" class="ptolemy.actor.TypedCompositeActor">
-        <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="8.1.devel">
-        </property>
-        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31989:70:2">
-        </property>
-        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.TypedCompositeActor">
-            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:292:1:urn:lsid:kepler-project.org/ns/:15314:124:4">
+            </property>
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            </property>
+            <port name="whole" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+                </property>
+            </port>
+        </entity>
+        <entity name="Final message" class="org.resurgence.actor.StringAccumulator">
+            <property name="Substring separator" class="ptolemy.data.expr.Parameter" value="""">
             </property>
-        </property>
-        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Actor">
-        </property>
-        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#GeneralPurpose">
-        </property>
-        <property name="semanticType22" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Workflow">
-        </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke Sudholt</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</ [...]
-</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[-490.0, 855.0]">
-        </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1">
-        </property>
-        <property name="DDF Director" class="ptolemy.domains.ddf.kernel.DDFDirector">
-            <property name="timeResolution" class="ptolemy.actor.parameters.SharedParameter" value="1E-10">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>
The StringAccumulator actor reads multiple strings via its input port and outputs a string containing all of the input values. The characters separating the substrings in the output string can be specified with the substringSeparator parameter.</p></configure></property>
+<property name="port:whole" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the full string.</configure></property>
+<property name="port:parts" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts substrings.</configure></property>
+<property name="prop:Substring separator" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The characters used to separate the elements in the output string. By default, the value is "".</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:26:1">
             </property>
-            <property name="iterations" class="ptolemy.data.expr.Parameter" value="0">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.resurgence.actor.StringAccumulator">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1117:1">
+                </property>
             </property>
-            <property name="maximumReceiverCapacity" class="ptolemy.data.expr.Parameter" value="0">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
             </property>
-            <property name="runUntilDeadlockInOneIteration" class="ptolemy.data.expr.Parameter" value="true">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#IterativeOperation">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{476.6612027096115, 312.6910467791411}">
+            </property>
+            <property name="" class="ptolemy.vergil.basic.DocAttribute">
+                <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>
The StringAccumulator actor reads multiple strings via its input port and outputs a string containing all of the input values. The characters separating the substrings in the output string can be specified with the substringSeparator parameter.</p>">
+                </property>
+                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Wibke Sudholt">
+                </property>
+                <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
+                </property>
+                <property name="Substring separator (parameter)" class="ptolemy.data.expr.StringParameter" value="The characters used to separate the elements in the output string. By default, the value is "".">
+                </property>
+                <property name="parts (port)" class="ptolemy.kernel.util.StringAttribute" value="A multiport that accepts substrings.">
+                </property>
+                <property name="whole (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts the full string.">
+                </property>
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:292:1">
+            </property>
+        </entity>
+        <entity name="String Constant7" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value=" with files: ">
+            </property>
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
+            </property>
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Gang Zhou</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
            <p> The dynamic dataflow (DDF) domain is a superset of the synchronous
            dataflow(SDF) and Boolean dataflow(BDF) domains. In the SDF domain,
            an actor consumes and produces a fixed number of tokens per firing.
            This static information makes possible compile-time scheduling. In the
            DDF domain, there are few  [...]
-<property name="prop:maximumReceiverCapacity" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A Parameter representing the maximum capacity of each receiver controlled by this director. This is an integer that defaults to 0, which means the queue in each receiver is unbounded. To specify bounded queues, set this to a positive integer. </configure></property>
-<property name="prop:iterations" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify the number of times a workflow is iterated. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. </configure></property>
-<property name="prop:runUntilDeadlockInOneIteration" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A parameter indicating whether one iteration consists of repeated basic iterations until deadlock. If this parameter is true, the model will be executed until deadlock in one iteration. The default value is a BooleanToken with the value false. It cannot be set to true if this director is at the top level.</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31617:99:1">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
+<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
+<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
+<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:43955:68:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.domains.ddf.kernel.DDFDirector">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:directorclass:5:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Director">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Director">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{-10.0, 285.0}">
+            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
+                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
+                </property>
+                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
+                </property>
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:director:5:1">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{231.66120270961147, 442.6910467791411}">
             </property>
-        </property>
-        <port name="datasets_in" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="multiport"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{-5.0, 415.0}">
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1:urn:lsid:kepler-project.org/ns/:13643:21:2:urn:lsid:kepler-project.org/ns/:17547:19:3">
+            </property>
+            <port name="trigger" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+                </property>
+            </port>
+        </entity>
+        <entity name="README message" class="org.resurgence.actor.StringAccumulator">
+            <property name="Substring separator" class="ptolemy.data.expr.Parameter" value="""">
             </property>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke Sudholt</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>
The StringAccumulator actor reads multiple strings via its input port and outputs a string containing all of the input values. The characters separating the substrings in the output string can be specified with the substringSeparator parameter.</p></configure></property>
+<property name="port:whole" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the full string.</configure></property>
+<property name="port:parts" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts substrings.</configure></property>
+<property name="prop:Substring separator" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The characters used to separate the elements in the output string. By default, the value is "".</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:43955:69:4">
             </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.resurgence.actor.StringAccumulator">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1117:1">
+                </property>
             </property>
-        </port>
-        <port name="dataset_out" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="multiport"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{220.0, 415.0}">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
             </property>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#IterativeOperation">
             </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{451.6612027096115, 462.6910467791411}">
             </property>
-        </port>
-        <entity name="DataSetChooser" class="org.eso.DataSetChooser">
-            <display name="Data Set Chooser"/>
-            <property name="Mode" class="ptolemy.data.expr.StringParameter" value="Select">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:292:1:urn:lsid:kepler-project.org/ns/:17547:25:2">
             </property>
-            <property name="FITS Viewer" class="ptolemy.data.expr.StringParameter" value="$FITS_VIEWER">
+        </entity>
+        <entity name="ObjectToText" class="org.eso.ObjectToText">
+            <property name="Include Header and Footer" class="ptolemy.data.expr.Parameter" value="true">
             </property>
-            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31617:78:3">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Converts Reflex JSON objects into a human-readable form</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The ObjectToString converts the JSON objects used by ESO actors (i.e. datasets, sof and sop) into a human-readable form.</configure></property>
+<property name="port:text out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A nicely formatted string</configure></property>
+<property name="port:json in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input JSON object</configure></property>
+<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:Include Header and Footer" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>if true the output text will contain a descriptive header and footer</configure></property>
+<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:907:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.DataSetChooser">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.ObjectToText">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
                 </property>
             </property>
             <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
             </property>
-            <property name="" class="ptolemy.vergil.basic.DocAttribute">
-                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="ESO">
-                </property>
-                <property name="version" class="ptolemy.kernel.util.StringAttribute" value="1.0">
-                </property>
-                <property name="Mode (parameter)" class="ptolemy.data.expr.StringParameter" value="<p>Skip: automatically select all files and don't show any window;</p><p>Display: select all the files and allow the user only to view them;</p><p>Select: standard mode.</p>">
-                </property>
-                <property name="FITS Viewer (parameter)" class="ptolemy.data.expr.StringParameter" value="The application used to inspect FITS files">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[250.0, 500.0]">
+            </property>
+            <port name="json in" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
                 </property>
-                <property name="class (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
                 </property>
-                <property name="semanticType41 (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+            </port>
+            <port name="text out" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
                 </property>
-                <property name="LoSOs (port)" class="ptolemy.kernel.util.StringAttribute" value="The input LoSOs">
+                <property name="tokenProductionRate" class="ptolemy.data.expr.Parameter" value="1">
                 </property>
-                <property name="sof (port)" class="ptolemy.kernel.util.StringAttribute" value="The SoF of the current LoSO">
+            </port>
+        </entity>
+        <entity name="String Constant8" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$BOOKKEEPING_DIR/bookkeeping.db">
+            </property>
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
+            </property>
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
+            </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
+<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
+<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
+<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44576:8:1">
+            </property>
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
                 </property>
-                <property name="sop (port)" class="ptolemy.kernel.util.StringAttribute" value="The SoP of the current LoSO">
+            </property>
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
+            </property>
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
+            </property>
+            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
+                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
                 </property>
-                <property name="entityId (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
                 </property>
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{75.0, 395.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[285.0, 575.0]">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:workflow:5:1:urn:lsid:kepler-project.org/ns/:12776:6:1:urn:lsid:kepler-project.org/ns/:13961:210:1">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1:urn:lsid:kepler-project.org/ns/:17547:23:2:urn:lsid:kepler-project.org/ns/:38241:62:1">
             </property>
-            <port name="datasets in" class="ptolemy.actor.TypedIOPort">
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <port name="trigger" class="ptolemy.actor.TypedIOPort">
                 <property name="input"/>
                 <property name="multiport"/>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="WEST">
-                </property>
-            </port>
-            <port name="dataset out" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="multiport"/>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="EAST">
-                </property>
-            </port>
-            <port name="#selected" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="_hide" class="ptolemy.data.expr.SingletonParameter" value="false">
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
                 </property>
             </port>
         </entity>
-        <entity name="Variable Setter" class="ptolemy.actor.lib.SetVariable">
-            <property name="variableName" class="ptolemy.kernel.util.StringAttribute" value="N_SELECTED_DATASETS">
+        <entity name="String Constant9" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$GLOBAL_TIMESTAMP">
             </property>
-            <property name="delayed" class="ptolemy.data.expr.Parameter" value="false">
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
+            </property>
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee, Steve Neuendorffer, Jerome Blanc</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
Set the value of a variable. The result may occur at two different times, depending on the value of the delayed parameter. 
If delayed is true, then the change to the value of the variable is implemented in a change request, and consequently will not take hold until the end of the current toplevel iteration. This helps ensure that users of value of the variable will see changes t [...]
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31989:67:1">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
+<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
+<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
+<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44576:9:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.SetVariable">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:886:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Variable">
-            </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#LocalInput">
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{75.0, 510.0}">
-            </property>
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:10:1:urn:lsid:kepler-project.org/ns/:13757:404:3:urn:lsid:kepler-project.org/ns/:31617:89:8">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
             </property>
-            <property name="" class="ptolemy.vergil.basic.DocAttribute">
-                <property name="description" class="ptolemy.kernel.util.StringAttribute" value="
Set the value of a variable. The result may occur at two different times, depending on the value of the delayed parameter. 
If delayed is true, then the change to the value of the variable is implemented in a change request, and consequently will not take hold until the end of the current toplevel iteration. This helps ensure that users of value of the variable will see changes to the [...]
-                </property>
-                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Edward Lee, Steve Neuendorffer, Jerome Blanc">
+            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
+                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
                 </property>
-                <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
+                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
                 </property>
             </property>
-            <property name="requiredFiringsPerIteration" class="ptolemy.data.expr.Parameter" value="1">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[240.0, 640.0]">
             </property>
-            <port name="input" class="ptolemy.actor.TypedIOPort">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1:urn:lsid:kepler-project.org/ns/:17547:23:2:urn:lsid:kepler-project.org/ns/:38241:63:1">
+            </property>
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <port name="trigger" class="ptolemy.actor.TypedIOPort">
                 <property name="input"/>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
-                </property>
-            </port>
-            <port name="output" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
                 </property>
             </port>
         </entity>
         <relation name="relation" class="ptolemy.actor.TypedIORelation">
             <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
+            <vertex name="vertex1" value="{576.6612027096114, 497.6910467791411}">
+            </vertex>
         </relation>
         <relation name="relation2" class="ptolemy.actor.TypedIORelation">
             <property name="width" class="ptolemy.data.expr.Parameter" value="1">
@@ -5377,12 +5857,105 @@
             <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
         </relation>
-        <link port="datasets_in" relation="relation3"/>
-        <link port="dataset_out" relation="relation"/>
-        <link port="DataSetChooser.datasets in" relation="relation3"/>
-        <link port="DataSetChooser.dataset out" relation="relation"/>
-        <link port="DataSetChooser.#selected" relation="relation2"/>
-        <link port="Variable Setter.input" relation="relation2"/>
+        <relation name="relation4" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation5" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation6" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation7" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation8" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation9" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation10" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+            <vertex name="vertex1" value="{101.66120270961146, 482.6910467791411}">
+            </vertex>
+        </relation>
+        <relation name="relation11" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation12" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+            <vertex name="vertex1" value="{571.6612027096114, 327.6910467791411}">
+            </vertex>
+        </relation>
+        <relation name="relation13" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation14" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation15" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation16" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <link port="current_dataset" relation="relation7"/>
+        <link port="final_files" relation="relation10"/>
+        <link port="bookkeeping_db" relation="relation15"/>
+        <link port="global_timestamp" relation="relation16"/>
+        <link port="String Constant.output" relation="relation9"/>
+        <link port="String Constant.trigger" relation="relation"/>
+        <link port="Finished Datasets.input" relation="relation12"/>
+        <link port="String Constant2.output" relation="relation2"/>
+        <link port="String Constant2.trigger" relation="relation"/>
+        <link port="String Constant3.output" relation="relation11"/>
+        <link port="String Constant3.trigger" relation="relation10"/>
+        <link port="Final directory path.parts" relation="relation5"/>
+        <link port="Final directory path.parts" relation="relation3"/>
+        <link port="Final directory path.whole" relation="relation4"/>
+        <link port="Write README.input" relation="relation"/>
+        <link port="Write README.fileName" relation="relation6"/>
+        <link port="String Constant4.output" relation="relation3"/>
+        <link port="String Constant4.trigger" relation="relation10"/>
+        <link port="String Constant5.output" relation="relation8"/>
+        <link port="String Constant5.trigger" relation="relation"/>
+        <link port="Write to stdout.input" relation="relation12"/>
+        <link port="String Constant6.output" relation="relation5"/>
+        <link port="String Constant6.trigger" relation="relation10"/>
+        <link port="Path to README.parts" relation="relation2"/>
+        <link port="Path to README.parts" relation="relation8"/>
+        <link port="Path to README.parts" relation="relation9"/>
+        <link port="Path to README.whole" relation="relation6"/>
+        <link port="Final message.parts" relation="relation7"/>
+        <link port="Final message.parts" relation="relation11"/>
+        <link port="Final message.parts" relation="relation4"/>
+        <link port="Final message.whole" relation="relation12"/>
+        <link port="String Constant7.output" relation="relation13"/>
+        <link port="String Constant7.trigger" relation="relation10"/>
+        <link port="README message.parts" relation="relation12"/>
+        <link port="README message.parts" relation="relation13"/>
+        <link port="README message.parts" relation="relation14"/>
+        <link port="README message.whole" relation="relation"/>
+        <link port="ObjectToText.json in" relation="relation10"/>
+        <link port="ObjectToText.text out" relation="relation14"/>
+        <link port="String Constant8.output" relation="relation15"/>
+        <link port="String Constant8.trigger" relation="relation10"/>
+        <link port="String Constant9.output" relation="relation16"/>
+        <link port="String Constant9.trigger" relation="relation10"/>
     </entity>
     <relation name="relation15" class="ptolemy.actor.TypedIORelation">
         <property name="width" class="ptolemy.data.expr.Parameter" value="1">
@@ -5422,10 +5995,6 @@
         <property name="width" class="ptolemy.data.expr.Parameter" value="1">
         </property>
     </relation>
-    <relation name="relation9" class="ptolemy.actor.TypedIORelation">
-        <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-        </property>
-    </relation>
     <relation name="relation2" class="ptolemy.actor.TypedIORelation">
         <property name="width" class="ptolemy.data.expr.Parameter" value="1">
         </property>
@@ -5454,23 +6023,23 @@
         <vertex name="vertex1" value="[690.0, 1010.0]">
         </vertex>
     </relation>
-    <relation name="relation8" class="ptolemy.actor.TypedIORelation">
-        <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-        </property>
-    </relation>
-    <relation name="relation10" class="ptolemy.actor.TypedIORelation">
-        <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-        </property>
-    </relation>
     <relation name="relation13" class="ptolemy.actor.TypedIORelation">
     </relation>
     <relation name="relation5" class="ptolemy.actor.TypedIORelation">
     </relation>
     <relation name="relation11" class="ptolemy.actor.TypedIORelation">
     </relation>
+    <relation name="relation" class="ptolemy.actor.TypedIORelation">
+    </relation>
+    <relation name="relation9" class="ptolemy.actor.TypedIORelation">
+    </relation>
     <relation name="relation22" class="ptolemy.actor.TypedIORelation">
     </relation>
-    <relation name="relation" class="ptolemy.actor.TypedIORelation">
+    <relation name="relation8" class="ptolemy.actor.TypedIORelation">
+    </relation>
+    <relation name="relation10" class="ptolemy.actor.TypedIORelation">
+    </relation>
+    <relation name="relation23" class="ptolemy.actor.TypedIORelation">
     </relation>
     <link port="FitsRouter.in" relation="relation11"/>
     <link port="FitsRouter.calib" relation="relation14"/>
@@ -5503,21 +6072,23 @@
     <link port="SofCombiner3.sof out" relation="relation16"/>
     <link port="Vmifuscience.sof_in" relation="relation7"/>
     <link port="Vmifuscience.sof_out" relation="relation9"/>
-    <link port="Initialise Current Dataset.current_dataset" relation="relation22"/>
+    <link port="Initialise Current Dataset.current_dataset" relation="relation8"/>
     <link port="Initialise Current Dataset.dataset" relation="relation11"/>
     <link port="Initialise Current Dataset.dataset_in" relation="relation5"/>
-    <link port="Close DataSet.current_dataset" relation="relation22"/>
-    <link port="Close DataSet.final_files" relation="relation10"/>
     <link port="DataOrganizer.input data" relation="relation"/>
     <link port="DataOrganizer.datasets out" relation="relation13"/>
     <link port="Initialize.raw_data_dir" relation="relation"/>
-    <link port="DataFilter.sof in" relation="relation9"/>
-    <link port="DataFilter.sof out" relation="relation8"/>
     <link port="SofCombiner4.sof in" relation="relation21"/>
     <link port="SofCombiner4.sof in" relation="relation12"/>
     <link port="SofCombiner4.sof out" relation="relation2"/>
-    <link port="ProductRenamer.sof_in" relation="relation8"/>
-    <link port="ProductRenamer.sof_out" relation="relation10"/>
     <link port="Data Set Selection.datasets_in" relation="relation13"/>
     <link port="Data Set Selection.dataset_out" relation="relation5"/>
+    <link port="ProvenanceExplorer.bookkeeping db" relation="relation23"/>
+    <link port="ProvenanceExplorer.start date" relation="relation10"/>
+    <link port="ProductRenamer.sof_in" relation="relation9"/>
+    <link port="ProductRenamer.sof_out" relation="relation22"/>
+    <link port="Close DataSet.current_dataset" relation="relation8"/>
+    <link port="Close DataSet.final_files" relation="relation22"/>
+    <link port="Close DataSet.bookkeeping_db" relation="relation23"/>
+    <link port="Close DataSet.global_timestamp" relation="relation10"/>
 </entity>
diff --git a/reflex/VimosIfu.xml.in b/reflex/VimosIfu.xml.in
index 0f0e99c..c29962d 100644
--- a/reflex/VimosIfu.xml.in
+++ b/reflex/VimosIfu.xml.in
@@ -149,13 +149,13 @@
         <property name="_renderFirst" class="ptolemy.kernel.util.SingletonAttribute">
         </property>
     </property>
-    <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:38241:5:3">
+    <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44576:71:63">
     </property>
     <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.kepler.moml.CompositeClassEntity">
         <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
         </property>
     </property>
-    <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="8.1.devel">
+    <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="9.1.devel">
     </property>
     <property name="ROOT_DATA_DIR" class="ptolemy.data.expr.FileParameter" value="ROOT_DATA_PATH_TO_REPLACE/">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
@@ -206,7 +206,7 @@
             </property>
         </property>
     </property>
-    <property name="BOOKKEEPING_DIR" class="ptolemy.data.expr.FileParameter" value="$ROOT_DATA_DIR/reflex_book_keeping/VimosIfu">
+    <property name="BOOKKEEPING_DIR" class="ptolemy.data.expr.FileParameter" value="$ROOT_DATA_DIR/reflex_book_keeping/vimos-ifu">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>none</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>yang zhao, edward lee</configure></property>
@@ -253,7 +253,7 @@
         <property name="allowDirectories" class="ptolemy.data.expr.Parameter" value="true">
         </property>
     </property>
-    <property name="LOGS_DIR" class="ptolemy.data.expr.FileParameter" value="$ROOT_DATA_DIR/reflex_logs/VimosIfu">
+    <property name="LOGS_DIR" class="ptolemy.data.expr.FileParameter" value="$ROOT_DATA_DIR/reflex_logs/vimos-ifu">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>none</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>yang zhao, edward lee</configure></property>
@@ -300,7 +300,7 @@
         <property name="allowDirectories" class="ptolemy.data.expr.Parameter" value="true">
         </property>
     </property>
-    <property name="TMP_PRODUCTS_DIR" class="ptolemy.data.expr.FileParameter" value="$ROOT_DATA_DIR/reflex_tmp_products/VimosIfu">
+    <property name="TMP_PRODUCTS_DIR" class="ptolemy.data.expr.FileParameter" value="$ROOT_DATA_DIR/reflex_tmp_products/vimos-ifu">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>none</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>yang zhao, edward lee</configure></property>
@@ -394,7 +394,7 @@
         <property name="allowDirectories" class="ptolemy.data.expr.Parameter" value="true">
         </property>
     </property>
-    <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={238, 55, 1673, 1021}, maximized=false}">
+    <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={0, 86, 1673, 1021}, maximized=false}">
     </property>
     <property name="_vergilSize" class="ptolemy.actor.gui.SizeAttribute" value="[1357, 868]">
     </property>
@@ -867,7 +867,7 @@
         </property>
         <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
         </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[815.0, 350.0]">
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[815.0, 290.0]">
         </property>
     </property>
     <property name="FITS_VIEWER" class="ptolemy.data.expr.StringParameter" value="fv">
@@ -901,7 +901,7 @@
         </property>
         <property name="_editorFactory" class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
         </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[625.0, 360.0]">
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[625.0, 300.0]">
         </property>
     </property>
     <property name="ESORexArgs" class="ptolemy.data.expr.StringParameter" value="--suppress-prefix=TRUE">
@@ -969,10 +969,10 @@
         </property>
         <property name="_editorFactory" class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
         </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[625.0, 285.0]">
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[625.0, 250.0]">
         </property>
     </property>
-    <property name="END_PRODUCTS_SUBDIR" class="ptolemy.data.expr.StringParameter" value="2013-02-20T15:23:03/VIMOS.2011-05-02T01:47:52.778">
+    <property name="END_PRODUCTS_SUBDIR" class="ptolemy.data.expr.StringParameter" value="2013-08-27T12:22:25/VIMOS.2011-05-02T01:47:52.778">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
@@ -1006,7 +1006,7 @@
         <property name="_location" class="ptolemy.kernel.util.Location" value="[450.0, 1155.0]">
         </property>
     </property>
-    <property name="GLOBAL_TIMESTAMP" class="ptolemy.data.expr.StringParameter" value="2013-02-20T15:23:03">
+    <property name="GLOBAL_TIMESTAMP" class="ptolemy.data.expr.StringParameter" value="2013-08-27T12:24:23">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
@@ -1084,7 +1084,7 @@
         </property>
         <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
         </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[815.0, 270.0]">
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[815.0, 235.0]">
         </property>
     </property>
     <property name="Rectangle" class="ptolemy.vergil.kernel.attributes.RectangleAttribute">
@@ -1444,7 +1444,7 @@
         <property name="_location" class="ptolemy.kernel.util.Location" value="[-530.0, -20.0]">
         </property>
     </property>
-    <property name="RAWDATA_DIR" class="ptolemy.data.expr.FileParameter" value="$ROOT_DATA_DIR/reflex_input/Vimos">
+    <property name="RAWDATA_DIR" class="ptolemy.data.expr.FileParameter" value="$ROOT_DATA_DIR/reflex_input/vimos">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>none</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>yang zhao, edward lee</configure></property>
@@ -1540,7 +1540,7 @@
         <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:436:1:urn:lsid:kepler-project.org/ns/:21155:114:1">
         </property>
     </property>
-    <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:436:1:urn:lsid:kepler-project.org/ns/:12776:4:415:urn:lsid:kepler-project.org/ns/:12776:55:75:urn:lsid:kepler-project.org/ns/:12776:59:142:urn:lsid:kepler-project.org/ns/:12776:68:228:urn:lsid:kepler-project.org/ns/:12776:84:51:urn:lsid:kepler-project.org/ns/:2745:31:9:urn:lsid:kepler-project.org/ns/:2745:32:214:urn:lsid:kepler-project.org/ns/:2745:45:122:urn:lsid:kepl [...]
+    <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:436:1:urn:lsid:kepler-project.org/ns/:12776:4:415:urn:lsid:kepler-project.org/ns/:12776:55:75:urn:lsid:kepler-project.org/ns/:12776:59:142:urn:lsid:kepler-project.org/ns/:12776:68:228:urn:lsid:kepler-project.org/ns/:12776:84:51:urn:lsid:kepler-project.org/ns/:2745:31:9:urn:lsid:kepler-project.org/ns/:2745:32:214:urn:lsid:kepler-project.org/ns/:2745:45:122:urn:lsid:kepl [...]
     </property>
     <property name="CALIB_DATA_DIR" class="ptolemy.data.expr.FileParameter" value="CALIB_DATA_PATH_TO_REPLACE/vimos- at VERSION@/">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
@@ -1635,7 +1635,7 @@
         </property>
         <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
         </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[-15.0, -20.0]">
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[-200.0, -5.0]">
         </property>
         <property name="" class="ptolemy.vergil.basic.DocAttribute">
             <property name="description" class="ptolemy.kernel.util.StringAttribute" value="Use the Annotation attribute to annotate a workflow. Double-click the attribute to customize the content, font size, color, and basic formatting (bold and italics).">
@@ -1691,7 +1691,7 @@
         </property>
         <property name="_editorFactory" class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
         </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[625.0, 175.0]">
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[620.0, 155.0]">
         </property>
         <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:421:1">
         </property>
@@ -1740,7 +1740,7 @@
         </property>
         <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
         </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[815.0, 165.0]">
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[810.0, 145.0]">
         </property>
         <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:436:1:urn:lsid:kepler-project.org/ns/:16482:52:1:urn:lsid:kepler-project.org/ns/:16989:16:1">
         </property>
@@ -2121,376 +2121,418 @@
         <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:421:1">
         </property>
     </property>
-    <entity name="FitsRouter" class="org.eso.FitsRouter">
+    <property name="DataSelectionMethod" class="ptolemy.data.expr.StringParameter" value="Interactive">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>1.0</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The FitsRouter routes files base on their category: by default, all the files are routed to the rejected directory, but the user can add additional port and configure the actor to route particular files there.</p>
<p>Basic Mode: create an output port named as a category (e.g.: FLAT), all files belonging to that category will be routed to that port.</p>
& [...]
-<property name="port:in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input data</configure></property>
-<property name="port:sof rejected" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The rejected SoF</configure></property>
-<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:29452:77:19">
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>StringParameter specifies a persistent string. </p>

<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p></configure></property>
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:43955:86:1">
         </property>
-        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.FitsRouter">
-            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.data.expr.StringParameter">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1185:1">
             </property>
         </property>
-        <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Parameter">
         </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[-320.0, 945.0]">
+        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Parameter">
         </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:903:1:urn:lsid:kepler-project.org/ns/:15314:175:95:urn:lsid:kepler-project.org/ns/:21155:63:93">
+        <property name="_hideName" class="ptolemy.kernel.util.SingletonAttribute">
         </property>
-        <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+        <property name="_icon" class="ptolemy.vergil.icon.ValueIcon">
+            <property name="_color" class="ptolemy.actor.gui.ColorAttribute" value="{1.0, 0.0, 0.0, 1.0}">
+            </property>
         </property>
-        <property name="bias_config" class="ptolemy.data.expr.Parameter" value=""BIAS"">
+        <property name="_smallIconDescription" class="ptolemy.kernel.util.SingletonConfigurableAttribute">
+            <configure>
+        <svg>
+          <text x="20" style="font-size:14; font-family:SansSerif; fill:red" y="20">-S-</text>
+        </svg>
+      </configure>
         </property>
-        <property name="sci_config" class="ptolemy.data.expr.Parameter" value=""IFU_SCIENCE"">
+        <property name="_editorFactory" class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
         </property>
-        <property name="std_config" class="ptolemy.data.expr.Parameter" value=""IFU_STANDARD"">
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[625.0, 360.0]">
         </property>
-        <property name="static_config" class="ptolemy.data.expr.Parameter" value=""LINE_CATALOG,IFU_IDENT,EXTINCT_TABLE,STD_FLUX_TABLE,IFU_TABLE,CCD_TABLE"">
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:421:1">
         </property>
-        <property name="calib_config" class="ptolemy.data.expr.Parameter" value=""IFU_SCREEN_FLAT,IFU_ARC_SPECTRUM"">
+    </property>
+    <property name="Annotation7" class="ptolemy.vergil.kernel.attributes.TextAttribute">
+        <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
         </property>
-        <property name="" class="ptolemy.vergil.basic.DocAttribute">
-            <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>The FitsRouter routes files base on their category: by default, all the files are routed to the rejected directory, but the user can add additional port and configure the actor to route particular files there.</p>
<p>Basic Mode: create an output port named as a category (e.g.: FLAT), all files belonging to that category will be routed to that port.</p>
<p>A [...]
-            </property>
-            <property name="author" class="ptolemy.kernel.util.StringAttribute" value="ESO">
-            </property>
-            <property name="version" class="ptolemy.kernel.util.StringAttribute" value="1.0">
-            </property>
-            <property name="class (parameter)" class="ptolemy.data.expr.StringParameter" value="">
-            </property>
-            <property name="semanticType41 (parameter)" class="ptolemy.data.expr.StringParameter" value="">
-            </property>
-            <property name="in (port)" class="ptolemy.kernel.util.StringAttribute" value="The input data">
-            </property>
-            <property name="sof rejected (port)" class="ptolemy.kernel.util.StringAttribute" value="The rejected SoF">
-            </property>
-            <property name="entityId (parameter)" class="ptolemy.data.expr.StringParameter" value="">
-            </property>
+        <property name="_hideAllParameters" class="ptolemy.data.expr.Parameter" value="true">
         </property>
-        <property name="calib_aux_config" class="ptolemy.data.expr.Parameter" value=""LINE_CATALOG,IFU_IDENT,CCD_TABLE"">
+        <property name="textSize" class="ptolemy.data.expr.Parameter" value="14">
         </property>
-        <property name="sci_aux_config" class="ptolemy.data.expr.Parameter" value=""EXTINCT_TABLE,CCD_TABLE"">
+        <property name="textColor" class="ptolemy.actor.gui.ColorAttribute" value="{0.4,0.4,0.0,1.0}">
         </property>
-        <port name="in" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-            </property>
-            <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </port>
-        <port name="sof rejected" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="multiport"/>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
-            </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
-            </property>
-        </port>
-        <port name="calib" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
-        </port>
-        <port name="sci" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
-            </property>
-        </port>
-        <port name="std" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
-            </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
-        </port>
-        <port name="static" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
-            </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
-        </port>
-        <port name="bias" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
-            </property>
-        </port>
-        <port name="calib_aux" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="EAST">
-            </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
-        </port>
-        <port name="sci_aux" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
-            </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+        <property name="fontFamily" class="ptolemy.data.expr.StringParameter" value="SansSerif">
+        </property>
+        <property name="bold" class="ptolemy.data.expr.Parameter" value="false">
+        </property>
+        <property name="italic" class="ptolemy.data.expr.Parameter" value="false">
+        </property>
+        <property name="text" class="ptolemy.kernel.util.StringAttribute" value="Selection method for the Data Set Chooser">
+            <property name="_style" class="ptolemy.actor.gui.style.TextStyle">
+                <property name="height" class="ptolemy.data.expr.Parameter" value="20">
+                </property>
+                <property name="width" class="ptolemy.data.expr.Parameter" value="80">
+                </property>
             </property>
-        </port>
-    </entity>
-    <entity name="MasterBias" class="ptolemy.actor.TypedCompositeActor">
-        <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="8.1.devel">
         </property>
-        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:29452:25:11">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Use the Annotation attribute to annotate a workflow. Double-click the attribute to customize the content, font size, color, and basic formatting (bold and italics).</configure></property>
+<property name="prop:fontFamily" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font face. Select a font from the drop-down menu. The default is "SansSerif".</configure></property>
+<property name="prop:italic" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Select to indicate that the type should be italics. By default, type will not be italicized.</configure></property>
+<property name="prop:bold" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Select to indicate that the type should be bold. By default, type will not be bold.</configure></property>
+<property name="prop:textColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
+<property name="prop:textSize" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font size. Select an integer from the drop-down menu or specify a new size by typing it directly into the value field.  The default is 14.</configure></property>
+<property name="prop:text" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The text of the annotation.</configure></property>
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:43955:85:3">
         </property>
-        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.TypedCompositeActor">
-            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1">
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.vergil.kernel.attributes.TextAttribute">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1199:1">
             </property>
         </property>
-        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Actor">
+        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#DocumentationActor">
         </property>
-        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#GeneralPurpose">
+        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
         </property>
-        <property name="semanticType22" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Workflow">
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[865.0, 350.0]">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:436:1">
         </property>
+    </property>
+    <property name="ProvenanceExplorerEnabled" class="ptolemy.data.expr.StringParameter" value="true">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</ [...]
-</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[-80.0, 745.0]">
-        </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:15314:186:32:urn:lsid:kepler-project.org/ns/:21155:130:113">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>StringParameter specifies a persistent string. </p>

<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p></configure></property>
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44576:60:1">
         </property>
-        <property name="StackMethod" class="ptolemy.kernel.util.Attribute">
-            <property name="_location" class="ptolemy.kernel.util.Attribute">
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.data.expr.StringParameter">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1185:1">
             </property>
         </property>
-        <port name="sof_in" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[20.0, 80.0]">
+        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Parameter">
+        </property>
+        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Parameter">
+        </property>
+        <property name="_hideName" class="ptolemy.kernel.util.SingletonAttribute">
+        </property>
+        <property name="_icon" class="ptolemy.vergil.icon.ValueIcon">
+            <property name="_color" class="ptolemy.actor.gui.ColorAttribute" value="{1.0, 0.0, 0.0, 1.0}">
             </property>
-        </port>
-        <port name="sof_out" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[700.0, 105.0]">
+        </property>
+        <property name="_smallIconDescription" class="ptolemy.kernel.util.SingletonConfigurableAttribute">
+            <configure>
+        <svg>
+          <text x="20" style="font-size:14; font-family:SansSerif; fill:red" y="20">-S-</text>
+        </svg>
+      </configure>
+        </property>
+        <property name="_editorFactory" class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
+        </property>
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[625.0, 390.0]">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:421:1:urn:lsid:kepler-project.org/ns/:43955:86:1">
+        </property>
+    </property>
+    <property name="Annotation8" class="ptolemy.vergil.kernel.attributes.TextAttribute">
+        <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+        </property>
+        <property name="_hideAllParameters" class="ptolemy.data.expr.Parameter" value="true">
+        </property>
+        <property name="textSize" class="ptolemy.data.expr.Parameter" value="14">
+        </property>
+        <property name="textColor" class="ptolemy.actor.gui.ColorAttribute" value="{0.4,0.4,0.0,1.0}">
+        </property>
+        <property name="fontFamily" class="ptolemy.data.expr.StringParameter" value="SansSerif">
+        </property>
+        <property name="bold" class="ptolemy.data.expr.Parameter" value="false">
+        </property>
+        <property name="italic" class="ptolemy.data.expr.Parameter" value="false">
+        </property>
+        <property name="text" class="ptolemy.kernel.util.StringAttribute" value="Show Provenance Explorer window">
+            <property name="_style" class="ptolemy.actor.gui.style.TextStyle">
+                <property name="height" class="ptolemy.data.expr.Parameter" value="20">
+                </property>
+                <property name="width" class="ptolemy.data.expr.Parameter" value="80">
+                </property>
             </property>
-        </port>
-        <entity name="SofSplitter" class="org.eso.SofSplitter">
+        </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofSplitter takes a set of files as input and split it into smaller sets based on the purpose. This smaller sets can then be sent to e.g. a RecipeExecuter</configure></property>
-<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sof</configure></property>
-<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The grouped sofs</configure></property>
-<property name="port:#groups" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of groups generated</configure></property>
-<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:187:1">
-            </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofSplitter">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
-                </property>
-            </property>
-            <property name="semanticType" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[105.0, 60.0]">
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Use the Annotation attribute to annotate a workflow. Double-click the attribute to customize the content, font size, color, and basic formatting (bold and italics).</configure></property>
+<property name="prop:fontFamily" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font face. Select a font from the drop-down menu. The default is "SansSerif".</configure></property>
+<property name="prop:italic" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Select to indicate that the type should be italics. By default, type will not be italicized.</configure></property>
+<property name="prop:bold" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Select to indicate that the type should be bold. By default, type will not be bold.</configure></property>
+<property name="prop:textColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
+<property name="prop:textSize" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font size. Select an integer from the drop-down menu or specify a new size by typing it directly into the value field.  The default is 14.</configure></property>
+<property name="prop:text" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The text of the annotation.</configure></property>
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44576:61:1">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.vergil.kernel.attributes.TextAttribute">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1199:1">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org/ns/:12925:5:1">
+        </property>
+        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#DocumentationActor">
+        </property>
+        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
+        </property>
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[865.0, 380.0]">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:436:1:urn:lsid:kepler-project.org/ns/:43955:85:3">
+        </property>
+    </property>
+    <property name="Annotation9" class="ptolemy.vergil.kernel.attributes.TextAttribute">
+        <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+        </property>
+        <property name="_hideAllParameters" class="ptolemy.data.expr.Parameter" value="true">
+        </property>
+        <property name="textSize" class="ptolemy.data.expr.Parameter" value="14">
+            <property name="_editorFactory" class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
             </property>
-            <port name="sof in" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-                </property>
-            </port>
-            <port name="sof out" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-                </property>
-            </port>
-            <port name="#groups" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+        </property>
+        <property name="textColor" class="ptolemy.actor.gui.ColorAttribute" value="{1.0,0.0,0.0,1.0}">
+        </property>
+        <property name="fontFamily" class="ptolemy.data.expr.StringParameter" value="SansSerif">
+        </property>
+        <property name="bold" class="ptolemy.data.expr.Parameter" value="true">
+        </property>
+        <property name="italic" class="ptolemy.data.expr.Parameter" value="false">
+        </property>
+        <property name="text" class="ptolemy.kernel.util.StringAttribute" value="This is a basic workflow to help with data 
organisation and execution of the pipeline. 
The workflow was generated without a 
review of the quality of the science products.">
+            <property name="_style" class="ptolemy.actor.gui.style.TextStyle">
+                <property name="height" class="ptolemy.data.expr.Parameter" value="20">
                 </property>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+                <property name="width" class="ptolemy.data.expr.Parameter" value="80">
                 </property>
-            </port>
-        </entity>
-        <entity name="SofAccumulator" class="org.eso.SofAccumulator">
-            <property name="same dataset" class="ptolemy.data.expr.Parameter" value="true">
             </property>
+        </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofAccumulator is meant to be used together with the SofSplitter: it puts back together in a single set of files the tokens generated by the PurposeSerializer (and usually processed by the RecipeExecuter)</configure></property>
-<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sofs</configure></property>
-<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The grouped sof</configure></property>
-<property name="port:#groups" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of groups to collect</configure></property>
-<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:same dataset" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If true the SofAccumulator throws an error if the input tokens do not belong all to the same dataset</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:188:1">
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Use the Annotation attribute to annotate a workflow. Double-click the attribute to customize the content, font size, color, and basic formatting (bold and italics).</configure></property>
+<property name="prop:fontFamily" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font face. Select a font from the drop-down menu. The default is "SansSerif".</configure></property>
+<property name="prop:italic" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Select to indicate that the type should be italics. By default, type will not be italicized.</configure></property>
+<property name="prop:bold" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Select to indicate that the type should be bold. By default, type will not be bold.</configure></property>
+<property name="prop:textColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
+<property name="prop:textSize" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font size. Select an integer from the drop-down menu or specify a new size by typing it directly into the value field.  The default is 14.</configure></property>
+<property name="prop:text" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The text of the annotation.</configure></property>
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31617:223:8">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.vergil.kernel.attributes.TextAttribute">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1199:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofAccumulator">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
-                </property>
+        </property>
+        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#DocumentationActor">
+        </property>
+        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
+        </property>
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[910.0, -10.0]">
+        </property>
+        <property name="" class="ptolemy.vergil.basic.DocAttribute">
+            <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Edward A. Lee">
             </property>
-            <property name="semanticType" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+            <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[565.0, 75.0]">
+            <property name="textSize (parameter)" class="ptolemy.data.expr.StringParameter" value="The font size. Select an integer from the drop-down menu or specify a new size by typing it directly into the value field.  The default is 14.">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org/ns/:12925:7:1">
+            <property name="textColor (parameter)" class="ptolemy.data.expr.StringParameter" value="The font color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}">
             </property>
-            <port name="sof in" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-                </property>
-            </port>
-            <port name="#groups" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-                </property>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
-                </property>
-            </port>
-            <port name="sof out" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-                </property>
-            </port>
-        </entity>
-        <entity name="vmbias_1" class="org.eso.RecipeExecuter">
-            <property name="Recipe Failure Mode" class="ptolemy.data.expr.StringParameter" value="$RecipeFailureMode">
+            <property name="fontFamily (parameter)" class="ptolemy.data.expr.StringParameter" value="The font face. Select a font from the drop-down menu. The default is "SansSerif".">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[320.0, 50.0]">
+            <property name="bold (parameter)" class="ptolemy.data.expr.StringParameter" value="Select to indicate that the type should be bold. By default, type will not be bold.">
             </property>
-        </entity>
-        <relation name="relation2" class="ptolemy.actor.TypedIORelation">
-        </relation>
-        <relation name="relation4" class="ptolemy.actor.TypedIORelation">
-        </relation>
-        <relation name="relation5" class="ptolemy.actor.TypedIORelation">
-        </relation>
-        <relation name="relation8" class="ptolemy.actor.TypedIORelation">
-            <vertex name="vertex1" value="[190.0, 80.0]">
-            </vertex>
-        </relation>
-        <relation name="relation" class="ptolemy.actor.TypedIORelation">
-        </relation>
-        <link port="sof_in" relation="relation4"/>
-        <link port="sof_out" relation="relation5"/>
-        <link port="SofSplitter.sof in" relation="relation4"/>
-        <link port="SofSplitter.sof out" relation="relation8"/>
-        <link port="SofSplitter.#groups" relation="relation2"/>
-        <link port="SofAccumulator.sof in" relation="relation"/>
-        <link port="SofAccumulator.#groups" relation="relation2"/>
-        <link port="SofAccumulator.sof out" relation="relation5"/>
-        <link port="vmbias_1.sof in" relation="relation8"/>
-        <link port="vmbias_1.sof out" relation="relation"/>
-    </entity>
-    <entity name="SofCombiner" class="org.eso.SofCombiner">
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofCombiner takes as input a number of set of files and combines them into one set of files that contains only the files whose purposes are present in all the input tokens. With this respect empty tokens are ignored and files with universal purpose are always collected</configure></property>
-<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sofs</configure></property>
-<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The combined sof</configure></property>
-<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:189:1">
-        </property>
-        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofCombiner">
-            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+            <property name="italic (parameter)" class="ptolemy.data.expr.StringParameter" value="Select to indicate that the type should be italics. By default, type will not be italicized.">
+            </property>
+            <property name="text (parameter)" class="ptolemy.data.expr.StringParameter" value="The text of the annotation.">
             </property>
         </property>
-        <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:436:1">
         </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[100.0, 920.0]">
+        <property name="_renderLast" class="ptolemy.kernel.util.SingletonAttribute">
         </property>
+    </property>
+    <property name="Setup Directory5" class="ptolemy.vergil.kernel.attributes.RectangleAttribute">
         <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
         </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:908:1">
+        <property name="_hideAllParameters" class="ptolemy.data.expr.Parameter" value="true">
         </property>
-        <port name="sof in" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="multiport"/>
-            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-            </property>
-        </port>
-        <port name="sof in opt" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="multiport"/>
-            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-            </property>
-        </port>
-        <port name="sof out" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="multiport"/>
-            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[905.0, -15.0]">
+        </property>
+        <property name="lineWidth" class="ptolemy.data.expr.Parameter" value="5">
+        </property>
+        <property name="lineColor" class="ptolemy.actor.gui.ColorAttribute" value="{1.0,0.0,0.0,1.0}">
+        </property>
+        <property name="width" class="ptolemy.data.expr.Parameter" value="375.0">
+        </property>
+        <property name="height" class="ptolemy.data.expr.Parameter" value="80.0">
+        </property>
+        <property name="centered" class="ptolemy.data.expr.Parameter" value="false">
+        </property>
+        <property name="fillColor" class="ptolemy.actor.gui.ColorAttribute" value="{0.99607843,0.9490196,0.7254902,1.0}">
+        </property>
+        <property name="rounding" class="ptolemy.data.expr.Parameter" value="20">
+        </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The Rectangle attribute renders a rectangle on the Workflow canvas. Single-click the rectangle to drag the resize handles and adjust the shape's size, or double-click the rectangle to customize its height, width, line width, color, and fill color.</p></configure></property>
+<property name="prop:lineWidth" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line width. The value is a double that defaults to 1.0.</configure></property>
+<property name="prop:height" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The vertical extent. The value is a double that defaults to 100.0.</configure></property>
+<property name="prop:dashArray" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify a dash-pattern for dashed or dotted lines. The value consists of an array of doubles that specify the length of the alternating solid and transparent segments. An empty value indicates that the line should not be dashed (the default).</configure></property>
+<property name="prop:centered" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Indicate whether the shape should be centered on its origin. By default, the location is the upper-left corner.</configure></property>
+<property name="prop:rounding" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The amount of rounding of the corners. The value is a double that defaults to 0.0, which indicates no rounding.</configure></property>
+<property name="prop:width" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The horizontal extent. The value is a double that defaults to 100.0.</configure></property>
+<property name="prop:lineColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
+<property name="prop:fillColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The fill color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. By default, the value is "none."</configure></property>
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44576:62:1">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.vergil.kernel.attributes.RectangleAttribute">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1197:1">
             </property>
-        </port>
-    </entity>
-    <entity name="SofCombiner2" class="org.eso.SofCombiner">
+        </property>
+        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#DecorativeActor">
+        </property>
+        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:434:1:urn:lsid:kepler-project.org/ns/:25158:26:1:urn:lsid:kepler-project.org/ns/:31617:222:11">
+        </property>
+    </property>
+    <entity name="FitsRouter" class="org.eso.FitsRouter">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofCombiner takes as input a number of set of files and combines them into one set of files that contains only the files whose purposes are present in all the input tokens. With this respect empty tokens are ignored and files with universal purpose are always collected</configure></property>
-<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sofs</configure></property>
-<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The combined sof</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>1.0</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The FitsRouter routes files base on their category: by default, all the files are routed to the rejected directory, but the user can add additional port and configure the actor to route particular files there.</p>
<p>Basic Mode: create an output port named as a category (e.g.: FLAT), all files belonging to that category will be routed to that port.</p>
& [...]
+<property name="port:in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input data</configure></property>
+<property name="port:sof rejected" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The rejected SoF</configure></property>
 <property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
 <property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
 <property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:190:1">
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:29452:77:19">
         </property>
-        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofCombiner">
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.FitsRouter">
             <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
             </property>
         </property>
         <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
         </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[825.0, 815.0]">
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[-320.0, 945.0]">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:903:1:urn:lsid:kepler-project.org/ns/:15314:175:95:urn:lsid:kepler-project.org/ns/:21155:63:93">
         </property>
         <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
         </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:908:1">
+        <property name="bias_config" class="ptolemy.data.expr.Parameter" value=""BIAS"">
         </property>
-        <port name="sof in" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="multiport"/>
-            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+        <property name="sci_config" class="ptolemy.data.expr.Parameter" value=""IFU_SCIENCE"">
+        </property>
+        <property name="std_config" class="ptolemy.data.expr.Parameter" value=""IFU_STANDARD"">
+        </property>
+        <property name="static_config" class="ptolemy.data.expr.Parameter" value=""LINE_CATALOG,IFU_IDENT,EXTINCT_TABLE,STD_FLUX_TABLE,IFU_TABLE,CCD_TABLE"">
+        </property>
+        <property name="calib_config" class="ptolemy.data.expr.Parameter" value=""IFU_SCREEN_FLAT,IFU_ARC_SPECTRUM"">
+        </property>
+        <property name="" class="ptolemy.vergil.basic.DocAttribute">
+            <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>The FitsRouter routes files base on their category: by default, all the files are routed to the rejected directory, but the user can add additional port and configure the actor to route particular files there.</p>
<p>Basic Mode: create an output port named as a category (e.g.: FLAT), all files belonging to that category will be routed to that port.</p>
<p>A [...]
             </property>
-        </port>
-        <port name="sof in opt" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="multiport"/>
-            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            <property name="author" class="ptolemy.kernel.util.StringAttribute" value="ESO">
             </property>
-        </port>
-        <port name="sof out" class="ptolemy.actor.TypedIOPort">
+            <property name="version" class="ptolemy.kernel.util.StringAttribute" value="1.0">
+            </property>
+            <property name="class (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+            </property>
+            <property name="in (port)" class="ptolemy.kernel.util.StringAttribute" value="The input data">
+            </property>
+            <property name="sof rejected (port)" class="ptolemy.kernel.util.StringAttribute" value="The rejected SoF">
+            </property>
+            <property name="semanticType41 (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+            </property>
+            <property name="entityId (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+            </property>
+        </property>
+        <property name="calib_aux_config" class="ptolemy.data.expr.Parameter" value=""LINE_CATALOG,IFU_IDENT,CCD_TABLE"">
+        </property>
+        <property name="sci_aux_config" class="ptolemy.data.expr.Parameter" value=""EXTINCT_TABLE,CCD_TABLE"">
+        </property>
+        <port name="in" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+            <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </port>
+        <port name="sof rejected" class="ptolemy.actor.TypedIOPort">
             <property name="output"/>
             <property name="multiport"/>
-            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+            </property>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            </property>
+        </port>
+        <port name="calib" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+        </port>
+        <port name="sci" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+            </property>
+        </port>
+        <port name="std" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+            </property>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+        </port>
+        <port name="static" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+            </property>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+        </port>
+        <port name="bias" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+            </property>
+        </port>
+        <port name="calib_aux" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="EAST">
+            </property>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+        </port>
+        <port name="sci_aux" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+            </property>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
         </port>
     </entity>
-    <entity name="VmifuCalib" class="ptolemy.actor.TypedCompositeActor">
+    <entity name="MasterBias" class="ptolemy.actor.TypedCompositeActor">
         <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="8.1.devel">
         </property>
-        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:29452:30:11">
+        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:29452:25:11">
         </property>
         <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.TypedCompositeActor">
             <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1">
@@ -2507,18 +2549,22 @@
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</ [...]
-</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[160.0, 915.0]">
+</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[-80.0, 745.0]">
         </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:15314:197:41:urn:lsid:kepler-project.org/ns/:21155:64:67">
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:15314:186:32:urn:lsid:kepler-project.org/ns/:21155:130:113">
+        </property>
+        <property name="StackMethod" class="ptolemy.kernel.util.Attribute">
+            <property name="_location" class="ptolemy.kernel.util.Attribute">
+            </property>
         </property>
         <port name="sof_in" class="ptolemy.actor.TypedIOPort">
             <property name="input"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[35.0, 135.0]">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[20.0, 80.0]">
             </property>
         </port>
         <port name="sof_out" class="ptolemy.actor.TypedIOPort">
             <property name="output"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[645.0, 145.0]">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[700.0, 105.0]">
             </property>
         </port>
         <entity name="SofSplitter" class="org.eso.SofSplitter">
@@ -2528,12 +2574,12 @@
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
 <property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofSplitter takes a set of files as input and split it into smaller sets based on the purpose. This smaller sets can then be sent to e.g. a RecipeExecuter</configure></property>
 <property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sof</configure></property>
-<property name="port:#groups" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of groups generated</configure></property>
 <property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The grouped sofs</configure></property>
+<property name="port:#groups" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of groups generated</configure></property>
 <property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
 <property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
 <property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:198:2">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:187:1">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofSplitter">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
@@ -2541,12 +2587,10 @@
             </property>
             <property name="semanticType" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[130.0, 110.0]">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[105.0, 60.0]">
             </property>
             <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org/ns/:12925:5:1">
             </property>
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
             <port name="sof in" class="ptolemy.actor.TypedIOPort">
                 <property name="input"/>
                 <property name="multiport"/>
@@ -2561,9 +2605,9 @@
             </port>
             <port name="#groups" class="ptolemy.actor.TypedIOPort">
                 <property name="output"/>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
                 </property>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
                 </property>
             </port>
         </entity>
@@ -2576,13 +2620,13 @@
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
 <property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofAccumulator is meant to be used together with the SofSplitter: it puts back together in a single set of files the tokens generated by the PurposeSerializer (and usually processed by the RecipeExecuter)</configure></property>
 <property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sofs</configure></property>
-<property name="port:#groups" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of groups to collect</configure></property>
 <property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The grouped sof</configure></property>
+<property name="port:#groups" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of groups to collect</configure></property>
 <property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
 <property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
 <property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
 <property name="prop:same dataset" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If true the SofAccumulator throws an error if the input tokens do not belong all to the same dataset</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:199:2">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:188:1">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofAccumulator">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
@@ -2590,23 +2634,25 @@
             </property>
             <property name="semanticType" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[535.0, 120.0]">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[565.0, 75.0]">
             </property>
             <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org/ns/:12925:7:1">
             </property>
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
             <port name="sof in" class="ptolemy.actor.TypedIOPort">
                 <property name="input"/>
                 <property name="multiport"/>
                 <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
                 </property>
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="0">
+                </property>
             </port>
             <port name="#groups" class="ptolemy.actor.TypedIOPort">
                 <property name="input"/>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
                 </property>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+                </property>
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
                 </property>
             </port>
             <port name="sof out" class="ptolemy.actor.TypedIOPort">
@@ -2616,13 +2662,22 @@
                 </property>
             </port>
         </entity>
-        <entity name="vmifucalib_1" class="org.eso.RecipeExecuter">
+        <entity name="vmbias_1" class="org.eso.RecipeExecuter">
             <property name="Recipe Failure Mode" class="ptolemy.data.expr.StringParameter" value="$RecipeFailureMode">
             </property>
-            <property name="Output Files Category" class="ptolemy.data.expr.StringParameter" value="IFU_TRACE,IFU_IDS,IFU_TRANSMISSION">
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[350.0, 80.0]">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[320.0, 50.0]">
             </property>
+            <port name="sof in" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+                </property>
+            </port>
+            <port name="sop in" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+                </property>
+            </port>
         </entity>
         <relation name="relation2" class="ptolemy.actor.TypedIORelation">
         </relation>
@@ -2630,8 +2685,8 @@
         </relation>
         <relation name="relation5" class="ptolemy.actor.TypedIORelation">
         </relation>
-        <relation name="relation3" class="ptolemy.actor.TypedIORelation">
-            <vertex name="vertex1" value="[245.0, 140.0]">
+        <relation name="relation8" class="ptolemy.actor.TypedIORelation">
+            <vertex name="vertex1" value="[190.0, 80.0]">
             </vertex>
         </relation>
         <relation name="relation" class="ptolemy.actor.TypedIORelation">
@@ -2639,18 +2694,106 @@
         <link port="sof_in" relation="relation4"/>
         <link port="sof_out" relation="relation5"/>
         <link port="SofSplitter.sof in" relation="relation4"/>
-        <link port="SofSplitter.sof out" relation="relation3"/>
+        <link port="SofSplitter.sof out" relation="relation8"/>
         <link port="SofSplitter.#groups" relation="relation2"/>
         <link port="SofAccumulator.sof in" relation="relation"/>
         <link port="SofAccumulator.#groups" relation="relation2"/>
         <link port="SofAccumulator.sof out" relation="relation5"/>
-        <link port="vmifucalib_1.sof in" relation="relation3"/>
-        <link port="vmifucalib_1.sof out" relation="relation"/>
+        <link port="vmbias_1.sof in" relation="relation8"/>
+        <link port="vmbias_1.sof out" relation="relation"/>
     </entity>
-    <entity name="FluxStandard" class="ptolemy.actor.TypedCompositeActor">
+    <entity name="SofCombiner" class="org.eso.SofCombiner">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofCombiner takes as input a number of set of files and combines them into one set of files that contains only the files whose purposes are present in all the input tokens. With this respect empty tokens are ignored and files with universal purpose are always collected</configure></property>
+<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sofs</configure></property>
+<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The combined sof</configure></property>
+<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:189:1">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofCombiner">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+            </property>
+        </property>
+        <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+        </property>
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[100.0, 920.0]">
+        </property>
+        <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:908:1">
+        </property>
+        <port name="sof in" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="multiport"/>
+            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+        </port>
+        <port name="sof in opt" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="multiport"/>
+            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+        </port>
+        <port name="sof out" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="multiport"/>
+            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+        </port>
+    </entity>
+    <entity name="SofCombiner2" class="org.eso.SofCombiner">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofCombiner takes as input a number of set of files and combines them into one set of files that contains only the files whose purposes are present in all the input tokens. With this respect empty tokens are ignored and files with universal purpose are always collected</configure></property>
+<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sofs</configure></property>
+<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The combined sof</configure></property>
+<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:190:1">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofCombiner">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+            </property>
+        </property>
+        <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+        </property>
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[825.0, 815.0]">
+        </property>
+        <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:908:1">
+        </property>
+        <port name="sof in" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="multiport"/>
+            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+        </port>
+        <port name="sof in opt" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="multiport"/>
+            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+        </port>
+        <port name="sof out" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="multiport"/>
+            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+        </port>
+    </entity>
+    <entity name="VmifuCalib" class="ptolemy.actor.TypedCompositeActor">
         <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="8.1.devel">
         </property>
-        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:29452:33:18">
+        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:29452:30:11">
         </property>
         <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.TypedCompositeActor">
             <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1">
@@ -2667,22 +2810,18 @@
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</ [...]
-</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[540.0, 640.0]">
+</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[160.0, 915.0]">
         </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:15314:221:97:urn:lsid:kepler-project.org/ns/:21155:65:80">
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:15314:197:41:urn:lsid:kepler-project.org/ns/:21155:64:67">
         </property>
         <port name="sof_in" class="ptolemy.actor.TypedIOPort">
             <property name="input"/>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{20.0, 200.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[35.0, 135.0]">
             </property>
         </port>
         <port name="sof_out" class="ptolemy.actor.TypedIOPort">
             <property name="output"/>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[540.0, 200.0]">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[645.0, 145.0]">
             </property>
         </port>
         <entity name="SofSplitter" class="org.eso.SofSplitter">
@@ -2692,12 +2831,12 @@
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
 <property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofSplitter takes a set of files as input and split it into smaller sets based on the purpose. This smaller sets can then be sent to e.g. a RecipeExecuter</configure></property>
 <property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sof</configure></property>
-<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The grouped sofs</configure></property>
 <property name="port:#groups" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of groups generated</configure></property>
+<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The grouped sofs</configure></property>
 <property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
 <property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
 <property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:222:2">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:198:2">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofSplitter">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
@@ -2705,7 +2844,7 @@
             </property>
             <property name="semanticType" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[100.0, 175.0]">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[130.0, 110.0]">
             </property>
             <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org/ns/:12925:5:1">
             </property>
@@ -2740,13 +2879,192 @@
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
 <property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofAccumulator is meant to be used together with the SofSplitter: it puts back together in a single set of files the tokens generated by the PurposeSerializer (and usually processed by the RecipeExecuter)</configure></property>
 <property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sofs</configure></property>
-<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The grouped sof</configure></property>
 <property name="port:#groups" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of groups to collect</configure></property>
+<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The grouped sof</configure></property>
 <property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
 <property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
 <property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
 <property name="prop:same dataset" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If true the SofAccumulator throws an error if the input tokens do not belong all to the same dataset</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:223:2">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:199:2">
+            </property>
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofAccumulator">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+                </property>
+            </property>
+            <property name="semanticType" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[535.0, 120.0]">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org/ns/:12925:7:1">
+            </property>
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <port name="sof in" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                </property>
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="0">
+                </property>
+            </port>
+            <port name="#groups" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+                </property>
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+                </property>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+                </property>
+            </port>
+            <port name="sof out" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                </property>
+            </port>
+        </entity>
+        <entity name="vmifucalib_1" class="org.eso.RecipeExecuter">
+            <property name="Recipe Failure Mode" class="ptolemy.data.expr.StringParameter" value="$RecipeFailureMode">
+            </property>
+            <property name="Output Files Category" class="ptolemy.data.expr.StringParameter" value="IFU_TRACE,IFU_IDS,IFU_TRANSMISSION">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[350.0, 80.0]">
+            </property>
+            <port name="sof in" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+                </property>
+            </port>
+            <port name="sop in" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+                </property>
+            </port>
+        </entity>
+        <relation name="relation2" class="ptolemy.actor.TypedIORelation">
+        </relation>
+        <relation name="relation4" class="ptolemy.actor.TypedIORelation">
+        </relation>
+        <relation name="relation5" class="ptolemy.actor.TypedIORelation">
+        </relation>
+        <relation name="relation3" class="ptolemy.actor.TypedIORelation">
+            <vertex name="vertex1" value="[245.0, 140.0]">
+            </vertex>
+        </relation>
+        <relation name="relation" class="ptolemy.actor.TypedIORelation">
+        </relation>
+        <link port="sof_in" relation="relation4"/>
+        <link port="sof_out" relation="relation5"/>
+        <link port="SofSplitter.sof in" relation="relation4"/>
+        <link port="SofSplitter.sof out" relation="relation3"/>
+        <link port="SofSplitter.#groups" relation="relation2"/>
+        <link port="SofAccumulator.sof in" relation="relation"/>
+        <link port="SofAccumulator.#groups" relation="relation2"/>
+        <link port="SofAccumulator.sof out" relation="relation5"/>
+        <link port="vmifucalib_1.sof in" relation="relation3"/>
+        <link port="vmifucalib_1.sof out" relation="relation"/>
+    </entity>
+    <entity name="FluxStandard" class="ptolemy.actor.TypedCompositeActor">
+        <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="8.1.devel">
+        </property>
+        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:29452:33:18">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.TypedCompositeActor">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1">
+            </property>
+        </property>
+        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Actor">
+        </property>
+        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#GeneralPurpose">
+        </property>
+        <property name="semanticType22" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Workflow">
+        </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</ [...]
+</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[540.0, 640.0]">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:15314:221:97:urn:lsid:kepler-project.org/ns/:21155:65:80">
+        </property>
+        <port name="sof_in" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{20.0, 200.0}">
+            </property>
+        </port>
+        <port name="sof_out" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[540.0, 200.0]">
+            </property>
+        </port>
+        <entity name="SofSplitter" class="org.eso.SofSplitter">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofSplitter takes a set of files as input and split it into smaller sets based on the purpose. This smaller sets can then be sent to e.g. a RecipeExecuter</configure></property>
+<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sof</configure></property>
+<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The grouped sofs</configure></property>
+<property name="port:#groups" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of groups generated</configure></property>
+<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:222:2">
+            </property>
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofSplitter">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+                </property>
+            </property>
+            <property name="semanticType" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[100.0, 175.0]">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org/ns/:12925:5:1">
+            </property>
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <port name="sof in" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                </property>
+            </port>
+            <port name="sof out" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                </property>
+            </port>
+            <port name="#groups" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+                </property>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+                </property>
+            </port>
+        </entity>
+        <entity name="SofAccumulator" class="org.eso.SofAccumulator">
+            <property name="same dataset" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofAccumulator is meant to be used together with the SofSplitter: it puts back together in a single set of files the tokens generated by the PurposeSerializer (and usually processed by the RecipeExecuter)</configure></property>
+<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sofs</configure></property>
+<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The grouped sof</configure></property>
+<property name="port:#groups" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of groups to collect</configure></property>
+<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:same dataset" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If true the SofAccumulator throws an error if the input tokens do not belong all to the same dataset</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:223:2">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofAccumulator">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
@@ -2765,9 +3083,13 @@
                 <property name="multiport"/>
                 <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
                 </property>
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="0">
+                </property>
             </port>
             <port name="#groups" class="ptolemy.actor.TypedIOPort">
                 <property name="input"/>
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+                </property>
                 <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
                 </property>
                 <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
@@ -2787,6 +3109,17 @@
             </property>
             <property name="_location" class="ptolemy.kernel.util.Location" value="[260.0, 140.0]">
             </property>
+            <port name="sof in" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+                </property>
+            </port>
+            <port name="sop in" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+                </property>
+            </port>
         </entity>
         <relation name="relation2" class="ptolemy.actor.TypedIORelation">
         </relation>
@@ -2967,9 +3300,13 @@
                 <property name="multiport"/>
                 <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
                 </property>
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="0">
+                </property>
             </port>
             <port name="#groups" class="ptolemy.actor.TypedIOPort">
                 <property name="input"/>
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+                </property>
                 <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
                 </property>
                 <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
@@ -2987,6 +3324,17 @@
             </property>
             <property name="_location" class="ptolemy.kernel.util.Location" value="[290.0, 150.0]">
             </property>
+            <port name="sof in" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+                </property>
+            </port>
+            <port name="sop in" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+                </property>
+            </port>
         </entity>
         <relation name="relation" class="ptolemy.actor.TypedIORelation">
         </relation>
@@ -3099,8 +3447,6 @@
             </property>
         </property>
         <property name="DDF Director" class="ptolemy.domains.ddf.kernel.DDFDirector">
-            <property name="timeResolution" class="ptolemy.actor.parameters.SharedParameter" value="1E-10">
-            </property>
             <property name="iterations" class="ptolemy.data.expr.Parameter" value="0">
             </property>
             <property name="maximumReceiverCapacity" class="ptolemy.data.expr.Parameter" value="0">
@@ -3278,12 +3624,12 @@
             </property>
         </entity>
         <entity name="String Constant" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$GLOBAL_TIMESTAMP">
+            </property>
             <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
             </property>
             <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="$GLOBAL_TIMESTAMP">
-            </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
@@ -3351,12 +3697,12 @@
             </property>
         </entity>
         <entity name="String Constant2" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="processing dataset ">
+            </property>
             <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
             </property>
             <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="processing dataset ">
-            </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
@@ -3392,12 +3738,12 @@
             </port>
         </entity>
         <entity name="String Constant3" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$END_PRODUCTS_DIR">
+            </property>
             <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
             </property>
             <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="$END_PRODUCTS_DIR">
-            </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
@@ -3461,12 +3807,12 @@
             </port>
         </entity>
         <entity name="String Constant4" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value=" out of ">
+            </property>
             <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
             </property>
             <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value=" out of ">
-            </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
@@ -3569,7 +3915,7 @@
             </property>
         </entity>
         <entity name="Directory Maker" class="org.resurgence.actor.DirectoryMaker">
-            <property name="Directory name" class="ptolemy.actor.parameters.PortParameter" value="">
+            <property name="Directory name" class="ptolemy.actor.parameters.PortParameter" value="ROOT_DATA_PATH_TO_REPLACE//reflex_end_products/2013-08-21T19:40:25/VIMOS.2011-05-02T01:47:52.778">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
@@ -3613,7 +3959,7 @@
             </port>
         </entity>
         <entity name="Display" class="ptolemy.actor.lib.gui.Display">
-            <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={1367, 140, 510, 393}, maximized=false}">
+            <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={1367, 140, 516, 395}, maximized=false}">
             </property>
             <property name="_paneSize" class="ptolemy.actor.gui.SizeAttribute" value="[508, 346]">
             </property>
@@ -3696,12 +4042,12 @@
             </port>
         </entity>
         <entity name="String Constant5" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$N_SELECTED_DATASETS: ">
+            </property>
             <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
             </property>
             <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="$N_SELECTED_DATASETS: ">
-            </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
@@ -3819,54 +4165,114 @@
         <link port="String Constant5.output" relation="relation9"/>
         <link port="String Constant5.trigger" relation="relation7"/>
     </entity>
-    <entity name="Close DataSet" class="ptolemy.actor.TypedCompositeActor">
-        <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="7.0.2">
-        </property>
-        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:25158:63:2">
-        </property>
-        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.TypedCompositeActor">
-            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1">
-            </property>
-        </property>
-        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Actor">
-        </property>
-        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#GeneralPurpose">
-        </property>
-        <property name="semanticType22" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Workflow">
-        </property>
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</ [...]
-</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[1140.0, 1070.0]">
-        </property>
-        <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={22, 86, 1298, 809}, maximized=false}">
+    <entity name="DataOrganizer" class="org.eso.DataOrganizer">
+        <display name="Data Organiser"/>
+        <property name="OCA File" class="ptolemy.data.expr.FileParameter" value="@prefix@/share/esopipes/vimos- at VERSION@/reflex/vimos_ifu_wkf.oca">
         </property>
-        <property name="_vergilSize" class="ptolemy.actor.gui.SizeAttribute" value="[988, 658]">
+        <property name="Keywords to be displayed" class="ptolemy.data.expr.StringParameter" value="OBS.TARG.NAME,OBS.ID,OBS.NAME,OCS.CON.QUAD,INS.MODE,INS.PIXSCALE,OBS.TPLNO,INS.GRIS1.NAME,INS.GRIS2.NAME,INS.GRIS3.NAME,INS.GRIS4.NAME">
         </property>
-        <property name="_vergilZoomFactor" class="ptolemy.data.expr.ExpertParameter" value="1.3678500665865">
+        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:38241:4:2">
         </property>
-        <property name="_vergilCenter" class="ptolemy.data.expr.ExpertParameter" value="{1315.1506933890578, 786.5234375}">
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.DataOrganizer">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+            </property>
         </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:15314:107:61">
+        <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
         </property>
-        <property name="Annotation" class="ptolemy.vergil.kernel.attributes.TextAttribute">
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+        <property name="" class="ptolemy.vergil.basic.DocAttribute">
+            <property name="author" class="ptolemy.kernel.util.StringAttribute" value="ESO">
             </property>
-            <property name="_hideAllParameters" class="ptolemy.data.expr.Parameter" value="true">
+            <property name="version" class="ptolemy.kernel.util.StringAttribute" value="1.0">
             </property>
-            <property name="textSize" class="ptolemy.data.expr.Parameter" value="14">
+            <property name="OCA File (parameter)" class="ptolemy.data.expr.StringParameter" value="The filename (full path) containing the OCA rules used for classification and organization. Look at the user manual for more info.">
             </property>
-            <property name="textColor" class="ptolemy.actor.gui.ColorAttribute" value="{0.0, 0.0, 1.0, 1.0}">
+            <property name="Keywords to be displayed (parameter)" class="ptolemy.data.expr.StringParameter" value="A comma separated list of FITS keywords which are extracted from all files in addition to the ones selected by the OCA rules">
             </property>
-            <property name="fontFamily" class="ptolemy.data.expr.StringParameter" value="SansSerif">
+            <property name="class (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+            </property>
+            <property name="semanticType41 (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+            </property>
+            <property name="LoSOs (port)" class="ptolemy.kernel.util.StringAttribute" value="The produced LoSOs">
+            </property>
+            <property name="data dir (port)" class="ptolemy.kernel.util.StringAttribute" value="The directory containing the input data. It is scanned recursively.">
+            </property>
+            <property name="entityId (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+            </property>
+        </property>
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[-495.0, 740.0]">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:workflow:6:1:urn:lsid:kepler-project.org/ns/:5968:13:3:urn:lsid:kepler-project.org/ns/:13180:2:2:urn:lsid:kepler-project.org/ns/:13643:11:1:urn:lsid:kepler-project.org/ns/:15314:296:12:urn:lsid:kepler-project.org/ns/:21155:60:16:urn:lsid:kepler-project.org/ns/:29452:73:5:urn:lsid:kepler-project.org/ns/:31989:76:1">
+        </property>
+        <port name="input data" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+            </property>
+        </port>
+        <port name="datasets out" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+            </property>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            </property>
+        </port>
+    </entity>
+    <entity name="Initialize" class="ptolemy.actor.TypedCompositeActor">
+        <display name="Initialise"/>
+        <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="7.0.2">
+        </property>
+        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31989:132:2">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.TypedCompositeActor">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1">
+            </property>
+        </property>
+        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Actor">
+        </property>
+        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#GeneralPurpose">
+        </property>
+        <property name="semanticType22" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Workflow">
+        </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</ [...]
+</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[-495.0, 630.0]">
+        </property>
+        <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={330, 179, 1361, 932}, maximized=false}">
+        </property>
+        <property name="_vergilSize" class="ptolemy.actor.gui.SizeAttribute" value="[1657, 1009]">
+        </property>
+        <property name="_vergilZoomFactor" class="ptolemy.data.expr.ExpertParameter" value="0.6681514476615">
+        </property>
+        <property name="_vergilCenter" class="ptolemy.data.expr.ExpertParameter" value="{740.9883333333332, 743.9433333333333}">
+        </property>
+        <property name="" class="ptolemy.vergil.basic.DocAttribute">
+            <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</p>&#10 [...]
+            </property>
+            <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Yuhong Xiong">
+            </property>
+            <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
+            </property>
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:14094:70:17:urn:lsid:kepler-project.org/ns/:15314:48:9:urn:lsid:kepler-project.org/ns/:21155:108:26:urn:lsid:kepler-project.org/ns/:29452:63:3">
+        </property>
+        <property name="Annotation" class="ptolemy.vergil.kernel.attributes.TextAttribute">
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <property name="_hideAllParameters" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+            <property name="textSize" class="ptolemy.data.expr.Parameter" value="14">
+            </property>
+            <property name="textColor" class="ptolemy.actor.gui.ColorAttribute" value="{0.0, 0.0, 1.0, 1.0}">
+            </property>
+            <property name="fontFamily" class="ptolemy.data.expr.StringParameter" value="SansSerif">
             </property>
             <property name="bold" class="ptolemy.data.expr.Parameter" value="false">
             </property>
             <property name="italic" class="ptolemy.data.expr.Parameter" value="false">
             </property>
-            <property name="text" class="ptolemy.kernel.util.StringAttribute" value="This subworkflow modifies the END_PRODUCTS_SUBDIR variable, 
increasing one number each a data set is run">
+            <property name="text" class="ptolemy.kernel.util.StringAttribute" value="This subworkflow is in charge of two things:

 -Deleting the workflow directories if requested.

 -Providing the value of the raw data directory">
                 <property name="_style" class="ptolemy.actor.gui.style.TextStyle">
                     <property name="height" class="ptolemy.data.expr.Parameter" value="20">
                     </property>
@@ -3895,130 +4301,143 @@
             </property>
             <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{155.0, 580.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{500.0, 575.0}">
             </property>
         </property>
-        <port name="current_dataset" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{185.0, 205.0}">
+        <property name="DDF Director" class="ptolemy.domains.ddf.kernel.DDFDirector">
+            <property name="iterations" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            <property name="maximumReceiverCapacity" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-        </port>
-        <port name="final_files" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[5.0, 405.0]">
+            <property name="runUntilDeadlockInOneIteration" class="ptolemy.data.expr.Parameter" value="true">
             </property>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Gang Zhou</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
            <p> The dynamic dataflow (DDF) domain is a superset of the synchronous
            dataflow(SDF) and Boolean dataflow(BDF) domains. In the SDF domain,
            an actor consumes and produces a fixed number of tokens per firing.
            This static information makes possible compile-time scheduling. In the
            DDF domain, there are few  [...]
+<property name="prop:iterations" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify the number of times a workflow is iterated. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. </configure></property>
+<property name="prop:maximumReceiverCapacity" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A Parameter representing the maximum capacity of each receiver controlled by this director. This is an integer that defaults to 0, which means the queue in each receiver is unbounded. To specify bounded queues, set this to a positive integer. </configure></property>
+<property name="prop:runUntilDeadlockInOneIteration" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A parameter indicating whether one iteration consists of repeated basic iterations until deadlock. If this parameter is true, the model will be executed until deadlock in one iteration. The default value is a BooleanToken with the value false. It cannot be set to true if this director is at the top level.</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31989:107:1">
             </property>
-        </port>
-        <entity name="String Constant" class="ptolemy.actor.lib.StringConst">
-            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.domains.ddf.kernel.DDFDirector">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:directorclass:5:1">
+                </property>
             </property>
-            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Director">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="README">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Director">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{215.0, 265.0}">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:director:5:1">
+            </property>
+        </property>
+        <port name="raw_data_dir" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{1150.0, 375.0}">
+            </property>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+            </property>
+        </port>
+        <entity name="Variable Setter" class="ptolemy.actor.lib.SetVariable">
+            <property name="variableName" class="ptolemy.kernel.util.StringAttribute" value="GLOBAL_TIMESTAMP">
+            </property>
+            <property name="delayed" class="ptolemy.data.expr.Parameter" value="false">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee, Steve Neuendorffer, Jerome Blanc</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
-<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
-<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
-<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
-<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:123:3">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
Set the value of a variable. The result may occur at two different times, depending on the value of the delayed parameter. 
If delayed is true, then the change to the value of the variable is implemented in a change request, and consequently will not take hold until the end of the current toplevel iteration. This helps ensure that users of value of the variable will see changes t [...]
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:47:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.SetVariable">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:886:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
-            </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Variable">
             </property>
-            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
-                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
-                </property>
-                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
-                </property>
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#LocalInput">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{730.0, 535.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{510.0, 370.0}">
             </property>
             <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:10:1">
             </property>
-            <port name="trigger" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            <port name="output" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="_expertMode" class="ptolemy.kernel.util.SingletonAttribute">
                 </property>
             </port>
         </entity>
-        <entity name="Display Current Dataset" class="ptolemy.actor.lib.gui.Display">
-            <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={66, 937, 1325, 200}, maximized=false}">
+        <entity name="Elements To Array" class="ptolemy.actor.lib.ElementsToArray">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
<p>The ElementsToArray actor reads individual elements via its input port and outputs an array consisting of those elements.</p>

<p>The actor accepts input elements of any one type (int, double, etc.). The type must be consistent. Each time the actor fires, it reads one token from each channel of the input port and outputs a corresponding array.</p>&# [...]
+<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts tokens of any one type. The type must be consistent.</configure></property>
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts an assembled array. The type of the array elements matches that of the input.</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:32:1">
             </property>
-            <property name="_paneSize" class="ptolemy.actor.gui.SizeAttribute" value="[1323, 153]">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.ElementsToArray">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:908:1">
+                </property>
             </property>
-            <property name="rowsDisplayed" class="ptolemy.data.expr.Parameter" value="10">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#ArrayActor">
             </property>
-            <property name="columnsDisplayed" class="ptolemy.data.expr.Parameter" value="120">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#DataArrayOperation">
             </property>
-            <property name="suppressBlankLines" class="ptolemy.data.expr.Parameter" value="false">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{985.0, 360.0}">
             </property>
-            <property name="title" class="ptolemy.data.expr.StringParameter" value="Current Dataset">
+        </entity>
+        <entity name="Time Stamp" class="org.sdm.spa.Timestamp">
+            <property name="format" class="ptolemy.data.expr.StringParameter" value="yyyy-MM-dd'T'HH:mm:ss">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong, Edward A. Lee</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Ilkay Altintas</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The Display actor reads tokens of any type via its input multiport, and displays each token on a separate line in a text display window.</p>

<p>Specify the size of the text display window with the rowsDisplayed and columnsDisplayed parameters. Simply resizing the window onscreen does not persistently change the size when the workflow is saved, closed, and the [...]
-<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts tokens of any type.</configure></property>
-<property name="prop:suppressBlankLines" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether the actor should display blank lines (the default) or suppress them.</configure></property>
-<property name="prop:rowsDisplayed" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The vertical size of the display, in rows. The value is an integer that defaults to 10.</configure></property>
-<property name="prop:columnsDisplayed" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The horizontal size of the display, in columns. The value is an integer that defaults to 40.</configure></property>
-<property name="prop:title" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The title of the text display window. If specified, the value will appear in the title bar of the text display window.</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:3:12">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The TimeStamp actor outputs the current date and time.</p>

<p>Dates and times can be formatted in a variety of ways. Select a format from the drop-down menu beside the format parameter, or enter a pattern directly into the format field. For more information about date format patterns, see http://java.sun.com/docs/books/tutorial/i18n/format/datepattern.html.&l [...]
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the current time stamp as a string.</configure></property>
+<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time.</configure></property>
+<property name="prop:format" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The date format. Select a format string from the drop-down menu or type in a custom format string directly into the field. For more information about date formatting patterns, see http://java.sun.com/docs/books/tutorial/i18n/format/datepattern.html</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:370:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.gui.Display">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:883:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.sdm.spa.Timestamp">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1136:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#TextualOutputActor">
-            </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#TextualOutput">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#ClockActor">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{795.0, 170.0}">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#LocalInput">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:7:1:urn:lsid:kepler-project.org/ns/:13643:22:2">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{360.0, 380.0}">
             </property>
             <property name="" class="ptolemy.vergil.basic.DocAttribute">
-                <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>The Display actor reads tokens of any type via its input multiport, and displays each token on a separate line in a text display window.</p>

<p>Specify the size of the text display window with the rowsDisplayed and columnsDisplayed parameters. Simply resizing the window onscreen does not persistently change the size when the workflow is saved, closed, and then re- [...]
-                </property>
-                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Yuhong Xiong, Edward A. Lee">
+                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Ilkay Altintas">
                 </property>
                 <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
                 </property>
-                <property name="rowsDisplayed (parameter)" class="ptolemy.data.expr.StringParameter" value="The vertical size of the display, in rows. The value is an integer that defaults to 10.">
-                </property>
-                <property name="columnsDisplayed (parameter)" class="ptolemy.data.expr.StringParameter" value="The horizontal size of the display, in columns. The value is an integer that defaults to 40.">
-                </property>
-                <property name="suppressBlankLines (parameter)" class="ptolemy.data.expr.StringParameter" value="Specify whether the actor should display blank lines (the default) or suppress them.">
+                <property name="format (parameter)" class="ptolemy.data.expr.StringParameter" value="The date format. Select a format string from the drop-down menu or type in a custom format string directly into the field. For more information about date formatting patterns, see http://java.sun.com/docs/books/tutorial/i18n/format/datepattern.html">
                 </property>
-                <property name="title (parameter)" class="ptolemy.data.expr.StringParameter" value="The title of the text display window. If specified, the value will appear in the title bar of the text display window.">
+                <property name="output (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts the current time stamp as a string.">
                 </property>
-                <property name="input (port)" class="ptolemy.kernel.util.StringAttribute" value="A multiport that accepts tokens of any type.">
+                <property name="trigger (port)" class="ptolemy.kernel.util.StringAttribute" value="A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time.">
                 </property>
             </property>
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
         </entity>
-        <entity name="String Constant2" class="ptolemy.actor.lib.StringConst">
-            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
+        <entity name="String Constant" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="if [ "x$EraseDirs" = "xtrue" ]; then  echo "Deleting files"; rm -rf $BOOKKEEPING_DIR/*;  rm -rf $LOGS_DIR/*; rm -rf $TMP_PRODUCTS_DIR/* ;  else echo "Will not delete files"; fi">
             </property>
-            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="$END_PRODUCTS_DIR">
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
@@ -4029,7 +4448,7 @@
 <property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
 <property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
 <property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:121:3">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:204:1">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
@@ -4045,25 +4464,15 @@
                 <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
                 </property>
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{725.0, 435.0}">
-            </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1">
-            </property>
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{665.0, 695.0}">
             </property>
-            <port name="trigger" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
-                </property>
-            </port>
         </entity>
-        <entity name="String Constant3" class="ptolemy.actor.lib.StringConst">
-            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
+        <entity name="String Constant2" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$RAWDATA_DIR">
             </property>
-            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value=" Dataset has been reduced and saved in ">
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
@@ -4074,7 +4483,7 @@
 <property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
 <property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
 <property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:19:3">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:204:1">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
@@ -4090,156 +4499,117 @@
                 <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
                 </property>
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{255.0, 355.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{825.0, 320.0}">
             </property>
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1:urn:lsid:kepler-project.org/ns/:13643:21:2">
-            </property>
-            <port name="trigger" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
-                </property>
-            </port>
         </entity>
-        <entity name="Final directory path" class="org.resurgence.actor.StringAccumulator">
-            <property name="Substring separator" class="ptolemy.data.expr.Parameter" value=""/"">
-            </property>
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke Sudholt</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>
The StringAccumulator actor reads multiple strings via its input port and outputs a string containing all of the input values. The characters separating the substrings in the output string can be specified with the substringSeparator parameter.</p></configure></property>
-<property name="port:whole" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the full string.</configure></property>
-<property name="port:parts" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts substrings.</configure></property>
-<property name="prop:Substring separator" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The characters used to separate the elements in the output string. By default, the value is "".</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:25:2">
-            </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.resurgence.actor.StringAccumulator">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1117:1">
-                </property>
-            </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
+        <entity name="DirectoryEraser" class="ptolemy.actor.lib.Exec">
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#IterativeOperation">
+            <property name="command" class="ptolemy.actor.parameters.PortParameter" value="sh">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{370.0, 445.0}">
+            <property name="directory" class="ptolemy.data.expr.FileParameter" value="$CWD">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:292:1">
+            <property name="environment" class="ptolemy.data.expr.Parameter" value="{{name = "", value = ""}}">
             </property>
-        </entity>
-        <entity name="Write README" class="org.geon.FileWrite">
-            <property name="fileName" class="ptolemy.actor.parameters.FilePortParameter" value="System.out">
+            <property name="prependPlatformDependentShellCommand" class="ptolemy.data.expr.Parameter" value="false">
             </property>
-            <property name="append" class="ptolemy.data.expr.Parameter" value="true">
+            <property name="throwExceptionOnNonZeroReturn" class="ptolemy.data.expr.Parameter" value="true">
             </property>
-            <property name="confirmOverwrite" class="ptolemy.data.expr.Parameter" value="false">
+            <property name="waitForProcess" class="ptolemy.data.expr.Parameter" value="true">
             </property>
-            <property name="alwaysFlush" class="ptolemy.data.expr.Parameter" value="false">
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="1">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>No author given</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Xiaojun Liu, Edward A. Lee, Steve Neuendorffer</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The FileWriter actor reads a string and writes it to a file. The actor outputs the file path of the generated file.</p>

<p>Specify a destination file path with the fileName parameter. If the specified file does not exist, then the actor will create it.  If the file already exists, then the actor will ask for permission to overwrite it (unless the append param [...]
-<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input port that receives a string to write to a file.</configure></property>
-<property name="port:url" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the file name of the generated file.</configure></property>
-<property name="prop:append" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether to append the input string to an existing, specified file. By default, the actor will overwrite any preexisting file.</configure></property>
-<property name="prop:confirmOverwrite" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether the actor should confirm before overwriting an existing file. By default, the actor will not ask for confirmation.</configure></property>
-<property name="prop:fileName" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The name of the file to which to write. See FileParameter for more information about specifying file names. </configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:118:5">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
<p>The External Execution actor executes a system command from a workflow. The actor accepts a command, a directory and environment in which to execute the command, and a command input string. Once the command has finished executing, the actor will output the execution results along with any errors. If no results are generated, the actor will output an empty string.</p>&# [...]
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts data generated by the executed command, output as a string after the command has finished executing. If the command generates no data on standard out, then the empty string (a string of length zero) is generated. </configure></property>
+<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input port that accepts strings to pass to the standard input of the subprocess. Note that a newline is not appended to the string. If you require a newline, add one using the AddSubtract actor. This port is an input port of type String.</configure></property>
+<property name="port:error" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts any errors generated by the command execution. Errors are output as a string after the command has finished executing. If the execution generates no errors, an empty string is output. </configure></property>
+<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If connected, a token must be available on this port before actor will execute.</configure></property>
+<property name="port:exitCode" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the command's exit code. A non-zero value signifies an error.</configure></property>
+<property name="prop:environment" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An array of records that name an environment variable and a value:
 
  {{name = "NAME1", value = "value1"}...}
  
Where NAME1 is the name of the environment variable, and value1 is the value. 
For example, {{name = "PTII", value = "c:/ptII"}} would set the value of the PTII to c:/ptII. 
If the parameter is set to {{name="&quot [...]
+<property name="prop:directory" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The directory in which to execute the command. The default value of this parameter $CWD, which represents the user's current working or home directory. </configure></property>
+<property name="prop:throwExceptionOnNonZeroReturn" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If true, then throw an exception if the subprocess returns non-zero.</configure></property>
+<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If a positive integer, then it is the maximum number of times to execute the actor.</configure></property>
+<property name="prop:prependPlatformDependentShellCommand" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
If true, then prepend the platform dependent shell command to the
parsed value of the command parameter.  By setting this argument
to true, it is possible to invoke commands in a platform neutral
method.
<p>Under Windows NT or XP, the arguments "cmd.exe" and "/C" are
prepended.  Under Windows 95, the arguments "com [...]
+<property name="prop:waitForProcess" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If true, then actor will wait until subprocess completes.</configure></property>
+<property name="prop:command" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The command to be executed (e.g., echo "Hello, world."). The command can be specified via either the command port or parameter.</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:102:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.geon.FileWrite">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1003:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.Exec">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:976:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#WriterOutputActor">
-            </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#LocalOutput">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#ExternalExecutionEnvironmentActor">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{880.0, 380.0}">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#UnixCommand">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:144:1">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{135.0, 390.0}">
             </property>
             <property name="" class="ptolemy.vergil.basic.DocAttribute">
-                <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>The FileWriter actor reads a string and writes it to a file. The actor outputs the file path of the generated file.</p>

<p>Specify a destination file path with the fileName parameter. If the specified file does not exist, then the actor will create it.  If the file already exists, then the actor will ask for permission to overwrite it (unless the append parameter  [...]
-                </property>
-                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="No author given">
+                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Xiaojun Liu, Edward A. Lee, Steve Neuendorffer">
                 </property>
                 <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
                 </property>
-                <property name="append (parameter)" class="ptolemy.data.expr.StringParameter" value="Specify whether to append the input string to an existing, specified file. By default, the actor will overwrite any preexisting file.">
+                <property name="directory (parameter)" class="ptolemy.data.expr.StringParameter" value="The directory in which to execute the command. The default value of this parameter $CWD, which represents the user's current working or home directory. ">
                 </property>
-                <property name="confirmOverwrite (parameter)" class="ptolemy.data.expr.StringParameter" value="Specify whether the actor should confirm before overwriting an existing file. By default, the actor will not ask for confirmation.">
+                <property name="environment (parameter)" class="ptolemy.data.expr.StringParameter" value="An array of records that name an environment variable and a value:
 
  {{name = "NAME1", value = "value1"}...}
  
Where NAME1 is the name of the environment variable, and value1 is the value. 
For example, {{name = "PTII", value = "c:/ptII"}} would set the value of the PTII to c:/ptII. 
If the parameter is set to {{name= [...]
                 </property>
-                <property name="input (port)" class="ptolemy.kernel.util.StringAttribute" value="An input port that receives a string to write to a file.">
+                <property name="prependPlatformDependentShellCommand (parameter)" class="ptolemy.data.expr.StringParameter" value="
If true, then prepend the platform dependent shell command to the
parsed value of the command parameter.  By setting this argument
to true, it is possible to invoke commands in a platform neutral
method.
<p>Under Windows NT or XP, the arguments "cmd.exe" and "/C" are
prepended.  Under Windows 95, the argument [...]
                 </property>
-                <property name="url (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts the file name of the generated file.">
+                <property name="throwExceptionOnNonZeroReturn (parameter)" class="ptolemy.data.expr.StringParameter" value="If true, then throw an exception if the subprocess returns non-zero.">
                 </property>
-                <property name="fileName (parameter)" class="ptolemy.data.expr.StringParameter" value="The name of the file to which to write. See FileParameter for more information about specifying file names. ">
+                <property name="waitForProcess (parameter)" class="ptolemy.data.expr.StringParameter" value="If true, then actor will wait until subprocess completes.">
+                </property>
+                <property name="firingCountLimit (parameter)" class="ptolemy.data.expr.StringParameter" value="If a positive integer, then it is the maximum number of times to execute the actor.">
+                </property>
+                <property name="output (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts data generated by the executed command, output as a string after the command has finished executing. If the command generates no data on standard out, then the empty string (a string of length zero) is generated. ">
+                </property>
+                <property name="trigger (port)" class="ptolemy.kernel.util.StringAttribute" value="If connected, a token must be available on this port before actor will execute.">
+                </property>
+                <property name="error (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts any errors generated by the command execution. Errors are output as a string after the command has finished executing. If the execution generates no errors, an empty string is output. ">
+                </property>
+                <property name="input (port)" class="ptolemy.kernel.util.StringAttribute" value="An input port that accepts strings to pass to the standard input of the subprocess. Note that a newline is not appended to the string. If you require a newline, add one using the AddSubtract actor. This port is an input port of type String.">
+                </property>
+                <property name="exitCode (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts the command's exit code. A non-zero value signifies an error.">
+                </property>
+                <property name="command (parameter)" class="ptolemy.data.expr.StringParameter" value="The command to be executed (e.g., echo "Hello, world."). The command can be specified via either the command port or parameter.">
                 </property>
             </property>
-            <port name="fileName" class="ptolemy.actor.parameters.ParameterPort">
+            <port name="output" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                </property>
+            </port>
+            <port name="command" class="ptolemy.actor.parameters.ParameterPort">
                 <property name="input"/>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
                 </property>
             </port>
-            <port name="url" class="ptolemy.actor.TypedIOPort">
+            <port name="error" class="ptolemy.actor.TypedIOPort">
                 <property name="output"/>
-                <property name="_hide" class="ptolemy.data.expr.SingletonParameter" value="true">
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
                 </property>
             </port>
-        </entity>
-        <entity name="String Constant4" class="ptolemy.actor.lib.StringConst">
-            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
-            </property>
-            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
-            </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="$END_PRODUCTS_SUBDIR">
-            </property>
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
-<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
-<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
-<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
-<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:23:2">
-            </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
-                </property>
-            </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
-            </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
-            </property>
-            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
-                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
-                </property>
-                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
-                </property>
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{265.0, 530.0}">
-            </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1">
-            </property>
-            <port name="trigger" class="ptolemy.actor.TypedIOPort">
+            <port name="input" class="ptolemy.actor.TypedIOPort">
                 <property name="input"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                </property>
+            </port>
+            <port name="exitCode" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
                 </property>
             </port>
         </entity>
-        <entity name="String Constant5" class="ptolemy.actor.lib.StringConst">
-            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
+        <entity name="String Constant3" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$CALIB_DATA_DIR">
             </property>
-            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="$GLOBAL_TIMESTAMP">
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
@@ -4250,7 +4620,7 @@
 <property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
 <property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
 <property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:122:3">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:14094:71:2">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
@@ -4266,174 +4636,285 @@
                 <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
                 </property>
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{720.0, 500.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{835.0, 455.0}">
             </property>
             <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1">
             </property>
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
-            <port name="trigger" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
-                </property>
-            </port>
         </entity>
-        <entity name="Write to stdout" class="org.geon.FileWrite">
-            <property name="fileName" class="ptolemy.actor.parameters.FilePortParameter" value="/dev/stdout">
-            </property>
-            <property name="append" class="ptolemy.data.expr.Parameter" value="true">
-            </property>
-            <property name="confirmOverwrite" class="ptolemy.data.expr.Parameter" value="false">
-            </property>
-            <property name="alwaysFlush" class="ptolemy.data.expr.Parameter" value="true">
-            </property>
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>No author given</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The FileWriter actor reads a string and writes it to a file. The actor outputs the file path of the generated file.</p>

<p>Specify a destination file path with the fileName parameter. If the specified file does not exist, then the actor will create it.  If the file already exists, then the actor will ask for permission to overwrite it (unless the append param [...]
-<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input port that receives a string to write to a file.</configure></property>
-<property name="port:url" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the file name of the generated file.</configure></property>
-<property name="prop:append" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether to append the input string to an existing, specified file. By default, the actor will overwrite any preexisting file.</configure></property>
-<property name="prop:confirmOverwrite" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether the actor should confirm before overwriting an existing file. By default, the actor will not ask for confirmation.</configure></property>
-<property name="prop:fileName" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The name of the file to which to write. See FileParameter for more information about specifying file names. </configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:24:2">
-            </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.geon.FileWrite">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1003:1">
-                </property>
-            </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#WriterOutputActor">
+        <relation name="relation" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#LocalOutput">
+        </relation>
+        <relation name="relation2" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{840.0, 255.0}">
+            <vertex name="vertex1" value="[665.0, 385.0]">
+            </vertex>
+        </relation>
+        <relation name="relation3" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:144:1:urn:lsid:kepler-project.org/ns/:15165:55:3">
+        </relation>
+        <relation name="relation4" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-        </entity>
-        <entity name="String Constant6" class="ptolemy.actor.lib.StringConst">
-            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
+        </relation>
+        <relation name="relation5" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
+        </relation>
+        <relation name="relation6" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="$END_PRODUCTS_DIR">
+        </relation>
+        <relation name="relation7" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
+        </relation>
+        <link port="raw_data_dir" relation="relation7"/>
+        <link port="Variable Setter.input" relation="relation3"/>
+        <link port="Variable Setter.output" relation="relation2"/>
+        <link port="Elements To Array.input" relation="relation"/>
+        <link port="Elements To Array.input" relation="relation4"/>
+        <link port="Elements To Array.output" relation="relation7"/>
+        <link port="Time Stamp.output" relation="relation3"/>
+        <link port="Time Stamp.trigger" relation="relation6"/>
+        <link port="String Constant.output" relation="relation5"/>
+        <link port="String Constant2.output" relation="relation"/>
+        <link port="String Constant2.trigger" relation="relation2"/>
+        <link port="DirectoryEraser.output" relation="relation6"/>
+        <link port="DirectoryEraser.input" relation="relation5"/>
+        <link port="String Constant3.output" relation="relation4"/>
+        <link port="String Constant3.trigger" relation="relation2"/>
+    </entity>
+    <entity name="SofCombiner4" class="org.eso.SofCombiner">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
-<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
-<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
-<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
-<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:23:5">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofCombiner takes as input a number of set of files and combines them into one set of files that contains only the files whose purposes are present in all the input tokens. With this respect empty tokens are ignored and files with universal purpose are always collected</configure></property>
+<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sofs</configure></property>
+<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The combined sof</configure></property>
+<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:29452:78:2">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofCombiner">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
-                </property>
+        </property>
+        <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+        </property>
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[-120.0, 745.0]">
+        </property>
+        <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:908:1">
+        </property>
+        <port name="sof in" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="multiport"/>
+            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
+        </port>
+        <port name="sof in opt" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="multiport"/>
+            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
+        </port>
+        <port name="sof out" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="multiport"/>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
             </property>
-            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
-                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
-                </property>
-                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
-                </property>
+        </port>
+    </entity>
+    <entity name="Data Set Selection" class="ptolemy.actor.TypedCompositeActor">
+        <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="8.1.devel">
+        </property>
+        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44497:12:2">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.TypedCompositeActor">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{265.0, 405.0}">
+        </property>
+        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Actor">
+        </property>
+        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#GeneralPurpose">
+        </property>
+        <property name="semanticType22" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Workflow">
+        </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</ [...]
+</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[-490.0, 855.0]">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:31989:70:2">
+        </property>
+        <property name="DDF Director" class="ptolemy.domains.ddf.kernel.DDFDirector">
+            <property name="iterations" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1">
+            <property name="maximumReceiverCapacity" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-            <port name="trigger" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
-                </property>
-            </port>
-        </entity>
-        <entity name="Path to README" class="org.resurgence.actor.StringAccumulator">
-            <property name="Substring separator" class="ptolemy.data.expr.Parameter" value=""/"">
+            <property name="runUntilDeadlockInOneIteration" class="ptolemy.data.expr.Parameter" value="true">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke Sudholt</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Gang Zhou</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>
The StringAccumulator actor reads multiple strings via its input port and outputs a string containing all of the input values. The characters separating the substrings in the output string can be specified with the substringSeparator parameter.</p></configure></property>
-<property name="port:whole" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the full string.</configure></property>
-<property name="port:parts" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts substrings.</configure></property>
-<property name="prop:Substring separator" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The characters used to separate the elements in the output string. By default, the value is "".</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:124:4">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
            <p> The dynamic dataflow (DDF) domain is a superset of the synchronous
            dataflow(SDF) and Boolean dataflow(BDF) domains. In the SDF domain,
            an actor consumes and produces a fixed number of tokens per firing.
            This static information makes possible compile-time scheduling. In the
            DDF domain, there are few  [...]
+<property name="prop:maximumReceiverCapacity" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A Parameter representing the maximum capacity of each receiver controlled by this director. This is an integer that defaults to 0, which means the queue in each receiver is unbounded. To specify bounded queues, set this to a positive integer. </configure></property>
+<property name="prop:iterations" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify the number of times a workflow is iterated. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. </configure></property>
+<property name="prop:runUntilDeadlockInOneIteration" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A parameter indicating whether one iteration consists of repeated basic iterations until deadlock. If this parameter is true, the model will be executed until deadlock in one iteration. The default value is a BooleanToken with the value false. It cannot be set to true if this director is at the top level.</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31617:99:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.resurgence.actor.StringAccumulator">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1117:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.domains.ddf.kernel.DDFDirector">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:directorclass:5:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Director">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#IterativeOperation">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Director">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{870.0, 485.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{-10.0, 285.0}">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:292:1">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:director:5:1">
             </property>
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="false">
+        </property>
+        <port name="datasets_in" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="multiport"/>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{-5.0, 415.0}">
             </property>
-            <port name="whole" class="ptolemy.actor.TypedIOPort">
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+            </property>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            </property>
+        </port>
+        <port name="dataset_out" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="multiport"/>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{220.0, 415.0}">
+            </property>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+            </property>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            </property>
+        </port>
+        <entity name="DataSetChooser" class="org.eso.DataSetChooser">
+            <display name="Data Set Chooser"/>
+            <property name="Selection mode" class="ptolemy.data.expr.StringParameter" value="$DataSelectionMethod">
+            </property>
+            <property name="FITS Viewer" class="ptolemy.data.expr.StringParameter" value="$FITS_VIEWER">
+            </property>
+            <property name="Mode" class="ptolemy.data.expr.StringParameter" value="Select">
+            </property>
+            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44497:11:1">
+            </property>
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.DataSetChooser">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+                </property>
+            </property>
+            <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+            </property>
+            <property name="" class="ptolemy.vergil.basic.DocAttribute">
+                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="ESO">
+                </property>
+                <property name="version" class="ptolemy.kernel.util.StringAttribute" value="1.0">
+                </property>
+                <property name="FITS Viewer (parameter)" class="ptolemy.data.expr.StringParameter" value="The application used to inspect FITS files">
+                </property>
+                <property name="Mode (parameter)" class="ptolemy.data.expr.StringParameter" value="<p>Skip: automatically select all files and don't show any window;</p><p>Display: select all the files and allow the user only to view them;</p><p>Select: standard mode.</p>">
+                </property>
+                <property name="class (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+                </property>
+                <property name="semanticType41 (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+                </property>
+                <property name="LoSOs (port)" class="ptolemy.kernel.util.StringAttribute" value="The input LoSOs">
+                </property>
+                <property name="sof (port)" class="ptolemy.kernel.util.StringAttribute" value="The SoF of the current LoSO">
+                </property>
+                <property name="sop (port)" class="ptolemy.kernel.util.StringAttribute" value="The SoP of the current LoSO">
+                </property>
+                <property name="entityId (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+                </property>
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{75.0, 395.0}">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:workflow:5:1:urn:lsid:kepler-project.org/ns/:12776:6:1:urn:lsid:kepler-project.org/ns/:13961:210:1:urn:lsid:kepler-project.org/ns/:31617:78:3">
+            </property>
+            <port name="datasets in" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="WEST">
+                </property>
+            </port>
+            <port name="dataset out" class="ptolemy.actor.TypedIOPort">
                 <property name="output"/>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+                <property name="multiport"/>
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="EAST">
+                </property>
+            </port>
+            <port name="#selected" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="_hide" class="ptolemy.data.expr.SingletonParameter" value="false">
                 </property>
             </port>
         </entity>
-        <entity name="Final message" class="org.resurgence.actor.StringAccumulator">
-            <property name="Substring separator" class="ptolemy.data.expr.Parameter" value="""">
+        <entity name="Variable Setter" class="ptolemy.actor.lib.SetVariable">
+            <property name="variableName" class="ptolemy.kernel.util.StringAttribute" value="N_SELECTED_DATASETS">
+            </property>
+            <property name="delayed" class="ptolemy.data.expr.Parameter" value="false">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke Sudholt</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee, Steve Neuendorffer, Jerome Blanc</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>
The StringAccumulator actor reads multiple strings via its input port and outputs a string containing all of the input values. The characters separating the substrings in the output string can be specified with the substringSeparator parameter.</p></configure></property>
-<property name="port:whole" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the full string.</configure></property>
-<property name="port:parts" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts substrings.</configure></property>
-<property name="prop:Substring separator" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The characters used to separate the elements in the output string. By default, the value is "".</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:26:1">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
Set the value of a variable. The result may occur at two different times, depending on the value of the delayed parameter. 
If delayed is true, then the change to the value of the variable is implemented in a change request, and consequently will not take hold until the end of the current toplevel iteration. This helps ensure that users of value of the variable will see changes t [...]
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31989:67:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.resurgence.actor.StringAccumulator">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1117:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.SetVariable">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:886:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Variable">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#IterativeOperation">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#LocalInput">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{75.0, 510.0}">
+            </property>
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{470.0, 325.0}">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:10:1:urn:lsid:kepler-project.org/ns/:13757:404:3:urn:lsid:kepler-project.org/ns/:31617:89:8">
             </property>
             <property name="" class="ptolemy.vergil.basic.DocAttribute">
-                <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>
The StringAccumulator actor reads multiple strings via its input port and outputs a string containing all of the input values. The characters separating the substrings in the output string can be specified with the substringSeparator parameter.</p>">
+                <property name="description" class="ptolemy.kernel.util.StringAttribute" value="
Set the value of a variable. The result may occur at two different times, depending on the value of the delayed parameter. 
If delayed is true, then the change to the value of the variable is implemented in a change request, and consequently will not take hold until the end of the current toplevel iteration. This helps ensure that users of value of the variable will see changes to the [...]
                 </property>
-                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Wibke Sudholt">
+                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Edward Lee, Steve Neuendorffer, Jerome Blanc">
                 </property>
                 <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
                 </property>
-                <property name="Substring separator (parameter)" class="ptolemy.data.expr.StringParameter" value="The characters used to separate the elements in the output string. By default, the value is "".">
-                </property>
-                <property name="parts (port)" class="ptolemy.kernel.util.StringAttribute" value="A multiport that accepts substrings.">
-                </property>
-                <property name="whole (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts the full string.">
-                </property>
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:292:1">
+            <property name="requiredFiringsPerIteration" class="ptolemy.data.expr.Parameter" value="1">
             </property>
+            <port name="input" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+                </property>
+            </port>
+            <port name="output" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+                </property>
+            </port>
         </entity>
         <relation name="relation" class="ptolemy.actor.TypedIORelation">
             <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-            <vertex name="vertex1" value="[570.0, 355.0]">
-            </vertex>
         </relation>
         <relation name="relation2" class="ptolemy.actor.TypedIORelation">
             <property name="width" class="ptolemy.data.expr.Parameter" value="1">
@@ -4443,126 +4924,107 @@
             <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
         </relation>
-        <relation name="relation4" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </relation>
-        <relation name="relation5" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </relation>
-        <relation name="relation6" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </relation>
-        <relation name="relation7" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </relation>
-        <relation name="relation8" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </relation>
-        <relation name="relation9" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </relation>
-        <relation name="relation10" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-            <vertex name="vertex1" value="[85.0, 405.0]">
-            </vertex>
-        </relation>
-        <relation name="relation11" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </relation>
-        <link port="current_dataset" relation="relation7"/>
-        <link port="final_files" relation="relation10"/>
-        <link port="String Constant.output" relation="relation9"/>
-        <link port="String Constant.trigger" relation="relation"/>
-        <link port="Display Current Dataset.input" relation="relation"/>
-        <link port="String Constant2.output" relation="relation2"/>
-        <link port="String Constant2.trigger" relation="relation"/>
-        <link port="String Constant3.output" relation="relation11"/>
-        <link port="String Constant3.trigger" relation="relation10"/>
-        <link port="Final directory path.parts" relation="relation5"/>
-        <link port="Final directory path.parts" relation="relation3"/>
-        <link port="Final directory path.whole" relation="relation4"/>
-        <link port="Write README.input" relation="relation"/>
-        <link port="Write README.fileName" relation="relation6"/>
-        <link port="String Constant4.output" relation="relation3"/>
-        <link port="String Constant4.trigger" relation="relation10"/>
-        <link port="String Constant5.output" relation="relation8"/>
-        <link port="String Constant5.trigger" relation="relation"/>
-        <link port="Write to stdout.input" relation="relation"/>
-        <link port="String Constant6.output" relation="relation5"/>
-        <link port="String Constant6.trigger" relation="relation10"/>
-        <link port="Path to README.parts" relation="relation2"/>
-        <link port="Path to README.parts" relation="relation8"/>
-        <link port="Path to README.parts" relation="relation9"/>
-        <link port="Path to README.whole" relation="relation6"/>
-        <link port="Final message.parts" relation="relation7"/>
-        <link port="Final message.parts" relation="relation11"/>
-        <link port="Final message.parts" relation="relation4"/>
-        <link port="Final message.whole" relation="relation"/>
+        <link port="datasets_in" relation="relation3"/>
+        <link port="dataset_out" relation="relation"/>
+        <link port="DataSetChooser.datasets in" relation="relation3"/>
+        <link port="DataSetChooser.dataset out" relation="relation"/>
+        <link port="DataSetChooser.#selected" relation="relation2"/>
+        <link port="Variable Setter.input" relation="relation2"/>
     </entity>
-    <entity name="DataOrganizer" class="org.eso.DataOrganizer">
-        <display name="Data Organiser"/>
-        <property name="OCA File" class="ptolemy.data.expr.FileParameter" value="@prefix@/share/esopipes/vimos- at VERSION@/reflex/vimos_ifu_wkf.oca">
+    <entity name="ProvenanceExplorer" class="org.eso.ProvenanceExplorer">
+        <property name="Enabled" class="ptolemy.data.expr.StringParameter" value="$ProvenanceExplorerEnabled">
         </property>
-        <property name="Keywords to be displayed" class="ptolemy.data.expr.StringParameter" value="OBS.TARG.NAME,OBS.ID,OBS.NAME,OCS.CON.QUAD,INS.MODE,INS.PIXSCALE,OBS.TPLNO,INS.GRIS1.NAME,INS.GRIS2.NAME,INS.GRIS3.NAME,INS.GRIS4.NAME">
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[1240.0, 1075.0]">
         </property>
-        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:38241:4:2">
+    </entity>
+    <entity name="ProductRenamer" class="ptolemy.actor.lib.python.PythonScript">
+        <property name="jythonClassName" class="ptolemy.kernel.util.StringAttribute" value="Main">
         </property>
-        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.DataOrganizer">
+        <property name="script" class="ptolemy.kernel.util.StringAttribute" value="import os
import shutil

from ptolemy.data import StringToken, IntToken
from ptolemy.data.expr import Parameter
from org.eso.util import JSONTools
from nom.tam.fits import Fits
from nom.tam.fits import FitsFactory
from ptolemy.kernel.util import IllegalActionException
from org.eso.service import ExecutionServiceDB
import org.apache.log4j
from java.util import Has [...]
+        </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Renames recipe products based on FITS keywords</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure> This actor moves (or copies or links) its input sof to a final product directory based on some FITS keywords.
 Usually, it should be connected to the output of the recipes that produce final products. If the recipe produces more products that are not relevant to rename, an output filter can be put in the recipe.</configure></property>
+<property name="port:sof_out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The final list of files produced</configure></property>
+<property name="port:sof_in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The files to be copied/moved or linked</configure></property>
+<property name="prop:RenameKeywords" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The list of keywords used to create the new name</configure></property>
+<property name="prop:OutputExistsMode" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>This parameter defines the behaviour in case the output files already exists: it can be "append_version" (create a new file with a running index suffix), "overwrite" (replace the existing file), "stop" (stop the workflow)</configure></property>
+<property name="prop:script" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:FinalProductDirectory" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The directory where the files are going to be copied/linked or renamed. It is usually set to END_PRODUCTS_DIR</configure></property>
+<property name="prop:SubDir" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If it is not empty, a subdirectory will be created with this string. The value can contain backslashes (and intermediate directories will be created). It will usually be END_PROD_SUBDIR, created somewhere in the workflow</configure></property>
+<property name="prop:CopyMode" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>There are several options: "copy", "move" or "link".</configure></property>
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44576:74:2">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.python.PythonScript">
             <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
             </property>
         </property>
         <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
         </property>
+        <property name="_editorFactory" class="ptolemy.vergil.toolbox.TextEditorConfigureFactory">
+            <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="script">
+            </property>
+        </property>
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[1120.0, 725.0]">
+        </property>
+        <property name="RenameKeywords" class="ptolemy.data.expr.StringParameter" value="HIERARCH.ESO.OBS.NAME,'_',HIERARCH.ESO.PRO.CATG">
+        </property>
+        <property name="FinalProductDirectory" class="ptolemy.data.expr.StringParameter" value="$END_PRODUCTS_DIR">
+        </property>
+        <property name="SubDir" class="ptolemy.data.expr.StringParameter" value="$END_PRODUCTS_SUBDIR">
+        </property>
+        <property name="CopyMode" class="ptolemy.data.expr.StringParameter" value="copy">
+        </property>
+        <property name="OutputExistsMode" class="ptolemy.data.expr.StringParameter" value="append_version">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:910:1:urn:lsid:kepler-project.org/ns/:24723:4:5:urn:lsid:kepler-project.org/ns/:25047:16:2:urn:lsid:kepler-project.org/ns/:25158:50:1:urn:lsid:kepler-project.org/ns/:38241:57:8">
+        </property>
         <property name="" class="ptolemy.vergil.basic.DocAttribute">
+            <property name="description" class="ptolemy.kernel.util.StringAttribute" value=" This actor moves (or copies or links) its input sof to a final product directory based on some FITS keywords.
 Usually, it should be connected to the output of the recipes that produce final products. If the recipe produces more products that are not relevant to rename, an output filter can be put in the recipe.">
+            </property>
             <property name="author" class="ptolemy.kernel.util.StringAttribute" value="ESO">
             </property>
-            <property name="version" class="ptolemy.kernel.util.StringAttribute" value="1.0">
+            <property name="version" class="ptolemy.kernel.util.StringAttribute" value="2.0">
             </property>
-            <property name="OCA File (parameter)" class="ptolemy.data.expr.StringParameter" value="The filename (full path) containing the OCA rules used for classification and organization. Look at the user manual for more info.">
+            <property name="RenameKeywords (parameter)" class="ptolemy.data.expr.StringParameter" value="The list of keywords used to create the new name">
             </property>
-            <property name="Keywords to be displayed (parameter)" class="ptolemy.data.expr.StringParameter" value="A comma separated list of FITS keywords which are extracted from all files in addition to the ones selected by the OCA rules">
+            <property name="FinalProductDirectory (parameter)" class="ptolemy.data.expr.StringParameter" value="The directory where the files are going to be copied/linked or renamed. It is usually set to END_PRODUCTS_DIR">
             </property>
-            <property name="class (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+            <property name="SubDir (parameter)" class="ptolemy.data.expr.StringParameter" value="If it is not empty, a subdirectory will be created with this string. The value can contain backslashes (and intermediate directories will be created). It will usually be END_PROD_SUBDIR, created somewhere in the workflow">
             </property>
-            <property name="semanticType41 (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+            <property name="CopyMode (parameter)" class="ptolemy.data.expr.StringParameter" value="There are several options: "copy", "move" or "link".">
             </property>
-            <property name="LoSOs (port)" class="ptolemy.kernel.util.StringAttribute" value="The produced LoSOs">
+            <property name="OutputExistsMode (parameter)" class="ptolemy.data.expr.StringParameter" value="This parameter defines the behaviour in case the output files already exists: it can be "append_version" (create a new file with a running index suffix), "overwrite" (replace the existing file), "stop" (stop the workflow)">
             </property>
-            <property name="data dir (port)" class="ptolemy.kernel.util.StringAttribute" value="The directory containing the input data. It is scanned recursively.">
+            <property name="script (parameter)" class="ptolemy.data.expr.StringParameter" value="">
             </property>
-            <property name="entityId (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+            <property name="sof_out (port)" class="ptolemy.kernel.util.StringAttribute" value="The final list of files produced">
+            </property>
+            <property name="sof_in (port)" class="ptolemy.kernel.util.StringAttribute" value="The files to be copied/moved or linked">
             </property>
         </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[-495.0, 740.0]">
-        </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:workflow:6:1:urn:lsid:kepler-project.org/ns/:5968:13:3:urn:lsid:kepler-project.org/ns/:13180:2:2:urn:lsid:kepler-project.org/ns/:13643:11:1:urn:lsid:kepler-project.org/ns/:15314:296:12:urn:lsid:kepler-project.org/ns/:21155:60:16:urn:lsid:kepler-project.org/ns/:29452:73:5:urn:lsid:kepler-project.org/ns/:31989:76:1">
+        <property name="BookkeepingDir" class="ptolemy.data.expr.StringParameter" value="$BOOKKEEPING_DIR">
         </property>
-        <port name="input data" class="ptolemy.actor.TypedIOPort">
+        <port name="sof_in" class="ptolemy.actor.TypedIOPort">
             <property name="input"/>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+            <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="WEST">
             </property>
         </port>
-        <port name="datasets out" class="ptolemy.actor.TypedIOPort">
+        <port name="sof_out" class="ptolemy.actor.TypedIOPort">
             <property name="output"/>
+            <property name="multiport"/>
             <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
             </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
-            </property>
         </port>
     </entity>
-    <entity name="Initialize" class="ptolemy.actor.TypedCompositeActor">
-        <display name="Initialise"/>
+    <entity name="Close DataSet" class="ptolemy.actor.TypedCompositeActor">
         <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="7.0.2">
         </property>
-        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31989:132:2">
+        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44576:50:17">
         </property>
         <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.TypedCompositeActor">
             <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1">
@@ -4579,25 +5041,17 @@
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</ [...]
-</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[-495.0, 630.0]">
+</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[1115.0, 1070.0]">
         </property>
-        <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={330, 179, 1361, 932}, maximized=false}">
-        </property>
-        <property name="_vergilSize" class="ptolemy.actor.gui.SizeAttribute" value="[1657, 1009]">
+        <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={616, 37, 1304, 811}, maximized=false}">
         </property>
-        <property name="_vergilZoomFactor" class="ptolemy.data.expr.ExpertParameter" value="0.6681514476615">
+        <property name="_vergilSize" class="ptolemy.actor.gui.SizeAttribute" value="[988, 658]">
         </property>
-        <property name="_vergilCenter" class="ptolemy.data.expr.ExpertParameter" value="{740.9883333333332, 743.9433333333333}">
+        <property name="_vergilZoomFactor" class="ptolemy.data.expr.ExpertParameter" value="1.5267529457215">
         </property>
-        <property name="" class="ptolemy.vergil.basic.DocAttribute">
-            <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</p>&#10 [...]
-            </property>
-            <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Yuhong Xiong">
-            </property>
-            <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
-            </property>
+        <property name="_vergilCenter" class="ptolemy.data.expr.ExpertParameter" value="{1284.5625, 895.4900050607288}">
         </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:14094:70:17:urn:lsid:kepler-project.org/ns/:15314:48:9:urn:lsid:kepler-project.org/ns/:21155:108:26:urn:lsid:kepler-project.org/ns/:29452:63:3">
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:31989:45:2:urn:lsid:kepler-project.org/ns/:43955:74:3:urn:lsid:kepler-project.org/ns/:44497:3:4">
         </property>
         <property name="Annotation" class="ptolemy.vergil.kernel.attributes.TextAttribute">
             <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
@@ -4614,7 +5068,7 @@
             </property>
             <property name="italic" class="ptolemy.data.expr.Parameter" value="false">
             </property>
-            <property name="text" class="ptolemy.kernel.util.StringAttribute" value="This subworkflow is in charge of two things:

 -Deleting the workflow directories if requested.

 -Providing the value of the raw data directory">
+            <property name="text" class="ptolemy.kernel.util.StringAttribute" value="This subworkflow modifies takes care of the final tasks:
-Creating a README file with the list of files
-Displaying a window with the finished datasets
-Creating input for ProvenanceExplorer">
                 <property name="_style" class="ptolemy.actor.gui.style.TextStyle">
                     <property name="height" class="ptolemy.data.expr.Parameter" value="20">
                     </property>
@@ -4633,7 +5087,7 @@
 <property name="prop:textColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
 <property name="prop:textSize" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font size. Select an integer from the drop-down menu or specify a new size by typing it directly into the value field.  The default is 14.</configure></property>
 <property name="prop:text" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The text of the annotation.</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:436:1">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44576:49:1">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.vergil.kernel.attributes.TextAttribute">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1199:1">
@@ -4643,145 +5097,142 @@
             </property>
             <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{500.0, 575.0}">
-            </property>
-        </property>
-        <property name="DDF Director" class="ptolemy.domains.ddf.kernel.DDFDirector">
-            <property name="timeResolution" class="ptolemy.actor.parameters.SharedParameter" value="1E-10">
-            </property>
-            <property name="iterations" class="ptolemy.data.expr.Parameter" value="0">
-            </property>
-            <property name="maximumReceiverCapacity" class="ptolemy.data.expr.Parameter" value="0">
-            </property>
-            <property name="runUntilDeadlockInOneIteration" class="ptolemy.data.expr.Parameter" value="true">
-            </property>
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Gang Zhou</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
            <p> The dynamic dataflow (DDF) domain is a superset of the synchronous
            dataflow(SDF) and Boolean dataflow(BDF) domains. In the SDF domain,
            an actor consumes and produces a fixed number of tokens per firing.
            This static information makes possible compile-time scheduling. In the
            DDF domain, there are few  [...]
-<property name="prop:iterations" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify the number of times a workflow is iterated. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. </configure></property>
-<property name="prop:maximumReceiverCapacity" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A Parameter representing the maximum capacity of each receiver controlled by this director. This is an integer that defaults to 0, which means the queue in each receiver is unbounded. To specify bounded queues, set this to a positive integer. </configure></property>
-<property name="prop:runUntilDeadlockInOneIteration" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A parameter indicating whether one iteration consists of repeated basic iterations until deadlock. If this parameter is true, the model will be executed until deadlock in one iteration. The default value is a BooleanToken with the value false. It cannot be set to true if this director is at the top level.</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31989:107:1">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[280.0, 680.0]">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.domains.ddf.kernel.DDFDirector">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:directorclass:5:1">
-                </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:436:1">
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Director">
+        </property>
+        <port name="current_dataset" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{431.6612027096115, 167.69104677914112}">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Director">
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{215.0, 265.0}">
+        </port>
+        <port name="final_files" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{66.66120270961146, 397.6910467791411}">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:director:5:1">
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
             </property>
-        </property>
-        <port name="raw_data_dir" class="ptolemy.actor.TypedIOPort">
+        </port>
+        <port name="bookkeeping_db" class="ptolemy.actor.TypedIOPort">
             <property name="output"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{1150.0, 375.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[480.0, 575.0]">
             </property>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+        </port>
+        <port name="global_timestamp" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[485.0, 640.0]">
             </property>
         </port>
-        <entity name="Variable Setter" class="ptolemy.actor.lib.SetVariable">
-            <property name="variableName" class="ptolemy.kernel.util.StringAttribute" value="GLOBAL_TIMESTAMP">
+        <entity name="String Constant" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="README">
             </property>
-            <property name="delayed" class="ptolemy.data.expr.Parameter" value="false">
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
+            </property>
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee, Steve Neuendorffer, Jerome Blanc</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
Set the value of a variable. The result may occur at two different times, depending on the value of the delayed parameter. 
If delayed is true, then the change to the value of the variable is implemented in a change request, and consequently will not take hold until the end of the current toplevel iteration. This helps ensure that users of value of the variable will see changes t [...]
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:47:1">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
+<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
+<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
+<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:123:3">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.SetVariable">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:886:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Variable">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#LocalInput">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{510.0, 370.0}">
+            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
+                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
+                </property>
+                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
+                </property>
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{731.6612027096114, 477.6910467791411}">
             </property>
             <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:10:1">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1">
             </property>
-            <port name="output" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="_expertMode" class="ptolemy.kernel.util.SingletonAttribute">
+            <port name="trigger" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
                 </property>
             </port>
         </entity>
-        <entity name="Elements To Array" class="ptolemy.actor.lib.ElementsToArray">
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
<p>The ElementsToArray actor reads individual elements via its input port and outputs an array consisting of those elements.</p>

<p>The actor accepts input elements of any one type (int, double, etc.). The type must be consistent. Each time the actor fires, it reads one token from each channel of the input port and outputs a corresponding array.</p>&# [...]
-<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts tokens of any one type. The type must be consistent.</configure></property>
-<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts an assembled array. The type of the array elements matches that of the input.</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:32:1">
+        <entity name="Finished Datasets" class="ptolemy.actor.lib.gui.Display">
+            <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={33, 726, 1331, 202}, maximized=false}">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.ElementsToArray">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:908:1">
-                </property>
+            <property name="_paneSize" class="ptolemy.actor.gui.SizeAttribute" value="[1323, 153]">
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#ArrayActor">
+            <property name="rowsDisplayed" class="ptolemy.data.expr.Parameter" value="10">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#DataArrayOperation">
+            <property name="columnsDisplayed" class="ptolemy.data.expr.Parameter" value="120">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{985.0, 360.0}">
+            <property name="suppressBlankLines" class="ptolemy.data.expr.Parameter" value="false">
             </property>
-        </entity>
-        <entity name="Time Stamp" class="org.sdm.spa.Timestamp">
-            <property name="format" class="ptolemy.data.expr.StringParameter" value="yyyy-MM-dd'T'HH:mm:ss">
+            <property name="title" class="ptolemy.data.expr.StringParameter" value="Current Dataset">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Ilkay Altintas</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong, Edward A. Lee</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The TimeStamp actor outputs the current date and time.</p>

<p>Dates and times can be formatted in a variety of ways. Select a format from the drop-down menu beside the format parameter, or enter a pattern directly into the format field. For more information about date format patterns, see http://java.sun.com/docs/books/tutorial/i18n/format/datepattern.html.&l [...]
-<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the current time stamp as a string.</configure></property>
-<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time.</configure></property>
-<property name="prop:format" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The date format. Select a format string from the drop-down menu or type in a custom format string directly into the field. For more information about date formatting patterns, see http://java.sun.com/docs/books/tutorial/i18n/format/datepattern.html</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:370:1">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The Display actor reads tokens of any type via its input multiport, and displays each token on a separate line in a text display window.</p>

<p>Specify the size of the text display window with the rowsDisplayed and columnsDisplayed parameters. Simply resizing the window onscreen does not persistently change the size when the workflow is saved, closed, and the [...]
+<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts tokens of any type.</configure></property>
+<property name="prop:suppressBlankLines" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether the actor should display blank lines (the default) or suppress them.</configure></property>
+<property name="prop:rowsDisplayed" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The vertical size of the display, in rows. The value is an integer that defaults to 10.</configure></property>
+<property name="prop:columnsDisplayed" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The horizontal size of the display, in columns. The value is an integer that defaults to 40.</configure></property>
+<property name="prop:title" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The title of the text display window. If specified, the value will appear in the title bar of the text display window.</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44576:53:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.sdm.spa.Timestamp">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1136:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.gui.Display">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:883:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#ClockActor">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#TextualOutputActor">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#LocalInput">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#TextualOutput">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{360.0, 380.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{801.6612027096114, 157.69104677914112}">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:7:1:urn:lsid:kepler-project.org/ns/:13643:22:2:urn:lsid:kepler-project.org/ns/:17547:3:12">
             </property>
             <property name="" class="ptolemy.vergil.basic.DocAttribute">
-                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Ilkay Altintas">
+                <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>The Display actor reads tokens of any type via its input multiport, and displays each token on a separate line in a text display window.</p>

<p>Specify the size of the text display window with the rowsDisplayed and columnsDisplayed parameters. Simply resizing the window onscreen does not persistently change the size when the workflow is saved, closed, and then re- [...]
+                </property>
+                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Yuhong Xiong, Edward A. Lee">
                 </property>
                 <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
                 </property>
-                <property name="format (parameter)" class="ptolemy.data.expr.StringParameter" value="The date format. Select a format string from the drop-down menu or type in a custom format string directly into the field. For more information about date formatting patterns, see http://java.sun.com/docs/books/tutorial/i18n/format/datepattern.html">
+                <property name="rowsDisplayed (parameter)" class="ptolemy.data.expr.StringParameter" value="The vertical size of the display, in rows. The value is an integer that defaults to 10.">
                 </property>
-                <property name="output (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts the current time stamp as a string.">
+                <property name="columnsDisplayed (parameter)" class="ptolemy.data.expr.StringParameter" value="The horizontal size of the display, in columns. The value is an integer that defaults to 40.">
                 </property>
-                <property name="trigger (port)" class="ptolemy.kernel.util.StringAttribute" value="A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time.">
+                <property name="suppressBlankLines (parameter)" class="ptolemy.data.expr.StringParameter" value="Specify whether the actor should display blank lines (the default) or suppress them.">
+                </property>
+                <property name="title (parameter)" class="ptolemy.data.expr.StringParameter" value="The title of the text display window. If specified, the value will appear in the title bar of the text display window.">
+                </property>
+                <property name="input (port)" class="ptolemy.kernel.util.StringAttribute" value="A multiport that accepts tokens of any type.">
                 </property>
-            </property>
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
         </entity>
-        <entity name="String Constant" class="ptolemy.actor.lib.StringConst">
-            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="1">
+        <entity name="String Constant2" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$END_PRODUCTS_DIR">
             </property>
-            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="if [ "x$EraseDirs" = "xtrue" ]; then  echo "Deleting files"; rm -rf $BOOKKEEPING_DIR/*;  rm -rf $LOGS_DIR/*; rm -rf $TMP_PRODUCTS_DIR/* ;  else echo "Will not delete files"; fi">
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
@@ -4792,7 +5243,7 @@
 <property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
 <property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
 <property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:204:1">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:121:3">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
@@ -4808,15 +5259,25 @@
                 <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
                 </property>
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{665.0, 695.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{731.6612027096114, 402.6910467791411}">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1">
+            </property>
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
+            <port name="trigger" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+                </property>
+            </port>
         </entity>
-        <entity name="String Constant2" class="ptolemy.actor.lib.StringConst">
-            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="1">
+        <entity name="String Constant3" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value=" Dataset has been reduced and saved in ">
             </property>
-            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="$RAWDATA_DIR">
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
@@ -4827,7 +5288,7 @@
 <property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
 <property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
 <property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:204:1">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:19:3">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
@@ -4843,117 +5304,113 @@
                 <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
                 </property>
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{825.0, 320.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{266.6612027096115, 232.69104677914112}">
+            </property>
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1:urn:lsid:kepler-project.org/ns/:13643:21:2">
+            </property>
+            <port name="trigger" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+                </property>
+            </port>
         </entity>
-        <entity name="DirectoryEraser" class="ptolemy.actor.lib.Exec">
-            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="1">
+        <entity name="Final directory path" class="org.resurgence.actor.StringAccumulator">
+            <property name="Substring separator" class="ptolemy.data.expr.Parameter" value=""/"">
             </property>
-            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke Sudholt</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>
The StringAccumulator actor reads multiple strings via its input port and outputs a string containing all of the input values. The characters separating the substrings in the output string can be specified with the substringSeparator parameter.</p></configure></property>
+<property name="port:whole" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the full string.</configure></property>
+<property name="port:parts" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts substrings.</configure></property>
+<property name="prop:Substring separator" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The characters used to separate the elements in the output string. By default, the value is "".</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:25:2">
             </property>
-            <property name="command" class="ptolemy.actor.parameters.PortParameter" value="sh">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.resurgence.actor.StringAccumulator">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1117:1">
+                </property>
             </property>
-            <property name="directory" class="ptolemy.data.expr.FileParameter" value="$CWD">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
             </property>
-            <property name="environment" class="ptolemy.data.expr.Parameter" value="{{name = "", value = ""}}">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#IterativeOperation">
             </property>
-            <property name="prependPlatformDependentShellCommand" class="ptolemy.data.expr.Parameter" value="false">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{341.6612027096115, 352.6910467791411}">
             </property>
-            <property name="throwExceptionOnNonZeroReturn" class="ptolemy.data.expr.Parameter" value="true">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:292:1">
             </property>
-            <property name="waitForProcess" class="ptolemy.data.expr.Parameter" value="true">
+        </entity>
+        <entity name="Write README" class="org.geon.FileWrite">
+            <property name="fileName" class="ptolemy.actor.parameters.FilePortParameter" value="ROOT_DATA_PATH_TO_REPLACE//reflex_end_products/2013-09-24T10:31:32/README">
+            </property>
+            <property name="append" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+            <property name="confirmOverwrite" class="ptolemy.data.expr.Parameter" value="false">
+            </property>
+            <property name="alwaysFlush" class="ptolemy.data.expr.Parameter" value="false">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Xiaojun Liu, Edward A. Lee, Steve Neuendorffer</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>No author given</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
<p>The External Execution actor executes a system command from a workflow. The actor accepts a command, a directory and environment in which to execute the command, and a command input string. Once the command has finished executing, the actor will output the execution results along with any errors. If no results are generated, the actor will output an empty string.</p>&# [...]
-<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts data generated by the executed command, output as a string after the command has finished executing. If the command generates no data on standard out, then the empty string (a string of length zero) is generated. </configure></property>
-<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input port that accepts strings to pass to the standard input of the subprocess. Note that a newline is not appended to the string. If you require a newline, add one using the AddSubtract actor. This port is an input port of type String.</configure></property>
-<property name="port:error" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts any errors generated by the command execution. Errors are output as a string after the command has finished executing. If the execution generates no errors, an empty string is output. </configure></property>
-<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If connected, a token must be available on this port before actor will execute.</configure></property>
-<property name="port:exitCode" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the command's exit code. A non-zero value signifies an error.</configure></property>
-<property name="prop:environment" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An array of records that name an environment variable and a value:
 
  {{name = "NAME1", value = "value1"}...}
  
Where NAME1 is the name of the environment variable, and value1 is the value. 
For example, {{name = "PTII", value = "c:/ptII"}} would set the value of the PTII to c:/ptII. 
If the parameter is set to {{name="&quot [...]
-<property name="prop:directory" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The directory in which to execute the command. The default value of this parameter $CWD, which represents the user's current working or home directory. </configure></property>
-<property name="prop:throwExceptionOnNonZeroReturn" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If true, then throw an exception if the subprocess returns non-zero.</configure></property>
-<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If a positive integer, then it is the maximum number of times to execute the actor.</configure></property>
-<property name="prop:prependPlatformDependentShellCommand" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
If true, then prepend the platform dependent shell command to the
parsed value of the command parameter.  By setting this argument
to true, it is possible to invoke commands in a platform neutral
method.
<p>Under Windows NT or XP, the arguments "cmd.exe" and "/C" are
prepended.  Under Windows 95, the arguments "com [...]
-<property name="prop:waitForProcess" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If true, then actor will wait until subprocess completes.</configure></property>
-<property name="prop:command" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The command to be executed (e.g., echo "Hello, world."). The command can be specified via either the command port or parameter.</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:102:1">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The FileWriter actor reads a string and writes it to a file. The actor outputs the file path of the generated file.</p>

<p>Specify a destination file path with the fileName parameter. If the specified file does not exist, then the actor will create it.  If the file already exists, then the actor will ask for permission to overwrite it (unless the append param [...]
+<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input port that receives a string to write to a file.</configure></property>
+<property name="port:url" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the file name of the generated file.</configure></property>
+<property name="prop:append" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether to append the input string to an existing, specified file. By default, the actor will overwrite any preexisting file.</configure></property>
+<property name="prop:confirmOverwrite" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether the actor should confirm before overwriting an existing file. By default, the actor will not ask for confirmation.</configure></property>
+<property name="prop:fileName" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The name of the file to which to write. See FileParameter for more information about specifying file names. </configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:43955:73:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.Exec">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:976:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.geon.FileWrite">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1003:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#ExternalExecutionEnvironmentActor">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#WriterOutputActor">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#UnixCommand">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#LocalOutput">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{135.0, 390.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{766.6612027096114, 557.6910467791411}">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:144:1:urn:lsid:kepler-project.org/ns/:15314:118:5">
             </property>
             <property name="" class="ptolemy.vergil.basic.DocAttribute">
-                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Xiaojun Liu, Edward A. Lee, Steve Neuendorffer">
-                </property>
-                <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
-                </property>
-                <property name="firingCountLimit (parameter)" class="ptolemy.data.expr.StringParameter" value="If a positive integer, then it is the maximum number of times to execute the actor.">
-                </property>
-                <property name="directory (parameter)" class="ptolemy.data.expr.StringParameter" value="The directory in which to execute the command. The default value of this parameter $CWD, which represents the user's current working or home directory. ">
-                </property>
-                <property name="environment (parameter)" class="ptolemy.data.expr.StringParameter" value="An array of records that name an environment variable and a value:
 
  {{name = "NAME1", value = "value1"}...}
  
Where NAME1 is the name of the environment variable, and value1 is the value. 
For example, {{name = "PTII", value = "c:/ptII"}} would set the value of the PTII to c:/ptII. 
If the parameter is set to {{name= [...]
-                </property>
-                <property name="prependPlatformDependentShellCommand (parameter)" class="ptolemy.data.expr.StringParameter" value="
If true, then prepend the platform dependent shell command to the
parsed value of the command parameter.  By setting this argument
to true, it is possible to invoke commands in a platform neutral
method.
<p>Under Windows NT or XP, the arguments "cmd.exe" and "/C" are
prepended.  Under Windows 95, the argument [...]
-                </property>
-                <property name="throwExceptionOnNonZeroReturn (parameter)" class="ptolemy.data.expr.StringParameter" value="If true, then throw an exception if the subprocess returns non-zero.">
+                <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>The FileWriter actor reads a string and writes it to a file. The actor outputs the file path of the generated file.</p>

<p>Specify a destination file path with the fileName parameter. If the specified file does not exist, then the actor will create it.  If the file already exists, then the actor will ask for permission to overwrite it (unless the append parameter  [...]
                 </property>
-                <property name="waitForProcess (parameter)" class="ptolemy.data.expr.StringParameter" value="If true, then actor will wait until subprocess completes.">
+                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="No author given">
                 </property>
-                <property name="output (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts data generated by the executed command, output as a string after the command has finished executing. If the command generates no data on standard out, then the empty string (a string of length zero) is generated. ">
+                <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
                 </property>
-                <property name="trigger (port)" class="ptolemy.kernel.util.StringAttribute" value="If connected, a token must be available on this port before actor will execute.">
+                <property name="append (parameter)" class="ptolemy.data.expr.StringParameter" value="Specify whether to append the input string to an existing, specified file. By default, the actor will overwrite any preexisting file.">
                 </property>
-                <property name="error (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts any errors generated by the command execution. Errors are output as a string after the command has finished executing. If the execution generates no errors, an empty string is output. ">
+                <property name="confirmOverwrite (parameter)" class="ptolemy.data.expr.StringParameter" value="Specify whether the actor should confirm before overwriting an existing file. By default, the actor will not ask for confirmation.">
                 </property>
-                <property name="input (port)" class="ptolemy.kernel.util.StringAttribute" value="An input port that accepts strings to pass to the standard input of the subprocess. Note that a newline is not appended to the string. If you require a newline, add one using the AddSubtract actor. This port is an input port of type String.">
+                <property name="input (port)" class="ptolemy.kernel.util.StringAttribute" value="An input port that receives a string to write to a file.">
                 </property>
-                <property name="exitCode (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts the command's exit code. A non-zero value signifies an error.">
+                <property name="url (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts the file name of the generated file.">
                 </property>
-                <property name="command (parameter)" class="ptolemy.data.expr.StringParameter" value="The command to be executed (e.g., echo "Hello, world."). The command can be specified via either the command port or parameter.">
+                <property name="fileName (parameter)" class="ptolemy.data.expr.StringParameter" value="The name of the file to which to write. See FileParameter for more information about specifying file names. ">
                 </property>
             </property>
-            <port name="output" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-                </property>
-            </port>
-            <port name="command" class="ptolemy.actor.parameters.ParameterPort">
-                <property name="input"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-                </property>
-            </port>
-            <port name="error" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-                </property>
-            </port>
-            <port name="input" class="ptolemy.actor.TypedIOPort">
+            <port name="fileName" class="ptolemy.actor.parameters.ParameterPort">
                 <property name="input"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
                 </property>
             </port>
-            <port name="exitCode" class="ptolemy.actor.TypedIOPort">
+            <port name="url" class="ptolemy.actor.TypedIOPort">
                 <property name="output"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                <property name="_hide" class="ptolemy.data.expr.SingletonParameter" value="true">
                 </property>
             </port>
         </entity>
-        <entity name="String Constant3" class="ptolemy.actor.lib.StringConst">
-            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="1">
+        <entity name="String Constant4" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$END_PRODUCTS_SUBDIR">
             </property>
-            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="$CALIB_DATA_DIR">
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
@@ -4964,7 +5421,7 @@
 <property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
 <property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
 <property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:14094:71:2">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:23:2">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
@@ -4980,394 +5437,417 @@
                 <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
                 </property>
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{835.0, 455.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{231.66120270961147, 402.6910467791411}">
             </property>
             <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1">
             </property>
+            <port name="trigger" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+                </property>
+            </port>
         </entity>
-        <relation name="relation" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+        <entity name="String Constant5" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$GLOBAL_TIMESTAMP">
             </property>
-        </relation>
-        <relation name="relation2" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
             </property>
-            <vertex name="vertex1" value="[665.0, 385.0]">
-            </vertex>
-        </relation>
-        <relation name="relation3" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-        </relation>
-        <relation name="relation4" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
+<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
+<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
+<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:122:3">
             </property>
-        </relation>
-        <relation name="relation5" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
+                </property>
             </property>
-        </relation>
-        <relation name="relation6" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
             </property>
-        </relation>
-        <relation name="relation7" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
+            </property>
+            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
+                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
+                </property>
+                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
+                </property>
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{741.6612027096114, 442.6910467791411}">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1">
+            </property>
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <port name="trigger" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+                </property>
+            </port>
+        </entity>
+        <entity name="Write to stdout" class="org.geon.FileWrite">
+            <property name="fileName" class="ptolemy.actor.parameters.FilePortParameter" value="/dev/stdout">
+            </property>
+            <property name="append" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+            <property name="confirmOverwrite" class="ptolemy.data.expr.Parameter" value="false">
+            </property>
+            <property name="alwaysFlush" class="ptolemy.data.expr.Parameter" value="true">
             </property>
-        </relation>
-        <link port="raw_data_dir" relation="relation7"/>
-        <link port="Variable Setter.input" relation="relation3"/>
-        <link port="Variable Setter.output" relation="relation2"/>
-        <link port="Elements To Array.input" relation="relation"/>
-        <link port="Elements To Array.input" relation="relation4"/>
-        <link port="Elements To Array.output" relation="relation7"/>
-        <link port="Time Stamp.output" relation="relation3"/>
-        <link port="Time Stamp.trigger" relation="relation6"/>
-        <link port="String Constant.output" relation="relation5"/>
-        <link port="String Constant2.output" relation="relation"/>
-        <link port="String Constant2.trigger" relation="relation2"/>
-        <link port="DirectoryEraser.output" relation="relation6"/>
-        <link port="DirectoryEraser.input" relation="relation5"/>
-        <link port="String Constant3.output" relation="relation4"/>
-        <link port="String Constant3.trigger" relation="relation2"/>
-    </entity>
-    <entity name="DataFilter" class="org.eso.DataFilter">
-        <property name="Mode" class="ptolemy.data.expr.StringParameter" value="Skip">
-        </property>
-        <property name="FITS Viewer" class="ptolemy.data.expr.StringParameter" value="$FITS_VIEWER">
-        </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The DataFilter displays all the files in a given SoF and allows the user to view their header, view them in an external application, select or deselect only some of them and then continue or pause the workflow.</configure></property>
-<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input SoF</configure></property>
-<property name="port:sof rejected" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The rejected SoF</configure></property>
-<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The selected SoF</configure></property>
-<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:FITS Viewer" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The application used to inspect FITS files</configure></property>
-<property name="prop:Mode" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>Skip: automatically select all files and don't show any window;</p><p>Display: select all the files and allow the user only to view them;</p><p>Select: standard mode.</p></configure></property>
-<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:29452:75:2">
-        </property>
-        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.DataFilter">
-            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>No author given</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The FileWriter actor reads a string and writes it to a file. The actor outputs the file path of the generated file.</p>

<p>Specify a destination file path with the fileName parameter. If the specified file does not exist, then the actor will create it.  If the file already exists, then the actor will ask for permission to overwrite it (unless the append param [...]
+<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input port that receives a string to write to a file.</configure></property>
+<property name="port:url" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the file name of the generated file.</configure></property>
+<property name="prop:append" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether to append the input string to an existing, specified file. By default, the actor will overwrite any preexisting file.</configure></property>
+<property name="prop:confirmOverwrite" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether the actor should confirm before overwriting an existing file. By default, the actor will not ask for confirmation.</configure></property>
+<property name="prop:fileName" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The name of the file to which to write. See FileParameter for more information about specifying file names. </configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:24:2">
             </property>
-        </property>
-        <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
-        </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[1135.0, 670.0]">
-        </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:901:1">
-        </property>
-        <port name="sof in" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="multiport"/>
-            <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.geon.FileWrite">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1003:1">
+                </property>
             </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#WriterOutputActor">
             </property>
-        </port>
-        <port name="sof out" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="multiport"/>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#LocalOutput">
             </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{846.6612027096114, 242.69104677914112}">
             </property>
-        </port>
-        <port name="sof rejected" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="multiport"/>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:144:1:urn:lsid:kepler-project.org/ns/:15165:55:3">
+            </property>
+        </entity>
+        <entity name="String Constant6" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$END_PRODUCTS_DIR">
+            </property>
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
+            </property>
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-        </port>
-    </entity>
-    <entity name="SofCombiner4" class="org.eso.SofCombiner">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofCombiner takes as input a number of set of files and combines them into one set of files that contains only the files whose purposes are present in all the input tokens. With this respect empty tokens are ignored and files with universal purpose are always collected</configure></property>
-<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sofs</configure></property>
-<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The combined sof</configure></property>
-<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:29452:78:2">
-        </property>
-        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofCombiner">
-            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
+<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
+<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
+<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:23:5">
             </property>
-        </property>
-        <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
-        </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[-120.0, 745.0]">
-        </property>
-        <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
-        </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:908:1">
-        </property>
-        <port name="sof in" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="multiport"/>
-            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
+                </property>
             </property>
-        </port>
-        <port name="sof in opt" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="multiport"/>
-            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
             </property>
-        </port>
-        <port name="sof out" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="multiport"/>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
+            </property>
+            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
+                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
+                </property>
+                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
+                </property>
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{236.66120270961147, 342.6910467791411}">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1">
+            </property>
+            <port name="trigger" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+                </property>
+            </port>
+        </entity>
+        <entity name="Path to README" class="org.resurgence.actor.StringAccumulator">
+            <property name="Substring separator" class="ptolemy.data.expr.Parameter" value=""/"">
             </property>
-        </port>
-    </entity>
-    <entity name="ProductRenamer" class="ptolemy.actor.lib.python.PythonScript">
-        <property name="script" class="ptolemy.kernel.util.StringAttribute" value="import os
import shutil

from ptolemy.data import StringToken, IntToken
from ptolemy.data.expr import Parameter
from org.eso.util import JSONTools
from nom.tam.fits import Fits
from ptolemy.kernel.util import IllegalActionException
import org.apache.log4j

class Main :
  "ProductRenamer"

  def fire(self) :

    #Get the logger
    l [...]
-        </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Renames recipe products based on FITS keywords</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure> This actor moves (or copies or links) its input sof to a final product directory based on some FITS keywords.
 Usually, it should be connected to the output of the recipes that produce final products. If the recipe produces more products that are not relevant to rename, an output filter can be put in the recipe.</configure></property>
-<property name="port:sof_out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The final list of files produced</configure></property>
-<property name="port:sof_in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The files to be copied/moved or linked</configure></property>
-<property name="prop:RenameKeywords" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The list of keywords used to create the new name. This is actually a string of comma separated values, each containing either the name of keyword or a constant string value. For instance, a valid value would be DATE,'-',HIERARCH.ESO.DPR.CATG</configure></property>
-<property name="prop:OutputExistsMode" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>This parameter defines the behaviour in case the output files already exists: it can be "append_version" (create a new file with a running index suffix), "overwrite" (replace the existing file), "stop" (stop the workflow)</configure></property>
-<property name="prop:script" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:FinalProductDirectory" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The directory where the files are going to be copied/linked or renamed. It is usually set to END_PRODUCTS_DIR</configure></property>
-<property name="prop:SubDir" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If it is not empty, a subdirectory will be created with this string. The value can contain backslashes (and intermediate directories will be created). It will usually be END_PROD_SUBDIR, created somewhere in the workflow</configure></property>
-<property name="prop:CopyMode" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>There are several options: "copy", "move" or "link".</configure></property>
-</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:29452:79:5">
-        </property>
-        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.python.PythonScript">
-            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke Sudholt</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>
The StringAccumulator actor reads multiple strings via its input port and outputs a string containing all of the input values. The characters separating the substrings in the output string can be specified with the substringSeparator parameter.</p></configure></property>
+<property name="port:whole" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the full string.</configure></property>
+<property name="port:parts" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts substrings.</configure></property>
+<property name="prop:Substring separator" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The characters used to separate the elements in the output string. By default, the value is "".</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:43955:72:1">
             </property>
-        </property>
-        <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
-        </property>
-        <property name="_editorFactory" class="ptolemy.vergil.toolbox.TextEditorConfigureFactory">
-            <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="script">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.resurgence.actor.StringAccumulator">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1117:1">
+                </property>
             </property>
-        </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[1135.0, 875.0]">
-        </property>
-        <property name="RenameKeywords" class="ptolemy.data.expr.StringParameter" value="HIERARCH.ESO.OBS.NAME,'_',HIERARCH.ESO.PRO.CATG">
-        </property>
-        <property name="FinalProductDirectory" class="ptolemy.data.expr.StringParameter" value="$END_PRODUCTS_DIR">
-        </property>
-        <property name="SubDir" class="ptolemy.data.expr.StringParameter" value="$END_PRODUCTS_SUBDIR">
-        </property>
-        <property name="CopyMode" class="ptolemy.data.expr.StringParameter" value="copy">
-        </property>
-        <property name="OutputExistsMode" class="ptolemy.data.expr.StringParameter" value="append_version">
-        </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:910:1">
-        </property>
-        <port name="sof_in" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
             </property>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#IterativeOperation">
             </property>
-        </port>
-        <port name="sof_out" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="multiport"/>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{876.6612027096114, 427.6910467791411}">
             </property>
-        </port>
-    </entity>
-    <entity name="Data Set Selection" class="ptolemy.actor.TypedCompositeActor">
-        <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="8.1.devel">
-        </property>
-        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31989:70:2">
-        </property>
-        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.TypedCompositeActor">
-            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:292:1:urn:lsid:kepler-project.org/ns/:15314:124:4">
+            </property>
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            </property>
+            <port name="whole" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+                </property>
+            </port>
+        </entity>
+        <entity name="Final message" class="org.resurgence.actor.StringAccumulator">
+            <property name="Substring separator" class="ptolemy.data.expr.Parameter" value="""">
             </property>
-        </property>
-        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Actor">
-        </property>
-        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#GeneralPurpose">
-        </property>
-        <property name="semanticType22" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Workflow">
-        </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke Sudholt</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</ [...]
-</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[-490.0, 855.0]">
-        </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1">
-        </property>
-        <property name="DDF Director" class="ptolemy.domains.ddf.kernel.DDFDirector">
-            <property name="timeResolution" class="ptolemy.actor.parameters.SharedParameter" value="1E-10">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>
The StringAccumulator actor reads multiple strings via its input port and outputs a string containing all of the input values. The characters separating the substrings in the output string can be specified with the substringSeparator parameter.</p></configure></property>
+<property name="port:whole" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the full string.</configure></property>
+<property name="port:parts" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts substrings.</configure></property>
+<property name="prop:Substring separator" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The characters used to separate the elements in the output string. By default, the value is "".</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:26:1">
             </property>
-            <property name="iterations" class="ptolemy.data.expr.Parameter" value="0">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.resurgence.actor.StringAccumulator">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1117:1">
+                </property>
             </property>
-            <property name="maximumReceiverCapacity" class="ptolemy.data.expr.Parameter" value="0">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
             </property>
-            <property name="runUntilDeadlockInOneIteration" class="ptolemy.data.expr.Parameter" value="true">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#IterativeOperation">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{476.6612027096115, 312.6910467791411}">
+            </property>
+            <property name="" class="ptolemy.vergil.basic.DocAttribute">
+                <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>
The StringAccumulator actor reads multiple strings via its input port and outputs a string containing all of the input values. The characters separating the substrings in the output string can be specified with the substringSeparator parameter.</p>">
+                </property>
+                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Wibke Sudholt">
+                </property>
+                <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
+                </property>
+                <property name="Substring separator (parameter)" class="ptolemy.data.expr.StringParameter" value="The characters used to separate the elements in the output string. By default, the value is "".">
+                </property>
+                <property name="parts (port)" class="ptolemy.kernel.util.StringAttribute" value="A multiport that accepts substrings.">
+                </property>
+                <property name="whole (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts the full string.">
+                </property>
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:292:1">
+            </property>
+        </entity>
+        <entity name="String Constant7" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value=" with files: ">
+            </property>
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
+            </property>
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Gang Zhou</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
            <p> The dynamic dataflow (DDF) domain is a superset of the synchronous
            dataflow(SDF) and Boolean dataflow(BDF) domains. In the SDF domain,
            an actor consumes and produces a fixed number of tokens per firing.
            This static information makes possible compile-time scheduling. In the
            DDF domain, there are few  [...]
-<property name="prop:maximumReceiverCapacity" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A Parameter representing the maximum capacity of each receiver controlled by this director. This is an integer that defaults to 0, which means the queue in each receiver is unbounded. To specify bounded queues, set this to a positive integer. </configure></property>
-<property name="prop:iterations" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify the number of times a workflow is iterated. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. </configure></property>
-<property name="prop:runUntilDeadlockInOneIteration" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A parameter indicating whether one iteration consists of repeated basic iterations until deadlock. If this parameter is true, the model will be executed until deadlock in one iteration. The default value is a BooleanToken with the value false. It cannot be set to true if this director is at the top level.</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31617:99:1">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
+<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
+<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
+<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:43955:68:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.domains.ddf.kernel.DDFDirector">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:directorclass:5:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Director">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Director">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{-10.0, 285.0}">
+            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
+                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
+                </property>
+                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
+                </property>
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:director:5:1">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{231.66120270961147, 442.6910467791411}">
             </property>
-        </property>
-        <port name="datasets_in" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="multiport"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{-5.0, 415.0}">
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1:urn:lsid:kepler-project.org/ns/:13643:21:2:urn:lsid:kepler-project.org/ns/:17547:19:3">
+            </property>
+            <port name="trigger" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+                </property>
+            </port>
+        </entity>
+        <entity name="README message" class="org.resurgence.actor.StringAccumulator">
+            <property name="Substring separator" class="ptolemy.data.expr.Parameter" value="""">
             </property>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke Sudholt</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>
The StringAccumulator actor reads multiple strings via its input port and outputs a string containing all of the input values. The characters separating the substrings in the output string can be specified with the substringSeparator parameter.</p></configure></property>
+<property name="port:whole" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the full string.</configure></property>
+<property name="port:parts" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts substrings.</configure></property>
+<property name="prop:Substring separator" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The characters used to separate the elements in the output string. By default, the value is "".</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:43955:69:4">
             </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.resurgence.actor.StringAccumulator">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1117:1">
+                </property>
             </property>
-        </port>
-        <port name="dataset_out" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="multiport"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{220.0, 415.0}">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
             </property>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#IterativeOperation">
             </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{451.6612027096115, 462.6910467791411}">
             </property>
-        </port>
-        <entity name="DataSetChooser" class="org.eso.DataSetChooser">
-            <display name="Data Set Chooser"/>
-            <property name="Mode" class="ptolemy.data.expr.StringParameter" value="Select">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:292:1:urn:lsid:kepler-project.org/ns/:17547:25:2">
             </property>
-            <property name="FITS Viewer" class="ptolemy.data.expr.StringParameter" value="$FITS_VIEWER">
+        </entity>
+        <entity name="ObjectToText" class="org.eso.ObjectToText">
+            <property name="Include Header and Footer" class="ptolemy.data.expr.Parameter" value="true">
             </property>
-            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31617:78:3">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Converts Reflex JSON objects into a human-readable form</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The ObjectToString converts the JSON objects used by ESO actors (i.e. datasets, sof and sop) into a human-readable form.</configure></property>
+<property name="port:text out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A nicely formatted string</configure></property>
+<property name="port:json in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input JSON object</configure></property>
+<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:Include Header and Footer" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>if true the output text will contain a descriptive header and footer</configure></property>
+<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:907:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.DataSetChooser">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.ObjectToText">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
                 </property>
             </property>
             <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
             </property>
-            <property name="" class="ptolemy.vergil.basic.DocAttribute">
-                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="ESO">
-                </property>
-                <property name="version" class="ptolemy.kernel.util.StringAttribute" value="1.0">
-                </property>
-                <property name="Mode (parameter)" class="ptolemy.data.expr.StringParameter" value="<p>Skip: automatically select all files and don't show any window;</p><p>Display: select all the files and allow the user only to view them;</p><p>Select: standard mode.</p>">
-                </property>
-                <property name="FITS Viewer (parameter)" class="ptolemy.data.expr.StringParameter" value="The application used to inspect FITS files">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[250.0, 500.0]">
+            </property>
+            <port name="json in" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
                 </property>
-                <property name="class (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
                 </property>
-                <property name="semanticType41 (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+            </port>
+            <port name="text out" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
                 </property>
-                <property name="LoSOs (port)" class="ptolemy.kernel.util.StringAttribute" value="The input LoSOs">
+                <property name="tokenProductionRate" class="ptolemy.data.expr.Parameter" value="1">
                 </property>
-                <property name="sof (port)" class="ptolemy.kernel.util.StringAttribute" value="The SoF of the current LoSO">
+            </port>
+        </entity>
+        <entity name="String Constant8" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$BOOKKEEPING_DIR/bookkeeping.db">
+            </property>
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
+            </property>
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
+            </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
+<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
+<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
+<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44576:8:1">
+            </property>
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
                 </property>
-                <property name="sop (port)" class="ptolemy.kernel.util.StringAttribute" value="The SoP of the current LoSO">
+            </property>
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
+            </property>
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
+            </property>
+            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
+                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
                 </property>
-                <property name="entityId (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
                 </property>
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{75.0, 395.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[285.0, 575.0]">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:workflow:5:1:urn:lsid:kepler-project.org/ns/:12776:6:1:urn:lsid:kepler-project.org/ns/:13961:210:1">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1:urn:lsid:kepler-project.org/ns/:17547:23:2:urn:lsid:kepler-project.org/ns/:38241:62:1">
             </property>
-            <port name="datasets in" class="ptolemy.actor.TypedIOPort">
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <port name="trigger" class="ptolemy.actor.TypedIOPort">
                 <property name="input"/>
                 <property name="multiport"/>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="WEST">
-                </property>
-            </port>
-            <port name="dataset out" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="multiport"/>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="EAST">
-                </property>
-            </port>
-            <port name="#selected" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="_hide" class="ptolemy.data.expr.SingletonParameter" value="false">
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
                 </property>
             </port>
         </entity>
-        <entity name="Variable Setter" class="ptolemy.actor.lib.SetVariable">
-            <property name="variableName" class="ptolemy.kernel.util.StringAttribute" value="N_SELECTED_DATASETS">
+        <entity name="String Constant9" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$GLOBAL_TIMESTAMP">
             </property>
-            <property name="delayed" class="ptolemy.data.expr.Parameter" value="false">
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
+            </property>
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee, Steve Neuendorffer, Jerome Blanc</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
Set the value of a variable. The result may occur at two different times, depending on the value of the delayed parameter. 
If delayed is true, then the change to the value of the variable is implemented in a change request, and consequently will not take hold until the end of the current toplevel iteration. This helps ensure that users of value of the variable will see changes t [...]
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31989:67:1">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
+<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
+<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
+<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44576:9:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.SetVariable">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:886:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Variable">
-            </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#LocalInput">
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{75.0, 510.0}">
-            </property>
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:10:1:urn:lsid:kepler-project.org/ns/:13757:404:3:urn:lsid:kepler-project.org/ns/:31617:89:8">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
             </property>
-            <property name="" class="ptolemy.vergil.basic.DocAttribute">
-                <property name="description" class="ptolemy.kernel.util.StringAttribute" value="
Set the value of a variable. The result may occur at two different times, depending on the value of the delayed parameter. 
If delayed is true, then the change to the value of the variable is implemented in a change request, and consequently will not take hold until the end of the current toplevel iteration. This helps ensure that users of value of the variable will see changes to the [...]
-                </property>
-                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Edward Lee, Steve Neuendorffer, Jerome Blanc">
+            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
+                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
                 </property>
-                <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
+                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
                 </property>
             </property>
-            <property name="requiredFiringsPerIteration" class="ptolemy.data.expr.Parameter" value="1">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[240.0, 640.0]">
             </property>
-            <port name="input" class="ptolemy.actor.TypedIOPort">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1:urn:lsid:kepler-project.org/ns/:17547:23:2:urn:lsid:kepler-project.org/ns/:38241:63:1">
+            </property>
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <port name="trigger" class="ptolemy.actor.TypedIOPort">
                 <property name="input"/>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
-                </property>
-            </port>
-            <port name="output" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
                 </property>
             </port>
         </entity>
         <relation name="relation" class="ptolemy.actor.TypedIORelation">
             <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
+            <vertex name="vertex1" value="{576.6612027096114, 497.6910467791411}">
+            </vertex>
         </relation>
         <relation name="relation2" class="ptolemy.actor.TypedIORelation">
             <property name="width" class="ptolemy.data.expr.Parameter" value="1">
@@ -5377,12 +5857,105 @@
             <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
         </relation>
-        <link port="datasets_in" relation="relation3"/>
-        <link port="dataset_out" relation="relation"/>
-        <link port="DataSetChooser.datasets in" relation="relation3"/>
-        <link port="DataSetChooser.dataset out" relation="relation"/>
-        <link port="DataSetChooser.#selected" relation="relation2"/>
-        <link port="Variable Setter.input" relation="relation2"/>
+        <relation name="relation4" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation5" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation6" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation7" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation8" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation9" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation10" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+            <vertex name="vertex1" value="{101.66120270961146, 482.6910467791411}">
+            </vertex>
+        </relation>
+        <relation name="relation11" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation12" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+            <vertex name="vertex1" value="{571.6612027096114, 327.6910467791411}">
+            </vertex>
+        </relation>
+        <relation name="relation13" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation14" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation15" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation16" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <link port="current_dataset" relation="relation7"/>
+        <link port="final_files" relation="relation10"/>
+        <link port="bookkeeping_db" relation="relation15"/>
+        <link port="global_timestamp" relation="relation16"/>
+        <link port="String Constant.output" relation="relation9"/>
+        <link port="String Constant.trigger" relation="relation"/>
+        <link port="Finished Datasets.input" relation="relation12"/>
+        <link port="String Constant2.output" relation="relation2"/>
+        <link port="String Constant2.trigger" relation="relation"/>
+        <link port="String Constant3.output" relation="relation11"/>
+        <link port="String Constant3.trigger" relation="relation10"/>
+        <link port="Final directory path.parts" relation="relation5"/>
+        <link port="Final directory path.parts" relation="relation3"/>
+        <link port="Final directory path.whole" relation="relation4"/>
+        <link port="Write README.input" relation="relation"/>
+        <link port="Write README.fileName" relation="relation6"/>
+        <link port="String Constant4.output" relation="relation3"/>
+        <link port="String Constant4.trigger" relation="relation10"/>
+        <link port="String Constant5.output" relation="relation8"/>
+        <link port="String Constant5.trigger" relation="relation"/>
+        <link port="Write to stdout.input" relation="relation12"/>
+        <link port="String Constant6.output" relation="relation5"/>
+        <link port="String Constant6.trigger" relation="relation10"/>
+        <link port="Path to README.parts" relation="relation2"/>
+        <link port="Path to README.parts" relation="relation8"/>
+        <link port="Path to README.parts" relation="relation9"/>
+        <link port="Path to README.whole" relation="relation6"/>
+        <link port="Final message.parts" relation="relation7"/>
+        <link port="Final message.parts" relation="relation11"/>
+        <link port="Final message.parts" relation="relation4"/>
+        <link port="Final message.whole" relation="relation12"/>
+        <link port="String Constant7.output" relation="relation13"/>
+        <link port="String Constant7.trigger" relation="relation10"/>
+        <link port="README message.parts" relation="relation12"/>
+        <link port="README message.parts" relation="relation13"/>
+        <link port="README message.parts" relation="relation14"/>
+        <link port="README message.whole" relation="relation"/>
+        <link port="ObjectToText.json in" relation="relation10"/>
+        <link port="ObjectToText.text out" relation="relation14"/>
+        <link port="String Constant8.output" relation="relation15"/>
+        <link port="String Constant8.trigger" relation="relation10"/>
+        <link port="String Constant9.output" relation="relation16"/>
+        <link port="String Constant9.trigger" relation="relation10"/>
     </entity>
     <relation name="relation15" class="ptolemy.actor.TypedIORelation">
         <property name="width" class="ptolemy.data.expr.Parameter" value="1">
@@ -5422,10 +5995,6 @@
         <property name="width" class="ptolemy.data.expr.Parameter" value="1">
         </property>
     </relation>
-    <relation name="relation9" class="ptolemy.actor.TypedIORelation">
-        <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-        </property>
-    </relation>
     <relation name="relation2" class="ptolemy.actor.TypedIORelation">
         <property name="width" class="ptolemy.data.expr.Parameter" value="1">
         </property>
@@ -5454,23 +6023,23 @@
         <vertex name="vertex1" value="[690.0, 1010.0]">
         </vertex>
     </relation>
-    <relation name="relation8" class="ptolemy.actor.TypedIORelation">
-        <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-        </property>
-    </relation>
-    <relation name="relation10" class="ptolemy.actor.TypedIORelation">
-        <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-        </property>
-    </relation>
     <relation name="relation13" class="ptolemy.actor.TypedIORelation">
     </relation>
     <relation name="relation5" class="ptolemy.actor.TypedIORelation">
     </relation>
     <relation name="relation11" class="ptolemy.actor.TypedIORelation">
     </relation>
+    <relation name="relation" class="ptolemy.actor.TypedIORelation">
+    </relation>
+    <relation name="relation9" class="ptolemy.actor.TypedIORelation">
+    </relation>
     <relation name="relation22" class="ptolemy.actor.TypedIORelation">
     </relation>
-    <relation name="relation" class="ptolemy.actor.TypedIORelation">
+    <relation name="relation8" class="ptolemy.actor.TypedIORelation">
+    </relation>
+    <relation name="relation10" class="ptolemy.actor.TypedIORelation">
+    </relation>
+    <relation name="relation23" class="ptolemy.actor.TypedIORelation">
     </relation>
     <link port="FitsRouter.in" relation="relation11"/>
     <link port="FitsRouter.calib" relation="relation14"/>
@@ -5503,21 +6072,23 @@
     <link port="SofCombiner3.sof out" relation="relation16"/>
     <link port="Vmifuscience.sof_in" relation="relation7"/>
     <link port="Vmifuscience.sof_out" relation="relation9"/>
-    <link port="Initialise Current Dataset.current_dataset" relation="relation22"/>
+    <link port="Initialise Current Dataset.current_dataset" relation="relation8"/>
     <link port="Initialise Current Dataset.dataset" relation="relation11"/>
     <link port="Initialise Current Dataset.dataset_in" relation="relation5"/>
-    <link port="Close DataSet.current_dataset" relation="relation22"/>
-    <link port="Close DataSet.final_files" relation="relation10"/>
     <link port="DataOrganizer.input data" relation="relation"/>
     <link port="DataOrganizer.datasets out" relation="relation13"/>
     <link port="Initialize.raw_data_dir" relation="relation"/>
-    <link port="DataFilter.sof in" relation="relation9"/>
-    <link port="DataFilter.sof out" relation="relation8"/>
     <link port="SofCombiner4.sof in" relation="relation21"/>
     <link port="SofCombiner4.sof in" relation="relation12"/>
     <link port="SofCombiner4.sof out" relation="relation2"/>
-    <link port="ProductRenamer.sof_in" relation="relation8"/>
-    <link port="ProductRenamer.sof_out" relation="relation10"/>
     <link port="Data Set Selection.datasets_in" relation="relation13"/>
     <link port="Data Set Selection.dataset_out" relation="relation5"/>
+    <link port="ProvenanceExplorer.bookkeeping db" relation="relation23"/>
+    <link port="ProvenanceExplorer.start date" relation="relation10"/>
+    <link port="ProductRenamer.sof_in" relation="relation9"/>
+    <link port="ProductRenamer.sof_out" relation="relation22"/>
+    <link port="Close DataSet.current_dataset" relation="relation8"/>
+    <link port="Close DataSet.final_files" relation="relation22"/>
+    <link port="Close DataSet.bookkeeping_db" relation="relation23"/>
+    <link port="Close DataSet.global_timestamp" relation="relation10"/>
 </entity>
diff --git a/reflex/VimosMos.xml.in b/reflex/VimosMos.xml.in
index 4eb7600..27067e3 100644
--- a/reflex/VimosMos.xml.in
+++ b/reflex/VimosMos.xml.in
@@ -28,11 +28,11 @@
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The Rectangle attribute renders a rectangle on the Workflow canvas. Single-click the rectangle to drag the resize handles and adjust the shape's size, or double-click the rectangle to customize its height, width, line width, color, and fill color.</p></configure></property>
-<property name="prop:height" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The vertical extent. The value is a double that defaults to 100.0.</configure></property>
 <property name="prop:lineWidth" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line width. The value is a double that defaults to 1.0.</configure></property>
-<property name="prop:rounding" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The amount of rounding of the corners. The value is a double that defaults to 0.0, which indicates no rounding.</configure></property>
-<property name="prop:centered" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Indicate whether the shape should be centered on its origin. By default, the location is the upper-left corner.</configure></property>
+<property name="prop:height" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The vertical extent. The value is a double that defaults to 100.0.</configure></property>
 <property name="prop:dashArray" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify a dash-pattern for dashed or dotted lines. The value consists of an array of doubles that specify the length of the alternating solid and transparent segments. An empty value indicates that the line should not be dashed (the default).</configure></property>
+<property name="prop:centered" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Indicate whether the shape should be centered on its origin. By default, the location is the upper-left corner.</configure></property>
+<property name="prop:rounding" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The amount of rounding of the corners. The value is a double that defaults to 0.0, which indicates no rounding.</configure></property>
 <property name="prop:width" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The horizontal extent. The value is a double that defaults to 100.0.</configure></property>
 <property name="prop:lineColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
 <property name="prop:fillColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The fill color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. By default, the value is "none."</configure></property>
@@ -77,11 +77,11 @@
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The Rectangle attribute renders a rectangle on the Workflow canvas. Single-click the rectangle to drag the resize handles and adjust the shape's size, or double-click the rectangle to customize its height, width, line width, color, and fill color.</p></configure></property>
-<property name="prop:lineWidth" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line width. The value is a double that defaults to 1.0.</configure></property>
 <property name="prop:height" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The vertical extent. The value is a double that defaults to 100.0.</configure></property>
-<property name="prop:dashArray" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify a dash-pattern for dashed or dotted lines. The value consists of an array of doubles that specify the length of the alternating solid and transparent segments. An empty value indicates that the line should not be dashed (the default).</configure></property>
-<property name="prop:centered" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Indicate whether the shape should be centered on its origin. By default, the location is the upper-left corner.</configure></property>
+<property name="prop:lineWidth" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line width. The value is a double that defaults to 1.0.</configure></property>
 <property name="prop:rounding" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The amount of rounding of the corners. The value is a double that defaults to 0.0, which indicates no rounding.</configure></property>
+<property name="prop:centered" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Indicate whether the shape should be centered on its origin. By default, the location is the upper-left corner.</configure></property>
+<property name="prop:dashArray" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify a dash-pattern for dashed or dotted lines. The value consists of an array of doubles that specify the length of the alternating solid and transparent segments. An empty value indicates that the line should not be dashed (the default).</configure></property>
 <property name="prop:width" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The horizontal extent. The value is a double that defaults to 100.0.</configure></property>
 <property name="prop:lineColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
 <property name="prop:fillColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The fill color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. By default, the value is "none."</configure></property>
@@ -126,11 +126,11 @@
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The Rectangle attribute renders a rectangle on the Workflow canvas. Single-click the rectangle to drag the resize handles and adjust the shape's size, or double-click the rectangle to customize its height, width, line width, color, and fill color.</p></configure></property>
-<property name="prop:height" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The vertical extent. The value is a double that defaults to 100.0.</configure></property>
 <property name="prop:lineWidth" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line width. The value is a double that defaults to 1.0.</configure></property>
-<property name="prop:rounding" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The amount of rounding of the corners. The value is a double that defaults to 0.0, which indicates no rounding.</configure></property>
-<property name="prop:centered" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Indicate whether the shape should be centered on its origin. By default, the location is the upper-left corner.</configure></property>
+<property name="prop:height" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The vertical extent. The value is a double that defaults to 100.0.</configure></property>
 <property name="prop:dashArray" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify a dash-pattern for dashed or dotted lines. The value consists of an array of doubles that specify the length of the alternating solid and transparent segments. An empty value indicates that the line should not be dashed (the default).</configure></property>
+<property name="prop:centered" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Indicate whether the shape should be centered on its origin. By default, the location is the upper-left corner.</configure></property>
+<property name="prop:rounding" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The amount of rounding of the corners. The value is a double that defaults to 0.0, which indicates no rounding.</configure></property>
 <property name="prop:width" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The horizontal extent. The value is a double that defaults to 100.0.</configure></property>
 <property name="prop:lineColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
 <property name="prop:fillColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The fill color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. By default, the value is "none."</configure></property>
@@ -149,7 +149,7 @@
         <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:434:1">
         </property>
     </property>
-    <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="8.1.devel">
+    <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="9.1.devel">
     </property>
     <property name="ROOT_DATA_DIR" class="ptolemy.data.expr.FileParameter" value="ROOT_DATA_PATH_TO_REPLACE/">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
@@ -200,7 +200,7 @@
             </property>
         </property>
     </property>
-    <property name="BOOKKEEPING_DIR" class="ptolemy.data.expr.FileParameter" value="$ROOT_DATA_DIR/reflex_book_keeping/VimosMos">
+    <property name="BOOKKEEPING_DIR" class="ptolemy.data.expr.FileParameter" value="$ROOT_DATA_DIR/reflex_book_keeping/vimos-mos">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>none</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>yang zhao, edward lee</configure></property>
@@ -247,7 +247,7 @@
         <property name="allowDirectories" class="ptolemy.data.expr.Parameter" value="true">
         </property>
     </property>
-    <property name="LOGS_DIR" class="ptolemy.data.expr.FileParameter" value="$ROOT_DATA_DIR/reflex_logs/VimosMos">
+    <property name="LOGS_DIR" class="ptolemy.data.expr.FileParameter" value="$ROOT_DATA_DIR/reflex_logs/vimos-mos">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>none</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>yang zhao, edward lee</configure></property>
@@ -294,7 +294,7 @@
         <property name="allowDirectories" class="ptolemy.data.expr.Parameter" value="true">
         </property>
     </property>
-    <property name="TMP_PRODUCTS_DIR" class="ptolemy.data.expr.FileParameter" value="$ROOT_DATA_DIR/reflex_tmp_products/VimosMos">
+    <property name="TMP_PRODUCTS_DIR" class="ptolemy.data.expr.FileParameter" value="$ROOT_DATA_DIR/reflex_tmp_products/vimos-mos">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>none</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>yang zhao, edward lee</configure></property>
@@ -388,7 +388,7 @@
         <property name="allowDirectories" class="ptolemy.data.expr.Parameter" value="true">
         </property>
     </property>
-    <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={190, 37, 1682, 1112}, maximized=false}">
+    <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={112, 37, 1682, 1112}, maximized=false}">
     </property>
     <property name="_vergilSize" class="ptolemy.actor.gui.SizeAttribute" value="[1366, 959]">
     </property>
@@ -487,11 +487,11 @@
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The Rectangle attribute renders a rectangle on the Workflow canvas. Single-click the rectangle to drag the resize handles and adjust the shape's size, or double-click the rectangle to customize its height, width, line width, color, and fill color.</p></configure></property>
-<property name="prop:lineWidth" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line width. The value is a double that defaults to 1.0.</configure></property>
 <property name="prop:height" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The vertical extent. The value is a double that defaults to 100.0.</configure></property>
-<property name="prop:dashArray" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify a dash-pattern for dashed or dotted lines. The value consists of an array of doubles that specify the length of the alternating solid and transparent segments. An empty value indicates that the line should not be dashed (the default).</configure></property>
-<property name="prop:centered" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Indicate whether the shape should be centered on its origin. By default, the location is the upper-left corner.</configure></property>
+<property name="prop:lineWidth" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line width. The value is a double that defaults to 1.0.</configure></property>
 <property name="prop:rounding" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The amount of rounding of the corners. The value is a double that defaults to 0.0, which indicates no rounding.</configure></property>
+<property name="prop:centered" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Indicate whether the shape should be centered on its origin. By default, the location is the upper-left corner.</configure></property>
+<property name="prop:dashArray" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify a dash-pattern for dashed or dotted lines. The value consists of an array of doubles that specify the length of the alternating solid and transparent segments. An empty value indicates that the line should not be dashed (the default).</configure></property>
 <property name="prop:width" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The horizontal extent. The value is a double that defaults to 100.0.</configure></property>
 <property name="prop:lineColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
 <property name="prop:fillColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The fill color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. By default, the value is "none."</configure></property>
@@ -601,11 +601,11 @@
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The Rectangle attribute renders a rectangle on the Workflow canvas. Single-click the rectangle to drag the resize handles and adjust the shape's size, or double-click the rectangle to customize its height, width, line width, color, and fill color.</p></configure></property>
-<property name="prop:height" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The vertical extent. The value is a double that defaults to 100.0.</configure></property>
 <property name="prop:lineWidth" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line width. The value is a double that defaults to 1.0.</configure></property>
-<property name="prop:rounding" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The amount of rounding of the corners. The value is a double that defaults to 0.0, which indicates no rounding.</configure></property>
-<property name="prop:centered" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Indicate whether the shape should be centered on its origin. By default, the location is the upper-left corner.</configure></property>
+<property name="prop:height" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The vertical extent. The value is a double that defaults to 100.0.</configure></property>
 <property name="prop:dashArray" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify a dash-pattern for dashed or dotted lines. The value consists of an array of doubles that specify the length of the alternating solid and transparent segments. An empty value indicates that the line should not be dashed (the default).</configure></property>
+<property name="prop:centered" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Indicate whether the shape should be centered on its origin. By default, the location is the upper-left corner.</configure></property>
+<property name="prop:rounding" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The amount of rounding of the corners. The value is a double that defaults to 0.0, which indicates no rounding.</configure></property>
 <property name="prop:width" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The horizontal extent. The value is a double that defaults to 100.0.</configure></property>
 <property name="prop:lineColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
 <property name="prop:fillColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The fill color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. By default, the value is "none."</configure></property>
@@ -919,7 +919,7 @@
         <property name="_location" class="ptolemy.kernel.util.Location" value="[635.0, 290.0]">
         </property>
     </property>
-    <property name="END_PRODUCT_SUBDIR" class="ptolemy.data.expr.StringParameter" value="2013-03-12T19:38:28/VIMOS.2011-12-23T02:40:35.987">
+    <property name="END_PRODUCTS_SUBDIR" class="ptolemy.data.expr.StringParameter" value="2013-03-12T19:38:28/VIMOS.2011-12-23T02:40:35.987">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
@@ -1013,11 +1013,11 @@
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The Rectangle attribute renders a rectangle on the Workflow canvas. Single-click the rectangle to drag the resize handles and adjust the shape's size, or double-click the rectangle to customize its height, width, line width, color, and fill color.</p></configure></property>
-<property name="prop:height" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The vertical extent. The value is a double that defaults to 100.0.</configure></property>
 <property name="prop:lineWidth" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line width. The value is a double that defaults to 1.0.</configure></property>
-<property name="prop:rounding" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The amount of rounding of the corners. The value is a double that defaults to 0.0, which indicates no rounding.</configure></property>
-<property name="prop:centered" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Indicate whether the shape should be centered on its origin. By default, the location is the upper-left corner.</configure></property>
+<property name="prop:height" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The vertical extent. The value is a double that defaults to 100.0.</configure></property>
 <property name="prop:dashArray" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify a dash-pattern for dashed or dotted lines. The value consists of an array of doubles that specify the length of the alternating solid and transparent segments. An empty value indicates that the line should not be dashed (the default).</configure></property>
+<property name="prop:centered" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Indicate whether the shape should be centered on its origin. By default, the location is the upper-left corner.</configure></property>
+<property name="prop:rounding" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The amount of rounding of the corners. The value is a double that defaults to 0.0, which indicates no rounding.</configure></property>
 <property name="prop:width" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The horizontal extent. The value is a double that defaults to 100.0.</configure></property>
 <property name="prop:lineColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
 <property name="prop:fillColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The fill color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. By default, the value is "none."</configure></property>
@@ -1107,11 +1107,11 @@
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The Rectangle attribute renders a rectangle on the Workflow canvas. Single-click the rectangle to drag the resize handles and adjust the shape's size, or double-click the rectangle to customize its height, width, line width, color, and fill color.</p></configure></property>
-<property name="prop:height" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The vertical extent. The value is a double that defaults to 100.0.</configure></property>
 <property name="prop:lineWidth" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line width. The value is a double that defaults to 1.0.</configure></property>
-<property name="prop:rounding" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The amount of rounding of the corners. The value is a double that defaults to 0.0, which indicates no rounding.</configure></property>
-<property name="prop:centered" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Indicate whether the shape should be centered on its origin. By default, the location is the upper-left corner.</configure></property>
+<property name="prop:height" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The vertical extent. The value is a double that defaults to 100.0.</configure></property>
 <property name="prop:dashArray" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify a dash-pattern for dashed or dotted lines. The value consists of an array of doubles that specify the length of the alternating solid and transparent segments. An empty value indicates that the line should not be dashed (the default).</configure></property>
+<property name="prop:centered" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Indicate whether the shape should be centered on its origin. By default, the location is the upper-left corner.</configure></property>
+<property name="prop:rounding" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The amount of rounding of the corners. The value is a double that defaults to 0.0, which indicates no rounding.</configure></property>
 <property name="prop:width" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The horizontal extent. The value is a double that defaults to 100.0.</configure></property>
 <property name="prop:lineColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
 <property name="prop:fillColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The fill color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. By default, the value is "none."</configure></property>
@@ -1203,11 +1203,11 @@
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The Rectangle attribute renders a rectangle on the Workflow canvas. Single-click the rectangle to drag the resize handles and adjust the shape's size, or double-click the rectangle to customize its height, width, line width, color, and fill color.</p></configure></property>
-<property name="prop:height" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The vertical extent. The value is a double that defaults to 100.0.</configure></property>
 <property name="prop:lineWidth" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line width. The value is a double that defaults to 1.0.</configure></property>
-<property name="prop:rounding" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The amount of rounding of the corners. The value is a double that defaults to 0.0, which indicates no rounding.</configure></property>
-<property name="prop:centered" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Indicate whether the shape should be centered on its origin. By default, the location is the upper-left corner.</configure></property>
+<property name="prop:height" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The vertical extent. The value is a double that defaults to 100.0.</configure></property>
 <property name="prop:dashArray" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify a dash-pattern for dashed or dotted lines. The value consists of an array of doubles that specify the length of the alternating solid and transparent segments. An empty value indicates that the line should not be dashed (the default).</configure></property>
+<property name="prop:centered" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Indicate whether the shape should be centered on its origin. By default, the location is the upper-left corner.</configure></property>
+<property name="prop:rounding" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The amount of rounding of the corners. The value is a double that defaults to 0.0, which indicates no rounding.</configure></property>
 <property name="prop:width" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The horizontal extent. The value is a double that defaults to 100.0.</configure></property>
 <property name="prop:lineColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
 <property name="prop:fillColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The fill color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. By default, the value is "none."</configure></property>
@@ -1281,8 +1281,8 @@
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Gang Zhou</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
            <p> The dynamic dataflow (DDF) domain is a superset of the synchronous
            dataflow(SDF) and Boolean dataflow(BDF) domains. In the SDF domain,
            an actor consumes and produces a fixed number of tokens per firing.
            This static information makes possible compile-time scheduling. In the
            DDF domain, there are few  [...]
-<property name="prop:iterations" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify the number of times a workflow is iterated. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. </configure></property>
 <property name="prop:maximumReceiverCapacity" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A Parameter representing the maximum capacity of each receiver controlled by this director. This is an integer that defaults to 0, which means the queue in each receiver is unbounded. To specify bounded queues, set this to a positive integer. </configure></property>
+<property name="prop:iterations" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify the number of times a workflow is iterated. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. </configure></property>
 <property name="prop:runUntilDeadlockInOneIteration" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A parameter indicating whether one iteration consists of repeated basic iterations until deadlock. If this parameter is true, the model will be executed until deadlock in one iteration. The default value is a BooleanToken with the value false. It cannot be set to true if this director is at the top level.</configure></property>
 </property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:director:5:1">
         </property>
@@ -1297,7 +1297,7 @@
         <property name="_location" class="ptolemy.kernel.util.Location" value="[-530.0, -20.0]">
         </property>
     </property>
-    <property name="RAWDATA_DIR" class="ptolemy.data.expr.FileParameter" value="$ROOT_DATA_DIR/reflex_input/Vimos">
+    <property name="RAWDATA_DIR" class="ptolemy.data.expr.FileParameter" value="$ROOT_DATA_DIR/reflex_input/vimos">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>none</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>yang zhao, edward lee</configure></property>
@@ -1393,9 +1393,9 @@
         <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:436:1:urn:lsid:kepler-project.org/ns/:19529:28:1">
         </property>
     </property>
-    <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:436:1:urn:lsid:kepler-project.org/ns/:12776:4:415:urn:lsid:kepler-project.org/ns/:12776:55:75:urn:lsid:kepler-project.org/ns/:12776:59:142:urn:lsid:kepler-project.org/ns/:12776:68:228:urn:lsid:kepler-project.org/ns/:12776:84:51:urn:lsid:kepler-project.org/ns/:2745:31:9:urn:lsid:kepler-project.org/ns/:2745:32:214:urn:lsid:kepler-project.org/ns/:2745:45:122:urn:lsid:kepl [...]
+    <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:436:1:urn:lsid:kepler-project.org/ns/:12776:4:415:urn:lsid:kepler-project.org/ns/:12776:55:75:urn:lsid:kepler-project.org/ns/:12776:59:142:urn:lsid:kepler-project.org/ns/:12776:68:228:urn:lsid:kepler-project.org/ns/:12776:84:51:urn:lsid:kepler-project.org/ns/:2745:31:9:urn:lsid:kepler-project.org/ns/:2745:32:214:urn:lsid:kepler-project.org/ns/:2745:45:122:urn:lsid:kepl [...]
     </property>
-    <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:38241:3:36">
+    <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:45907:7:1">
     </property>
     <property name="Annotation53" class="ptolemy.vergil.kernel.attributes.TextAttribute">
         <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
@@ -1539,7 +1539,7 @@
         </property>
         <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
         </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[-185.0, -15.0]">
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[-310.0, -5.0]">
         </property>
         <property name="" class="ptolemy.vergil.basic.DocAttribute">
             <property name="description" class="ptolemy.kernel.util.StringAttribute" value="Use the Annotation attribute to annotate a workflow. Double-click the attribute to customize the content, font size, color, and basic formatting (bold and italics).">
@@ -1626,11 +1626,11 @@
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The Rectangle attribute renders a rectangle on the Workflow canvas. Single-click the rectangle to drag the resize handles and adjust the shape's size, or double-click the rectangle to customize its height, width, line width, color, and fill color.</p></configure></property>
-<property name="prop:lineWidth" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line width. The value is a double that defaults to 1.0.</configure></property>
 <property name="prop:height" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The vertical extent. The value is a double that defaults to 100.0.</configure></property>
-<property name="prop:dashArray" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify a dash-pattern for dashed or dotted lines. The value consists of an array of doubles that specify the length of the alternating solid and transparent segments. An empty value indicates that the line should not be dashed (the default).</configure></property>
-<property name="prop:centered" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Indicate whether the shape should be centered on its origin. By default, the location is the upper-left corner.</configure></property>
+<property name="prop:lineWidth" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line width. The value is a double that defaults to 1.0.</configure></property>
 <property name="prop:rounding" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The amount of rounding of the corners. The value is a double that defaults to 0.0, which indicates no rounding.</configure></property>
+<property name="prop:centered" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Indicate whether the shape should be centered on its origin. By default, the location is the upper-left corner.</configure></property>
+<property name="prop:dashArray" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify a dash-pattern for dashed or dotted lines. The value consists of an array of doubles that specify the length of the alternating solid and transparent segments. An empty value indicates that the line should not be dashed (the default).</configure></property>
 <property name="prop:width" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The horizontal extent. The value is a double that defaults to 100.0.</configure></property>
 <property name="prop:lineColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
 <property name="prop:fillColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The fill color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. By default, the value is "none."</configure></property>
@@ -2121,898 +2121,1941 @@
         <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:421:1">
         </property>
     </property>
-    <entity name="FitsRouter" class="org.eso.FitsRouter">
+    <property name="DataSelectionMethod" class="ptolemy.data.expr.StringParameter" value="Interactive">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>1.0</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The FitsRouter routes files base on their category: by default, all the files are routed to the rejected directory, but the user can add additional port and configure the actor to route particular files there.</p>
<p>Basic Mode: create an output port named as a category (e.g.: FLAT), all files belonging to that category will be routed to that port.</p>
& [...]
-<property name="port:in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input data</configure></property>
-<property name="port:sof rejected" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The rejected SoF</configure></property>
-<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:38241:14:5">
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>StringParameter specifies a persistent string. </p>

<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p></configure></property>
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:43955:86:1">
         </property>
-        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.FitsRouter">
-            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.data.expr.StringParameter">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1185:1">
             </property>
         </property>
-        <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
-        </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[-345.0, 1000.0]">
+        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Parameter">
         </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:903:1:urn:lsid:kepler-project.org/ns/:15314:175:101:urn:lsid:kepler-project.org/ns/:25158:48:11:urn:lsid:kepler-project.org/ns/:35449:21:13">
+        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Parameter">
         </property>
-        <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+        <property name="_hideName" class="ptolemy.kernel.util.SingletonAttribute">
         </property>
-        <property name="bias_config" class="ptolemy.data.expr.Parameter" value=""BIAS"">
+        <property name="_icon" class="ptolemy.vergil.icon.ValueIcon">
+            <property name="_color" class="ptolemy.actor.gui.ColorAttribute" value="{1.0, 0.0, 0.0, 1.0}">
+            </property>
         </property>
-        <property name="sci_config" class="ptolemy.data.expr.Parameter" value=""MOS_SCIENCE"">
+        <property name="_smallIconDescription" class="ptolemy.kernel.util.SingletonConfigurableAttribute">
+            <configure>
+        <svg>
+          <text x="20" style="font-size:14; font-family:SansSerif; fill:red" y="20">-S-</text>
+        </svg>
+      </configure>
         </property>
-        <property name="std_config" class="ptolemy.data.expr.Parameter" value=""MOS_STANDARD"">
+        <property name="_editorFactory" class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
         </property>
-        <property name="std_aux_config" class="ptolemy.data.expr.Parameter" value=""MASTER_LINECAT,EXTINCT_TABLE,STD_FLUX_TABLE,CONFIG_TABLE"">
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[640.0, 425.0]">
         </property>
-        <property name="calib_config" class="ptolemy.data.expr.Parameter" value=""MOS_SCREEN_FLAT,MOS_ARC_SPECTRUM"">
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:421:1">
         </property>
-        <property name="calib_aux_config" class="ptolemy.data.expr.Parameter" value=""LINE_CATALOG,CONFIG_TABLE"">
+    </property>
+    <property name="Annotation9" class="ptolemy.vergil.kernel.attributes.TextAttribute">
+        <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
         </property>
-        <property name="sci_aux_config" class="ptolemy.data.expr.Parameter" value=""LINE_CATALOG,EXTINCT_TABLE,CONFIG_TABLE"">
+        <property name="_hideAllParameters" class="ptolemy.data.expr.Parameter" value="true">
         </property>
-        <port name="in" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-            </property>
-            <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </port>
-        <port name="sof rejected" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="multiport"/>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
-            </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
-            </property>
-        </port>
-        <port name="sci" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
-            </property>
-        </port>
-        <port name="std" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
-            </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
-        </port>
-        <port name="std_aux" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
-            </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
-        </port>
-        <port name="bias" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
-            </property>
-        </port>
-        <port name="calib" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="EAST">
-            </property>
-        </port>
-        <port name="calib_aux" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
-        </port>
-        <port name="sci_aux" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
-            </property>
-        </port>
-    </entity>
-    <entity name="MasterBias" class="ptolemy.actor.TypedCompositeActor">
-        <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="8.1.devel">
+        <property name="textSize" class="ptolemy.data.expr.Parameter" value="14">
         </property>
-        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:35449:15:4">
+        <property name="textColor" class="ptolemy.actor.gui.ColorAttribute" value="{0.4,0.4,0.0,1.0}">
         </property>
-        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.TypedCompositeActor">
-            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1">
-            </property>
+        <property name="fontFamily" class="ptolemy.data.expr.StringParameter" value="SansSerif">
         </property>
-        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Actor">
+        <property name="bold" class="ptolemy.data.expr.Parameter" value="false">
         </property>
-        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#GeneralPurpose">
+        <property name="italic" class="ptolemy.data.expr.Parameter" value="false">
         </property>
-        <property name="semanticType22" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Workflow">
+        <property name="text" class="ptolemy.kernel.util.StringAttribute" value="Selection method for the Data Set Chooser">
+            <property name="_style" class="ptolemy.actor.gui.style.TextStyle">
+                <property name="height" class="ptolemy.data.expr.Parameter" value="20">
+                </property>
+                <property name="width" class="ptolemy.data.expr.Parameter" value="80">
+                </property>
+            </property>
         </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</ [...]
-</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[-140.0, 855.0]">
-        </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:15314:186:21">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Use the Annotation attribute to annotate a workflow. Double-click the attribute to customize the content, font size, color, and basic formatting (bold and italics).</configure></property>
+<property name="prop:fontFamily" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font face. Select a font from the drop-down menu. The default is "SansSerif".</configure></property>
+<property name="prop:italic" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Select to indicate that the type should be italics. By default, type will not be italicized.</configure></property>
+<property name="prop:bold" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Select to indicate that the type should be bold. By default, type will not be bold.</configure></property>
+<property name="prop:textColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
+<property name="prop:textSize" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font size. Select an integer from the drop-down menu or specify a new size by typing it directly into the value field.  The default is 14.</configure></property>
+<property name="prop:text" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The text of the annotation.</configure></property>
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:43955:85:3">
         </property>
-        <port name="sof_in" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[20.0, 200.0]">
-            </property>
-        </port>
-        <port name="sof_out" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[525.0, 200.0]">
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.vergil.kernel.attributes.TextAttribute">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1199:1">
             </property>
-        </port>
-        <entity name="SofSplitter" class="org.eso.SofSplitter">
+        </property>
+        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#DocumentationActor">
+        </property>
+        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
+        </property>
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[880.0, 415.0]">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:436:1">
+        </property>
+    </property>
+    <property name="ProvenanceExplorerEnabled" class="ptolemy.data.expr.StringParameter" value="true">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofSplitter takes a set of files as input and split it into smaller sets based on the purpose. This smaller sets can then be sent to e.g. a RecipeExecuter</configure></property>
-<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sof</configure></property>
-<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The grouped sofs</configure></property>
-<property name="port:#groups" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of groups generated</configure></property>
-<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:187:1">
-            </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofSplitter">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
-                </property>
-            </property>
-            <property name="semanticType" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[105.0, 180.0]">
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>StringParameter specifies a persistent string. </p>

<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p></configure></property>
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44576:60:1">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.data.expr.StringParameter">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1185:1">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org/ns/:12925:5:1">
+        </property>
+        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Parameter">
+        </property>
+        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Parameter">
+        </property>
+        <property name="_hideName" class="ptolemy.kernel.util.SingletonAttribute">
+        </property>
+        <property name="_icon" class="ptolemy.vergil.icon.ValueIcon">
+            <property name="_color" class="ptolemy.actor.gui.ColorAttribute" value="{1.0, 0.0, 0.0, 1.0}">
             </property>
-            <port name="sof in" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="multiport"/>
+        </property>
+        <property name="_smallIconDescription" class="ptolemy.kernel.util.SingletonConfigurableAttribute">
+            <configure>
+        <svg>
+          <text x="20" style="font-size:14; font-family:SansSerif; fill:red" y="20">-S-</text>
+        </svg>
+      </configure>
+        </property>
+        <property name="_editorFactory" class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
+        </property>
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[640.0, 460.0]">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:421:1:urn:lsid:kepler-project.org/ns/:43955:86:1">
+        </property>
+    </property>
+    <property name="Annotation10" class="ptolemy.vergil.kernel.attributes.TextAttribute">
+        <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+        </property>
+        <property name="_hideAllParameters" class="ptolemy.data.expr.Parameter" value="true">
+        </property>
+        <property name="textSize" class="ptolemy.data.expr.Parameter" value="14">
+        </property>
+        <property name="textColor" class="ptolemy.actor.gui.ColorAttribute" value="{0.4,0.4,0.0,1.0}">
+        </property>
+        <property name="fontFamily" class="ptolemy.data.expr.StringParameter" value="SansSerif">
+        </property>
+        <property name="bold" class="ptolemy.data.expr.Parameter" value="false">
+        </property>
+        <property name="italic" class="ptolemy.data.expr.Parameter" value="false">
+        </property>
+        <property name="text" class="ptolemy.kernel.util.StringAttribute" value="Show Provenance Explorer window">
+            <property name="_style" class="ptolemy.actor.gui.style.TextStyle">
+                <property name="height" class="ptolemy.data.expr.Parameter" value="20">
+                </property>
+                <property name="width" class="ptolemy.data.expr.Parameter" value="80">
+                </property>
+            </property>
+        </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Use the Annotation attribute to annotate a workflow. Double-click the attribute to customize the content, font size, color, and basic formatting (bold and italics).</configure></property>
+<property name="prop:fontFamily" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font face. Select a font from the drop-down menu. The default is "SansSerif".</configure></property>
+<property name="prop:italic" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Select to indicate that the type should be italics. By default, type will not be italicized.</configure></property>
+<property name="prop:bold" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Select to indicate that the type should be bold. By default, type will not be bold.</configure></property>
+<property name="prop:textColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
+<property name="prop:textSize" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font size. Select an integer from the drop-down menu or specify a new size by typing it directly into the value field.  The default is 14.</configure></property>
+<property name="prop:text" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The text of the annotation.</configure></property>
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44576:61:1">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.vergil.kernel.attributes.TextAttribute">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1199:1">
+            </property>
+        </property>
+        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#DocumentationActor">
+        </property>
+        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
+        </property>
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[880.0, 450.0]">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:436:1:urn:lsid:kepler-project.org/ns/:43955:85:3">
+        </property>
+    </property>
+    <property name="Annotation11" class="ptolemy.vergil.kernel.attributes.TextAttribute">
+        <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+        </property>
+        <property name="_hideAllParameters" class="ptolemy.data.expr.Parameter" value="true">
+        </property>
+        <property name="textSize" class="ptolemy.data.expr.Parameter" value="14">
+            <property name="_editorFactory" class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
+            </property>
+        </property>
+        <property name="textColor" class="ptolemy.actor.gui.ColorAttribute" value="{1.0,0.0,0.0,1.0}">
+        </property>
+        <property name="fontFamily" class="ptolemy.data.expr.StringParameter" value="SansSerif">
+        </property>
+        <property name="bold" class="ptolemy.data.expr.Parameter" value="true">
+        </property>
+        <property name="italic" class="ptolemy.data.expr.Parameter" value="false">
+        </property>
+        <property name="text" class="ptolemy.kernel.util.StringAttribute" value="This is a basic workflow to help with data 
organisation and execution of the pipeline. 
The workflow was generated without a 
review of the quality of the science products.">
+            <property name="_style" class="ptolemy.actor.gui.style.TextStyle">
+                <property name="height" class="ptolemy.data.expr.Parameter" value="20">
+                </property>
+                <property name="width" class="ptolemy.data.expr.Parameter" value="80">
+                </property>
+            </property>
+        </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Use the Annotation attribute to annotate a workflow. Double-click the attribute to customize the content, font size, color, and basic formatting (bold and italics).</configure></property>
+<property name="prop:fontFamily" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font face. Select a font from the drop-down menu. The default is "SansSerif".</configure></property>
+<property name="prop:italic" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Select to indicate that the type should be italics. By default, type will not be italicized.</configure></property>
+<property name="prop:bold" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Select to indicate that the type should be bold. By default, type will not be bold.</configure></property>
+<property name="prop:textColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
+<property name="prop:textSize" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font size. Select an integer from the drop-down menu or specify a new size by typing it directly into the value field.  The default is 14.</configure></property>
+<property name="prop:text" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The text of the annotation.</configure></property>
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31617:223:8">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.vergil.kernel.attributes.TextAttribute">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1199:1">
+            </property>
+        </property>
+        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#DocumentationActor">
+        </property>
+        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
+        </property>
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[860.0, -10.0]">
+        </property>
+        <property name="" class="ptolemy.vergil.basic.DocAttribute">
+            <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Edward A. Lee">
+            </property>
+            <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
+            </property>
+            <property name="textSize (parameter)" class="ptolemy.data.expr.StringParameter" value="The font size. Select an integer from the drop-down menu or specify a new size by typing it directly into the value field.  The default is 14.">
+            </property>
+            <property name="textColor (parameter)" class="ptolemy.data.expr.StringParameter" value="The font color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}">
+            </property>
+            <property name="fontFamily (parameter)" class="ptolemy.data.expr.StringParameter" value="The font face. Select a font from the drop-down menu. The default is "SansSerif".">
+            </property>
+            <property name="bold (parameter)" class="ptolemy.data.expr.StringParameter" value="Select to indicate that the type should be bold. By default, type will not be bold.">
+            </property>
+            <property name="italic (parameter)" class="ptolemy.data.expr.StringParameter" value="Select to indicate that the type should be italics. By default, type will not be italicized.">
+            </property>
+            <property name="text (parameter)" class="ptolemy.data.expr.StringParameter" value="The text of the annotation.">
+            </property>
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:436:1">
+        </property>
+        <property name="_renderLast" class="ptolemy.kernel.util.SingletonAttribute">
+        </property>
+    </property>
+    <property name="Setup Directory5" class="ptolemy.vergil.kernel.attributes.RectangleAttribute">
+        <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+        </property>
+        <property name="_hideAllParameters" class="ptolemy.data.expr.Parameter" value="true">
+        </property>
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[855.0, -15.0]">
+        </property>
+        <property name="lineWidth" class="ptolemy.data.expr.Parameter" value="5">
+        </property>
+        <property name="lineColor" class="ptolemy.actor.gui.ColorAttribute" value="{1.0,0.0,0.0,1.0}">
+        </property>
+        <property name="width" class="ptolemy.data.expr.Parameter" value="375.0">
+        </property>
+        <property name="height" class="ptolemy.data.expr.Parameter" value="80.0">
+        </property>
+        <property name="centered" class="ptolemy.data.expr.Parameter" value="false">
+        </property>
+        <property name="fillColor" class="ptolemy.actor.gui.ColorAttribute" value="{0.99607843,0.9490196,0.7254902,1.0}">
+        </property>
+        <property name="rounding" class="ptolemy.data.expr.Parameter" value="20">
+        </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The Rectangle attribute renders a rectangle on the Workflow canvas. Single-click the rectangle to drag the resize handles and adjust the shape's size, or double-click the rectangle to customize its height, width, line width, color, and fill color.</p></configure></property>
+<property name="prop:height" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The vertical extent. The value is a double that defaults to 100.0.</configure></property>
+<property name="prop:lineWidth" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line width. The value is a double that defaults to 1.0.</configure></property>
+<property name="prop:rounding" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The amount of rounding of the corners. The value is a double that defaults to 0.0, which indicates no rounding.</configure></property>
+<property name="prop:centered" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Indicate whether the shape should be centered on its origin. By default, the location is the upper-left corner.</configure></property>
+<property name="prop:dashArray" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify a dash-pattern for dashed or dotted lines. The value consists of an array of doubles that specify the length of the alternating solid and transparent segments. An empty value indicates that the line should not be dashed (the default).</configure></property>
+<property name="prop:width" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The horizontal extent. The value is a double that defaults to 100.0.</configure></property>
+<property name="prop:lineColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
+<property name="prop:fillColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The fill color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. By default, the value is "none."</configure></property>
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44576:62:1">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.vergil.kernel.attributes.RectangleAttribute">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1197:1">
+            </property>
+        </property>
+        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#DecorativeActor">
+        </property>
+        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:434:1:urn:lsid:kepler-project.org/ns/:25158:26:1:urn:lsid:kepler-project.org/ns/:31617:222:11">
+        </property>
+    </property>
+    <entity name="FitsRouter" class="org.eso.FitsRouter">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>1.0</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The FitsRouter routes files base on their category: by default, all the files are routed to the rejected directory, but the user can add additional port and configure the actor to route particular files there.</p>
<p>Basic Mode: create an output port named as a category (e.g.: FLAT), all files belonging to that category will be routed to that port.</p>
& [...]
+<property name="port:in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input data</configure></property>
+<property name="port:sof rejected" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The rejected SoF</configure></property>
+<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:38241:14:5">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.FitsRouter">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+            </property>
+        </property>
+        <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+        </property>
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[-345.0, 1000.0]">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:903:1:urn:lsid:kepler-project.org/ns/:15314:175:101:urn:lsid:kepler-project.org/ns/:25158:48:11:urn:lsid:kepler-project.org/ns/:35449:21:13">
+        </property>
+        <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+        </property>
+        <property name="bias_config" class="ptolemy.data.expr.Parameter" value=""BIAS"">
+        </property>
+        <property name="sci_config" class="ptolemy.data.expr.Parameter" value=""MOS_SCIENCE"">
+        </property>
+        <property name="std_config" class="ptolemy.data.expr.Parameter" value=""MOS_STANDARD"">
+        </property>
+        <property name="std_aux_config" class="ptolemy.data.expr.Parameter" value=""MASTER_LINECAT,EXTINCT_TABLE,STD_FLUX_TABLE,CONFIG_TABLE"">
+        </property>
+        <property name="calib_config" class="ptolemy.data.expr.Parameter" value=""MOS_SCREEN_FLAT,MOS_ARC_SPECTRUM"">
+        </property>
+        <property name="calib_aux_config" class="ptolemy.data.expr.Parameter" value=""LINE_CATALOG,CONFIG_TABLE"">
+        </property>
+        <property name="sci_aux_config" class="ptolemy.data.expr.Parameter" value=""LINE_CATALOG,EXTINCT_TABLE,CONFIG_TABLE"">
+        </property>
+        <port name="in" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+            <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </port>
+        <port name="sof rejected" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="multiport"/>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+            </property>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            </property>
+        </port>
+        <port name="sci" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+            </property>
+        </port>
+        <port name="std" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+            </property>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+        </port>
+        <port name="std_aux" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+            </property>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+        </port>
+        <port name="bias" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+            </property>
+        </port>
+        <port name="calib" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="EAST">
+            </property>
+        </port>
+        <port name="calib_aux" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+        </port>
+        <port name="sci_aux" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+            </property>
+        </port>
+    </entity>
+    <entity name="MasterBias" class="ptolemy.actor.TypedCompositeActor">
+        <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="8.1.devel">
+        </property>
+        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:35449:15:4">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.TypedCompositeActor">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1">
+            </property>
+        </property>
+        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Actor">
+        </property>
+        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#GeneralPurpose">
+        </property>
+        <property name="semanticType22" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Workflow">
+        </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</ [...]
+</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[-140.0, 855.0]">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:15314:186:21">
+        </property>
+        <port name="sof_in" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[20.0, 200.0]">
+            </property>
+        </port>
+        <port name="sof_out" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[525.0, 200.0]">
+            </property>
+        </port>
+        <entity name="SofSplitter" class="org.eso.SofSplitter">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofSplitter takes a set of files as input and split it into smaller sets based on the purpose. This smaller sets can then be sent to e.g. a RecipeExecuter</configure></property>
+<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sof</configure></property>
+<property name="port:#groups" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of groups generated</configure></property>
+<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The grouped sofs</configure></property>
+<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:187:1">
+            </property>
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofSplitter">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+                </property>
+            </property>
+            <property name="semanticType" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[105.0, 180.0]">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org/ns/:12925:5:1">
+            </property>
+            <port name="sof in" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                </property>
+            </port>
+            <port name="sof out" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                </property>
+            </port>
+            <port name="#groups" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                </property>
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+                </property>
+            </port>
+        </entity>
+        <entity name="SofAccumulator" class="org.eso.SofAccumulator">
+            <property name="same dataset" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofAccumulator is meant to be used together with the SofSplitter: it puts back together in a single set of files the tokens generated by the PurposeSerializer (and usually processed by the RecipeExecuter)</configure></property>
+<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sofs</configure></property>
+<property name="port:#groups" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of groups to collect</configure></property>
+<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The grouped sof</configure></property>
+<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:same dataset" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If true the SofAccumulator throws an error if the input tokens do not belong all to the same dataset</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:188:1">
+            </property>
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofAccumulator">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+                </property>
+            </property>
+            <property name="semanticType" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[405.0, 180.0]">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org/ns/:12925:7:1">
+            </property>
+            <port name="sof in" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                </property>
+            </port>
+            <port name="#groups" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                </property>
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+                </property>
+            </port>
+            <port name="sof out" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                </property>
+            </port>
+        </entity>
+        <entity name="vmbias_1" class="org.eso.RecipeExecuter">
+            <property name="Recipe Failure Mode" class="ptolemy.data.expr.StringParameter" value="$RecipeFailureMode">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[245.0, 175.0]">
+            </property>
+        </entity>
+        <relation name="relation2" class="ptolemy.actor.TypedIORelation">
+        </relation>
+        <relation name="relation4" class="ptolemy.actor.TypedIORelation">
+        </relation>
+        <relation name="relation5" class="ptolemy.actor.TypedIORelation">
+        </relation>
+        <relation name="relation6" class="ptolemy.actor.TypedIORelation">
+        </relation>
+        <relation name="relation" class="ptolemy.actor.TypedIORelation">
+        </relation>
+        <link port="sof_in" relation="relation4"/>
+        <link port="sof_out" relation="relation5"/>
+        <link port="SofSplitter.sof in" relation="relation4"/>
+        <link port="SofSplitter.sof out" relation="relation6"/>
+        <link port="SofSplitter.#groups" relation="relation2"/>
+        <link port="SofAccumulator.sof in" relation="relation"/>
+        <link port="SofAccumulator.#groups" relation="relation2"/>
+        <link port="SofAccumulator.sof out" relation="relation5"/>
+        <link port="vmbias_1.sof in" relation="relation6"/>
+        <link port="vmbias_1.sof out" relation="relation"/>
+    </entity>
+    <entity name="SofCombiner" class="org.eso.SofCombiner">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofCombiner takes as input a number of set of files and combines them into one set of files that contains only the files whose purposes are present in all the input tokens. With this respect empty tokens are ignored and files with universal purpose are always collected</configure></property>
+<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sofs</configure></property>
+<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The combined sof</configure></property>
+<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:189:1">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofCombiner">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+            </property>
+        </property>
+        <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+        </property>
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[25.0, 1010.0]">
+        </property>
+        <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:908:1">
+        </property>
+        <port name="sof in" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="multiport"/>
+            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+        </port>
+        <port name="sof in opt" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="multiport"/>
+            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+        </port>
+        <port name="sof out" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="multiport"/>
+            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+        </port>
+    </entity>
+    <entity name="SofCombiner2" class="org.eso.SofCombiner">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofCombiner takes as input a number of set of files and combines them into one set of files that contains only the files whose purposes are present in all the input tokens. With this respect empty tokens are ignored and files with universal purpose are always collected</configure></property>
+<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sofs</configure></property>
+<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The combined sof</configure></property>
+<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31989:66:1">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofCombiner">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+            </property>
+        </property>
+        <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+        </property>
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[535.0, 950.0]">
+        </property>
+        <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:908:1:urn:lsid:kepler-project.org/ns/:15314:190:1">
+        </property>
+        <port name="sof in" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="multiport"/>
+            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+        </port>
+        <port name="sof in opt" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="multiport"/>
+            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+            </property>
+        </port>
+        <port name="sof out" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="multiport"/>
+            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+        </port>
+    </entity>
+    <entity name="VimosMosCalib" class="ptolemy.actor.TypedCompositeActor">
+        <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="8.1.devel">
+        </property>
+        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:35449:16:6">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.TypedCompositeActor">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1">
+            </property>
+        </property>
+        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Actor">
+        </property>
+        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#GeneralPurpose">
+        </property>
+        <property name="semanticType22" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Workflow">
+        </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</ [...]
+</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[120.0, 1010.0]">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:15314:197:23">
+        </property>
+        <port name="sof_in" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[30.0, 210.0]">
+            </property>
+        </port>
+        <port name="sof_out" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[560.0, 215.0]">
+            </property>
+        </port>
+        <entity name="SofSplitter" class="org.eso.SofSplitter">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofSplitter takes a set of files as input and split it into smaller sets based on the purpose. This smaller sets can then be sent to e.g. a RecipeExecuter</configure></property>
+<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sof</configure></property>
+<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The grouped sofs</configure></property>
+<property name="port:#groups" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of groups generated</configure></property>
+<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:198:2">
+            </property>
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofSplitter">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+                </property>
+            </property>
+            <property name="semanticType" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[120.0, 190.0]">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org/ns/:12925:5:1">
+            </property>
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <port name="sof in" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                </property>
+            </port>
+            <port name="sof out" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                </property>
+            </port>
+            <port name="#groups" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+                </property>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+                </property>
+            </port>
+        </entity>
+        <entity name="SofAccumulator" class="org.eso.SofAccumulator">
+            <property name="same dataset" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofAccumulator is meant to be used together with the SofSplitter: it puts back together in a single set of files the tokens generated by the PurposeSerializer (and usually processed by the RecipeExecuter)</configure></property>
+<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sofs</configure></property>
+<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The grouped sof</configure></property>
+<property name="port:#groups" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of groups to collect</configure></property>
+<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:same dataset" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If true the SofAccumulator throws an error if the input tokens do not belong all to the same dataset</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:199:2">
+            </property>
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofAccumulator">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+                </property>
+            </property>
+            <property name="semanticType" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[450.0, 190.0]">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org/ns/:12925:7:1">
+            </property>
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <port name="sof in" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                </property>
+            </port>
+            <port name="#groups" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+                </property>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+                </property>
+            </port>
+            <port name="sof out" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                </property>
+            </port>
+        </entity>
+        <entity name="vmmoscalib_1" class="org.eso.RecipeExecuter">
+            <property name="Recipe Failure Mode" class="ptolemy.data.expr.StringParameter" value="$RecipeFailureMode">
+            </property>
+            <property name="Output Files Category" class="ptolemy.data.expr.StringParameter" value="MOS_SLIT_LOCATION,MOS_MASTER_SCREEN_FLAT,MOS_CURV_COEFF,MOS_DISP_COEFF">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[270.0, 175.0]">
+            </property>
+        </entity>
+        <relation name="relation2" class="ptolemy.actor.TypedIORelation">
+        </relation>
+        <relation name="relation4" class="ptolemy.actor.TypedIORelation">
+        </relation>
+        <relation name="relation5" class="ptolemy.actor.TypedIORelation">
+        </relation>
+        <relation name="relation6" class="ptolemy.actor.TypedIORelation">
+        </relation>
+        <relation name="relation" class="ptolemy.actor.TypedIORelation">
+        </relation>
+        <link port="sof_in" relation="relation4"/>
+        <link port="sof_out" relation="relation5"/>
+        <link port="SofSplitter.sof in" relation="relation4"/>
+        <link port="SofSplitter.sof out" relation="relation6"/>
+        <link port="SofSplitter.#groups" relation="relation2"/>
+        <link port="SofAccumulator.sof in" relation="relation"/>
+        <link port="SofAccumulator.#groups" relation="relation2"/>
+        <link port="SofAccumulator.sof out" relation="relation5"/>
+        <link port="vmmoscalib_1.sof in" relation="relation6"/>
+        <link port="vmmoscalib_1.sof out" relation="relation"/>
+    </entity>
+    <entity name="VimosScience" class="ptolemy.actor.TypedCompositeActor">
+        <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="8.1.devel">
+        </property>
+        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:37571:7:6">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.TypedCompositeActor">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1">
+            </property>
+        </property>
+        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Actor">
+        </property>
+        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#GeneralPurpose">
+        </property>
+        <property name="semanticType22" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Workflow">
+        </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</ [...]
+</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[755.0, 820.0]">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:15314:200:84:urn:lsid:kepler-project.org/ns/:19529:10:9:urn:lsid:kepler-project.org/ns/:25158:73:1:urn:lsid:kepler-project.org/ns/:35449:17:5">
+        </property>
+        <port name="sof_in" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[30.0, 205.0]">
+            </property>
+        </port>
+        <port name="sof_out" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[520.0, 215.0]">
+            </property>
+        </port>
+        <entity name="SofSplitter" class="org.eso.SofSplitter">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofSplitter takes a set of files as input and split it into smaller sets based on the purpose. This smaller sets can then be sent to e.g. a RecipeExecuter</configure></property>
+<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sof</configure></property>
+<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The grouped sofs</configure></property>
+<property name="port:#groups" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of groups generated</configure></property>
+<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:201:2">
+            </property>
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofSplitter">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+                </property>
+            </property>
+            <property name="semanticType" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{85, 185}">
+            </property>
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org/ns/:12925:5:1">
+            </property>
+            <port name="sof in" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                </property>
+            </port>
+            <port name="sof out" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                </property>
+            </port>
+            <port name="#groups" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+                </property>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+                </property>
+            </port>
+        </entity>
+        <entity name="SofAccumulator" class="org.eso.SofAccumulator">
+            <property name="same dataset" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofAccumulator is meant to be used together with the SofSplitter: it puts back together in a single set of files the tokens generated by the PurposeSerializer (and usually processed by the RecipeExecuter)</configure></property>
+<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sofs</configure></property>
+<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The grouped sof</configure></property>
+<property name="port:#groups" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of groups to collect</configure></property>
+<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:same dataset" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If true the SofAccumulator throws an error if the input tokens do not belong all to the same dataset</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:202:2">
+            </property>
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofAccumulator">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+                </property>
+            </property>
+            <property name="semanticType" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[385.0, 190.0]">
+            </property>
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org/ns/:12925:7:1">
+            </property>
+            <port name="sof in" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                </property>
+            </port>
+            <port name="#groups" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+                </property>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+                </property>
+            </port>
+            <port name="sof out" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="multiport"/>
                 <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
                 </property>
             </port>
-            <port name="sof out" class="ptolemy.actor.TypedIOPort">
+        </entity>
+        <entity name="vmmosscience_2" class="org.eso.RecipeExecuter">
+            <property name="Recipe Failure Mode" class="ptolemy.data.expr.StringParameter" value="$RecipeFailureMode">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[215.0, 165.0]">
+            </property>
+        </entity>
+        <relation name="relation" class="ptolemy.actor.TypedIORelation">
+        </relation>
+        <relation name="relation4" class="ptolemy.actor.TypedIORelation">
+        </relation>
+        <relation name="relation5" class="ptolemy.actor.TypedIORelation">
+        </relation>
+        <relation name="relation2" class="ptolemy.actor.TypedIORelation">
+        </relation>
+        <relation name="relation3" class="ptolemy.actor.TypedIORelation">
+        </relation>
+        <link port="sof_in" relation="relation"/>
+        <link port="sof_out" relation="relation3"/>
+        <link port="SofSplitter.sof in" relation="relation"/>
+        <link port="SofSplitter.sof out" relation="relation5"/>
+        <link port="SofSplitter.#groups" relation="relation4"/>
+        <link port="SofAccumulator.sof in" relation="relation2"/>
+        <link port="SofAccumulator.#groups" relation="relation4"/>
+        <link port="SofAccumulator.sof out" relation="relation3"/>
+        <link port="vmmosscience_2.sof in" relation="relation5"/>
+        <link port="vmmosscience_2.sof out" relation="relation2"/>
+    </entity>
+    <entity name="SofCombiner3" class="org.eso.SofCombiner">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofCombiner takes as input a number of set of files and combines them into one set of files that contains only the files whose purposes are present in all the input tokens. With this respect empty tokens are ignored and files with universal purpose are always collected</configure></property>
+<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sofs</configure></property>
+<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The combined sof</configure></property>
+<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:224:1">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofCombiner">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+            </property>
+        </property>
+        <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+        </property>
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[340.0, 830.0]">
+        </property>
+        <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:908:1">
+        </property>
+        <port name="sof in" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="multiport"/>
+            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+        </port>
+        <port name="sof out" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="multiport"/>
+            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+        </port>
+    </entity>
+    <entity name="Initialize" class="ptolemy.actor.TypedCompositeActor">
+        <display name="Initialise"/>
+        <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="7.0.2">
+        </property>
+        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31989:106:14">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.TypedCompositeActor">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1">
+            </property>
+        </property>
+        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Actor">
+        </property>
+        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#GeneralPurpose">
+        </property>
+        <property name="semanticType22" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Workflow">
+        </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</ [...]
+</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[-515.0, 705.0]">
+        </property>
+        <property name="Annotation" class="ptolemy.vergil.kernel.attributes.TextAttribute">
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <property name="_hideAllParameters" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+            <property name="textSize" class="ptolemy.data.expr.Parameter" value="14">
+            </property>
+            <property name="textColor" class="ptolemy.actor.gui.ColorAttribute" value="{0.0, 0.0, 1.0, 1.0}">
+            </property>
+            <property name="fontFamily" class="ptolemy.data.expr.StringParameter" value="SansSerif">
+            </property>
+            <property name="bold" class="ptolemy.data.expr.Parameter" value="false">
+            </property>
+            <property name="italic" class="ptolemy.data.expr.Parameter" value="false">
+            </property>
+            <property name="text" class="ptolemy.kernel.util.StringAttribute" value="This subworkflow is in charge of two things:

 -Deleting the workflow directories if requested.

 -Providing the value of the raw data directory">
+                <property name="_style" class="ptolemy.actor.gui.style.TextStyle">
+                    <property name="height" class="ptolemy.data.expr.Parameter" value="20">
+                    </property>
+                    <property name="width" class="ptolemy.data.expr.Parameter" value="80">
+                    </property>
+                </property>
+            </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Use the Annotation attribute to annotate a workflow. Double-click the attribute to customize the content, font size, color, and basic formatting (bold and italics).</configure></property>
+<property name="prop:fontFamily" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font face. Select a font from the drop-down menu. The default is "SansSerif".</configure></property>
+<property name="prop:italic" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Select to indicate that the type should be italics. By default, type will not be italicized.</configure></property>
+<property name="prop:bold" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Select to indicate that the type should be bold. By default, type will not be bold.</configure></property>
+<property name="prop:textColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
+<property name="prop:textSize" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font size. Select an integer from the drop-down menu or specify a new size by typing it directly into the value field.  The default is 14.</configure></property>
+<property name="prop:text" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The text of the annotation.</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:436:1">
+            </property>
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.vergil.kernel.attributes.TextAttribute">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1199:1">
+                </property>
+            </property>
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#DocumentationActor">
+            </property>
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{490.0, 565.0}">
+            </property>
+        </property>
+        <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={5, 37, 1910, 1126}, maximized=true}">
+        </property>
+        <property name="_vergilSize" class="ptolemy.actor.gui.SizeAttribute" value="[1657, 1009]">
+        </property>
+        <property name="_vergilZoomFactor" class="ptolemy.data.expr.ExpertParameter" value="0.6681514476615">
+        </property>
+        <property name="_vergilCenter" class="ptolemy.data.expr.ExpertParameter" value="{740.9883333333332, 743.9433333333333}">
+        </property>
+        <property name="" class="ptolemy.vergil.basic.DocAttribute">
+            <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</p>&#10 [...]
+            </property>
+            <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Yuhong Xiong">
+            </property>
+            <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
+            </property>
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:14094:70:17:urn:lsid:kepler-project.org/ns/:15314:48:9:urn:lsid:kepler-project.org/ns/:25158:29:4">
+        </property>
+        <property name="DDF Director" class="ptolemy.domains.ddf.kernel.DDFDirector">
+            <property name="iterations" class="ptolemy.data.expr.Parameter" value="0">
+            </property>
+            <property name="maximumReceiverCapacity" class="ptolemy.data.expr.Parameter" value="0">
+            </property>
+            <property name="runUntilDeadlockInOneIteration" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+            <property name="timeResolution" class="ptolemy.actor.parameters.SharedParameter" value="1E-10">
+            </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Gang Zhou</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
            <p> The dynamic dataflow (DDF) domain is a superset of the synchronous
            dataflow(SDF) and Boolean dataflow(BDF) domains. In the SDF domain,
            an actor consumes and produces a fixed number of tokens per firing.
            This static information makes possible compile-time scheduling. In the
            DDF domain, there are few  [...]
+<property name="prop:iterations" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify the number of times a workflow is iterated. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. </configure></property>
+<property name="prop:maximumReceiverCapacity" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A Parameter representing the maximum capacity of each receiver controlled by this director. This is an integer that defaults to 0, which means the queue in each receiver is unbounded. To specify bounded queues, set this to a positive integer. </configure></property>
+<property name="prop:runUntilDeadlockInOneIteration" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A parameter indicating whether one iteration consists of repeated basic iterations until deadlock. If this parameter is true, the model will be executed until deadlock in one iteration. The default value is a BooleanToken with the value false. It cannot be set to true if this director is at the top level.</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31989:107:1">
+            </property>
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.domains.ddf.kernel.DDFDirector">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:directorclass:5:1">
+                </property>
+            </property>
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Director">
+            </property>
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Director">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{205, 255}">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:director:5:1">
+            </property>
+        </property>
+        <port name="raw_data_dir" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[1140.0, 365.0]">
+            </property>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+            </property>
+        </port>
+        <entity name="String Constant" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="if [ "x$EraseDirs" = "xtrue" ]; then  echo "Deleting files"; rm -rf $BOOKKEEPING_DIR/*;  rm -rf $LOGS_DIR/*; rm -rf $TMP_PRODUCTS_DIR/* ;  else echo "Will not delete files"; fi">
+            </property>
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
+            </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
+<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
+<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
+<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:204:1">
+            </property>
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
+                </property>
+            </property>
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
+            </property>
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
+            </property>
+            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
+                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
+                </property>
+                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
+                </property>
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[655.0, 685.0]">
+            </property>
+        </entity>
+        <entity name="String Constant2" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$CALIB_DATA_DIR">
+            </property>
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
+            </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
+<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
+<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
+<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:14094:71:2">
+            </property>
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
+                </property>
+            </property>
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
+            </property>
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
+            </property>
+            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
+                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
+                </property>
+                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
+                </property>
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[825.0, 445.0]">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1">
+            </property>
+        </entity>
+        <entity name="Time Stamp" class="org.sdm.spa.Timestamp">
+            <property name="format" class="ptolemy.data.expr.StringParameter" value="yyyy-MM-dd'T'HH:mm:ss">
+            </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Ilkay Altintas</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The TimeStamp actor outputs the current date and time.</p>

<p>Dates and times can be formatted in a variety of ways. Select a format from the drop-down menu beside the format parameter, or enter a pattern directly into the format field. For more information about date format patterns, see http://java.sun.com/docs/books/tutorial/i18n/format/datepattern.html.&l [...]
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the current time stamp as a string.</configure></property>
+<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time.</configure></property>
+<property name="prop:format" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The date format. Select a format string from the drop-down menu or type in a custom format string directly into the field. For more information about date formatting patterns, see http://java.sun.com/docs/books/tutorial/i18n/format/datepattern.html</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:370:1">
+            </property>
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.sdm.spa.Timestamp">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1136:1">
+                </property>
+            </property>
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#ClockActor">
+            </property>
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#LocalInput">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[350.0, 370.0]">
+            </property>
+            <property name="" class="ptolemy.vergil.basic.DocAttribute">
+                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Ilkay Altintas">
+                </property>
+                <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
+                </property>
+                <property name="format (parameter)" class="ptolemy.data.expr.StringParameter" value="The date format. Select a format string from the drop-down menu or type in a custom format string directly into the field. For more information about date formatting patterns, see http://java.sun.com/docs/books/tutorial/i18n/format/datepattern.html">
+                </property>
+                <property name="output (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts the current time stamp as a string.">
+                </property>
+                <property name="trigger (port)" class="ptolemy.kernel.util.StringAttribute" value="A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time.">
+                </property>
+            </property>
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+        </entity>
+        <entity name="Variable Setter2" class="ptolemy.actor.lib.SetVariable">
+            <property name="variableName" class="ptolemy.kernel.util.StringAttribute" value="GLOBAL_TIMESTAMP">
+            </property>
+            <property name="delayed" class="ptolemy.data.expr.Parameter" value="false">
+            </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee, Steve Neuendorffer, Jerome Blanc</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
Set the value of a variable. The result may occur at two different times, depending on the value of the delayed parameter. 
If delayed is true, then the change to the value of the variable is implemented in a change request, and consequently will not take hold until the end of the current toplevel iteration. This helps ensure that users of value of the variable will see changes t [...]
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:47:1">
+            </property>
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.SetVariable">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:886:1">
+                </property>
+            </property>
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Variable">
+            </property>
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#LocalInput">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[500.0, 360.0]">
+            </property>
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:10:1">
+            </property>
+            <port name="output" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="_expertMode" class="ptolemy.kernel.util.SingletonAttribute">
+                </property>
+            </port>
+        </entity>
+        <entity name="DirectoryEraser" class="ptolemy.actor.lib.Exec">
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
+            </property>
+            <property name="command" class="ptolemy.actor.parameters.PortParameter" value="sh">
+            </property>
+            <property name="directory" class="ptolemy.data.expr.FileParameter" value="$CWD">
+            </property>
+            <property name="environment" class="ptolemy.data.expr.Parameter" value="{{name = "", value = ""}}">
+            </property>
+            <property name="prependPlatformDependentShellCommand" class="ptolemy.data.expr.Parameter" value="false">
+            </property>
+            <property name="throwExceptionOnNonZeroReturn" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+            <property name="waitForProcess" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Xiaojun Liu, Edward A. Lee, Steve Neuendorffer</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
<p>The External Execution actor executes a system command from a workflow. The actor accepts a command, a directory and environment in which to execute the command, and a command input string. Once the command has finished executing, the actor will output the execution results along with any errors. If no results are generated, the actor will output an empty string.</p>&# [...]
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts data generated by the executed command, output as a string after the command has finished executing. If the command generates no data on standard out, then the empty string (a string of length zero) is generated. </configure></property>
+<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input port that accepts strings to pass to the standard input of the subprocess. Note that a newline is not appended to the string. If you require a newline, add one using the AddSubtract actor. This port is an input port of type String.</configure></property>
+<property name="port:error" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts any errors generated by the command execution. Errors are output as a string after the command has finished executing. If the execution generates no errors, an empty string is output. </configure></property>
+<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If connected, a token must be available on this port before actor will execute.</configure></property>
+<property name="port:exitCode" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the command's exit code. A non-zero value signifies an error.</configure></property>
+<property name="prop:environment" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An array of records that name an environment variable and a value:
 
  {{name = "NAME1", value = "value1"}...}
  
Where NAME1 is the name of the environment variable, and value1 is the value. 
For example, {{name = "PTII", value = "c:/ptII"}} would set the value of the PTII to c:/ptII. 
If the parameter is set to {{name="&quot [...]
+<property name="prop:directory" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The directory in which to execute the command. The default value of this parameter $CWD, which represents the user's current working or home directory. </configure></property>
+<property name="prop:throwExceptionOnNonZeroReturn" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If true, then throw an exception if the subprocess returns non-zero.</configure></property>
+<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If a positive integer, then it is the maximum number of times to execute the actor.</configure></property>
+<property name="prop:prependPlatformDependentShellCommand" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
If true, then prepend the platform dependent shell command to the
parsed value of the command parameter.  By setting this argument
to true, it is possible to invoke commands in a platform neutral
method.
<p>Under Windows NT or XP, the arguments "cmd.exe" and "/C" are
prepended.  Under Windows 95, the arguments "com [...]
+<property name="prop:waitForProcess" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If true, then actor will wait until subprocess completes.</configure></property>
+<property name="prop:command" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The command to be executed (e.g., echo "Hello, world."). The command can be specified via either the command port or parameter.</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:102:1">
+            </property>
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.Exec">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:976:1">
+                </property>
+            </property>
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#ExternalExecutionEnvironmentActor">
+            </property>
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#UnixCommand">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{125.0, 380.0}">
+            </property>
+            <property name="" class="ptolemy.vergil.basic.DocAttribute">
+                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Xiaojun Liu, Edward A. Lee, Steve Neuendorffer">
+                </property>
+                <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
+                </property>
+                <property name="directory (parameter)" class="ptolemy.data.expr.StringParameter" value="The directory in which to execute the command. The default value of this parameter $CWD, which represents the user's current working or home directory. ">
+                </property>
+                <property name="environment (parameter)" class="ptolemy.data.expr.StringParameter" value="An array of records that name an environment variable and a value:
 
  {{name = "NAME1", value = "value1"}...}
  
Where NAME1 is the name of the environment variable, and value1 is the value. 
For example, {{name = "PTII", value = "c:/ptII"}} would set the value of the PTII to c:/ptII. 
If the parameter is set to {{name= [...]
+                </property>
+                <property name="prependPlatformDependentShellCommand (parameter)" class="ptolemy.data.expr.StringParameter" value="
If true, then prepend the platform dependent shell command to the
parsed value of the command parameter.  By setting this argument
to true, it is possible to invoke commands in a platform neutral
method.
<p>Under Windows NT or XP, the arguments "cmd.exe" and "/C" are
prepended.  Under Windows 95, the argument [...]
+                </property>
+                <property name="throwExceptionOnNonZeroReturn (parameter)" class="ptolemy.data.expr.StringParameter" value="If true, then throw an exception if the subprocess returns non-zero.">
+                </property>
+                <property name="waitForProcess (parameter)" class="ptolemy.data.expr.StringParameter" value="If true, then actor will wait until subprocess completes.">
+                </property>
+                <property name="firingCountLimit (parameter)" class="ptolemy.data.expr.StringParameter" value="If a positive integer, then it is the maximum number of times to execute the actor.">
+                </property>
+                <property name="output (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts data generated by the executed command, output as a string after the command has finished executing. If the command generates no data on standard out, then the empty string (a string of length zero) is generated. ">
+                </property>
+                <property name="trigger (port)" class="ptolemy.kernel.util.StringAttribute" value="If connected, a token must be available on this port before actor will execute.">
+                </property>
+                <property name="error (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts any errors generated by the command execution. Errors are output as a string after the command has finished executing. If the execution generates no errors, an empty string is output. ">
+                </property>
+                <property name="input (port)" class="ptolemy.kernel.util.StringAttribute" value="An input port that accepts strings to pass to the standard input of the subprocess. Note that a newline is not appended to the string. If you require a newline, add one using the AddSubtract actor. This port is an input port of type String.">
+                </property>
+                <property name="exitCode (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts the command's exit code. A non-zero value signifies an error.">
+                </property>
+                <property name="command (parameter)" class="ptolemy.data.expr.StringParameter" value="The command to be executed (e.g., echo "Hello, world."). The command can be specified via either the command port or parameter.">
+                </property>
+            </property>
+            <port name="output" class="ptolemy.actor.TypedIOPort">
                 <property name="output"/>
-                <property name="multiport"/>
                 <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
                 </property>
             </port>
-            <port name="#groups" class="ptolemy.actor.TypedIOPort">
+            <port name="command" class="ptolemy.actor.parameters.ParameterPort">
+                <property name="input"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                </property>
+            </port>
+            <port name="error" class="ptolemy.actor.TypedIOPort">
                 <property name="output"/>
                 <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
                 </property>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+            </port>
+            <port name="input" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                </property>
+            </port>
+            <port name="exitCode" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
                 </property>
             </port>
         </entity>
-        <entity name="SofAccumulator" class="org.eso.SofAccumulator">
-            <property name="same dataset" class="ptolemy.data.expr.Parameter" value="true">
+        <entity name="String Constant4" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$RAWDATA_DIR">
+            </property>
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofAccumulator is meant to be used together with the SofSplitter: it puts back together in a single set of files the tokens generated by the PurposeSerializer (and usually processed by the RecipeExecuter)</configure></property>
-<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sofs</configure></property>
-<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The grouped sof</configure></property>
-<property name="port:#groups" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of groups to collect</configure></property>
-<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:same dataset" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If true the SofAccumulator throws an error if the input tokens do not belong all to the same dataset</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:188:1">
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
+<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
+<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
+<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:204:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofAccumulator">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
                 </property>
             </property>
-            <property name="semanticType" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[405.0, 180.0]">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org/ns/:12925:7:1">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
             </property>
-            <port name="sof in" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-                </property>
-            </port>
-            <port name="#groups" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-                </property>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
+                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
                 </property>
-            </port>
-            <port name="sof out" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
                 </property>
-            </port>
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[815.0, 310.0]">
+            </property>
         </entity>
-        <entity name="vmbias_1" class="org.eso.RecipeExecuter">
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[245.0, 175.0]">
+        <entity name="Elements To Array" class="ptolemy.actor.lib.ElementsToArray">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
<p>The ElementsToArray actor reads individual elements via its input port and outputs an array consisting of those elements.</p>

<p>The actor accepts input elements of any one type (int, double, etc.). The type must be consistent. Each time the actor fires, it reads one token from each channel of the input port and outputs a corresponding array.</p>&# [...]
+<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts tokens of any one type. The type must be consistent.</configure></property>
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts an assembled array. The type of the array elements matches that of the input.</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:32:1">
+            </property>
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.ElementsToArray">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:908:1">
+                </property>
+            </property>
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#ArrayActor">
+            </property>
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#DataArrayOperation">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[975.0, 350.0]">
             </property>
         </entity>
         <relation name="relation2" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
         </relation>
-        <relation name="relation4" class="ptolemy.actor.TypedIORelation">
-        </relation>
-        <relation name="relation5" class="ptolemy.actor.TypedIORelation">
+        <relation name="relation3" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
         </relation>
-        <relation name="relation6" class="ptolemy.actor.TypedIORelation">
+        <relation name="relation9" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+            <vertex name="vertex1" value="[665.0, 385.0]">
+            </vertex>
         </relation>
         <relation name="relation" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
         </relation>
-        <link port="sof_in" relation="relation4"/>
-        <link port="sof_out" relation="relation5"/>
-        <link port="SofSplitter.sof in" relation="relation4"/>
-        <link port="SofSplitter.sof out" relation="relation6"/>
-        <link port="SofSplitter.#groups" relation="relation2"/>
-        <link port="SofAccumulator.sof in" relation="relation"/>
-        <link port="SofAccumulator.#groups" relation="relation2"/>
-        <link port="SofAccumulator.sof out" relation="relation5"/>
-        <link port="vmbias_1.sof in" relation="relation6"/>
-        <link port="vmbias_1.sof out" relation="relation"/>
+        <relation name="relation8" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation10" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation7" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <link port="raw_data_dir" relation="relation"/>
+        <link port="String Constant.output" relation="relation3"/>
+        <link port="String Constant2.output" relation="relation10"/>
+        <link port="String Constant2.trigger" relation="relation9"/>
+        <link port="Time Stamp.output" relation="relation2"/>
+        <link port="Time Stamp.trigger" relation="relation7"/>
+        <link port="Variable Setter2.input" relation="relation2"/>
+        <link port="Variable Setter2.output" relation="relation9"/>
+        <link port="DirectoryEraser.output" relation="relation7"/>
+        <link port="DirectoryEraser.input" relation="relation3"/>
+        <link port="String Constant4.output" relation="relation8"/>
+        <link port="String Constant4.trigger" relation="relation9"/>
+        <link port="Elements To Array.input" relation="relation8"/>
+        <link port="Elements To Array.input" relation="relation10"/>
+        <link port="Elements To Array.output" relation="relation"/>
     </entity>
-    <entity name="SofCombiner" class="org.eso.SofCombiner">
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofCombiner takes as input a number of set of files and combines them into one set of files that contains only the files whose purposes are present in all the input tokens. With this respect empty tokens are ignored and files with universal purpose are always collected</configure></property>
-<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sofs</configure></property>
-<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The combined sof</configure></property>
-<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:189:1">
+    <entity name="DataOrganizer" class="org.eso.DataOrganizer">
+        <display name="Data Organiser"/>
+        <property name="OCA File" class="ptolemy.data.expr.FileParameter" value="@prefix@/share/esopipes/vimos- at VERSION@/reflex/vimos_mos_wkf.oca">
         </property>
-        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofCombiner">
+        <property name="Keywords to be displayed" class="ptolemy.data.expr.StringParameter" value="OBS.TARG.NAME,OCS.CON.QUAD,INS.GRIS1.NAME,INS.FILT1.NAME,INS.MASK1.ID,INS.GRIS2.NAME,INS.FILT2.NAME,INS.MASK2.ID,INS.GRIS3.NAME,INS.FILT3.NAME,INS.MASK3.ID,INS.GRIS4.NAME,INS.FILT4.NAME,INS.MASK4.ID,DET.CHIP1.ID,INS.MODE">
+        </property>
+        <property name="Lazy Mode" class="ptolemy.data.expr.Parameter" value="false">
+        </property>
+        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:38241:2:5">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.DataOrganizer">
             <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
             </property>
         </property>
         <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
         </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[25.0, 1010.0]">
+        <property name="" class="ptolemy.vergil.basic.DocAttribute">
+            <property name="author" class="ptolemy.kernel.util.StringAttribute" value="ESO">
+            </property>
+            <property name="version" class="ptolemy.kernel.util.StringAttribute" value="1.0">
+            </property>
+            <property name="OCA File (parameter)" class="ptolemy.data.expr.StringParameter" value="The filename (full path) containing the OCA rules used for classification and organization. Look at the user manual for more info.">
+            </property>
+            <property name="Keywords to be displayed (parameter)" class="ptolemy.data.expr.StringParameter" value="A comma separated list of FITS keywords which are extracted from all files in addition to the ones selected by the OCA rules">
+            </property>
+            <property name="class (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+            </property>
+            <property name="semanticType41 (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+            </property>
+            <property name="LoSOs (port)" class="ptolemy.kernel.util.StringAttribute" value="The produced LoSOs">
+            </property>
+            <property name="data dir (port)" class="ptolemy.kernel.util.StringAttribute" value="The directory containing the input data. It is scanned recursively.">
+            </property>
+            <property name="entityId (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+            </property>
         </property>
-        <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[-510.0, 785.0]">
         </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:908:1">
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:workflow:6:1:urn:lsid:kepler-project.org/ns/:5968:13:3:urn:lsid:kepler-project.org/ns/:13180:2:2:urn:lsid:kepler-project.org/ns/:13643:11:1:urn:lsid:kepler-project.org/ns/:15314:296:11:urn:lsid:kepler-project.org/ns/:19529:16:9:urn:lsid:kepler-project.org/ns/:25158:31:12:urn:lsid:kepler-project.org/ns/:27444:33:1:urn:lsid:kepler-project.org/ns/:31989:61:1:urn:lsid:kepler [...]
         </property>
-        <port name="sof in" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="multiport"/>
-            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-            </property>
-        </port>
-        <port name="sof in opt" class="ptolemy.actor.TypedIOPort">
+        <port name="input data" class="ptolemy.actor.TypedIOPort">
             <property name="input"/>
-            <property name="multiport"/>
-            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
             </property>
         </port>
-        <port name="sof out" class="ptolemy.actor.TypedIOPort">
+        <port name="datasets out" class="ptolemy.actor.TypedIOPort">
             <property name="output"/>
-            <property name="multiport"/>
-            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+            </property>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
             </property>
         </port>
     </entity>
-    <entity name="SofCombiner2" class="org.eso.SofCombiner">
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofCombiner takes as input a number of set of files and combines them into one set of files that contains only the files whose purposes are present in all the input tokens. With this respect empty tokens are ignored and files with universal purpose are always collected</configure></property>
-<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sofs</configure></property>
-<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The combined sof</configure></property>
-<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31989:66:1">
+    <entity name="Initialise Current Dataset" class="ptolemy.actor.TypedCompositeActor">
+        <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="7.0.2">
         </property>
-        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofCombiner">
-            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31989:28:48">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.TypedCompositeActor">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1">
             </property>
         </property>
-        <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Actor">
         </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[535.0, 950.0]">
+        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#GeneralPurpose">
         </property>
-        <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+        <property name="semanticType22" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Workflow">
         </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:908:1:urn:lsid:kepler-project.org/ns/:15314:190:1">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</ [...]
+</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[-515.0, 1000.0]">
         </property>
-        <port name="sof in" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="multiport"/>
-            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-            </property>
-        </port>
-        <port name="sof in opt" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="multiport"/>
-            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-            </property>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
-            </property>
-        </port>
-        <port name="sof out" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="multiport"/>
-            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-            </property>
-        </port>
-    </entity>
-    <entity name="Data Filter" class="org.eso.DataFilter">
-        <property name="Mode" class="ptolemy.data.expr.StringParameter" value="Skip">
+        <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={482, 120, 1321, 810}, maximized=false}">
         </property>
-        <property name="FITS Viewer" class="ptolemy.data.expr.StringParameter" value="$FITS_VIEWER">
+        <property name="_vergilSize" class="ptolemy.actor.gui.SizeAttribute" value="[1011, 659]">
         </property>
-        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31989:111:2">
+        <property name="_vergilZoomFactor" class="ptolemy.data.expr.ExpertParameter" value="1.0069218279703">
         </property>
-        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.DataFilter">
-            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+        <property name="_vergilCenter" class="ptolemy.data.expr.ExpertParameter" value="{507.0250688367565, 388.2349360666744}">
+        </property>
+        <property name="" class="ptolemy.vergil.basic.DocAttribute">
+            <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</p>&#10 [...]
+            </property>
+            <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Yuhong Xiong">
+            </property>
+            <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
             </property>
         </property>
-        <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:12776:22:11:urn:lsid:kepler-project.org/ns/:2745:94:5:urn:lsid:kepler-project.org/ns/:13757:119:12:urn:lsid:kepler-project.org/ns/:14094:9:50:urn:lsid:kepler-project.org/ns/:15314:21:358:urn:lsid:kepler-project.org/ns/:25158:32:9">
         </property>
-        <property name="" class="ptolemy.vergil.basic.DocAttribute">
-            <property name="author" class="ptolemy.kernel.util.StringAttribute" value="ESO">
+        <property name="Rectangle" class="ptolemy.vergil.kernel.attributes.RectangleAttribute">
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
-            <property name="version" class="ptolemy.kernel.util.StringAttribute" value="1.0">
+            <property name="_hideAllParameters" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{865.0, 65.0}">
+            </property>
+            <property name="lineWidth" class="ptolemy.data.expr.Parameter" value="5">
+            </property>
+            <property name="lineColor" class="ptolemy.actor.gui.ColorAttribute" value="{0.4,0.4,0.0,1.0}">
+            </property>
+            <property name="width" class="ptolemy.data.expr.Parameter" value="319.0">
+            </property>
+            <property name="height" class="ptolemy.data.expr.Parameter" value="72.0">
+            </property>
+            <property name="centered" class="ptolemy.data.expr.Parameter" value="false">
+            </property>
+            <property name="fillColor" class="ptolemy.actor.gui.ColorAttribute" value="none">
+            </property>
+            <property name="rounding" class="ptolemy.data.expr.Parameter" value="20">
             </property>
-            <property name="Mode (parameter)" class="ptolemy.data.expr.StringParameter" value="<p>Skip: automatically select all files and don't show any window;</p><p>Display: select all the files and allow the user only to view them;</p><p>Select: standard mode.</p>">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The Rectangle attribute renders a rectangle on the Workflow canvas. Single-click the rectangle to drag the resize handles and adjust the shape's size, or double-click the rectangle to customize its height, width, line width, color, and fill color.</p></configure></property>
+<property name="prop:lineWidth" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line width. The value is a double that defaults to 1.0.</configure></property>
+<property name="prop:height" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The vertical extent. The value is a double that defaults to 100.0.</configure></property>
+<property name="prop:dashArray" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify a dash-pattern for dashed or dotted lines. The value consists of an array of doubles that specify the length of the alternating solid and transparent segments. An empty value indicates that the line should not be dashed (the default).</configure></property>
+<property name="prop:centered" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Indicate whether the shape should be centered on its origin. By default, the location is the upper-left corner.</configure></property>
+<property name="prop:rounding" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The amount of rounding of the corners. The value is a double that defaults to 0.0, which indicates no rounding.</configure></property>
+<property name="prop:width" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The horizontal extent. The value is a double that defaults to 100.0.</configure></property>
+<property name="prop:lineColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
+<property name="prop:fillColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The fill color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. By default, the value is "none."</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:13757:120:5">
             </property>
-            <property name="FITS Viewer (parameter)" class="ptolemy.data.expr.StringParameter" value="The application used to inspect FITS files">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.vergil.kernel.attributes.RectangleAttribute">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1197:1">
+                </property>
             </property>
-            <property name="class (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#DecorativeActor">
             </property>
-            <property name="semanticType41 (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
             </property>
-            <property name="in (port)" class="ptolemy.kernel.util.StringAttribute" value="The input SoF">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:434:1">
             </property>
-            <property name="out (port)" class="ptolemy.kernel.util.StringAttribute" value="The selected SoF">
+        </property>
+        <property name="Rectangle2" class="ptolemy.vergil.kernel.attributes.RectangleAttribute">
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
-            <property name="rejected (port)" class="ptolemy.kernel.util.StringAttribute" value="The rejected SoF">
+            <property name="_hideAllParameters" class="ptolemy.data.expr.Parameter" value="true">
             </property>
-            <property name="entityId (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{865.0, 65.0}">
             </property>
-        </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[1015.0, 775.0]">
-        </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:workflow:4:1:urn:lsid:kepler-project.org/ns/:14094:86:2:urn:lsid:kepler-project.org/ns/:15314:213:6">
-        </property>
-        <port name="sof in" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="multiport"/>
-            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            <property name="lineWidth" class="ptolemy.data.expr.Parameter" value="5">
             </property>
-            <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+            <property name="lineColor" class="ptolemy.actor.gui.ColorAttribute" value="{0.4,0.4,0.0,1.0}">
             </property>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="WEST">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="319.0">
             </property>
-        </port>
-        <port name="sof out" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="multiport"/>
-            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            <property name="height" class="ptolemy.data.expr.Parameter" value="72.0">
             </property>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+            <property name="centered" class="ptolemy.data.expr.Parameter" value="false">
             </property>
-        </port>
-        <port name="sof rejected" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="multiport"/>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            <property name="fillColor" class="ptolemy.actor.gui.ColorAttribute" value="none">
             </property>
-        </port>
-    </entity>
-    <entity name="VimosMosCalib" class="ptolemy.actor.TypedCompositeActor">
-        <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="8.1.devel">
-        </property>
-        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:35449:16:6">
-        </property>
-        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.TypedCompositeActor">
-            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1">
+            <property name="rounding" class="ptolemy.data.expr.Parameter" value="20">
             </property>
-        </property>
-        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Actor">
-        </property>
-        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#GeneralPurpose">
-        </property>
-        <property name="semanticType22" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Workflow">
-        </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</ [...]
-</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[120.0, 1010.0]">
-        </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:15314:197:23">
-        </property>
-        <port name="sof_in" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[30.0, 210.0]">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The Rectangle attribute renders a rectangle on the Workflow canvas. Single-click the rectangle to drag the resize handles and adjust the shape's size, or double-click the rectangle to customize its height, width, line width, color, and fill color.</p></configure></property>
+<property name="prop:lineWidth" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line width. The value is a double that defaults to 1.0.</configure></property>
+<property name="prop:height" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The vertical extent. The value is a double that defaults to 100.0.</configure></property>
+<property name="prop:dashArray" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify a dash-pattern for dashed or dotted lines. The value consists of an array of doubles that specify the length of the alternating solid and transparent segments. An empty value indicates that the line should not be dashed (the default).</configure></property>
+<property name="prop:centered" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Indicate whether the shape should be centered on its origin. By default, the location is the upper-left corner.</configure></property>
+<property name="prop:rounding" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The amount of rounding of the corners. The value is a double that defaults to 0.0, which indicates no rounding.</configure></property>
+<property name="prop:width" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The horizontal extent. The value is a double that defaults to 100.0.</configure></property>
+<property name="prop:lineColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
+<property name="prop:fillColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The fill color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. By default, the value is "none."</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:13757:120:5">
             </property>
-        </port>
-        <port name="sof_out" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[560.0, 215.0]">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.vergil.kernel.attributes.RectangleAttribute">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1197:1">
+                </property>
             </property>
-        </port>
-        <entity name="SofSplitter" class="org.eso.SofSplitter">
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofSplitter takes a set of files as input and split it into smaller sets based on the purpose. This smaller sets can then be sent to e.g. a RecipeExecuter</configure></property>
-<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sof</configure></property>
-<property name="port:#groups" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of groups generated</configure></property>
-<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The grouped sofs</configure></property>
-<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:198:2">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#DecorativeActor">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofSplitter">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
-                </property>
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
             </property>
-            <property name="semanticType" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:434:1">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[120.0, 190.0]">
+        </property>
+        <property name="DDF Director" class="ptolemy.domains.ddf.kernel.DDFDirector">
+            <property name="iterations" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org/ns/:12925:5:1">
+            <property name="maximumReceiverCapacity" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            <property name="runUntilDeadlockInOneIteration" class="ptolemy.data.expr.Parameter" value="false">
             </property>
-            <port name="sof in" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-                </property>
-            </port>
-            <port name="sof out" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-                </property>
-            </port>
-            <port name="#groups" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
-                </property>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
-                </property>
-            </port>
-        </entity>
-        <entity name="SofAccumulator" class="org.eso.SofAccumulator">
-            <property name="same dataset" class="ptolemy.data.expr.Parameter" value="true">
+            <property name="timeResolution" class="ptolemy.actor.parameters.SharedParameter" value="1E-10">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofAccumulator is meant to be used together with the SofSplitter: it puts back together in a single set of files the tokens generated by the PurposeSerializer (and usually processed by the RecipeExecuter)</configure></property>
-<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sofs</configure></property>
-<property name="port:#groups" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of groups to collect</configure></property>
-<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The grouped sof</configure></property>
-<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:same dataset" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If true the SofAccumulator throws an error if the input tokens do not belong all to the same dataset</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:199:2">
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Gang Zhou</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
            <p> The dynamic dataflow (DDF) domain is a superset of the synchronous
            dataflow(SDF) and Boolean dataflow(BDF) domains. In the SDF domain,
            an actor consumes and produces a fixed number of tokens per firing.
            This static information makes possible compile-time scheduling. In the
            DDF domain, there are few  [...]
+<property name="prop:iterations" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify the number of times a workflow is iterated. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. </configure></property>
+<property name="prop:maximumReceiverCapacity" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A Parameter representing the maximum capacity of each receiver controlled by this director. This is an integer that defaults to 0, which means the queue in each receiver is unbounded. To specify bounded queues, set this to a positive integer. </configure></property>
+<property name="prop:runUntilDeadlockInOneIteration" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A parameter indicating whether one iteration consists of repeated basic iterations until deadlock. If this parameter is true, the model will be executed until deadlock in one iteration. The default value is a BooleanToken with the value false. It cannot be set to true if this director is at the top level.</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31617:88:4">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofAccumulator">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.domains.ddf.kernel.DDFDirector">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:directorclass:5:1">
                 </property>
             </property>
-            <property name="semanticType" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Director">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[450.0, 190.0]">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Director">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org/ns/:12925:7:1">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{720.0, 75.0}">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:director:5:1">
             </property>
+        </property>
+        <property name="Annotation" class="ptolemy.vergil.kernel.attributes.TextAttribute">
             <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
-            <port name="sof in" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-                </property>
-            </port>
-            <port name="#groups" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
-                </property>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
-                </property>
-            </port>
-            <port name="sof out" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-                </property>
-            </port>
-        </entity>
-        <entity name="vmmoscalib_1" class="org.eso.RecipeExecuter">
-            <property name="Output Files Category" class="ptolemy.data.expr.StringParameter" value="MOS_SLIT_LOCATION,MOS_MASTER_SCREEN_FLAT,MOS_CURV_COEFF,MOS_DISP_COEFF">
+            <property name="_hideAllParameters" class="ptolemy.data.expr.Parameter" value="true">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[270.0, 175.0]">
+            <property name="textSize" class="ptolemy.data.expr.Parameter" value="18">
             </property>
-        </entity>
-        <relation name="relation2" class="ptolemy.actor.TypedIORelation">
-        </relation>
-        <relation name="relation4" class="ptolemy.actor.TypedIORelation">
-        </relation>
-        <relation name="relation5" class="ptolemy.actor.TypedIORelation">
-        </relation>
-        <relation name="relation6" class="ptolemy.actor.TypedIORelation">
-        </relation>
-        <relation name="relation" class="ptolemy.actor.TypedIORelation">
-        </relation>
-        <link port="sof_in" relation="relation4"/>
-        <link port="sof_out" relation="relation5"/>
-        <link port="SofSplitter.sof in" relation="relation4"/>
-        <link port="SofSplitter.sof out" relation="relation6"/>
-        <link port="SofSplitter.#groups" relation="relation2"/>
-        <link port="SofAccumulator.sof in" relation="relation"/>
-        <link port="SofAccumulator.#groups" relation="relation2"/>
-        <link port="SofAccumulator.sof out" relation="relation5"/>
-        <link port="vmmoscalib_1.sof in" relation="relation6"/>
-        <link port="vmmoscalib_1.sof out" relation="relation"/>
-    </entity>
-    <entity name="VimosScience" class="ptolemy.actor.TypedCompositeActor">
-        <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="8.1.devel">
-        </property>
-        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:37571:7:6">
-        </property>
-        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.TypedCompositeActor">
-            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1">
+            <property name="textColor" class="ptolemy.actor.gui.ColorAttribute" value="{0.4,0.4,0.0,1.0}">
+            </property>
+            <property name="fontFamily" class="ptolemy.data.expr.StringParameter" value="SansSerif">
+            </property>
+            <property name="bold" class="ptolemy.data.expr.Parameter" value="false">
+            </property>
+            <property name="italic" class="ptolemy.data.expr.Parameter" value="false">
+            </property>
+            <property name="text" class="ptolemy.kernel.util.StringAttribute" value="Display current processed data set">
+                <property name="_style" class="ptolemy.actor.gui.style.TextStyle">
+                    <property name="height" class="ptolemy.data.expr.Parameter" value="20">
+                    </property>
+                    <property name="width" class="ptolemy.data.expr.Parameter" value="80">
+                    </property>
+                </property>
             </property>
-        </property>
-        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Actor">
-        </property>
-        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#GeneralPurpose">
-        </property>
-        <property name="semanticType22" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Workflow">
-        </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</ [...]
-</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[755.0, 820.0]">
-        </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:15314:200:84:urn:lsid:kepler-project.org/ns/:19529:10:9:urn:lsid:kepler-project.org/ns/:25158:73:1:urn:lsid:kepler-project.org/ns/:35449:17:5">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Use the Annotation attribute to annotate a workflow. Double-click the attribute to customize the content, font size, color, and basic formatting (bold and italics).</configure></property>
+<property name="prop:fontFamily" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font face. Select a font from the drop-down menu. The default is "SansSerif".</configure></property>
+<property name="prop:italic" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Select to indicate that the type should be italics. By default, type will not be italicized.</configure></property>
+<property name="prop:bold" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Select to indicate that the type should be bold. By default, type will not be bold.</configure></property>
+<property name="prop:textColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
+<property name="prop:textSize" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font size. Select an integer from the drop-down menu or specify a new size by typing it directly into the value field.  The default is 14.</configure></property>
+<property name="prop:text" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The text of the annotation.</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:14094:10:1">
+            </property>
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.vergil.kernel.attributes.TextAttribute">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1199:1">
+                </property>
+            </property>
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#DocumentationActor">
+            </property>
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{875.0, 85.0}">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:436:1:urn:lsid:kepler-project.org/ns/:13757:121:3">
+            </property>
         </property>
-        <port name="sof_in" class="ptolemy.actor.TypedIOPort">
+        <port name="dataset" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{345.0, 640.0}">
+            </property>
+        </port>
+        <port name="dataset_in" class="ptolemy.actor.TypedIOPort">
             <property name="input"/>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{100.0, 340.0}">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[30.0, 205.0]">
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            </property>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
             </property>
         </port>
-        <port name="sof_out" class="ptolemy.actor.TypedIOPort">
+        <port name="current_dataset" class="ptolemy.actor.TypedIOPort">
             <property name="output"/>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{795.0, 340.0}">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[520.0, 215.0]">
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            </property>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
             </property>
         </port>
-        <entity name="SofSplitter" class="org.eso.SofSplitter">
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofSplitter takes a set of files as input and split it into smaller sets based on the purpose. This smaller sets can then be sent to e.g. a RecipeExecuter</configure></property>
-<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sof</configure></property>
-<property name="port:#groups" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of groups generated</configure></property>
-<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The grouped sofs</configure></property>
-<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:201:2">
+        <entity name="CurrentDataSet" class="org.eso.CurrentDataSet">
+            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:12341:47:2">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofSplitter">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.CurrentDataSet">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
                 </property>
             </property>
             <property name="semanticType" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{85, 185}">
-            </property>
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{400.0, 320.0}">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org/ns/:12925:5:1">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList">
             </property>
-            <port name="sof in" class="ptolemy.actor.TypedIOPort">
+            <port name="in" class="ptolemy.actor.TypedIOPort">
                 <property name="input"/>
-                <property name="multiport"/>
                 <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
                 </property>
             </port>
-            <port name="sof out" class="ptolemy.actor.TypedIOPort">
+            <port name="dataset name" class="ptolemy.actor.TypedIOPort">
                 <property name="output"/>
-                <property name="multiport"/>
                 <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
                 </property>
             </port>
-            <port name="#groups" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
-                </property>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
-                </property>
-            </port>
         </entity>
-        <entity name="SofAccumulator" class="org.eso.SofAccumulator">
-            <property name="same dataset" class="ptolemy.data.expr.Parameter" value="true">
+        <entity name="String Constant" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="processing dataset ">
+            </property>
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
+            </property>
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofAccumulator is meant to be used together with the SofSplitter: it puts back together in a single set of files the tokens generated by the PurposeSerializer (and usually processed by the RecipeExecuter)</configure></property>
-<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sofs</configure></property>
-<property name="port:#groups" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The number of groups to collect</configure></property>
-<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The grouped sof</configure></property>
-<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:same dataset" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If true the SofAccumulator throws an error if the input tokens do not belong all to the same dataset</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:202:2">
-            </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofAccumulator">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
+<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
+<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
+<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
+</property>            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
                 </property>
             </property>
-            <property name="semanticType" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[385.0, 190.0]">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
             </property>
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
+                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
+                </property>
+                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
+                </property>
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org/ns/:12925:7:1">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{457.57806, 77.69272}">
             </property>
-            <port name="sof in" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-                </property>
-            </port>
-            <port name="#groups" class="ptolemy.actor.TypedIOPort">
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <port name="trigger" class="ptolemy.actor.TypedIOPort">
                 <property name="input"/>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
-                </property>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
-                </property>
-            </port>
-            <port name="sof out" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
                 <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
                 </property>
             </port>
         </entity>
-        <entity name="vmmosscience_2" class="org.eso.RecipeExecuter">
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[215.0, 165.0]">
+        <entity name="2" class="org.resurgence.actor.StringAccumulator">
+            <property name="Substring separator" class="ptolemy.data.expr.Parameter" value="""">
             </property>
-        </entity>
-        <relation name="relation" class="ptolemy.actor.TypedIORelation">
-        </relation>
-        <relation name="relation4" class="ptolemy.actor.TypedIORelation">
-        </relation>
-        <relation name="relation5" class="ptolemy.actor.TypedIORelation">
-        </relation>
-        <relation name="relation2" class="ptolemy.actor.TypedIORelation">
-        </relation>
-        <relation name="relation3" class="ptolemy.actor.TypedIORelation">
-        </relation>
-        <link port="sof_in" relation="relation"/>
-        <link port="sof_out" relation="relation3"/>
-        <link port="SofSplitter.sof in" relation="relation"/>
-        <link port="SofSplitter.sof out" relation="relation5"/>
-        <link port="SofSplitter.#groups" relation="relation4"/>
-        <link port="SofAccumulator.sof in" relation="relation2"/>
-        <link port="SofAccumulator.#groups" relation="relation4"/>
-        <link port="SofAccumulator.sof out" relation="relation3"/>
-        <link port="vmmosscience_2.sof in" relation="relation5"/>
-        <link port="vmmosscience_2.sof out" relation="relation2"/>
-    </entity>
-    <entity name="SofCombiner3" class="org.eso.SofCombiner">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofCombiner takes as input a number of set of files and combines them into one set of files that contains only the files whose purposes are present in all the input tokens. With this respect empty tokens are ignored and files with universal purpose are always collected</configure></property>
-<property name="port:sof in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input sofs</configure></property>
-<property name="port:sof out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The combined sof</configure></property>
-<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:224:1">
-        </property>
-        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofCombiner">
-            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke Sudholt</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>
The StringAccumulator actor reads multiple strings via its input port and outputs a string containing all of the input values. The characters separating the substrings in the output string can be specified with the substringSeparator parameter.</p></configure></property>
+<property name="port:whole" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the full string.</configure></property>
+<property name="port:parts" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts substrings.</configure></property>
+<property name="prop:Substring separator" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The characters used to separate the elements in the output string. By default, the value is "".</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31617:79:4">
             </property>
-        </property>
-        <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
-        </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[340.0, 830.0]">
-        </property>
-        <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
-        </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:908:1">
-        </property>
-        <port name="sof in" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="multiport"/>
-            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.resurgence.actor.StringAccumulator">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1117:1">
+                </property>
             </property>
-        </port>
-        <port name="sof out" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="multiport"/>
-            <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
             </property>
-        </port>
-    </entity>
-    <entity name="Initialize" class="ptolemy.actor.TypedCompositeActor">
-        <display name="Initialise"/>
-        <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="7.0.2">
-        </property>
-        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31989:106:14">
-        </property>
-        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.TypedCompositeActor">
-            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#IterativeOperation">
             </property>
-        </property>
-        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Actor">
-        </property>
-        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#GeneralPurpose">
-        </property>
-        <property name="semanticType22" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Workflow">
-        </property>
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</ [...]
-</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[-515.0, 705.0]">
-        </property>
-        <property name="Annotation" class="ptolemy.vergil.kernel.attributes.TextAttribute">
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{652.57806, 237.69272}">
             </property>
-            <property name="_hideAllParameters" class="ptolemy.data.expr.Parameter" value="true">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:292:1:urn:lsid:kepler-project.org/ns/:13757:392:4">
             </property>
-            <property name="textSize" class="ptolemy.data.expr.Parameter" value="14">
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
-            <property name="textColor" class="ptolemy.actor.gui.ColorAttribute" value="{0.0, 0.0, 1.0, 1.0}">
+        </entity>
+        <entity name="Display" class="ptolemy.actor.lib.gui.Display">
+            <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={1367, 140, 510, 393}, maximized=false}">
             </property>
-            <property name="fontFamily" class="ptolemy.data.expr.StringParameter" value="SansSerif">
+            <property name="_paneSize" class="ptolemy.actor.gui.SizeAttribute" value="[508, 346]">
+            </property>
+            <property name="rowsDisplayed" class="ptolemy.data.expr.Parameter" value="10">
             </property>
-            <property name="bold" class="ptolemy.data.expr.Parameter" value="false">
+            <property name="columnsDisplayed" class="ptolemy.data.expr.Parameter" value="40">
             </property>
-            <property name="italic" class="ptolemy.data.expr.Parameter" value="false">
+            <property name="suppressBlankLines" class="ptolemy.data.expr.Parameter" value="true">
             </property>
-            <property name="text" class="ptolemy.kernel.util.StringAttribute" value="This subworkflow is in charge of two things:

 -Deleting the workflow directories if requested.

 -Providing the value of the raw data directory">
-                <property name="_style" class="ptolemy.actor.gui.style.TextStyle">
-                    <property name="height" class="ptolemy.data.expr.Parameter" value="20">
-                    </property>
-                    <property name="width" class="ptolemy.data.expr.Parameter" value="80">
-                    </property>
-                </property>
+            <property name="title" class="ptolemy.data.expr.StringParameter" value="Current DataSet">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong, Edward A. Lee</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Use the Annotation attribute to annotate a workflow. Double-click the attribute to customize the content, font size, color, and basic formatting (bold and italics).</configure></property>
-<property name="prop:fontFamily" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font face. Select a font from the drop-down menu. The default is "SansSerif".</configure></property>
-<property name="prop:italic" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Select to indicate that the type should be italics. By default, type will not be italicized.</configure></property>
-<property name="prop:bold" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Select to indicate that the type should be bold. By default, type will not be bold.</configure></property>
-<property name="prop:textColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
-<property name="prop:textSize" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font size. Select an integer from the drop-down menu or specify a new size by typing it directly into the value field.  The default is 14.</configure></property>
-<property name="prop:text" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The text of the annotation.</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:436:1">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The Display actor reads tokens of any type via its input multiport, and displays each token on a separate line in a text display window.</p>

<p>Specify the size of the text display window with the rowsDisplayed and columnsDisplayed parameters. Simply resizing the window onscreen does not persistently change the size when the workflow is saved, closed, and the [...]
+<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts tokens of any type.</configure></property>
+<property name="prop:suppressBlankLines" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether the actor should display blank lines (the default) or suppress them.</configure></property>
+<property name="prop:rowsDisplayed" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The vertical size of the display, in rows. The value is an integer that defaults to 10.</configure></property>
+<property name="prop:columnsDisplayed" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The horizontal size of the display, in columns. The value is an integer that defaults to 40.</configure></property>
+<property name="prop:title" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The title of the text display window. If specified, the value will appear in the title bar of the text display window.</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31617:83:2">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.vergil.kernel.attributes.TextAttribute">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1199:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.gui.Display">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:883:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#DocumentationActor">
-            </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{490.0, 565.0}">
-            </property>
-        </property>
-        <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={5, 37, 1910, 1126}, maximized=true}">
-        </property>
-        <property name="_vergilSize" class="ptolemy.actor.gui.SizeAttribute" value="[1657, 1009]">
-        </property>
-        <property name="_vergilZoomFactor" class="ptolemy.data.expr.ExpertParameter" value="0.6681514476615">
-        </property>
-        <property name="_vergilCenter" class="ptolemy.data.expr.ExpertParameter" value="{740.9883333333332, 743.9433333333333}">
-        </property>
-        <property name="" class="ptolemy.vergil.basic.DocAttribute">
-            <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</p>&#10 [...]
-            </property>
-            <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Yuhong Xiong">
-            </property>
-            <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
-            </property>
-        </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:14094:70:17:urn:lsid:kepler-project.org/ns/:15314:48:9:urn:lsid:kepler-project.org/ns/:25158:29:4">
-        </property>
-        <property name="DDF Director" class="ptolemy.domains.ddf.kernel.DDFDirector">
-            <property name="timeResolution" class="ptolemy.actor.parameters.SharedParameter" value="1E-10">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#TextualOutputActor">
             </property>
-            <property name="iterations" class="ptolemy.data.expr.Parameter" value="0">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#TextualOutput">
             </property>
-            <property name="maximumReceiverCapacity" class="ptolemy.data.expr.Parameter" value="0">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{755.0, 235.0}">
             </property>
-            <property name="runUntilDeadlockInOneIteration" class="ptolemy.data.expr.Parameter" value="true">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:7:1">
             </property>
+        </entity>
+        <entity name="Counter" class="ptolemy.actor.lib.Counter">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Gang Zhou</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Steve Neuendorffer</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
            <p> The dynamic dataflow (DDF) domain is a superset of the synchronous
            dataflow(SDF) and Boolean dataflow(BDF) domains. In the SDF domain,
            an actor consumes and produces a fixed number of tokens per firing.
            This static information makes possible compile-time scheduling. In the
            DDF domain, there are few  [...]
-<property name="prop:maximumReceiverCapacity" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A Parameter representing the maximum capacity of each receiver controlled by this director. This is an integer that defaults to 0, which means the queue in each receiver is unbounded. To specify bounded queues, set this to a positive integer. </configure></property>
-<property name="prop:iterations" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify the number of times a workflow is iterated. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. </configure></property>
-<property name="prop:runUntilDeadlockInOneIteration" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A parameter indicating whether one iteration consists of repeated basic iterations until deadlock. If this parameter is true, the model will be executed until deadlock in one iteration. The default value is a BooleanToken with the value false. It cannot be set to true if this director is at the top level.</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31989:107:1">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The Counter actor increments or decrements an internal counter, depending on its inputs. The actor outputs the counter value as an integer.</p>

<p>Each time the actor fires, it adjusts its internal counter (incrementing or decrementing the count) based on the input. Whenever a token is received from the increment input, the internal counter is incremented. Wh [...]
+<property name="port:increment" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input port used to increment the counter. The port accepts tokens of any type. </configure></property>
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the counter value.</configure></property>
+<property name="port:decrement" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input port used to decrement the counter. The port accepts tokens of any type.</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31617:80:2">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.domains.ddf.kernel.DDFDirector">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:directorclass:5:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.Counter">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:947:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Director">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#IterativeMathOperationActor">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Director">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#IterativeOperation">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{205, 255}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{402.57806, 122.69272}">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:director:5:1">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:72:1">
             </property>
-        </property>
-        <port name="raw_data_dir" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[1140.0, 365.0]">
+            <property name="" class="ptolemy.vergil.basic.DocAttribute">
+                <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>The Counter actor increments or decrements an internal counter, depending on its inputs. The actor outputs the counter value as an integer.</p>

<p>Each time the actor fires, it adjusts its internal counter (incrementing or decrementing the count) based on the input. Whenever a token is received from the increment input, the internal counter is incremented. Wheneve [...]
+                </property>
+                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Steve Neuendorffer">
+                </property>
+                <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
+                </property>
+                <property name="increment (port)" class="ptolemy.kernel.util.StringAttribute" value="An input port used to increment the counter. The port accepts tokens of any type. ">
+                </property>
+                <property name="decrement (port)" class="ptolemy.kernel.util.StringAttribute" value="An input port used to decrement the counter. The port accepts tokens of any type.">
+                </property>
+                <property name="output (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts the counter value.">
+                </property>
             </property>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+            <port name="decrement" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+                </property>
+                <property name="_hide" class="ptolemy.data.expr.SingletonParameter" value="true">
+                </property>
+            </port>
+        </entity>
+        <entity name="String Constant2" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$GLOBAL_TIMESTAMP">
             </property>
-        </port>
-        <entity name="String Constant" class="ptolemy.actor.lib.StringConst">
-            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="1">
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
             </property>
             <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="if [ "x$EraseDirs" = "xtrue" ]; then  echo "Deleting files"; rm -rf $BOOKKEEPING_DIR/*;  rm -rf $LOGS_DIR/*; rm -rf $TMP_PRODUCTS_DIR/* ;  else echo "Will not delete files"; fi">
-            </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
@@ -3022,7 +4065,7 @@
 <property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
 <property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
 <property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:204:1">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:13757:393:3">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
@@ -3038,86 +4081,138 @@
                 <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
                 </property>
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[655.0, 685.0]">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[370.0, 500.0]">
             </property>
-        </entity>
-        <entity name="String Constant2" class="ptolemy.actor.lib.StringConst">
-            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="1">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1:urn:lsid:kepler-project.org/ns/:14094:13:2">
             </property>
-            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="$CALIB_DATA_DIR">
+            <port name="trigger" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+                </property>
+            </port>
+        </entity>
+        <entity name="3" class="org.resurgence.actor.StringAccumulator">
+            <property name="Substring separator" class="ptolemy.data.expr.Parameter" value=""/"">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke Sudholt</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
-<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
-<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
-<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
-<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:14094:71:2">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>
The StringAccumulator actor reads multiple strings via its input port and outputs a string containing all of the input values. The characters separating the substrings in the output string can be specified with the substringSeparator parameter.</p></configure></property>
+<property name="port:whole" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the full string.</configure></property>
+<property name="port:parts" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts substrings.</configure></property>
+<property name="prop:Substring separator" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The characters used to separate the elements in the output string. By default, the value is "".</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31617:90:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.resurgence.actor.StringAccumulator">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1117:1">
                 </property>
             </property>
             <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
-            </property>
-            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
-                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
-                </property>
-                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
-                </property>
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#IterativeOperation">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[825.0, 445.0]">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[480.0, 525.0]">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:292:1:urn:lsid:kepler-project.org/ns/:13757:392:4">
             </property>
+            <port name="parts" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+                </property>
+            </port>
         </entity>
-        <entity name="Time Stamp" class="org.sdm.spa.Timestamp">
-            <property name="format" class="ptolemy.data.expr.StringParameter" value="yyyy-MM-dd'T'HH:mm:ss">
+        <entity name="Directory Maker" class="org.resurgence.actor.DirectoryMaker">
+            <property name="Directory name" class="ptolemy.actor.parameters.PortParameter" value="">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Ilkay Altintas</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke Sudholt</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The TimeStamp actor outputs the current date and time.</p>

<p>Dates and times can be formatted in a variety of ways. Select a format from the drop-down menu beside the format parameter, or enter a pattern directly into the format field. For more information about date format patterns, see http://java.sun.com/docs/books/tutorial/i18n/format/datepattern.html.&l [...]
-<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the current time stamp as a string.</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The DirectoryMaker actor creates a new local directory and outputs its path.</p>

<p>The name of the new directory is specified with the directoryName parameter.</p></configure></property>
 <property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time.</configure></property>
-<property name="prop:format" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The date format. Select a format string from the drop-down menu or type in a custom format string directly into the field. For more information about date formatting patterns, see http://java.sun.com/docs/books/tutorial/i18n/format/datepattern.html</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:370:1">
-            </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.sdm.spa.Timestamp">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1136:1">
+<property name="port:path" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the new directory path.</configure></property>
+<property name="prop:Directory name" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The name and path of the new directory. See FileParameter for more information about specifying paths.</configure></property>
+</property>            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.resurgence.actor.DirectoryMaker">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1111:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#ClockActor">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#FileSystemActor">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#LocalInput">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#FileSystem">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[350.0, 370.0]">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[795.0, 615.0]">
             </property>
             <property name="" class="ptolemy.vergil.basic.DocAttribute">
-                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Ilkay Altintas">
+                <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>The DirectoryMaker actor creates a new local directory and outputs its path.</p>

<p>The name of the new directory is specified with the directoryName parameter.</p>">
+                </property>
+                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Wibke Sudholt">
                 </property>
                 <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
                 </property>
-                <property name="format (parameter)" class="ptolemy.data.expr.StringParameter" value="The date format. Select a format string from the drop-down menu or type in a custom format string directly into the field. For more information about date formatting patterns, see http://java.sun.com/docs/books/tutorial/i18n/format/datepattern.html">
+                <property name="trigger (port)" class="ptolemy.kernel.util.StringAttribute" value="A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time.">
                 </property>
-                <property name="output (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts the current time stamp as a string.">
+                <property name="path (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts the new directory path.">
                 </property>
-                <property name="trigger (port)" class="ptolemy.kernel.util.StringAttribute" value="A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time.">
+                <property name="Directory name (parameter)" class="ptolemy.data.expr.StringParameter" value="The name and path of the new directory. See FileParameter for more information about specifying paths.">
+                </property>
+            </property>
+            <property name="requiredFiringsPerIteration" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+            <port name="trigger" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_hide" class="ptolemy.data.expr.SingletonParameter" value="true">
+                </property>
+            </port>
+        </entity>
+        <entity name="String Constant3" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$N_SELECTED_DATASETS: ">
+            </property>
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
+            </property>
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
+            </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
+<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
+<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
+<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
+</property>            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
+                </property>
+            </property>
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
+            </property>
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
+            </property>
+            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
+                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
+                </property>
+                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
                 </property>
             </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{412.57806, 252.69272}">
+            </property>
             <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
+            <port name="trigger" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+                </property>
+            </port>
         </entity>
-        <entity name="Variable Setter2" class="ptolemy.actor.lib.SetVariable">
-            <property name="variableName" class="ptolemy.kernel.util.StringAttribute" value="GLOBAL_TIMESTAMP">
+        <entity name="Variable Setter" class="ptolemy.actor.lib.SetVariable">
+            <property name="variableName" class="ptolemy.kernel.util.StringAttribute" value="END_PRODUCTS_SUBDIR">
             </property>
             <property name="delayed" class="ptolemy.data.expr.Parameter" value="false">
             </property>
@@ -3126,7 +4221,7 @@
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee, Steve Neuendorffer, Jerome Blanc</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
Set the value of a variable. The result may occur at two different times, depending on the value of the delayed parameter. 
If delayed is true, then the change to the value of the variable is implemented in a change request, and consequently will not take hold until the end of the current toplevel iteration. This helps ensure that users of value of the variable will see changes t [...]
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:47:1">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31617:89:6">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.SetVariable">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:886:1">
@@ -3136,126 +4231,27 @@
             </property>
             <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#LocalInput">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[500.0, 360.0]">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[615.0, 435.0]">
             </property>
             <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:10:1">
-            </property>
-            <port name="output" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="_expertMode" class="ptolemy.kernel.util.SingletonAttribute">
-                </property>
-            </port>
-        </entity>
-        <entity name="DirectoryEraser" class="ptolemy.actor.lib.Exec">
-            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
-            </property>
-            <property name="command" class="ptolemy.actor.parameters.PortParameter" value="sh">
-            </property>
-            <property name="directory" class="ptolemy.data.expr.FileParameter" value="$CWD">
-            </property>
-            <property name="environment" class="ptolemy.data.expr.Parameter" value="{{name = "", value = ""}}">
-            </property>
-            <property name="prependPlatformDependentShellCommand" class="ptolemy.data.expr.Parameter" value="false">
-            </property>
-            <property name="throwExceptionOnNonZeroReturn" class="ptolemy.data.expr.Parameter" value="true">
-            </property>
-            <property name="waitForProcess" class="ptolemy.data.expr.Parameter" value="true">
-            </property>
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Xiaojun Liu, Edward A. Lee, Steve Neuendorffer</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
<p>The External Execution actor executes a system command from a workflow. The actor accepts a command, a directory and environment in which to execute the command, and a command input string. Once the command has finished executing, the actor will output the execution results along with any errors. If no results are generated, the actor will output an empty string.</p>&# [...]
-<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input port that accepts strings to pass to the standard input of the subprocess. Note that a newline is not appended to the string. If you require a newline, add one using the AddSubtract actor. This port is an input port of type String.</configure></property>
-<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts data generated by the executed command, output as a string after the command has finished executing. If the command generates no data on standard out, then the empty string (a string of length zero) is generated. </configure></property>
-<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If connected, a token must be available on this port before actor will execute.</configure></property>
-<property name="port:error" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts any errors generated by the command execution. Errors are output as a string after the command has finished executing. If the execution generates no errors, an empty string is output. </configure></property>
-<property name="port:exitCode" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the command's exit code. A non-zero value signifies an error.</configure></property>
-<property name="prop:environment" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An array of records that name an environment variable and a value:
 
  {{name = "NAME1", value = "value1"}...}
  
Where NAME1 is the name of the environment variable, and value1 is the value. 
For example, {{name = "PTII", value = "c:/ptII"}} would set the value of the PTII to c:/ptII. 
If the parameter is set to {{name="&quot [...]
-<property name="prop:directory" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The directory in which to execute the command. The default value of this parameter $CWD, which represents the user's current working or home directory. </configure></property>
-<property name="prop:throwExceptionOnNonZeroReturn" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If true, then throw an exception if the subprocess returns non-zero.</configure></property>
-<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If a positive integer, then it is the maximum number of times to execute the actor.</configure></property>
-<property name="prop:prependPlatformDependentShellCommand" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
If true, then prepend the platform dependent shell command to the
parsed value of the command parameter.  By setting this argument
to true, it is possible to invoke commands in a platform neutral
method.
<p>Under Windows NT or XP, the arguments "cmd.exe" and "/C" are
prepended.  Under Windows 95, the arguments "com [...]
-<property name="prop:waitForProcess" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If true, then actor will wait until subprocess completes.</configure></property>
-<property name="prop:command" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The command to be executed (e.g., echo "Hello, world."). The command can be specified via either the command port or parameter.</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:102:1">
-            </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.Exec">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:976:1">
-                </property>
-            </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#ExternalExecutionEnvironmentActor">
-            </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#UnixCommand">
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{125.0, 380.0}">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:10:1:urn:lsid:kepler-project.org/ns/:13757:404:3">
             </property>
             <property name="" class="ptolemy.vergil.basic.DocAttribute">
-                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Xiaojun Liu, Edward A. Lee, Steve Neuendorffer">
-                </property>
-                <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
-                </property>
-                <property name="firingCountLimit (parameter)" class="ptolemy.data.expr.StringParameter" value="If a positive integer, then it is the maximum number of times to execute the actor.">
-                </property>
-                <property name="directory (parameter)" class="ptolemy.data.expr.StringParameter" value="The directory in which to execute the command. The default value of this parameter $CWD, which represents the user's current working or home directory. ">
-                </property>
-                <property name="environment (parameter)" class="ptolemy.data.expr.StringParameter" value="An array of records that name an environment variable and a value:
 
  {{name = "NAME1", value = "value1"}...}
  
Where NAME1 is the name of the environment variable, and value1 is the value. 
For example, {{name = "PTII", value = "c:/ptII"}} would set the value of the PTII to c:/ptII. 
If the parameter is set to {{name= [...]
-                </property>
-                <property name="prependPlatformDependentShellCommand (parameter)" class="ptolemy.data.expr.StringParameter" value="
If true, then prepend the platform dependent shell command to the
parsed value of the command parameter.  By setting this argument
to true, it is possible to invoke commands in a platform neutral
method.
<p>Under Windows NT or XP, the arguments "cmd.exe" and "/C" are
prepended.  Under Windows 95, the argument [...]
-                </property>
-                <property name="throwExceptionOnNonZeroReturn (parameter)" class="ptolemy.data.expr.StringParameter" value="If true, then throw an exception if the subprocess returns non-zero.">
-                </property>
-                <property name="waitForProcess (parameter)" class="ptolemy.data.expr.StringParameter" value="If true, then actor will wait until subprocess completes.">
-                </property>
-                <property name="output (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts data generated by the executed command, output as a string after the command has finished executing. If the command generates no data on standard out, then the empty string (a string of length zero) is generated. ">
-                </property>
-                <property name="trigger (port)" class="ptolemy.kernel.util.StringAttribute" value="If connected, a token must be available on this port before actor will execute.">
-                </property>
-                <property name="error (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts any errors generated by the command execution. Errors are output as a string after the command has finished executing. If the execution generates no errors, an empty string is output. ">
-                </property>
-                <property name="input (port)" class="ptolemy.kernel.util.StringAttribute" value="An input port that accepts strings to pass to the standard input of the subprocess. Note that a newline is not appended to the string. If you require a newline, add one using the AddSubtract actor. This port is an input port of type String.">
+                <property name="description" class="ptolemy.kernel.util.StringAttribute" value="
Set the value of a variable. The result may occur at two different times, depending on the value of the delayed parameter. 
If delayed is true, then the change to the value of the variable is implemented in a change request, and consequently will not take hold until the end of the current toplevel iteration. This helps ensure that users of value of the variable will see changes to the [...]
                 </property>
-                <property name="exitCode (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts the command's exit code. A non-zero value signifies an error.">
+                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Edward Lee, Steve Neuendorffer, Jerome Blanc">
                 </property>
-                <property name="command (parameter)" class="ptolemy.data.expr.StringParameter" value="The command to be executed (e.g., echo "Hello, world."). The command can be specified via either the command port or parameter.">
+                <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
                 </property>
             </property>
-            <port name="output" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-                </property>
-            </port>
-            <port name="command" class="ptolemy.actor.parameters.ParameterPort">
-                <property name="input"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-                </property>
-            </port>
-            <port name="error" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-                </property>
-            </port>
-            <port name="input" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-                </property>
-            </port>
-            <port name="exitCode" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-                </property>
-            </port>
         </entity>
         <entity name="String Constant4" class="ptolemy.actor.lib.StringConst">
-            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="1">
+            <property name="value" class="ptolemy.data.expr.Parameter" value=" out of ">
             </property>
-            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="$RAWDATA_DIR">
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
@@ -3266,9 +4262,7 @@
 <property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
 <property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
 <property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:204:1">
-            </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
+</property>            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
                 </property>
             </property>
@@ -3282,133 +4276,177 @@
                 <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
                 </property>
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[815.0, 310.0]">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{427.57806, 187.69272}">
+            </property>
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
+            <port name="trigger" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+                </property>
+            </port>
         </entity>
-        <entity name="Elements To Array" class="ptolemy.actor.lib.ElementsToArray">
+        <entity name="String Accumulator" class="org.resurgence.actor.StringAccumulator">
+            <property name="Substring separator" class="ptolemy.data.expr.Parameter" value=""/"">
+            </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke Sudholt</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
<p>The ElementsToArray actor reads individual elements via its input port and outputs an array consisting of those elements.</p>

<p>The actor accepts input elements of any one type (int, double, etc.). The type must be consistent. Each time the actor fires, it reads one token from each channel of the input port and outputs a corresponding array.</p>&# [...]
-<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts an assembled array. The type of the array elements matches that of the input.</configure></property>
-<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts tokens of any one type. The type must be consistent.</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:32:1">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>
The StringAccumulator actor reads multiple strings via its input port and outputs a string containing all of the input values. The characters separating the substrings in the output string can be specified with the substringSeparator parameter.</p></configure></property>
+<property name="port:whole" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the full string.</configure></property>
+<property name="port:parts" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts substrings.</configure></property>
+<property name="prop:Substring separator" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The characters used to separate the elements in the output string. By default, the value is "".</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31989:93:2">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.ElementsToArray">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:908:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.resurgence.actor.StringAccumulator">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1117:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#ArrayActor">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#DataArrayOperation">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#IterativeOperation">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[975.0, 350.0]">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[615.0, 615.0]">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:292:1">
+            </property>
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
         </entity>
-        <relation name="relation2" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+        <entity name="String Constant5" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$END_PRODUCTS_DIR">
             </property>
-        </relation>
-        <relation name="relation3" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
             </property>
-        </relation>
-        <relation name="relation9" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-            <vertex name="vertex1" value="[665.0, 385.0]">
-            </vertex>
-        </relation>
-        <relation name="relation" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
+<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
+<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
+<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31989:92:1">
             </property>
-        </relation>
-        <relation name="relation8" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
+                </property>
             </property>
-        </relation>
-        <relation name="relation10" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
             </property>
-        </relation>
-        <relation name="relation7" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
             </property>
-        </relation>
-        <link port="raw_data_dir" relation="relation"/>
-        <link port="String Constant.output" relation="relation3"/>
-        <link port="String Constant2.output" relation="relation10"/>
-        <link port="String Constant2.trigger" relation="relation9"/>
-        <link port="Time Stamp.output" relation="relation2"/>
-        <link port="Time Stamp.trigger" relation="relation7"/>
-        <link port="Variable Setter2.input" relation="relation2"/>
-        <link port="Variable Setter2.output" relation="relation9"/>
-        <link port="DirectoryEraser.output" relation="relation7"/>
-        <link port="DirectoryEraser.input" relation="relation3"/>
-        <link port="String Constant4.output" relation="relation8"/>
-        <link port="String Constant4.trigger" relation="relation9"/>
-        <link port="Elements To Array.input" relation="relation8"/>
-        <link port="Elements To Array.input" relation="relation10"/>
-        <link port="Elements To Array.output" relation="relation"/>
-    </entity>
-    <entity name="DataOrganizer" class="org.eso.DataOrganizer">
-        <display name="Data Organiser"/>
-        <property name="OCA File" class="ptolemy.data.expr.FileParameter" value="@prefix@/share/esopipes/vimos- at VERSION@/reflex/vimos_mos_wkf.oca">
-        </property>
-        <property name="Keywords to be displayed" class="ptolemy.data.expr.StringParameter" value="OBS.TARG.NAME,OCS.CON.QUAD,INS.GRIS1.NAME,INS.FILT1.NAME,INS.MASK1.ID,INS.GRIS2.NAME,INS.FILT2.NAME,INS.MASK2.ID,INS.GRIS3.NAME,INS.FILT3.NAME,INS.MASK3.ID,INS.GRIS4.NAME,INS.FILT4.NAME,INS.MASK4.ID,DET.CHIP1.ID,INS.MODE">
-        </property>
-        <property name="Lazy Mode" class="ptolemy.data.expr.Parameter" value="false">
-        </property>
-        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:38241:2:5">
-        </property>
-        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.DataOrganizer">
-            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
+                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
+                </property>
+                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
+                </property>
             </property>
-        </property>
-        <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
-        </property>
-        <property name="" class="ptolemy.vergil.basic.DocAttribute">
-            <property name="author" class="ptolemy.kernel.util.StringAttribute" value="ESO">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[665.0, 525.0]">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1:urn:lsid:kepler-project.org/ns/:14094:13:2:urn:lsid:kepler-project.org/ns/:13757:393:3">
+            </property>
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
-            <property name="version" class="ptolemy.kernel.util.StringAttribute" value="1.0">
+            <port name="trigger" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+                </property>
+            </port>
+        </entity>
+        <relation name="relation2" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-            <property name="OCA File (parameter)" class="ptolemy.data.expr.StringParameter" value="The filename (full path) containing the OCA rules used for classification and organization. Look at the user manual for more info.">
+            <vertex name="vertex1" value="[560.0, 330.0]">
+            </vertex>
+        </relation>
+        <relation name="relation3" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-            <property name="Keywords to be displayed (parameter)" class="ptolemy.data.expr.StringParameter" value="A comma separated list of FITS keywords which are extracted from all files in addition to the ones selected by the OCA rules">
+        </relation>
+        <relation name="relation4" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-            <property name="class (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+        </relation>
+        <relation name="relation5" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-            <property name="semanticType41 (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+        </relation>
+        <relation name="relation6" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-            <property name="LoSOs (port)" class="ptolemy.kernel.util.StringAttribute" value="The produced LoSOs">
+        </relation>
+        <relation name="relation7" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-            <property name="data dir (port)" class="ptolemy.kernel.util.StringAttribute" value="The directory containing the input data. It is scanned recursively.">
+            <vertex name="vertex1" value="[250.0, 330.0]">
+            </vertex>
+        </relation>
+        <relation name="relation8" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-            <property name="entityId (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+        </relation>
+        <relation name="relation9" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-        </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[-510.0, 785.0]">
-        </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:workflow:6:1:urn:lsid:kepler-project.org/ns/:5968:13:3:urn:lsid:kepler-project.org/ns/:13180:2:2:urn:lsid:kepler-project.org/ns/:13643:11:1:urn:lsid:kepler-project.org/ns/:15314:296:11:urn:lsid:kepler-project.org/ns/:19529:16:9:urn:lsid:kepler-project.org/ns/:25158:31:12:urn:lsid:kepler-project.org/ns/:27444:33:1:urn:lsid:kepler-project.org/ns/:31989:61:1:urn:lsid:kepler [...]
-        </property>
-        <port name="input data" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+        </relation>
+        <relation name="relation11" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-        </port>
-        <port name="datasets out" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+            <vertex name="vertex1" value="[565.0, 545.0]">
+            </vertex>
+        </relation>
+        <relation name="relation12" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+        </relation>
+        <relation name="relation" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-        </port>
+        </relation>
+        <link port="dataset" relation="relation7"/>
+        <link port="dataset_in" relation="relation7"/>
+        <link port="current_dataset" relation="relation2"/>
+        <link port="CurrentDataSet.in" relation="relation7"/>
+        <link port="CurrentDataSet.dataset name" relation="relation2"/>
+        <link port="String Constant.output" relation="relation9"/>
+        <link port="String Constant.trigger" relation="relation7"/>
+        <link port="2.parts" relation="relation9"/>
+        <link port="2.parts" relation="relation6"/>
+        <link port="2.parts" relation="relation5"/>
+        <link port="2.parts" relation="relation4"/>
+        <link port="2.parts" relation="relation2"/>
+        <link port="2.whole" relation="relation3"/>
+        <link port="Display.input" relation="relation3"/>
+        <link port="Counter.increment" relation="relation7"/>
+        <link port="Counter.output" relation="relation6"/>
+        <link port="String Constant2.output" relation="relation8"/>
+        <link port="String Constant2.trigger" relation="relation7"/>
+        <link port="3.parts" relation="relation8"/>
+        <link port="3.parts" relation="relation2"/>
+        <link port="3.whole" relation="relation11"/>
+        <link port="Directory Maker.Directory name" relation="relation"/>
+        <link port="String Constant3.output" relation="relation4"/>
+        <link port="String Constant3.trigger" relation="relation7"/>
+        <link port="Variable Setter.input" relation="relation11"/>
+        <link port="String Constant4.output" relation="relation5"/>
+        <link port="String Constant4.trigger" relation="relation7"/>
+        <link port="String Accumulator.parts" relation="relation12"/>
+        <link port="String Accumulator.parts" relation="relation11"/>
+        <link port="String Accumulator.whole" relation="relation"/>
+        <link port="String Constant5.output" relation="relation12"/>
+        <link port="String Constant5.trigger" relation="relation11"/>
     </entity>
-    <entity name="Initialise Current Dataset" class="ptolemy.actor.TypedCompositeActor">
+    <entity name="Response Curve" class="ptolemy.actor.TypedCompositeActor">
         <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="7.0.2">
         </property>
-        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31989:28:48">
+        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:35449:12:10">
         </property>
         <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.TypedCompositeActor">
             <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1">
@@ -3425,150 +4463,48 @@
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</ [...]
-</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[-515.0, 1000.0]">
+</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[405.0, 715.0]">
         </property>
-        <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={482, 120, 1321, 810}, maximized=false}">
+        <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={271, 107, 1536, 924}, maximized=false}">
         </property>
-        <property name="_vergilSize" class="ptolemy.actor.gui.SizeAttribute" value="[1011, 659]">
+        <property name="_vergilSize" class="ptolemy.actor.gui.SizeAttribute" value="[1220, 771]">
         </property>
         <property name="_vergilZoomFactor" class="ptolemy.data.expr.ExpertParameter" value="1.0069218279703">
         </property>
-        <property name="_vergilCenter" class="ptolemy.data.expr.ExpertParameter" value="{507.0250688367565, 388.2349360666744}">
-        </property>
-        <property name="" class="ptolemy.vergil.basic.DocAttribute">
-            <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</p>&#10 [...]
-            </property>
-            <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Yuhong Xiong">
-            </property>
-            <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
-            </property>
-        </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:12776:22:11:urn:lsid:kepler-project.org/ns/:2745:94:5:urn:lsid:kepler-project.org/ns/:13757:119:12:urn:lsid:kepler-project.org/ns/:14094:9:50:urn:lsid:kepler-project.org/ns/:15314:21:358:urn:lsid:kepler-project.org/ns/:25158:32:9">
-        </property>
-        <property name="Rectangle" class="ptolemy.vergil.kernel.attributes.RectangleAttribute">
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
-            <property name="_hideAllParameters" class="ptolemy.data.expr.Parameter" value="true">
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{865.0, 65.0}">
-            </property>
-            <property name="lineWidth" class="ptolemy.data.expr.Parameter" value="5">
-            </property>
-            <property name="lineColor" class="ptolemy.actor.gui.ColorAttribute" value="{0.4,0.4,0.0,1.0}">
-            </property>
-            <property name="width" class="ptolemy.data.expr.Parameter" value="319.0">
-            </property>
-            <property name="height" class="ptolemy.data.expr.Parameter" value="72.0">
-            </property>
-            <property name="centered" class="ptolemy.data.expr.Parameter" value="false">
-            </property>
-            <property name="fillColor" class="ptolemy.actor.gui.ColorAttribute" value="none">
-            </property>
-            <property name="rounding" class="ptolemy.data.expr.Parameter" value="20">
-            </property>
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The Rectangle attribute renders a rectangle on the Workflow canvas. Single-click the rectangle to drag the resize handles and adjust the shape's size, or double-click the rectangle to customize its height, width, line width, color, and fill color.</p></configure></property>
-<property name="prop:height" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The vertical extent. The value is a double that defaults to 100.0.</configure></property>
-<property name="prop:lineWidth" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line width. The value is a double that defaults to 1.0.</configure></property>
-<property name="prop:rounding" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The amount of rounding of the corners. The value is a double that defaults to 0.0, which indicates no rounding.</configure></property>
-<property name="prop:centered" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Indicate whether the shape should be centered on its origin. By default, the location is the upper-left corner.</configure></property>
-<property name="prop:dashArray" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify a dash-pattern for dashed or dotted lines. The value consists of an array of doubles that specify the length of the alternating solid and transparent segments. An empty value indicates that the line should not be dashed (the default).</configure></property>
-<property name="prop:width" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The horizontal extent. The value is a double that defaults to 100.0.</configure></property>
-<property name="prop:lineColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
-<property name="prop:fillColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The fill color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. By default, the value is "none."</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:13757:120:5">
-            </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.vergil.kernel.attributes.RectangleAttribute">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1197:1">
-                </property>
-            </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#DecorativeActor">
-            </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
-            </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:434:1">
-            </property>
+        <property name="_vergilCenter" class="ptolemy.data.expr.ExpertParameter" value="{610.8067101689795, 556.8499783117078}">
         </property>
-        <property name="Rectangle2" class="ptolemy.vergil.kernel.attributes.RectangleAttribute">
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
-            <property name="_hideAllParameters" class="ptolemy.data.expr.Parameter" value="true">
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{865.0, 65.0}">
-            </property>
-            <property name="lineWidth" class="ptolemy.data.expr.Parameter" value="5">
-            </property>
-            <property name="lineColor" class="ptolemy.actor.gui.ColorAttribute" value="{0.4,0.4,0.0,1.0}">
-            </property>
-            <property name="width" class="ptolemy.data.expr.Parameter" value="319.0">
-            </property>
-            <property name="height" class="ptolemy.data.expr.Parameter" value="72.0">
-            </property>
-            <property name="centered" class="ptolemy.data.expr.Parameter" value="false">
-            </property>
-            <property name="fillColor" class="ptolemy.actor.gui.ColorAttribute" value="none">
-            </property>
-            <property name="rounding" class="ptolemy.data.expr.Parameter" value="20">
-            </property>
+        <property name="EnableProcessing" class="ptolemy.data.expr.StringParameter" value="true">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The Rectangle attribute renders a rectangle on the Workflow canvas. Single-click the rectangle to drag the resize handles and adjust the shape's size, or double-click the rectangle to customize its height, width, line width, color, and fill color.</p></configure></property>
-<property name="prop:height" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The vertical extent. The value is a double that defaults to 100.0.</configure></property>
-<property name="prop:lineWidth" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line width. The value is a double that defaults to 1.0.</configure></property>
-<property name="prop:rounding" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The amount of rounding of the corners. The value is a double that defaults to 0.0, which indicates no rounding.</configure></property>
-<property name="prop:centered" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Indicate whether the shape should be centered on its origin. By default, the location is the upper-left corner.</configure></property>
-<property name="prop:dashArray" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify a dash-pattern for dashed or dotted lines. The value consists of an array of doubles that specify the length of the alternating solid and transparent segments. An empty value indicates that the line should not be dashed (the default).</configure></property>
-<property name="prop:width" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The horizontal extent. The value is a double that defaults to 100.0.</configure></property>
-<property name="prop:lineColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The line color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
-<property name="prop:fillColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The fill color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. By default, the value is "none."</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:13757:120:5">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>StringParameter specifies a persistent string. </p>

<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p></configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:421:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.vergil.kernel.attributes.RectangleAttribute">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1197:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.data.expr.StringParameter">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1185:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#DecorativeActor">
-            </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
-            </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:434:1">
-            </property>
-        </property>
-        <property name="DDF Director" class="ptolemy.domains.ddf.kernel.DDFDirector">
-            <property name="timeResolution" class="ptolemy.actor.parameters.SharedParameter" value="1E-10">
-            </property>
-            <property name="iterations" class="ptolemy.data.expr.Parameter" value="0">
-            </property>
-            <property name="maximumReceiverCapacity" class="ptolemy.data.expr.Parameter" value="0">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Parameter">
             </property>
-            <property name="runUntilDeadlockInOneIteration" class="ptolemy.data.expr.Parameter" value="false">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Parameter">
             </property>
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Gang Zhou</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
            <p> The dynamic dataflow (DDF) domain is a superset of the synchronous
            dataflow(SDF) and Boolean dataflow(BDF) domains. In the SDF domain,
            an actor consumes and produces a fixed number of tokens per firing.
            This static information makes possible compile-time scheduling. In the
            DDF domain, there are few  [...]
-<property name="prop:maximumReceiverCapacity" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A Parameter representing the maximum capacity of each receiver controlled by this director. This is an integer that defaults to 0, which means the queue in each receiver is unbounded. To specify bounded queues, set this to a positive integer. </configure></property>
-<property name="prop:iterations" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify the number of times a workflow is iterated. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. </configure></property>
-<property name="prop:runUntilDeadlockInOneIteration" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A parameter indicating whether one iteration consists of repeated basic iterations until deadlock. If this parameter is true, the model will be executed until deadlock in one iteration. The default value is a BooleanToken with the value false. It cannot be set to true if this director is at the top level.</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31617:88:4">
+            <property name="_hideName" class="ptolemy.kernel.util.SingletonAttribute">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.domains.ddf.kernel.DDFDirector">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:directorclass:5:1">
+            <property name="_icon" class="ptolemy.vergil.icon.ValueIcon">
+                <property name="_color" class="ptolemy.actor.gui.ColorAttribute" value="{1.0, 0.0, 0.0, 1.0}">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Director">
-            </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Director">
+            <property name="_smallIconDescription" class="ptolemy.kernel.util.SingletonConfigurableAttribute">
+                <configure>
+        <svg>
+          <text x="20" style="font-size:14; font-family:SansSerif; fill:red" y="20">-S-</text>
+        </svg>
+      </configure>
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{720.0, 75.0}">
+            <property name="_editorFactory" class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:director:5:1">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{750.0, 735.0}">
             </property>
         </property>
         <property name="Annotation" class="ptolemy.vergil.kernel.attributes.TextAttribute">
@@ -3576,7 +4512,7 @@
             </property>
             <property name="_hideAllParameters" class="ptolemy.data.expr.Parameter" value="true">
             </property>
-            <property name="textSize" class="ptolemy.data.expr.Parameter" value="18">
+            <property name="textSize" class="ptolemy.data.expr.Parameter" value="14">
             </property>
             <property name="textColor" class="ptolemy.actor.gui.ColorAttribute" value="{0.4,0.4,0.0,1.0}">
             </property>
@@ -3586,7 +4522,7 @@
             </property>
             <property name="italic" class="ptolemy.data.expr.Parameter" value="false">
             </property>
-            <property name="text" class="ptolemy.kernel.util.StringAttribute" value="Display current processed data set">
+            <property name="text" class="ptolemy.kernel.util.StringAttribute" value="This part of the subworkflow takes care of deciding whether 
the computation of the response should be
triggered or not, depending on the existence
of raw standard stars frames.">
                 <property name="_style" class="ptolemy.actor.gui.style.TextStyle">
                     <property name="height" class="ptolemy.data.expr.Parameter" value="20">
                     </property>
@@ -3605,7 +4541,7 @@
 <property name="prop:textColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
 <property name="prop:textSize" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font size. Select an integer from the drop-down menu or specify a new size by typing it directly into the value field.  The default is 14.</configure></property>
 <property name="prop:text" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The text of the annotation.</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:14094:10:1">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:35449:11:1">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.vergil.kernel.attributes.TextAttribute">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1199:1">
@@ -3615,65 +4551,109 @@
             </property>
             <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{875.0, 85.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{445.0, 835.0}">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:436:1:urn:lsid:kepler-project.org/ns/:13757:121:3">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:436:1">
             </property>
         </property>
-        <port name="dataset" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{345.0, 640.0}">
+        <property name="" class="ptolemy.vergil.basic.DocAttribute">
+            <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</p>&#10 [...]
             </property>
-        </port>
-        <port name="dataset_in" class="ptolemy.actor.TypedIOPort">
+            <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Yuhong Xiong">
+            </property>
+            <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
+            </property>
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:5968:23:141:urn:lsid:kepler-project.org/ns/:13180:17:2:urn:lsid:kepler-project.org/ns/:13637:8:6:urn:lsid:kepler-project.org/ns/:14093:4:2:urn:lsid:kepler-project.org/ns/:14170:6:1:urn:lsid:kepler-project.org/ns/:19529:82:41:urn:lsid:kepler-project.org/ns/:25158:74:1">
+        </property>
+        <port name="sof in" class="ptolemy.actor.TypedIOPort">
             <property name="input"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{100.0, 340.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{60.0, 340.0}">
             </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
             </property>
         </port>
-        <port name="current_dataset" class="ptolemy.actor.TypedIOPort">
+        <port name="sof out" class="ptolemy.actor.TypedIOPort">
             <property name="output"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{795.0, 340.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{860.0, 510.0}">
             </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+        </port>
+        <port name="sof opt" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{55.0, 630.0}">
+            </property>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="WEST">
             </property>
         </port>
-        <entity name="CurrentDataSet" class="org.eso.CurrentDataSet">
-            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:12341:47:2">
+        <entity name="Boolean Switch" class="ptolemy.actor.lib.BooleanSwitch">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Steve Neuendorffer</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The BooleanSwitch actor reads a value of any type, as well as a Boolean token that is used as a control. If the Boolean token is true, the actor outputs the received value to the trueOutput port; if the Boolean token is false, the actor outputs the received value to the falseOutput port.
If the actor has never received a value on the control port, then the actor will output t [...]
+<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input port that accepts tokens of any type.</configure></property>
+<property name="port:falseOutput" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the input token when the control is false.</configure></property>
+<property name="port:trueOutput" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the input token when the control is true.</configure></property>
+<property name="port:control" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input port that accepts a Boolean token used to select which output port (trueOutput or falseOutput) to broadcast.</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:54:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.CurrentDataSet">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.BooleanSwitch">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:930:1">
                 </property>
             </property>
-            <property name="semanticType" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#BooleanControlActor">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{400.0, 320.0}">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#BooleanControl">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{190.0, 440.0}">
             </property>
-            <port name="in" class="ptolemy.actor.TypedIOPort">
+            <port name="control" class="ptolemy.actor.TypedIOPort">
                 <property name="input"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
                 </property>
             </port>
-            <port name="dataset name" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+        </entity>
+        <entity name="DDF Boolean Select" class="ptolemy.domains.ddf.lib.DDFBooleanSelect">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Gang Zhou</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p> A type polymorphic select with boolean valued control for use in
 the DDF domain. In the first iteration, an input token at the
 <i>control</i> port is read and its value is noted. In the second
 iteration, if the <i>control</i> input read from the previous
 iteration is true, then an input token at the <i>trueInput</i> port&#1 [...]
+<property name="port:falseInput" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Input for tokens on the false path. The port type can be any type.</configure></property>
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The output port.  The type is at least the type of <i>trueInput</i> and <i>falseInput</i>. </configure></property>
+<property name="port:trueInput" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Input for tokens on the true path. The port type can be any type.</configure></property>
+<property name="port:control" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Input that selects one of the other input ports. The type is boolean.</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:526:1">
+            </property>
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.domains.ddf.lib.DDFBooleanSelect">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:526:1">
+                </property>
+            </property>
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#BooleanControlActor">
+            </property>
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#BooleanControl">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{720.0, 460.0}">
+            </property>
+            <port name="control" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
                 </property>
             </port>
         </entity>
-        <entity name="String Constant" class="ptolemy.actor.lib.StringConst">
+        <entity name="Empty SOF" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="">
+            </property>
             <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
             </property>
             <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="processing dataset ">
-            </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
@@ -3683,7 +4663,9 @@
 <property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
 <property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
 <property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:14093:3:1">
+            </property>
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
                 </property>
             </property>
@@ -3697,526 +4679,604 @@
                 <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
                 </property>
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{457.57806, 77.69272}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{385.0, 495.0}">
             </property>
             <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
-            <port name="trigger" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1:urn:lsid:kepler-project.org/ns/:5968:47:7:urn:lsid:kepler-project.org/ns/:13637:9:1">
+            </property>
+        </entity>
+        <entity name="Logic Function" class="ptolemy.actor.lib.logic.LogicFunction">
+            <display name="And"/>
+            <property name="function" class="ptolemy.kernel.util.StringAttribute" value="and">
+            </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Paul Whitaker</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The Logic Function actor reads Boolean tokens, performs a specified logical operation (e.g., "and" or  "xnor"), and outputs the evaluated result as a Boolean token.</p>

<p>Specify a logic function with the function parameter. The following logic functions may be performed:</p>

<table>
<tr><th>Logic Func [...]
+<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts Boolean tokens.</configure></property>
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts Boolean tokens representing the evaluated input.</configure></property>
+<property name="prop:function" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The logical operation to perform: and, or, xor, nand, nor, xnor. For more information about these functions, see http://whatis.techtarget.com/definition/0,,sid9_gci213512,00.html.</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:67:1">
+            </property>
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.logic.LogicFunction">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:942:1">
                 </property>
-            </port>
+            </property>
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#ControlActor">
+            </property>
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowControl">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{415.0, 775.0}">
+            </property>
         </entity>
-        <entity name="2" class="org.resurgence.actor.StringAccumulator">
-            <property name="Substring separator" class="ptolemy.data.expr.Parameter" value="""">
+        <entity name="SofCombiner" class="org.eso.SofCombiner">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{140.0, 365.0}">
+            </property>
+        </entity>
+        <entity name="String Constant4" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$EnableProcessing">
+            </property>
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
+            </property>
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke Sudholt</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>
The StringAccumulator actor reads multiple strings via its input port and outputs a string containing all of the input values. The characters separating the substrings in the output string can be specified with the substringSeparator parameter.</p></configure></property>
-<property name="port:whole" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the full string.</configure></property>
-<property name="port:parts" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts substrings.</configure></property>
-<property name="prop:Substring separator" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The characters used to separate the elements in the output string. By default, the value is "".</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31617:79:4">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
+<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
+<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
+<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:204:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.resurgence.actor.StringAccumulator">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1117:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
                 </property>
             </property>
             <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#IterativeOperation">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{652.57806, 237.69272}">
+            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
+                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
+                </property>
+                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
+                </property>
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:292:1:urn:lsid:kepler-project.org/ns/:13757:392:4">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{200.0, 780.0}">
             </property>
             <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
         </entity>
-        <entity name="Display" class="ptolemy.actor.lib.gui.Display">
-            <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={1367, 140, 510, 393}, maximized=false}">
+        <entity name="String Compare" class="ptolemy.actor.lib.string.StringCompare">
+            <property name="function" class="ptolemy.data.expr.Parameter" value="equals">
             </property>
-            <property name="_paneSize" class="ptolemy.actor.gui.SizeAttribute" value="[508, 346]">
+            <property name="ignoreCase" class="ptolemy.data.expr.Parameter" value="true">
             </property>
-            <property name="rowsDisplayed" class="ptolemy.data.expr.Parameter" value="10">
+            <property name="firstString" class="ptolemy.actor.parameters.PortParameter" value="">
             </property>
-            <property name="columnsDisplayed" class="ptolemy.data.expr.Parameter" value="40">
+            <property name="secondString" class="ptolemy.actor.parameters.PortParameter" value="">
             </property>
-            <property name="suppressBlankLines" class="ptolemy.data.expr.Parameter" value="true">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Vinay Krishnan, Daniel Lazaro Cuadrado (contributor: Edward A. Lee)</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
<p>The StringCompare actor reads two strings and compares them using a specified comparison function. The actor outputs true if the strings satisfy the comparison criteria, or false if not.</p>

<p>The comparison functions are specified with the function parameter: </p>
<ul>
<li>equals: Output true if the strings are equal (the defa [...]
+<property name="port:secondString" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input port that accepts the second string.</configure></property>
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the result of the comparison (either true or false).</configure></property>
+<property name="port:firstString" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input port that accepts the first string.</configure></property>
+<property name="prop:function" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The comparison function (equals, startsWith, endsWith, contains). The default is "equals".</configure></property>
+<property name="prop:secondString" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The second string.</configure></property>
+<property name="prop:ignoreCase" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether to ignore case. By default, the actor is case-sensitive. Select the parameter to ignore case.</configure></property>
+<property name="prop:firstString" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The first string.</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:93:1">
             </property>
-            <property name="title" class="ptolemy.data.expr.StringParameter" value="Current DataSet">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.string.StringCompare">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:967:1">
+                </property>
+            </property>
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
+            </property>
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#StatisticalOperation">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{290.0, 840.0}">
+            </property>
+        </entity>
+        <entity name="IsSofEmpty" class="org.eso.IsSofEmpty">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{180.0, 610.0}">
+            </property>
+        </entity>
+        <entity name="String Constant2" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
+            </property>
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong, Edward A. Lee</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The Display actor reads tokens of any type via its input multiport, and displays each token on a separate line in a text display window.</p>

<p>Specify the size of the text display window with the rowsDisplayed and columnsDisplayed parameters. Simply resizing the window onscreen does not persistently change the size when the workflow is saved, closed, and the [...]
-<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts tokens of any type.</configure></property>
-<property name="prop:suppressBlankLines" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether the actor should display blank lines (the default) or suppress them.</configure></property>
-<property name="prop:rowsDisplayed" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The vertical size of the display, in rows. The value is an integer that defaults to 10.</configure></property>
-<property name="prop:columnsDisplayed" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The horizontal size of the display, in columns. The value is an integer that defaults to 40.</configure></property>
-<property name="prop:title" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The title of the text display window. If specified, the value will appear in the title bar of the text display window.</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31617:83:2">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
+<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
+<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
+<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:204:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.gui.Display">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:883:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#TextualOutputActor">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#TextualOutput">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{755.0, 235.0}">
+            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
+                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
+                </property>
+                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
+                </property>
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:7:1">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{155.0, 870.0}">
+            </property>
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
         </entity>
-        <entity name="Counter" class="ptolemy.actor.lib.Counter">
+        <entity name="Logic Function2" class="ptolemy.actor.lib.logic.LogicFunction">
+            <display name="Not"/>
+            <property name="function" class="ptolemy.kernel.util.StringAttribute" value="nand">
+            </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Steve Neuendorffer</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Paul Whitaker</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The Counter actor increments or decrements an internal counter, depending on its inputs. The actor outputs the counter value as an integer.</p>

<p>Each time the actor fires, it adjusts its internal counter (incrementing or decrementing the count) based on the input. Whenever a token is received from the increment input, the internal counter is incremented. Wh [...]
-<property name="port:increment" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input port used to increment the counter. The port accepts tokens of any type. </configure></property>
-<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the counter value.</configure></property>
-<property name="port:decrement" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input port used to decrement the counter. The port accepts tokens of any type.</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31617:80:2">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The Logic Function actor reads Boolean tokens, performs a specified logical operation (e.g., "and" or  "xnor"), and outputs the evaluated result as a Boolean token.</p>

<p>Specify a logic function with the function parameter. The following logic functions may be performed:</p>

<table>
<tr><th>Logic Func [...]
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts Boolean tokens representing the evaluated input.</configure></property>
+<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts Boolean tokens.</configure></property>
+<property name="prop:function" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The logical operation to perform: and, or, xor, nand, nor, xnor. For more information about these functions, see http://whatis.techtarget.com/definition/0,,sid9_gci213512,00.html.</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:67:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.Counter">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:947:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.logic.LogicFunction">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:942:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#IterativeMathOperationActor">
-            </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#IterativeOperation">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#ControlActor">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{402.57806, 122.69272}">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowControl">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:72:1">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{295.0, 610.0}">
             </property>
             <property name="" class="ptolemy.vergil.basic.DocAttribute">
-                <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>The Counter actor increments or decrements an internal counter, depending on its inputs. The actor outputs the counter value as an integer.</p>

<p>Each time the actor fires, it adjusts its internal counter (incrementing or decrementing the count) based on the input. Whenever a token is received from the increment input, the internal counter is incremented. Wheneve [...]
+                <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>The Logic Function actor reads Boolean tokens, performs a specified logical operation (e.g., "and" or  "xnor"), and outputs the evaluated result as a Boolean token.</p>

<p>Specify a logic function with the function parameter. The following logic functions may be performed:</p>

<table>
<tr><th>Logic Function& [...]
                 </property>
-                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Steve Neuendorffer">
+                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Paul Whitaker">
                 </property>
                 <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
                 </property>
-                <property name="increment (port)" class="ptolemy.kernel.util.StringAttribute" value="An input port used to increment the counter. The port accepts tokens of any type. ">
+                <property name="function (parameter)" class="ptolemy.data.expr.StringParameter" value="The logical operation to perform: and, or, xor, nand, nor, xnor. For more information about these functions, see http://whatis.techtarget.com/definition/0,,sid9_gci213512,00.html.">
                 </property>
-                <property name="decrement (port)" class="ptolemy.kernel.util.StringAttribute" value="An input port used to decrement the counter. The port accepts tokens of any type.">
+                <property name="input (port)" class="ptolemy.kernel.util.StringAttribute" value="A multiport that accepts Boolean tokens.">
                 </property>
-                <property name="output (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts the counter value.">
+                <property name="output (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts Boolean tokens representing the evaluated input.">
                 </property>
             </property>
-            <port name="decrement" class="ptolemy.actor.TypedIOPort">
+        </entity>
+        <entity name="SofSplitter" class="org.eso.SofSplitter">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{345.0, 390.0}">
+            </property>
+            <port name="sof in" class="ptolemy.actor.TypedIOPort">
                 <property name="input"/>
+                <property name="multiport"/>
                 <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
                 </property>
-                <property name="_hide" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </port>
+            <port name="sof out" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+                </property>
+            </port>
+            <port name="#groups" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
                 </property>
             </port>
         </entity>
-        <entity name="String Constant2" class="ptolemy.actor.lib.StringConst">
-            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
+        <entity name="SofAccumulator" class="org.eso.SofAccumulator">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{596.3906, 389.51562}">
             </property>
-            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
+            <port name="sof in" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+                </property>
+            </port>
+            <port name="#groups" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+                </property>
+            </port>
+            <port name="sof out" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+                </property>
+            </port>
+        </entity>
+        <entity name="SofCreator" class="org.eso.SofCreator">
+            <property name="Default Category" class="ptolemy.data.expr.StringParameter" value="">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="$GLOBAL_TIMESTAMP">
+            <property name="Filename Pattern" class="ptolemy.data.expr.StringParameter" value="">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
-<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
-<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
-<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
-<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:13757:393:3">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>It reads the content of a directory and creates an SoF</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>1.0</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofCreator reads all the FITS files contained in a directory and creates an SoF: the file category is based on the keyword PRO.CATG or DO.CATG. If both are missing the Default Category is used.</configure></property>
+<property name="port:sof" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>the output sof</configure></property>
+<property name="port:data dir" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>the input dir</configure></property>
+<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:Default Category" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>the default category to be used if none is defined in the file.</configure></property>
+<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:906:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofCreator">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
+            <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{480.0, 470.0}">
             </property>
-            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
-                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
+            <port name="data dir" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
                 </property>
-                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
+            </port>
+            <port name="sof out" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
                 </property>
+            </port>
+        </entity>
+        <entity name="vmmosscience_1" class="org.eso.RecipeExecuter">
+            <property name="Recipe Failure Mode" class="ptolemy.data.expr.StringParameter" value="$RecipeFailureMode">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[370.0, 500.0]">
-            </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1:urn:lsid:kepler-project.org/ns/:14094:13:2">
+            <property name="Output Files Category" class="ptolemy.data.expr.StringParameter" value="MOS_SPECPHOT_TABLE">
             </property>
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[470.0, 350.0]">
             </property>
-            <port name="trigger" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
-                </property>
-            </port>
         </entity>
-        <entity name="3" class="org.resurgence.actor.StringAccumulator">
-            <property name="Substring separator" class="ptolemy.data.expr.Parameter" value=""/"">
+        <relation name="relation7" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation13" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+            <vertex name="vertex1" value="[480.0, 555.0]">
+            </vertex>
+        </relation>
+        <relation name="relation16" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+            <vertex name="vertex1" value="[90.0, 620.0]">
+            </vertex>
+        </relation>
+        <relation name="relation17" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation5" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation9" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation10" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation8" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation2" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation12" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation14" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation15" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation18" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation19" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation4" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation6" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <relation name="relation3" class="ptolemy.actor.TypedIORelation">
+            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+        </relation>
+        <link port="sof in" relation="relation17"/>
+        <link port="sof out" relation="relation7"/>
+        <link port="sof opt" relation="relation"/>
+        <link port="Boolean Switch.input" relation="relation16"/>
+        <link port="Boolean Switch.control" relation="relation13"/>
+        <link port="Boolean Switch.trueOutput" relation="relation14"/>
+        <link port="Boolean Switch.falseOutput" relation="relation5"/>
+        <link port="DDF Boolean Select.trueInput" relation="relation15"/>
+        <link port="DDF Boolean Select.falseInput" relation="relation19"/>
+        <link port="DDF Boolean Select.control" relation="relation13"/>
+        <link port="DDF Boolean Select.output" relation="relation7"/>
+        <link port="Empty SOF.output" relation="relation4"/>
+        <link port="Empty SOF.trigger" relation="relation5"/>
+        <link port="Logic Function.input" relation="relation2"/>
+        <link port="Logic Function.input" relation="relation12"/>
+        <link port="Logic Function.output" relation="relation13"/>
+        <link port="SofCombiner.sof in" relation="relation17"/>
+        <link port="SofCombiner.sof in" relation="relation"/>
+        <link port="SofCombiner.sof out" relation="relation16"/>
+        <link port="String Constant4.output" relation="relation9"/>
+        <link port="String Constant4.trigger" relation="relation"/>
+        <link port="String Compare.firstString" relation="relation9"/>
+        <link port="String Compare.secondString" relation="relation10"/>
+        <link port="String Compare.output" relation="relation12"/>
+        <link port="IsSofEmpty.sof in" relation="relation"/>
+        <link port="IsSofEmpty.is empty" relation="relation8"/>
+        <link port="String Constant2.output" relation="relation10"/>
+        <link port="String Constant2.trigger" relation="relation"/>
+        <link port="Logic Function2.input" relation="relation8"/>
+        <link port="Logic Function2.output" relation="relation2"/>
+        <link port="SofSplitter.sof in" relation="relation14"/>
+        <link port="SofSplitter.sof out" relation="relation6"/>
+        <link port="SofSplitter.#groups" relation="relation18"/>
+        <link port="SofAccumulator.sof in" relation="relation3"/>
+        <link port="SofAccumulator.#groups" relation="relation18"/>
+        <link port="SofAccumulator.sof out" relation="relation15"/>
+        <link port="SofCreator.data dir" relation="relation4"/>
+        <link port="SofCreator.sof out" relation="relation19"/>
+        <link port="vmmosscience_1.sof in" relation="relation6"/>
+        <link port="vmmosscience_1.sof out" relation="relation3"/>
+    </entity>
+    <entity name="Data Set Selection" class="ptolemy.actor.TypedCompositeActor">
+        <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="8.1.devel">
+        </property>
+        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44497:19:2">
+        </property>
+        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.TypedCompositeActor">
+            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1">
             </property>
+        </property>
+        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Actor">
+        </property>
+        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#GeneralPurpose">
+        </property>
+        <property name="semanticType22" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Workflow">
+        </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke Sudholt</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>
The StringAccumulator actor reads multiple strings via its input port and outputs a string containing all of the input values. The characters separating the substrings in the output string can be specified with the substringSeparator parameter.</p></configure></property>
-<property name="port:whole" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the full string.</configure></property>
-<property name="port:parts" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts substrings.</configure></property>
-<property name="prop:Substring separator" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The characters used to separate the elements in the output string. By default, the value is "".</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31617:90:1">
-            </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.resurgence.actor.StringAccumulator">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1117:1">
-                </property>
-            </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
-            </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#IterativeOperation">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</ [...]
+</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[-515.0, 895.0]">
+        </property>
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:31989:59:5">
+        </property>
+        <property name="DDF Director" class="ptolemy.domains.ddf.kernel.DDFDirector">
+            <property name="iterations" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[480.0, 525.0]">
+            <property name="maximumReceiverCapacity" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:292:1:urn:lsid:kepler-project.org/ns/:13757:392:4">
+            <property name="runUntilDeadlockInOneIteration" class="ptolemy.data.expr.Parameter" value="true">
             </property>
-            <port name="parts" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="multiport"/>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
-                </property>
-            </port>
-        </entity>
-        <entity name="Directory Maker" class="org.resurgence.actor.DirectoryMaker">
-            <property name="Directory name" class="ptolemy.actor.parameters.PortParameter" value="">
+            <property name="timeResolution" class="ptolemy.actor.parameters.SharedParameter" value="1E-10">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke Sudholt</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Gang Zhou</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The DirectoryMaker actor creates a new local directory and outputs its path.</p>

<p>The name of the new directory is specified with the directoryName parameter.</p></configure></property>
-<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time.</configure></property>
-<property name="port:path" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the new directory path.</configure></property>
-<property name="prop:Directory name" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The name and path of the new directory. See FileParameter for more information about specifying paths.</configure></property>
-</property>            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.resurgence.actor.DirectoryMaker">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1111:1">
-                </property>
-            </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#FileSystemActor">
-            </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#FileSystem">
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[795.0, 615.0]">
-            </property>
-            <property name="" class="ptolemy.vergil.basic.DocAttribute">
-                <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>The DirectoryMaker actor creates a new local directory and outputs its path.</p>

<p>The name of the new directory is specified with the directoryName parameter.</p>">
-                </property>
-                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Wibke Sudholt">
-                </property>
-                <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
-                </property>
-                <property name="trigger (port)" class="ptolemy.kernel.util.StringAttribute" value="A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time.">
-                </property>
-                <property name="path (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts the new directory path.">
-                </property>
-                <property name="Directory name (parameter)" class="ptolemy.data.expr.StringParameter" value="The name and path of the new directory. See FileParameter for more information about specifying paths.">
-                </property>
-            </property>
-            <property name="requiredFiringsPerIteration" class="ptolemy.data.expr.Parameter" value="1">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
            <p> The dynamic dataflow (DDF) domain is a superset of the synchronous
            dataflow(SDF) and Boolean dataflow(BDF) domains. In the SDF domain,
            an actor consumes and produces a fixed number of tokens per firing.
            This static information makes possible compile-time scheduling. In the
            DDF domain, there are few  [...]
+<property name="prop:maximumReceiverCapacity" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A Parameter representing the maximum capacity of each receiver controlled by this director. This is an integer that defaults to 0, which means the queue in each receiver is unbounded. To specify bounded queues, set this to a positive integer. </configure></property>
+<property name="prop:iterations" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify the number of times a workflow is iterated. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. </configure></property>
+<property name="prop:runUntilDeadlockInOneIteration" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A parameter indicating whether one iteration consists of repeated basic iterations until deadlock. If this parameter is true, the model will be executed until deadlock in one iteration. The default value is a BooleanToken with the value false. It cannot be set to true if this director is at the top level.</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31617:99:1">
             </property>
-            <port name="trigger" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="multiport"/>
-                <property name="_hide" class="ptolemy.data.expr.SingletonParameter" value="true">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.domains.ddf.kernel.DDFDirector">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:directorclass:5:1">
                 </property>
-            </port>
-        </entity>
-        <entity name="String Constant3" class="ptolemy.actor.lib.StringConst">
-            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
             </property>
-            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
-            </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="$N_SELECTED_DATASETS: ">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Director">
             </property>
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
-<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
-<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
-<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
-<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
-                </property>
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Director">
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{-20.0, 275.0}">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:director:5:1">
             </property>
-            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
-                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
-                </property>
-                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
-                </property>
+        </property>
+        <port name="datasets_in" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="multiport"/>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{-15.0, 405.0}">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{412.57806, 252.69272}">
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
             </property>
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
             </property>
-            <port name="trigger" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
-                </property>
-            </port>
-        </entity>
-        <entity name="Variable Setter" class="ptolemy.actor.lib.SetVariable">
-            <property name="variableName" class="ptolemy.kernel.util.StringAttribute" value="END_PRODUCT_SUBDIR">
+        </port>
+        <port name="dataset_out" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="multiport"/>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{210.0, 405.0}">
             </property>
-            <property name="delayed" class="ptolemy.data.expr.Parameter" value="false">
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
             </property>
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee, Steve Neuendorffer, Jerome Blanc</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
Set the value of a variable. The result may occur at two different times, depending on the value of the delayed parameter. 
If delayed is true, then the change to the value of the variable is implemented in a change request, and consequently will not take hold until the end of the current toplevel iteration. This helps ensure that users of value of the variable will see changes t [...]
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31617:89:6">
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.SetVariable">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:886:1">
-                </property>
+        </port>
+        <entity name="DataSetChooser" class="org.eso.DataSetChooser">
+            <display name="Data Set Chooser"/>
+            <property name="Selection mode" class="ptolemy.data.expr.StringParameter" value="$DataSelectionMethod">
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Variable">
+            <property name="FITS Viewer" class="ptolemy.data.expr.StringParameter" value="$FITS_VIEWER">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#LocalInput">
+            <property name="Mode" class="ptolemy.data.expr.StringParameter" value="Select">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[615.0, 435.0]">
+            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44497:18:1">
             </property>
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.DataSetChooser">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
+                </property>
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:10:1:urn:lsid:kepler-project.org/ns/:13757:404:3">
+            <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
             </property>
             <property name="" class="ptolemy.vergil.basic.DocAttribute">
-                <property name="description" class="ptolemy.kernel.util.StringAttribute" value="
Set the value of a variable. The result may occur at two different times, depending on the value of the delayed parameter. 
If delayed is true, then the change to the value of the variable is implemented in a change request, and consequently will not take hold until the end of the current toplevel iteration. This helps ensure that users of value of the variable will see changes to the [...]
+                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="ESO">
                 </property>
-                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Edward Lee, Steve Neuendorffer, Jerome Blanc">
+                <property name="version" class="ptolemy.kernel.util.StringAttribute" value="1.0">
                 </property>
-                <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
+                <property name="FITS Viewer (parameter)" class="ptolemy.data.expr.StringParameter" value="The application used to inspect FITS files">
                 </property>
-            </property>
-        </entity>
-        <entity name="String Constant4" class="ptolemy.actor.lib.StringConst">
-            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
-            </property>
-            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
-            </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value=" out of ">
-            </property>
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
-<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
-<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
-<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
-<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
+                <property name="Mode (parameter)" class="ptolemy.data.expr.StringParameter" value="<p>Skip: automatically select all files and don't show any window;</p><p>Display: select all the files and allow the user only to view them;</p><p>Select: standard mode.</p>">
                 </property>
-            </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
-            </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
-            </property>
-            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
-                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
+                <property name="class (parameter)" class="ptolemy.data.expr.StringParameter" value="">
                 </property>
-                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
+                <property name="semanticType41 (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+                </property>
+                <property name="LoSOs (port)" class="ptolemy.kernel.util.StringAttribute" value="The input LoSOs">
+                </property>
+                <property name="sof (port)" class="ptolemy.kernel.util.StringAttribute" value="The SoF of the current LoSO">
+                </property>
+                <property name="sop (port)" class="ptolemy.kernel.util.StringAttribute" value="The SoP of the current LoSO">
+                </property>
+                <property name="entityId (parameter)" class="ptolemy.data.expr.StringParameter" value="">
                 </property>
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{427.57806, 187.69272}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{65.0, 385.0}">
             </property>
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:workflow:5:1:urn:lsid:kepler-project.org/ns/:12776:6:1:urn:lsid:kepler-project.org/ns/:13961:210:1:urn:lsid:kepler-project.org/ns/:31617:78:3">
             </property>
-            <port name="trigger" class="ptolemy.actor.TypedIOPort">
+            <port name="datasets in" class="ptolemy.actor.TypedIOPort">
                 <property name="input"/>
                 <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="WEST">
                 </property>
             </port>
-        </entity>
-        <entity name="String Accumulator" class="org.resurgence.actor.StringAccumulator">
-            <property name="Substring separator" class="ptolemy.data.expr.Parameter" value=""/"">
-            </property>
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke Sudholt</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>
The StringAccumulator actor reads multiple strings via its input port and outputs a string containing all of the input values. The characters separating the substrings in the output string can be specified with the substringSeparator parameter.</p></configure></property>
-<property name="port:whole" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the full string.</configure></property>
-<property name="port:parts" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts substrings.</configure></property>
-<property name="prop:Substring separator" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The characters used to separate the elements in the output string. By default, the value is "".</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31989:93:2">
-            </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.resurgence.actor.StringAccumulator">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1117:1">
+            <port name="dataset out" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="multiport"/>
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="EAST">
                 </property>
-            </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
-            </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#IterativeOperation">
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[615.0, 615.0]">
-            </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:292:1">
-            </property>
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
+            </port>
+            <port name="#selected" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="_hide" class="ptolemy.data.expr.SingletonParameter" value="false">
+                </property>
+            </port>
         </entity>
-        <entity name="String Constant5" class="ptolemy.actor.lib.StringConst">
-            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
-            </property>
-            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
+        <entity name="Variable Setter" class="ptolemy.actor.lib.SetVariable">
+            <property name="variableName" class="ptolemy.kernel.util.StringAttribute" value="N_SELECTED_DATASETS">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="$END_PRODUCTS_DIR">
+            <property name="delayed" class="ptolemy.data.expr.Parameter" value="false">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee, Steve Neuendorffer, Jerome Blanc</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
-<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
-<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
-<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
-<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31989:92:1">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
Set the value of a variable. The result may occur at two different times, depending on the value of the delayed parameter. 
If delayed is true, then the change to the value of the variable is implemented in a change request, and consequently will not take hold until the end of the current toplevel iteration. This helps ensure that users of value of the variable will see changes t [...]
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31989:67:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.SetVariable">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:886:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Variable">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#LocalInput">
             </property>
-            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
-                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
-                </property>
-                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
-                </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{65.0, 500.0}">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[665.0, 525.0]">
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1:urn:lsid:kepler-project.org/ns/:14094:13:2:urn:lsid:kepler-project.org/ns/:13757:393:3">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:10:1:urn:lsid:kepler-project.org/ns/:13757:404:3:urn:lsid:kepler-project.org/ns/:31617:89:8">
             </property>
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            <property name="" class="ptolemy.vergil.basic.DocAttribute">
+                <property name="description" class="ptolemy.kernel.util.StringAttribute" value="
Set the value of a variable. The result may occur at two different times, depending on the value of the delayed parameter. 
If delayed is true, then the change to the value of the variable is implemented in a change request, and consequently will not take hold until the end of the current toplevel iteration. This helps ensure that users of value of the variable will see changes to the [...]
+                </property>
+                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Edward Lee, Steve Neuendorffer, Jerome Blanc">
+                </property>
+                <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
+                </property>
             </property>
-            <port name="trigger" class="ptolemy.actor.TypedIOPort">
+            <property name="requiredFiringsPerIteration" class="ptolemy.data.expr.Parameter" value="1">
+            </property>
+            <port name="input" class="ptolemy.actor.TypedIOPort">
                 <property name="input"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+                </property>
+            </port>
+            <port name="output" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
                 </property>
             </port>
         </entity>
-        <relation name="relation2" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-            <vertex name="vertex1" value="[560.0, 330.0]">
-            </vertex>
-        </relation>
-        <relation name="relation3" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </relation>
-        <relation name="relation4" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </relation>
-        <relation name="relation5" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </relation>
-        <relation name="relation6" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </relation>
-        <relation name="relation7" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-            <vertex name="vertex1" value="[250.0, 330.0]">
-            </vertex>
-        </relation>
-        <relation name="relation8" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </relation>
-        <relation name="relation9" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </relation>
-        <relation name="relation11" class="ptolemy.actor.TypedIORelation">
+        <relation name="relation" class="ptolemy.actor.TypedIORelation">
             <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-            <vertex name="vertex1" value="[565.0, 545.0]">
-            </vertex>
         </relation>
-        <relation name="relation12" class="ptolemy.actor.TypedIORelation">
+        <relation name="relation2" class="ptolemy.actor.TypedIORelation">
             <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
         </relation>
-        <relation name="relation" class="ptolemy.actor.TypedIORelation">
+        <relation name="relation3" class="ptolemy.actor.TypedIORelation">
             <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
         </relation>
-        <link port="dataset" relation="relation7"/>
-        <link port="dataset_in" relation="relation7"/>
-        <link port="current_dataset" relation="relation2"/>
-        <link port="CurrentDataSet.in" relation="relation7"/>
-        <link port="CurrentDataSet.dataset name" relation="relation2"/>
-        <link port="String Constant.output" relation="relation9"/>
-        <link port="String Constant.trigger" relation="relation7"/>
-        <link port="2.parts" relation="relation9"/>
-        <link port="2.parts" relation="relation6"/>
-        <link port="2.parts" relation="relation5"/>
-        <link port="2.parts" relation="relation4"/>
-        <link port="2.parts" relation="relation2"/>
-        <link port="2.whole" relation="relation3"/>
-        <link port="Display.input" relation="relation3"/>
-        <link port="Counter.increment" relation="relation7"/>
-        <link port="Counter.output" relation="relation6"/>
-        <link port="String Constant2.output" relation="relation8"/>
-        <link port="String Constant2.trigger" relation="relation7"/>
-        <link port="3.parts" relation="relation8"/>
-        <link port="3.parts" relation="relation2"/>
-        <link port="3.whole" relation="relation11"/>
-        <link port="Directory Maker.Directory name" relation="relation"/>
-        <link port="String Constant3.output" relation="relation4"/>
-        <link port="String Constant3.trigger" relation="relation7"/>
-        <link port="Variable Setter.input" relation="relation11"/>
-        <link port="String Constant4.output" relation="relation5"/>
-        <link port="String Constant4.trigger" relation="relation7"/>
-        <link port="String Accumulator.parts" relation="relation12"/>
-        <link port="String Accumulator.parts" relation="relation11"/>
-        <link port="String Accumulator.whole" relation="relation"/>
-        <link port="String Constant5.output" relation="relation12"/>
-        <link port="String Constant5.trigger" relation="relation11"/>
+        <link port="datasets_in" relation="relation"/>
+        <link port="dataset_out" relation="relation2"/>
+        <link port="DataSetChooser.datasets in" relation="relation"/>
+        <link port="DataSetChooser.dataset out" relation="relation2"/>
+        <link port="DataSetChooser.#selected" relation="relation3"/>
+        <link port="Variable Setter.input" relation="relation3"/>
     </entity>
     <entity name="Close DataSet" class="ptolemy.actor.TypedCompositeActor">
         <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="7.0.2">
         </property>
-        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:25158:63:2">
+        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44576:50:18">
         </property>
         <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.TypedCompositeActor">
             <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1">
@@ -4233,17 +5293,17 @@
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</ [...]
-</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[1010.0, 1135.0]">
+</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[1010.0, 1125.0]">
         </property>
-        <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={0, 29, 1298, 809}, maximized=false}">
+        <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={616, 37, 1304, 811}, maximized=false}">
         </property>
         <property name="_vergilSize" class="ptolemy.actor.gui.SizeAttribute" value="[988, 658]">
         </property>
-        <property name="_vergilZoomFactor" class="ptolemy.data.expr.ExpertParameter" value="1.3678500665865">
+        <property name="_vergilZoomFactor" class="ptolemy.data.expr.ExpertParameter" value="1.5267529457215">
         </property>
-        <property name="_vergilCenter" class="ptolemy.data.expr.ExpertParameter" value="{1315.1506933890578, 786.5234375}">
+        <property name="_vergilCenter" class="ptolemy.data.expr.ExpertParameter" value="{1284.5625, 895.4900050607288}">
         </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:15314:107:61">
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:31989:45:2:urn:lsid:kepler-project.org/ns/:43955:74:3:urn:lsid:kepler-project.org/ns/:44497:3:4">
         </property>
         <property name="Annotation" class="ptolemy.vergil.kernel.attributes.TextAttribute">
             <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
@@ -4260,7 +5320,7 @@
             </property>
             <property name="italic" class="ptolemy.data.expr.Parameter" value="false">
             </property>
-            <property name="text" class="ptolemy.kernel.util.StringAttribute" value="This subworkflow modifies the END_PRODUCT_SUBDIR variable, 
increasing one number each a data set is run">
+            <property name="text" class="ptolemy.kernel.util.StringAttribute" value="This subworkflow modifies takes care of the final tasks:
-Creating a README file with the list of files
-Displaying a window with the finished datasets
-Creating input for ProvenanceExplorer">
                 <property name="_style" class="ptolemy.actor.gui.style.TextStyle">
                     <property name="height" class="ptolemy.data.expr.Parameter" value="20">
                     </property>
@@ -4279,7 +5339,7 @@
 <property name="prop:textColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
 <property name="prop:textSize" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font size. Select an integer from the drop-down menu or specify a new size by typing it directly into the value field.  The default is 14.</configure></property>
 <property name="prop:text" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The text of the annotation.</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:436:1">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44576:49:1">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.vergil.kernel.attributes.TextAttribute">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1199:1">
@@ -4289,176 +5349,42 @@
             </property>
             <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{145.0, 570.0}">
-            </property>
-        </property>
-        <port name="current_dataset" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{175.0, 195.0}">
-            </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
-        </port>
-        <port name="final_files" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{50.0, 400.0}">
-            </property>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
-            </property>
-        </port>
-        <entity name="String Constant" class="ptolemy.actor.lib.StringConst">
-            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
-            </property>
-            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
-            </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="README">
-            </property>
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
-<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
-<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
-<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
-<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:123:3">
-            </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
-                </property>
-            </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
-            </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
-            </property>
-            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
-                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
-                </property>
-                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
-                </property>
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{720.0, 525.0}">
-            </property>
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1">
-            </property>
-            <port name="trigger" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
-                </property>
-            </port>
-        </entity>
-        <entity name="Display Current Dataset" class="ptolemy.actor.lib.gui.Display">
-            <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={33, 949, 1325, 200}, maximized=false}">
-            </property>
-            <property name="_paneSize" class="ptolemy.actor.gui.SizeAttribute" value="[1323, 153]">
-            </property>
-            <property name="rowsDisplayed" class="ptolemy.data.expr.Parameter" value="10">
-            </property>
-            <property name="columnsDisplayed" class="ptolemy.data.expr.Parameter" value="120">
-            </property>
-            <property name="suppressBlankLines" class="ptolemy.data.expr.Parameter" value="false">
-            </property>
-            <property name="title" class="ptolemy.data.expr.StringParameter" value="Current Dataset">
-            </property>
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong, Edward A. Lee</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The Display actor reads tokens of any type via its input multiport, and displays each token on a separate line in a text display window.</p>

<p>Specify the size of the text display window with the rowsDisplayed and columnsDisplayed parameters. Simply resizing the window onscreen does not persistently change the size when the workflow is saved, closed, and the [...]
-<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts tokens of any type.</configure></property>
-<property name="prop:suppressBlankLines" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether the actor should display blank lines (the default) or suppress them.</configure></property>
-<property name="prop:rowsDisplayed" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The vertical size of the display, in rows. The value is an integer that defaults to 10.</configure></property>
-<property name="prop:columnsDisplayed" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The horizontal size of the display, in columns. The value is an integer that defaults to 40.</configure></property>
-<property name="prop:title" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The title of the text display window. If specified, the value will appear in the title bar of the text display window.</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:3:12">
-            </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.gui.Display">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:883:1">
-                </property>
-            </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#TextualOutputActor">
-            </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#TextualOutput">
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{785.0, 160.0}">
-            </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:7:1:urn:lsid:kepler-project.org/ns/:13643:22:2">
-            </property>
-            <property name="" class="ptolemy.vergil.basic.DocAttribute">
-                <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>The Display actor reads tokens of any type via its input multiport, and displays each token on a separate line in a text display window.</p>

<p>Specify the size of the text display window with the rowsDisplayed and columnsDisplayed parameters. Simply resizing the window onscreen does not persistently change the size when the workflow is saved, closed, and then re- [...]
-                </property>
-                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Yuhong Xiong, Edward A. Lee">
-                </property>
-                <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
-                </property>
-                <property name="rowsDisplayed (parameter)" class="ptolemy.data.expr.StringParameter" value="The vertical size of the display, in rows. The value is an integer that defaults to 10.">
-                </property>
-                <property name="columnsDisplayed (parameter)" class="ptolemy.data.expr.StringParameter" value="The horizontal size of the display, in columns. The value is an integer that defaults to 40.">
-                </property>
-                <property name="suppressBlankLines (parameter)" class="ptolemy.data.expr.StringParameter" value="Specify whether the actor should display blank lines (the default) or suppress them.">
-                </property>
-                <property name="title (parameter)" class="ptolemy.data.expr.StringParameter" value="The title of the text display window. If specified, the value will appear in the title bar of the text display window.">
-                </property>
-                <property name="input (port)" class="ptolemy.kernel.util.StringAttribute" value="A multiport that accepts tokens of any type.">
-                </property>
-            </property>
-        </entity>
-        <entity name="String Constant2" class="ptolemy.actor.lib.StringConst">
-            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
-            </property>
-            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
-            </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="$END_PRODUCTS_DIR">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[280.0, 680.0]">
             </property>
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
-<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
-<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
-<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
-<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:121:3">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:436:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
-                </property>
+        </property>
+        <port name="current_dataset" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{431.6612027096115, 167.69104677914112}">
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
+        </port>
+        <port name="final_files" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{66.66120270961146, 397.6910467791411}">
             </property>
-            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
-                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
-                </property>
-                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
-                </property>
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{715.0, 425.0}">
+        </port>
+        <port name="bookkeeping_db" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[480.0, 575.0]">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1">
+        </port>
+        <port name="global_timestamp" class="ptolemy.actor.TypedIOPort">
+            <property name="output"/>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[485.0, 640.0]">
             </property>
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+        </port>
+        <entity name="String Constant" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="README">
             </property>
-            <port name="trigger" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
-                </property>
-            </port>
-        </entity>
-        <entity name="String Constant3" class="ptolemy.actor.lib.StringConst">
             <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
             </property>
             <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value=" Dataset has been reduced and saved in ">
-            </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
@@ -4468,7 +5394,7 @@
 <property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
 <property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
 <property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:19:3">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:123:3">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
@@ -4484,157 +5410,82 @@
                 <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
                 </property>
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{245.0, 345.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{731.6612027096114, 477.6910467791411}">
             </property>
             <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1:urn:lsid:kepler-project.org/ns/:13643:21:2">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1">
             </property>
             <port name="trigger" class="ptolemy.actor.TypedIOPort">
                 <property name="input"/>
                 <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
                 </property>
             </port>
         </entity>
-        <entity name="Final directory path" class="org.resurgence.actor.StringAccumulator">
-            <property name="Substring separator" class="ptolemy.data.expr.Parameter" value=""/"">
-            </property>
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke Sudholt</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>
The StringAccumulator actor reads multiple strings via its input port and outputs a string containing all of the input values. The characters separating the substrings in the output string can be specified with the substringSeparator parameter.</p></configure></property>
-<property name="port:whole" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the full string.</configure></property>
-<property name="port:parts" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts substrings.</configure></property>
-<property name="prop:Substring separator" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The characters used to separate the elements in the output string. By default, the value is "".</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:25:2">
-            </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.resurgence.actor.StringAccumulator">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1117:1">
-                </property>
-            </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
-            </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#IterativeOperation">
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{360.0, 435.0}">
+        <entity name="Finished Datasets" class="ptolemy.actor.lib.gui.Display">
+            <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={33, 726, 1331, 202}, maximized=false}">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:292:1">
+            <property name="_paneSize" class="ptolemy.actor.gui.SizeAttribute" value="[1323, 153]">
             </property>
-        </entity>
-        <entity name="Write README" class="org.geon.FileWrite">
-            <property name="fileName" class="ptolemy.actor.parameters.FilePortParameter" value="System.out">
+            <property name="rowsDisplayed" class="ptolemy.data.expr.Parameter" value="10">
             </property>
-            <property name="append" class="ptolemy.data.expr.Parameter" value="true">
+            <property name="columnsDisplayed" class="ptolemy.data.expr.Parameter" value="120">
             </property>
-            <property name="confirmOverwrite" class="ptolemy.data.expr.Parameter" value="false">
+            <property name="suppressBlankLines" class="ptolemy.data.expr.Parameter" value="false">
             </property>
-            <property name="alwaysFlush" class="ptolemy.data.expr.Parameter" value="false">
+            <property name="title" class="ptolemy.data.expr.StringParameter" value="Current Dataset">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>No author given</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong, Edward A. Lee</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The FileWriter actor reads a string and writes it to a file. The actor outputs the file path of the generated file.</p>

<p>Specify a destination file path with the fileName parameter. If the specified file does not exist, then the actor will create it.  If the file already exists, then the actor will ask for permission to overwrite it (unless the append param [...]
-<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input port that receives a string to write to a file.</configure></property>
-<property name="port:url" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the file name of the generated file.</configure></property>
-<property name="prop:append" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether to append the input string to an existing, specified file. By default, the actor will overwrite any preexisting file.</configure></property>
-<property name="prop:confirmOverwrite" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether the actor should confirm before overwriting an existing file. By default, the actor will not ask for confirmation.</configure></property>
-<property name="prop:fileName" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The name of the file to which to write. See FileParameter for more information about specifying file names. </configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:118:5">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The Display actor reads tokens of any type via its input multiport, and displays each token on a separate line in a text display window.</p>

<p>Specify the size of the text display window with the rowsDisplayed and columnsDisplayed parameters. Simply resizing the window onscreen does not persistently change the size when the workflow is saved, closed, and the [...]
+<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts tokens of any type.</configure></property>
+<property name="prop:suppressBlankLines" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether the actor should display blank lines (the default) or suppress them.</configure></property>
+<property name="prop:rowsDisplayed" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The vertical size of the display, in rows. The value is an integer that defaults to 10.</configure></property>
+<property name="prop:columnsDisplayed" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The horizontal size of the display, in columns. The value is an integer that defaults to 40.</configure></property>
+<property name="prop:title" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The title of the text display window. If specified, the value will appear in the title bar of the text display window.</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44576:53:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.geon.FileWrite">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1003:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.gui.Display">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:883:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#WriterOutputActor">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#TextualOutputActor">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#LocalOutput">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#TextualOutput">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{870.0, 370.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{801.6612027096114, 157.69104677914112}">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:144:1">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:7:1:urn:lsid:kepler-project.org/ns/:13643:22:2:urn:lsid:kepler-project.org/ns/:17547:3:12">
             </property>
             <property name="" class="ptolemy.vergil.basic.DocAttribute">
-                <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>The FileWriter actor reads a string and writes it to a file. The actor outputs the file path of the generated file.</p>

<p>Specify a destination file path with the fileName parameter. If the specified file does not exist, then the actor will create it.  If the file already exists, then the actor will ask for permission to overwrite it (unless the append parameter  [...]
+                <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>The Display actor reads tokens of any type via its input multiport, and displays each token on a separate line in a text display window.</p>

<p>Specify the size of the text display window with the rowsDisplayed and columnsDisplayed parameters. Simply resizing the window onscreen does not persistently change the size when the workflow is saved, closed, and then re- [...]
                 </property>
-                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="No author given">
+                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Yuhong Xiong, Edward A. Lee">
                 </property>
                 <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
                 </property>
-                <property name="append (parameter)" class="ptolemy.data.expr.StringParameter" value="Specify whether to append the input string to an existing, specified file. By default, the actor will overwrite any preexisting file.">
+                <property name="rowsDisplayed (parameter)" class="ptolemy.data.expr.StringParameter" value="The vertical size of the display, in rows. The value is an integer that defaults to 10.">
                 </property>
-                <property name="confirmOverwrite (parameter)" class="ptolemy.data.expr.StringParameter" value="Specify whether the actor should confirm before overwriting an existing file. By default, the actor will not ask for confirmation.">
+                <property name="columnsDisplayed (parameter)" class="ptolemy.data.expr.StringParameter" value="The horizontal size of the display, in columns. The value is an integer that defaults to 40.">
                 </property>
-                <property name="input (port)" class="ptolemy.kernel.util.StringAttribute" value="An input port that receives a string to write to a file.">
+                <property name="suppressBlankLines (parameter)" class="ptolemy.data.expr.StringParameter" value="Specify whether the actor should display blank lines (the default) or suppress them.">
                 </property>
-                <property name="url (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts the file name of the generated file.">
+                <property name="title (parameter)" class="ptolemy.data.expr.StringParameter" value="The title of the text display window. If specified, the value will appear in the title bar of the text display window.">
                 </property>
-                <property name="fileName (parameter)" class="ptolemy.data.expr.StringParameter" value="The name of the file to which to write. See FileParameter for more information about specifying file names. ">
+                <property name="input (port)" class="ptolemy.kernel.util.StringAttribute" value="A multiport that accepts tokens of any type.">
                 </property>
             </property>
-            <port name="fileName" class="ptolemy.actor.parameters.ParameterPort">
-                <property name="input"/>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
-                </property>
-            </port>
-            <port name="url" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="_hide" class="ptolemy.data.expr.SingletonParameter" value="true">
-                </property>
-            </port>
         </entity>
-        <entity name="String Constant4" class="ptolemy.actor.lib.StringConst">
-            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
-            </property>
-            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
-            </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="$END_PRODUCT_SUBDIR">
-            </property>
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
-<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
-<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
-<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
-<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:23:2">
-            </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
-                </property>
-            </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
-            </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
-            </property>
-            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
-                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
-                </property>
-                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
-                </property>
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{255.0, 520.0}">
-            </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1">
+        <entity name="String Constant2" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$END_PRODUCTS_DIR">
             </property>
-            <port name="trigger" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
-                </property>
-            </port>
-        </entity>
-        <entity name="String Constant5" class="ptolemy.actor.lib.StringConst">
             <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
             </property>
             <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="$GLOBAL_TIMESTAMP">
-            </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
@@ -4644,7 +5495,7 @@
 <property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
 <property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
 <property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:122:3">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:121:3">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
@@ -4660,7 +5511,7 @@
                 <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
                 </property>
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{710.0, 490.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{731.6612027096114, 402.6910467791411}">
             </property>
             <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1">
             </property>
@@ -4673,47 +5524,13 @@
                 </property>
             </port>
         </entity>
-        <entity name="Write to stdout" class="org.geon.FileWrite">
-            <property name="fileName" class="ptolemy.actor.parameters.FilePortParameter" value="/dev/stdout">
-            </property>
-            <property name="append" class="ptolemy.data.expr.Parameter" value="true">
-            </property>
-            <property name="confirmOverwrite" class="ptolemy.data.expr.Parameter" value="false">
-            </property>
-            <property name="alwaysFlush" class="ptolemy.data.expr.Parameter" value="true">
-            </property>
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>No author given</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The FileWriter actor reads a string and writes it to a file. The actor outputs the file path of the generated file.</p>

<p>Specify a destination file path with the fileName parameter. If the specified file does not exist, then the actor will create it.  If the file already exists, then the actor will ask for permission to overwrite it (unless the append param [...]
-<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input port that receives a string to write to a file.</configure></property>
-<property name="port:url" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the file name of the generated file.</configure></property>
-<property name="prop:append" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether to append the input string to an existing, specified file. By default, the actor will overwrite any preexisting file.</configure></property>
-<property name="prop:confirmOverwrite" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether the actor should confirm before overwriting an existing file. By default, the actor will not ask for confirmation.</configure></property>
-<property name="prop:fileName" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The name of the file to which to write. See FileParameter for more information about specifying file names. </configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:24:2">
-            </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.geon.FileWrite">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1003:1">
-                </property>
-            </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#WriterOutputActor">
-            </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#LocalOutput">
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{830.0, 245.0}">
-            </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:144:1:urn:lsid:kepler-project.org/ns/:15165:55:3">
+        <entity name="String Constant3" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value=" Dataset has been reduced and saved in ">
             </property>
-        </entity>
-        <entity name="String Constant6" class="ptolemy.actor.lib.StringConst">
             <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
             </property>
             <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="$END_PRODUCTS_DIR">
-            </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
@@ -4723,7 +5540,7 @@
 <property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
 <property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
 <property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:23:5">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:19:3">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
@@ -4739,52 +5556,21 @@
                 <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
                 </property>
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{255.0, 395.0}">
-            </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1">
-            </property>
-            <port name="trigger" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
-                </property>
-            </port>
-        </entity>
-        <entity name="Path to README" class="org.resurgence.actor.StringAccumulator">
-            <property name="Substring separator" class="ptolemy.data.expr.Parameter" value=""/"">
-            </property>
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke Sudholt</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>
The StringAccumulator actor reads multiple strings via its input port and outputs a string containing all of the input values. The characters separating the substrings in the output string can be specified with the substringSeparator parameter.</p></configure></property>
-<property name="port:whole" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the full string.</configure></property>
-<property name="port:parts" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts substrings.</configure></property>
-<property name="prop:Substring separator" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The characters used to separate the elements in the output string. By default, the value is "".</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:124:4">
-            </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.resurgence.actor.StringAccumulator">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1117:1">
-                </property>
-            </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
-            </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#IterativeOperation">
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{860.0, 475.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{266.6612027096115, 232.69104677914112}">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:292:1">
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1:urn:lsid:kepler-project.org/ns/:13643:21:2">
             </property>
-            <port name="whole" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+            <port name="trigger" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
                 </property>
             </port>
         </entity>
-        <entity name="Final message" class="org.resurgence.actor.StringAccumulator">
-            <property name="Substring separator" class="ptolemy.data.expr.Parameter" value="""">
+        <entity name="Final directory path" class="org.resurgence.actor.StringAccumulator">
+            <property name="Substring separator" class="ptolemy.data.expr.Parameter" value=""/"">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
@@ -4794,7 +5580,7 @@
 <property name="port:whole" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the full string.</configure></property>
 <property name="port:parts" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts substrings.</configure></property>
 <property name="prop:Substring separator" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The characters used to separate the elements in the output string. By default, the value is "".</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:26:1">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:25:2">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.resurgence.actor.StringAccumulator">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1117:1">
@@ -4804,314 +5590,202 @@
             </property>
             <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#IterativeOperation">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{460.0, 315.0}">
-            </property>
-            <property name="" class="ptolemy.vergil.basic.DocAttribute">
-                <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>
The StringAccumulator actor reads multiple strings via its input port and outputs a string containing all of the input values. The characters separating the substrings in the output string can be specified with the substringSeparator parameter.</p>">
-                </property>
-                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Wibke Sudholt">
-                </property>
-                <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
-                </property>
-                <property name="Substring separator (parameter)" class="ptolemy.data.expr.StringParameter" value="The characters used to separate the elements in the output string. By default, the value is "".">
-                </property>
-                <property name="parts (port)" class="ptolemy.kernel.util.StringAttribute" value="A multiport that accepts substrings.">
-                </property>
-                <property name="whole (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts the full string.">
-                </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{341.6612027096115, 352.6910467791411}">
             </property>
             <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:292:1">
             </property>
         </entity>
-        <relation name="relation" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-            <vertex name="vertex1" value="[570.0, 355.0]">
-            </vertex>
-        </relation>
-        <relation name="relation2" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </relation>
-        <relation name="relation3" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </relation>
-        <relation name="relation4" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </relation>
-        <relation name="relation5" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </relation>
-        <relation name="relation6" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </relation>
-        <relation name="relation7" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </relation>
-        <relation name="relation8" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </relation>
-        <relation name="relation9" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+        <entity name="Write README" class="org.geon.FileWrite">
+            <property name="fileName" class="ptolemy.actor.parameters.FilePortParameter" value="ROOT_DATA_PATH_TO_REPLACE//reflex_end_products/2013-09-24T10:31:32/README">
             </property>
-        </relation>
-        <relation name="relation10" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            <property name="append" class="ptolemy.data.expr.Parameter" value="true">
             </property>
-            <vertex name="vertex1" value="[85.0, 405.0]">
-            </vertex>
-        </relation>
-        <relation name="relation11" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+            <property name="confirmOverwrite" class="ptolemy.data.expr.Parameter" value="false">
             </property>
-        </relation>
-        <link port="current_dataset" relation="relation7"/>
-        <link port="final_files" relation="relation10"/>
-        <link port="String Constant.output" relation="relation9"/>
-        <link port="String Constant.trigger" relation="relation"/>
-        <link port="Display Current Dataset.input" relation="relation"/>
-        <link port="String Constant2.output" relation="relation2"/>
-        <link port="String Constant2.trigger" relation="relation"/>
-        <link port="String Constant3.output" relation="relation11"/>
-        <link port="String Constant3.trigger" relation="relation10"/>
-        <link port="Final directory path.parts" relation="relation5"/>
-        <link port="Final directory path.parts" relation="relation3"/>
-        <link port="Final directory path.whole" relation="relation4"/>
-        <link port="Write README.input" relation="relation"/>
-        <link port="Write README.fileName" relation="relation6"/>
-        <link port="String Constant4.output" relation="relation3"/>
-        <link port="String Constant4.trigger" relation="relation10"/>
-        <link port="String Constant5.output" relation="relation8"/>
-        <link port="String Constant5.trigger" relation="relation"/>
-        <link port="Write to stdout.input" relation="relation"/>
-        <link port="String Constant6.output" relation="relation5"/>
-        <link port="String Constant6.trigger" relation="relation10"/>
-        <link port="Path to README.parts" relation="relation2"/>
-        <link port="Path to README.parts" relation="relation8"/>
-        <link port="Path to README.parts" relation="relation9"/>
-        <link port="Path to README.whole" relation="relation6"/>
-        <link port="Final message.parts" relation="relation7"/>
-        <link port="Final message.parts" relation="relation11"/>
-        <link port="Final message.parts" relation="relation4"/>
-        <link port="Final message.whole" relation="relation"/>
-    </entity>
-    <entity name="Response Curve" class="ptolemy.actor.TypedCompositeActor">
-        <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="7.0.2">
-        </property>
-        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:35449:12:10">
-        </property>
-        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.TypedCompositeActor">
-            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1">
+            <property name="alwaysFlush" class="ptolemy.data.expr.Parameter" value="false">
             </property>
-        </property>
-        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Actor">
-        </property>
-        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#GeneralPurpose">
-        </property>
-        <property name="semanticType22" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Workflow">
-        </property>
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</ [...]
-</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[405.0, 715.0]">
-        </property>
-        <property name="_windowProperties" class="ptolemy.actor.gui.WindowPropertiesAttribute" value="{bounds={271, 107, 1536, 924}, maximized=false}">
-        </property>
-        <property name="_vergilSize" class="ptolemy.actor.gui.SizeAttribute" value="[1220, 771]">
-        </property>
-        <property name="_vergilZoomFactor" class="ptolemy.data.expr.ExpertParameter" value="1.0069218279703">
-        </property>
-        <property name="_vergilCenter" class="ptolemy.data.expr.ExpertParameter" value="{610.8067101689795, 556.8499783117078}">
-        </property>
-        <property name="EnableProcessing" class="ptolemy.data.expr.StringParameter" value="true">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>No author given</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>StringParameter specifies a persistent string. </p>

<p>Change the name of the StringParameter to better identify the specified value (right-click the parameter and select "Customize Name" from the menu). Other actors may refer to the StringParameter using the $NAME syntax (e.g. $Parameter).
</p></configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:421:1">
-            </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.data.expr.StringParameter">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1185:1">
-                </property>
-            </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Parameter">
-            </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Parameter">
-            </property>
-            <property name="_hideName" class="ptolemy.kernel.util.SingletonAttribute">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The FileWriter actor reads a string and writes it to a file. The actor outputs the file path of the generated file.</p>

<p>Specify a destination file path with the fileName parameter. If the specified file does not exist, then the actor will create it.  If the file already exists, then the actor will ask for permission to overwrite it (unless the append param [...]
+<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input port that receives a string to write to a file.</configure></property>
+<property name="port:url" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the file name of the generated file.</configure></property>
+<property name="prop:append" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether to append the input string to an existing, specified file. By default, the actor will overwrite any preexisting file.</configure></property>
+<property name="prop:confirmOverwrite" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether the actor should confirm before overwriting an existing file. By default, the actor will not ask for confirmation.</configure></property>
+<property name="prop:fileName" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The name of the file to which to write. See FileParameter for more information about specifying file names. </configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:43955:73:1">
             </property>
-            <property name="_icon" class="ptolemy.vergil.icon.ValueIcon">
-                <property name="_color" class="ptolemy.actor.gui.ColorAttribute" value="{1.0, 0.0, 0.0, 1.0}">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.geon.FileWrite">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1003:1">
                 </property>
             </property>
-            <property name="_smallIconDescription" class="ptolemy.kernel.util.SingletonConfigurableAttribute">
-                <configure>
-        <svg>
-          <text x="20" style="font-size:14; font-family:SansSerif; fill:red" y="20">-S-</text>
-        </svg>
-      </configure>
-            </property>
-            <property name="_editorFactory" class="ptolemy.vergil.toolbox.VisibleParameterEditorFactory">
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{750.0, 735.0}">
-            </property>
-        </property>
-        <property name="Annotation" class="ptolemy.vergil.kernel.attributes.TextAttribute">
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#WriterOutputActor">
             </property>
-            <property name="_hideAllParameters" class="ptolemy.data.expr.Parameter" value="true">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#LocalOutput">
             </property>
-            <property name="textSize" class="ptolemy.data.expr.Parameter" value="14">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{766.6612027096114, 557.6910467791411}">
             </property>
-            <property name="textColor" class="ptolemy.actor.gui.ColorAttribute" value="{0.4,0.4,0.0,1.0}">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:144:1:urn:lsid:kepler-project.org/ns/:15314:118:5">
             </property>
-            <property name="fontFamily" class="ptolemy.data.expr.StringParameter" value="SansSerif">
+            <property name="" class="ptolemy.vergil.basic.DocAttribute">
+                <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>The FileWriter actor reads a string and writes it to a file. The actor outputs the file path of the generated file.</p>

<p>Specify a destination file path with the fileName parameter. If the specified file does not exist, then the actor will create it.  If the file already exists, then the actor will ask for permission to overwrite it (unless the append parameter  [...]
+                </property>
+                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="No author given">
+                </property>
+                <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
+                </property>
+                <property name="append (parameter)" class="ptolemy.data.expr.StringParameter" value="Specify whether to append the input string to an existing, specified file. By default, the actor will overwrite any preexisting file.">
+                </property>
+                <property name="confirmOverwrite (parameter)" class="ptolemy.data.expr.StringParameter" value="Specify whether the actor should confirm before overwriting an existing file. By default, the actor will not ask for confirmation.">
+                </property>
+                <property name="input (port)" class="ptolemy.kernel.util.StringAttribute" value="An input port that receives a string to write to a file.">
+                </property>
+                <property name="url (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts the file name of the generated file.">
+                </property>
+                <property name="fileName (parameter)" class="ptolemy.data.expr.StringParameter" value="The name of the file to which to write. See FileParameter for more information about specifying file names. ">
+                </property>
             </property>
-            <property name="bold" class="ptolemy.data.expr.Parameter" value="false">
+            <port name="fileName" class="ptolemy.actor.parameters.ParameterPort">
+                <property name="input"/>
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+                </property>
+            </port>
+            <port name="url" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="_hide" class="ptolemy.data.expr.SingletonParameter" value="true">
+                </property>
+            </port>
+        </entity>
+        <entity name="String Constant4" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$END_PRODUCTS_SUBDIR">
             </property>
-            <property name="italic" class="ptolemy.data.expr.Parameter" value="false">
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
             </property>
-            <property name="text" class="ptolemy.kernel.util.StringAttribute" value="This part of the subworkflow takes care of deciding whether 
the computation of the response should be
triggered or not, depending on the existence
of raw standard stars frames.">
-                <property name="_style" class="ptolemy.actor.gui.style.TextStyle">
-                    <property name="height" class="ptolemy.data.expr.Parameter" value="20">
-                    </property>
-                    <property name="width" class="ptolemy.data.expr.Parameter" value="80">
-                    </property>
-                </property>
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward A. Lee</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Use the Annotation attribute to annotate a workflow. Double-click the attribute to customize the content, font size, color, and basic formatting (bold and italics).</configure></property>
-<property name="prop:fontFamily" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font face. Select a font from the drop-down menu. The default is "SansSerif".</configure></property>
-<property name="prop:italic" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Select to indicate that the type should be italics. By default, type will not be italicized.</configure></property>
-<property name="prop:bold" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Select to indicate that the type should be bold. By default, type will not be bold.</configure></property>
-<property name="prop:textColor" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font color. Specify a string representing an array of four elements: red, green, blue, and alpha, where alpha is transparency. The default is an opaque black, {0.0, 0.0, 0.0, 1.0}</configure></property>
-<property name="prop:textSize" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The font size. Select an integer from the drop-down menu or specify a new size by typing it directly into the value field.  The default is 14.</configure></property>
-<property name="prop:text" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The text of the annotation.</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:35449:11:1">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
+<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
+<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
+<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:23:2">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.vergil.kernel.attributes.TextAttribute">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1199:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#DocumentationActor">
-            </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowDocumentation">
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{445.0, 835.0}">
-            </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:436:1">
-            </property>
-        </property>
-        <property name="" class="ptolemy.vergil.basic.DocAttribute">
-            <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</p>&#10 [...]
-            </property>
-            <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Yuhong Xiong">
-            </property>
-            <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
-            </property>
-        </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1:urn:lsid:kepler-project.org/ns/:5968:23:141:urn:lsid:kepler-project.org/ns/:13180:17:2:urn:lsid:kepler-project.org/ns/:13637:8:6:urn:lsid:kepler-project.org/ns/:14093:4:2:urn:lsid:kepler-project.org/ns/:14170:6:1:urn:lsid:kepler-project.org/ns/:19529:82:41:urn:lsid:kepler-project.org/ns/:25158:74:1">
-        </property>
-        <port name="sof in" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{60.0, 340.0}">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
             </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
             </property>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
+                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
+                </property>
+                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
+                </property>
             </property>
-        </port>
-        <port name="sof out" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{860.0, 510.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{231.66120270961147, 402.6910467791411}">
             </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1">
             </property>
-        </port>
-        <port name="sof opt" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{55.0, 630.0}">
+            <port name="trigger" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+                </property>
+            </port>
+        </entity>
+        <entity name="String Constant5" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$GLOBAL_TIMESTAMP">
             </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
             </property>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="WEST">
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-        </port>
-        <entity name="Boolean Switch" class="ptolemy.actor.lib.BooleanSwitch">
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Steve Neuendorffer</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The BooleanSwitch actor reads a value of any type, as well as a Boolean token that is used as a control. If the Boolean token is true, the actor outputs the received value to the trueOutput port; if the Boolean token is false, the actor outputs the received value to the falseOutput port.
If the actor has never received a value on the control port, then the actor will output t [...]
-<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input port that accepts tokens of any type.</configure></property>
-<property name="port:falseOutput" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the input token when the control is false.</configure></property>
-<property name="port:trueOutput" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the input token when the control is true.</configure></property>
-<property name="port:control" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input port that accepts a Boolean token used to select which output port (trueOutput or falseOutput) to broadcast.</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:54:1">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
+<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
+<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
+<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:15314:122:3">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.BooleanSwitch">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:930:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#BooleanControlActor">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#BooleanControl">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{190.0, 440.0}">
+            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
+                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
+                </property>
+                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
+                </property>
             </property>
-            <port name="control" class="ptolemy.actor.TypedIOPort">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{741.6612027096114, 442.6910467791411}">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1">
+            </property>
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            </property>
+            <port name="trigger" class="ptolemy.actor.TypedIOPort">
                 <property name="input"/>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
                 </property>
             </port>
         </entity>
-        <entity name="DDF Boolean Select" class="ptolemy.domains.ddf.lib.DDFBooleanSelect">
+        <entity name="Write to stdout" class="org.geon.FileWrite">
+            <property name="fileName" class="ptolemy.actor.parameters.FilePortParameter" value="/dev/stdout">
+            </property>
+            <property name="append" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
+            <property name="confirmOverwrite" class="ptolemy.data.expr.Parameter" value="false">
+            </property>
+            <property name="alwaysFlush" class="ptolemy.data.expr.Parameter" value="true">
+            </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Gang Zhou</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>No author given</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p> A type polymorphic select with boolean valued control for use in
 the DDF domain. In the first iteration, an input token at the
 <i>control</i> port is read and its value is noted. In the second
 iteration, if the <i>control</i> input read from the previous
 iteration is true, then an input token at the <i>trueInput</i> port&#1 [...]
-<property name="port:falseInput" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Input for tokens on the false path. The port type can be any type.</configure></property>
-<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The output port.  The type is at least the type of <i>trueInput</i> and <i>falseInput</i>. </configure></property>
-<property name="port:trueInput" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Input for tokens on the true path. The port type can be any type.</configure></property>
-<property name="port:control" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Input that selects one of the other input ports. The type is boolean.</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:526:1">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The FileWriter actor reads a string and writes it to a file. The actor outputs the file path of the generated file.</p>

<p>Specify a destination file path with the fileName parameter. If the specified file does not exist, then the actor will create it.  If the file already exists, then the actor will ask for permission to overwrite it (unless the append param [...]
+<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input port that receives a string to write to a file.</configure></property>
+<property name="port:url" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the file name of the generated file.</configure></property>
+<property name="prop:append" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether to append the input string to an existing, specified file. By default, the actor will overwrite any preexisting file.</configure></property>
+<property name="prop:confirmOverwrite" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether the actor should confirm before overwriting an existing file. By default, the actor will not ask for confirmation.</configure></property>
+<property name="prop:fileName" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The name of the file to which to write. See FileParameter for more information about specifying file names. </configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:24:2">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.domains.ddf.lib.DDFBooleanSelect">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:526:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.geon.FileWrite">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1003:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#BooleanControlActor">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#WriterOutputActor">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#BooleanControl">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#LocalOutput">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{720.0, 460.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{846.6612027096114, 242.69104677914112}">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:144:1:urn:lsid:kepler-project.org/ns/:15165:55:3">
             </property>
-            <port name="control" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
-                </property>
-            </port>
         </entity>
-        <entity name="Empty SOF" class="ptolemy.actor.lib.StringConst">
+        <entity name="String Constant6" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$END_PRODUCTS_DIR">
+            </property>
             <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
             </property>
             <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="">
-            </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
@@ -5121,7 +5795,7 @@
 <property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
 <property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
 <property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:14093:3:1">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:23:5">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
@@ -5137,49 +5811,97 @@
                 <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
                 </property>
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{385.0, 495.0}">
-            </property>
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{236.66120270961147, 342.6910467791411}">
             </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1:urn:lsid:kepler-project.org/ns/:5968:47:7:urn:lsid:kepler-project.org/ns/:13637:9:1">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1">
             </property>
+            <port name="trigger" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+                </property>
+            </port>
         </entity>
-        <entity name="Logic Function" class="ptolemy.actor.lib.logic.LogicFunction">
-            <display name="And"/>
-            <property name="function" class="ptolemy.kernel.util.StringAttribute" value="and">
+        <entity name="Path to README" class="org.resurgence.actor.StringAccumulator">
+            <property name="Substring separator" class="ptolemy.data.expr.Parameter" value=""/"">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Paul Whitaker</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke Sudholt</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The Logic Function actor reads Boolean tokens, performs a specified logical operation (e.g., "and" or  "xnor"), and outputs the evaluated result as a Boolean token.</p>

<p>Specify a logic function with the function parameter. The following logic functions may be performed:</p>

<table>
<tr><th>Logic Func [...]
-<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts Boolean tokens representing the evaluated input.</configure></property>
-<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts Boolean tokens.</configure></property>
-<property name="prop:function" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The logical operation to perform: and, or, xor, nand, nor, xnor. For more information about these functions, see http://whatis.techtarget.com/definition/0,,sid9_gci213512,00.html.</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:67:1">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>
The StringAccumulator actor reads multiple strings via its input port and outputs a string containing all of the input values. The characters separating the substrings in the output string can be specified with the substringSeparator parameter.</p></configure></property>
+<property name="port:whole" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the full string.</configure></property>
+<property name="port:parts" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts substrings.</configure></property>
+<property name="prop:Substring separator" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The characters used to separate the elements in the output string. By default, the value is "".</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:43955:72:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.logic.LogicFunction">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:942:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.resurgence.actor.StringAccumulator">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1117:1">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#ControlActor">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
             </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowControl">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#IterativeOperation">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{415.0, 775.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{876.6612027096114, 427.6910467791411}">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:292:1:urn:lsid:kepler-project.org/ns/:15314:124:4">
             </property>
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            </property>
+            <port name="whole" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
+                </property>
+            </port>
         </entity>
-        <entity name="SofCombiner" class="org.eso.SofCombiner">
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{140.0, 365.0}">
+        <entity name="Final message" class="org.resurgence.actor.StringAccumulator">
+            <property name="Substring separator" class="ptolemy.data.expr.Parameter" value="""">
+            </property>
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke Sudholt</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>
The StringAccumulator actor reads multiple strings via its input port and outputs a string containing all of the input values. The characters separating the substrings in the output string can be specified with the substringSeparator parameter.</p></configure></property>
+<property name="port:whole" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the full string.</configure></property>
+<property name="port:parts" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts substrings.</configure></property>
+<property name="prop:Substring separator" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The characters used to separate the elements in the output string. By default, the value is "".</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:17547:26:1">
+            </property>
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.resurgence.actor.StringAccumulator">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1117:1">
+                </property>
+            </property>
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
+            </property>
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#IterativeOperation">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{476.6612027096115, 312.6910467791411}">
+            </property>
+            <property name="" class="ptolemy.vergil.basic.DocAttribute">
+                <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>
The StringAccumulator actor reads multiple strings via its input port and outputs a string containing all of the input values. The characters separating the substrings in the output string can be specified with the substringSeparator parameter.</p>">
+                </property>
+                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Wibke Sudholt">
+                </property>
+                <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
+                </property>
+                <property name="Substring separator (parameter)" class="ptolemy.data.expr.StringParameter" value="The characters used to separate the elements in the output string. By default, the value is "".">
+                </property>
+                <property name="parts (port)" class="ptolemy.kernel.util.StringAttribute" value="A multiport that accepts substrings.">
+                </property>
+                <property name="whole (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts the full string.">
+                </property>
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:292:1">
             </property>
         </entity>
-        <entity name="String Constant4" class="ptolemy.actor.lib.StringConst">
+        <entity name="String Constant7" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value=" with files: ">
+            </property>
             <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
             </property>
             <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="$EnableProcessing">
-            </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
@@ -5189,7 +5911,7 @@
 <property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
 <property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
 <property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:204:1">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:43955:68:1">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
@@ -5205,56 +5927,91 @@
                 <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
                 </property>
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{200.0, 780.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{231.66120270961147, 442.6910467791411}">
             </property>
             <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1:urn:lsid:kepler-project.org/ns/:13643:21:2:urn:lsid:kepler-project.org/ns/:17547:19:3">
+            </property>
+            <port name="trigger" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+                </property>
+            </port>
         </entity>
-        <entity name="String Compare" class="ptolemy.actor.lib.string.StringCompare">
-            <property name="function" class="ptolemy.data.expr.Parameter" value="equals">
+        <entity name="README message" class="org.resurgence.actor.StringAccumulator">
+            <property name="Substring separator" class="ptolemy.data.expr.Parameter" value="""">
             </property>
-            <property name="ignoreCase" class="ptolemy.data.expr.Parameter" value="true">
+<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Wibke Sudholt</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>
The StringAccumulator actor reads multiple strings via its input port and outputs a string containing all of the input values. The characters separating the substrings in the output string can be specified with the substringSeparator parameter.</p></configure></property>
+<property name="port:whole" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the full string.</configure></property>
+<property name="port:parts" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts substrings.</configure></property>
+<property name="prop:Substring separator" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The characters used to separate the elements in the output string. By default, the value is "".</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:43955:69:4">
             </property>
-            <property name="firstString" class="ptolemy.actor.parameters.PortParameter" value="">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.resurgence.actor.StringAccumulator">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1117:1">
+                </property>
             </property>
-            <property name="secondString" class="ptolemy.actor.parameters.PortParameter" value="">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
+            </property>
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#IterativeOperation">
+            </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="{451.6612027096115, 462.6910467791411}">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:292:1:urn:lsid:kepler-project.org/ns/:17547:25:2">
+            </property>
+        </entity>
+        <entity name="ObjectToText" class="org.eso.ObjectToText">
+            <property name="Include Header and Footer" class="ptolemy.data.expr.Parameter" value="true">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Vinay Krishnan, Daniel Lazaro Cuadrado (contributor: Edward A. Lee)</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
<p>The StringCompare actor reads two strings and compares them using a specified comparison function. The actor outputs true if the strings satisfy the comparison criteria, or false if not.</p>

<p>The comparison functions are specified with the function parameter: </p>
<ul>
<li>equals: Output true if the strings are equal (the defa [...]
-<property name="port:secondString" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input port that accepts the second string.</configure></property>
-<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts the result of the comparison (either true or false).</configure></property>
-<property name="port:firstString" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An input port that accepts the first string.</configure></property>
-<property name="prop:function" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The comparison function (equals, startsWith, endsWith, contains). The default is "equals".</configure></property>
-<property name="prop:secondString" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The second string.</configure></property>
-<property name="prop:ignoreCase" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify whether to ignore case. By default, the actor is case-sensitive. Select the parameter to ignore case.</configure></property>
-<property name="prop:firstString" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The first string.</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:93:1">
+<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Converts Reflex JSON objects into a human-readable form</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
+<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>2.0</configure></property>
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The ObjectToString converts the JSON objects used by ESO actors (i.e. datasets, sof and sop) into a human-readable form.</configure></property>
+<property name="port:text out" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A nicely formatted string</configure></property>
+<property name="port:json in" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The input JSON object</configure></property>
+<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:Include Header and Footer" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>if true the output text will contain a descriptive header and footer</configure></property>
+<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:907:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.string.StringCompare">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:967:1">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.ObjectToText">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
                 </property>
             </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
-            </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#StatisticalOperation">
+            <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{290.0, 840.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[250.0, 500.0]">
             </property>
+            <port name="json in" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                </property>
+                <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
+                </property>
+            </port>
+            <port name="text out" class="ptolemy.actor.TypedIOPort">
+                <property name="output"/>
+                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                </property>
+                <property name="tokenProductionRate" class="ptolemy.data.expr.Parameter" value="1">
+                </property>
+            </port>
         </entity>
-        <entity name="IsSofEmpty" class="org.eso.IsSofEmpty">
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{180.0, 610.0}">
+        <entity name="String Constant8" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$BOOKKEEPING_DIR/bookkeeping.db">
             </property>
-        </entity>
-        <entity name="String Constant2" class="ptolemy.actor.lib.StringConst">
             <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
             </property>
             <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
-            <property name="value" class="ptolemy.data.expr.Parameter" value="true">
-            </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
 <property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
@@ -5264,7 +6021,7 @@
 <property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
 <property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
 <property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:204:1">
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44576:8:1">
             </property>
             <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
                 <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
@@ -5280,157 +6037,79 @@
                 <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
                 </property>
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{155.0, 870.0}">
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[285.0, 575.0]">
+            </property>
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1:urn:lsid:kepler-project.org/ns/:17547:23:2:urn:lsid:kepler-project.org/ns/:38241:62:1">
             </property>
             <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
+            <port name="trigger" class="ptolemy.actor.TypedIOPort">
+                <property name="input"/>
+                <property name="multiport"/>
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
+                </property>
+            </port>
         </entity>
-        <entity name="Logic Function2" class="ptolemy.actor.lib.logic.LogicFunction">
-            <display name="Not"/>
-            <property name="function" class="ptolemy.kernel.util.StringAttribute" value="nand">
+        <entity name="String Constant9" class="ptolemy.actor.lib.StringConst">
+            <property name="value" class="ptolemy.data.expr.Parameter" value="$GLOBAL_TIMESTAMP">
+            </property>
+            <property name="firingCountLimit" class="ptolemy.data.expr.Parameter" value="NONE">
+            </property>
+            <property name="NONE" class="ptolemy.data.expr.Parameter" value="0">
             </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Paul Whitaker</configure></property>
+<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee</configure></property>
 <property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The Logic Function actor reads Boolean tokens, performs a specified logical operation (e.g., "and" or  "xnor"), and outputs the evaluated result as a Boolean token.</p>

<p>Specify a logic function with the function parameter. The following logic functions may be performed:</p>

<table>
<tr><th>Logic Func [...]
-<property name="port:input" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that accepts Boolean tokens.</configure></property>
-<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts Boolean tokens representing the evaluated input.</configure></property>
-<property name="prop:function" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The logical operation to perform: and, or, xor, nand, nor, xnor. For more information about these functions, see http://whatis.techtarget.com/definition/0,,sid9_gci213512,00.html.</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:67:1">
-            </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.logic.LogicFunction">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:942:1">
-                </property>
-            </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#ControlActor">
-            </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#WorkflowControl">
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{295.0, 610.0}">
+<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>The StringConstant actor outputs a string specified via the actor's value parameter.</p>

<p>Specifying strings with the StringConstant actor is convenient, as the actor does not require that strings be surrounded by quotes. The actor is often used to specify file paths, which can be selected using the Browse button available in the actor's parameters.</p&g [...]
+<property name="port:output" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>An output port that broadcasts a string constant specified by the value parameter.  </configure></property>
+<property name="port:trigger" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A multiport that has no declared type (in other words, the port can accept any data type: double, int, array, etc.) If the port is connected, the actor will not fire until the trigger port receives an input token. Connecting the port is optional, but useful when scheduling the actor to perform at a certain time. </configure></property>
+<property name="prop:firingCountLimit" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The limit on the number of times the actor will fire. The default value is 'NONE', meaning there is no limit on the number of time the constant will be provided to the output port. Any integer can be provided as a value for this parameter.</configure></property>
+<property name="prop:value" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The value produced by the actor. Specified strings do not require enclosing quotes. (To include a '$' sign in the string, enter '$$'.)</configure></property>
+</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44576:9:1">
             </property>
-            <property name="" class="ptolemy.vergil.basic.DocAttribute">
-                <property name="description" class="ptolemy.kernel.util.StringAttribute" value="<p>The Logic Function actor reads Boolean tokens, performs a specified logical operation (e.g., "and" or  "xnor"), and outputs the evaluated result as a Boolean token.</p>

<p>Specify a logic function with the function parameter. The following logic functions may be performed:</p>

<table>
<tr><th>Logic Function& [...]
-                </property>
-                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Paul Whitaker">
-                </property>
-                <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
-                </property>
-                <property name="function (parameter)" class="ptolemy.data.expr.StringParameter" value="The logical operation to perform: and, or, xor, nand, nor, xnor. For more information about these functions, see http://whatis.techtarget.com/definition/0,,sid9_gci213512,00.html.">
-                </property>
-                <property name="input (port)" class="ptolemy.kernel.util.StringAttribute" value="A multiport that accepts Boolean tokens.">
-                </property>
-                <property name="output (port)" class="ptolemy.kernel.util.StringAttribute" value="An output port that broadcasts Boolean tokens representing the evaluated input.">
+            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.StringConst">
+                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:1052:1">
                 </property>
             </property>
-        </entity>
-        <entity name="SofSplitter" class="org.eso.SofSplitter">
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{345.0, 390.0}">
+            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#StringFunctionActor">
             </property>
-            <port name="sof in" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
-                </property>
-            </port>
-            <port name="sof out" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
-                </property>
-            </port>
-            <port name="#groups" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
-                </property>
-            </port>
-        </entity>
-        <entity name="SofAccumulator" class="org.eso.SofAccumulator">
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{596.3906, 389.51562}">
+            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Constant">
             </property>
-            <port name="sof in" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
-                </property>
-            </port>
-            <port name="#groups" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            <property name="_icon" class="ptolemy.vergil.icon.BoxedValueIcon">
+                <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="value">
                 </property>
-            </port>
-            <port name="sof out" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+                <property name="displayWidth" class="ptolemy.data.expr.Parameter" value="60">
                 </property>
-            </port>
-        </entity>
-        <entity name="SofCreator" class="org.eso.SofCreator">
-            <property name="Default Category" class="ptolemy.data.expr.StringParameter" value="">
-            </property>
-            <property name="Filename Pattern" class="ptolemy.data.expr.StringParameter" value="">
-            </property>
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>It reads the content of a directory and creates an SoF</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>ESO</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>1.0</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The SofCreator reads all the FITS files contained in a directory and creates an SoF: the file category is based on the keyword PRO.CATG or DO.CATG. If both are missing the Default Category is used.</configure></property>
-<property name="port:sof" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>the output sof</configure></property>
-<property name="port:data dir" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>the input dir</configure></property>
-<property name="prop:semanticType41" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:entityId" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-<property name="prop:Default Category" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>the default category to be used if none is defined in the file.</configure></property>
-<property name="prop:class" class="ptolemy.kernel.util.ConfigurableAttribute"><configure></configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org:actor:906:1">
             </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.SofCreator">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
-                </property>
+            <property name="_location" class="ptolemy.kernel.util.Location" value="[240.0, 640.0]">
             </property>
-            <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
+            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:204:1:urn:lsid:kepler-project.org/ns/:17547:23:2:urn:lsid:kepler-project.org/ns/:38241:63:1">
             </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{480.0, 470.0}">
+            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
             </property>
-            <port name="data dir" class="ptolemy.actor.TypedIOPort">
+            <port name="trigger" class="ptolemy.actor.TypedIOPort">
                 <property name="input"/>
                 <property name="multiport"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
-                </property>
-            </port>
-            <port name="sof out" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="_showName" class="ptolemy.data.expr.Parameter" value="true">
+                <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="true">
                 </property>
             </port>
         </entity>
-        <entity name="vmmosscience_1" class="org.eso.RecipeExecuter">
-            <property name="Output Files Category" class="ptolemy.data.expr.StringParameter" value="MOS_SPECPHOT_TABLE">
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="[470.0, 350.0]">
-            </property>
-        </entity>
-        <relation name="relation7" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </relation>
-        <relation name="relation13" class="ptolemy.actor.TypedIORelation">
+        <relation name="relation" class="ptolemy.actor.TypedIORelation">
             <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-            <vertex name="vertex1" value="[480.0, 555.0]">
+            <vertex name="vertex1" value="{576.6612027096114, 497.6910467791411}">
             </vertex>
         </relation>
-        <relation name="relation16" class="ptolemy.actor.TypedIORelation">
+        <relation name="relation2" class="ptolemy.actor.TypedIORelation">
             <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
         </relation>
-        <relation name="relation" class="ptolemy.actor.TypedIORelation">
+        <relation name="relation3" class="ptolemy.actor.TypedIORelation">
             <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-            <vertex name="vertex1" value="[90.0, 620.0]">
-            </vertex>
         </relation>
-        <relation name="relation17" class="ptolemy.actor.TypedIORelation">
+        <relation name="relation4" class="ptolemy.actor.TypedIORelation">
             <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
         </relation>
@@ -5438,11 +6117,11 @@
             <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
         </relation>
-        <relation name="relation9" class="ptolemy.actor.TypedIORelation">
+        <relation name="relation6" class="ptolemy.actor.TypedIORelation">
             <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
         </relation>
-        <relation name="relation10" class="ptolemy.actor.TypedIORelation">
+        <relation name="relation7" class="ptolemy.actor.TypedIORelation">
             <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
         </relation>
@@ -5450,85 +6129,106 @@
             <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
         </relation>
-        <relation name="relation2" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </relation>
-        <relation name="relation12" class="ptolemy.actor.TypedIORelation">
+        <relation name="relation9" class="ptolemy.actor.TypedIORelation">
             <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
         </relation>
-        <relation name="relation14" class="ptolemy.actor.TypedIORelation">
+        <relation name="relation10" class="ptolemy.actor.TypedIORelation">
             <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
+            <vertex name="vertex1" value="{101.66120270961146, 482.6910467791411}">
+            </vertex>
         </relation>
-        <relation name="relation15" class="ptolemy.actor.TypedIORelation">
+        <relation name="relation11" class="ptolemy.actor.TypedIORelation">
             <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
         </relation>
-        <relation name="relation18" class="ptolemy.actor.TypedIORelation">
+        <relation name="relation12" class="ptolemy.actor.TypedIORelation">
             <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
+            <vertex name="vertex1" value="{571.6612027096114, 327.6910467791411}">
+            </vertex>
         </relation>
-        <relation name="relation19" class="ptolemy.actor.TypedIORelation">
+        <relation name="relation13" class="ptolemy.actor.TypedIORelation">
             <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
         </relation>
-        <relation name="relation4" class="ptolemy.actor.TypedIORelation">
+        <relation name="relation14" class="ptolemy.actor.TypedIORelation">
             <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
         </relation>
-        <relation name="relation6" class="ptolemy.actor.TypedIORelation">
+        <relation name="relation15" class="ptolemy.actor.TypedIORelation">
             <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
         </relation>
-        <relation name="relation3" class="ptolemy.actor.TypedIORelation">
+        <relation name="relation16" class="ptolemy.actor.TypedIORelation">
             <property name="width" class="ptolemy.data.expr.Parameter" value="1">
             </property>
         </relation>
-        <link port="sof in" relation="relation17"/>
-        <link port="sof out" relation="relation7"/>
-        <link port="sof opt" relation="relation"/>
-        <link port="Boolean Switch.input" relation="relation16"/>
-        <link port="Boolean Switch.control" relation="relation13"/>
-        <link port="Boolean Switch.trueOutput" relation="relation14"/>
-        <link port="Boolean Switch.falseOutput" relation="relation5"/>
-        <link port="DDF Boolean Select.trueInput" relation="relation15"/>
-        <link port="DDF Boolean Select.falseInput" relation="relation19"/>
-        <link port="DDF Boolean Select.control" relation="relation13"/>
-        <link port="DDF Boolean Select.output" relation="relation7"/>
-        <link port="Empty SOF.output" relation="relation4"/>
-        <link port="Empty SOF.trigger" relation="relation5"/>
-        <link port="Logic Function.input" relation="relation2"/>
-        <link port="Logic Function.input" relation="relation12"/>
-        <link port="Logic Function.output" relation="relation13"/>
-        <link port="SofCombiner.sof in" relation="relation17"/>
-        <link port="SofCombiner.sof in" relation="relation"/>
-        <link port="SofCombiner.sof out" relation="relation16"/>
-        <link port="String Constant4.output" relation="relation9"/>
-        <link port="String Constant4.trigger" relation="relation"/>
-        <link port="String Compare.firstString" relation="relation9"/>
-        <link port="String Compare.secondString" relation="relation10"/>
-        <link port="String Compare.output" relation="relation12"/>
-        <link port="IsSofEmpty.sof in" relation="relation"/>
-        <link port="IsSofEmpty.is empty" relation="relation8"/>
-        <link port="String Constant2.output" relation="relation10"/>
+        <link port="current_dataset" relation="relation7"/>
+        <link port="final_files" relation="relation10"/>
+        <link port="bookkeeping_db" relation="relation15"/>
+        <link port="global_timestamp" relation="relation16"/>
+        <link port="String Constant.output" relation="relation9"/>
+        <link port="String Constant.trigger" relation="relation"/>
+        <link port="Finished Datasets.input" relation="relation12"/>
+        <link port="String Constant2.output" relation="relation2"/>
         <link port="String Constant2.trigger" relation="relation"/>
-        <link port="Logic Function2.input" relation="relation8"/>
-        <link port="Logic Function2.output" relation="relation2"/>
-        <link port="SofSplitter.sof in" relation="relation14"/>
-        <link port="SofSplitter.sof out" relation="relation6"/>
-        <link port="SofSplitter.#groups" relation="relation18"/>
-        <link port="SofAccumulator.sof in" relation="relation3"/>
-        <link port="SofAccumulator.#groups" relation="relation18"/>
-        <link port="SofAccumulator.sof out" relation="relation15"/>
-        <link port="SofCreator.data dir" relation="relation4"/>
-        <link port="SofCreator.sof out" relation="relation19"/>
-        <link port="vmmosscience_1.sof in" relation="relation6"/>
-        <link port="vmmosscience_1.sof out" relation="relation3"/>
+        <link port="String Constant3.output" relation="relation11"/>
+        <link port="String Constant3.trigger" relation="relation10"/>
+        <link port="Final directory path.parts" relation="relation5"/>
+        <link port="Final directory path.parts" relation="relation3"/>
+        <link port="Final directory path.whole" relation="relation4"/>
+        <link port="Write README.input" relation="relation"/>
+        <link port="Write README.fileName" relation="relation6"/>
+        <link port="String Constant4.output" relation="relation3"/>
+        <link port="String Constant4.trigger" relation="relation10"/>
+        <link port="String Constant5.output" relation="relation8"/>
+        <link port="String Constant5.trigger" relation="relation"/>
+        <link port="Write to stdout.input" relation="relation12"/>
+        <link port="String Constant6.output" relation="relation5"/>
+        <link port="String Constant6.trigger" relation="relation10"/>
+        <link port="Path to README.parts" relation="relation2"/>
+        <link port="Path to README.parts" relation="relation8"/>
+        <link port="Path to README.parts" relation="relation9"/>
+        <link port="Path to README.whole" relation="relation6"/>
+        <link port="Final message.parts" relation="relation7"/>
+        <link port="Final message.parts" relation="relation11"/>
+        <link port="Final message.parts" relation="relation4"/>
+        <link port="Final message.whole" relation="relation12"/>
+        <link port="String Constant7.output" relation="relation13"/>
+        <link port="String Constant7.trigger" relation="relation10"/>
+        <link port="README message.parts" relation="relation12"/>
+        <link port="README message.parts" relation="relation13"/>
+        <link port="README message.parts" relation="relation14"/>
+        <link port="README message.whole" relation="relation"/>
+        <link port="ObjectToText.json in" relation="relation10"/>
+        <link port="ObjectToText.text out" relation="relation14"/>
+        <link port="String Constant8.output" relation="relation15"/>
+        <link port="String Constant8.trigger" relation="relation10"/>
+        <link port="String Constant9.output" relation="relation16"/>
+        <link port="String Constant9.trigger" relation="relation10"/>
+    </entity>
+    <entity name="ProvenanceExplorer" class="org.eso.ProvenanceExplorer">
+        <property name="Enabled" class="ptolemy.data.expr.StringParameter" value="$ProvenanceExplorerEnabled">
+        </property>
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[1129.572265625, 1125.298583984375]">
+        </property>
+        <port name="bookkeeping db" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            </property>
+        </port>
+        <port name="start date" class="ptolemy.actor.TypedIOPort">
+            <property name="input"/>
+            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
+            </property>
+        </port>
     </entity>
     <entity name="ProductRenamer" class="ptolemy.actor.lib.python.PythonScript">
-        <property name="script" class="ptolemy.kernel.util.StringAttribute" value="import os
import shutil

from ptolemy.data import StringToken, IntToken
from ptolemy.data.expr import Parameter
from org.eso.util import JSONTools
from nom.tam.fits import Fits
from java.beans  import  XMLEncoder
import java.io.BufferedOutputStream
import java.io.BufferedOutputStream
from java.io import BufferedOutputStream
from java.io import ByteArrayOutputStre [...]
+        <property name="jythonClassName" class="ptolemy.kernel.util.StringAttribute" value="Main">
+        </property>
+        <property name="script" class="ptolemy.kernel.util.StringAttribute" value="import os
import shutil

from ptolemy.data import StringToken, IntToken
from ptolemy.data.expr import Parameter
from org.eso.util import JSONTools
from nom.tam.fits import Fits
from nom.tam.fits import FitsFactory
from ptolemy.kernel.util import IllegalActionException
from org.eso.service import ExecutionServiceDB
import org.apache.log4j
from java.util import Has [...]
         </property>
 <property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
 <property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Renames recipe products based on FITS keywords</configure></property>
@@ -5543,7 +6243,7 @@
 <property name="prop:FinalProductDirectory" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>The directory where the files are going to be copied/linked or renamed. It is usually set to END_PRODUCTS_DIR</configure></property>
 <property name="prop:SubDir" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>If it is not empty, a subdirectory will be created with this string. The value can contain backslashes (and intermediate directories will be created). It will usually be END_PROD_SUBDIR, created somewhere in the workflow</configure></property>
 <property name="prop:CopyMode" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>There are several options: "copy", "move" or "link".</configure></property>
-</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:25158:50:1">
+</property>        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:44576:81:2">
         </property>
         <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.python.PythonScript">
             <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
@@ -5555,19 +6255,19 @@
             <property name="attributeName" class="ptolemy.kernel.util.StringAttribute" value="script">
             </property>
         </property>
-        <property name="_location" class="ptolemy.kernel.util.Location" value="[1015.0, 945.0]">
+        <property name="_location" class="ptolemy.kernel.util.Location" value="[1005.0, 820.0]">
         </property>
         <property name="RenameKeywords" class="ptolemy.data.expr.StringParameter" value="HIERARCH.ESO.OBS.NAME,'_',HIERARCH.ESO.PRO.CATG">
         </property>
         <property name="FinalProductDirectory" class="ptolemy.data.expr.StringParameter" value="$END_PRODUCTS_DIR">
         </property>
-        <property name="SubDir" class="ptolemy.data.expr.StringParameter" value="$END_PRODUCT_SUBDIR">
+        <property name="SubDir" class="ptolemy.data.expr.StringParameter" value="$END_PRODUCTS_SUBDIR">
         </property>
         <property name="CopyMode" class="ptolemy.data.expr.StringParameter" value="copy">
         </property>
         <property name="OutputExistsMode" class="ptolemy.data.expr.StringParameter" value="append_version">
         </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:910:1:urn:lsid:kepler-project.org/ns/:24723:4:5:urn:lsid:kepler-project.org/ns/:25047:16:2">
+        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:910:1:urn:lsid:kepler-project.org/ns/:24723:4:5:urn:lsid:kepler-project.org/ns/:25047:16:2:urn:lsid:kepler-project.org/ns/:25158:50:1:urn:lsid:kepler-project.org/ns/:38241:57:8">
         </property>
         <property name="" class="ptolemy.vergil.basic.DocAttribute">
             <property name="description" class="ptolemy.kernel.util.StringAttribute" value=" This actor moves (or copies or links) its input sof to a final product directory based on some FITS keywords.
 Usually, it should be connected to the output of the recipes that produce final products. If the recipe produces more products that are not relevant to rename, an output filter can be put in the recipe.">
@@ -5586,18 +6286,20 @@
             </property>
             <property name="OutputExistsMode (parameter)" class="ptolemy.data.expr.StringParameter" value="This parameter defines the behaviour in case the output files already exists: it can be "append_version" (create a new file with a running index suffix), "overwrite" (replace the existing file), "stop" (stop the workflow)">
             </property>
+            <property name="script (parameter)" class="ptolemy.data.expr.StringParameter" value="">
+            </property>
             <property name="sof_out (port)" class="ptolemy.kernel.util.StringAttribute" value="The final list of files produced">
             </property>
             <property name="sof_in (port)" class="ptolemy.kernel.util.StringAttribute" value="The files to be copied/moved or linked">
             </property>
-            <property name="script (parameter)" class="ptolemy.data.expr.StringParameter" value="">
-            </property>
+        </property>
+        <property name="BookkeepingDir" class="ptolemy.data.expr.StringParameter" value="$BOOKKEEPING_DIR">
         </property>
         <port name="sof_in" class="ptolemy.actor.TypedIOPort">
             <property name="input"/>
             <property name="tokenConsumptionRate" class="ptolemy.data.expr.Parameter" value="1">
             </property>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
+            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="WEST">
             </property>
         </port>
         <port name="sof_out" class="ptolemy.actor.TypedIOPort">
@@ -5607,206 +6309,6 @@
             </property>
         </port>
     </entity>
-    <entity name="Data Set Selection" class="ptolemy.actor.TypedCompositeActor">
-        <property name="_createdBy" class="ptolemy.kernel.attributes.VersionAttribute" value="8.1.devel">
-        </property>
-        <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31989:59:5">
-        </property>
-        <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.TypedCompositeActor">
-            <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:449:1">
-            </property>
-        </property>
-        <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Actor">
-        </property>
-        <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#GeneralPurpose">
-        </property>
-        <property name="semanticType22" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Workflow">
-        </property>
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Yuhong Xiong</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure><p>A Composite actor is an aggregation of actors. It may have a local director that is responsible for executing the contained actors. A Composite actor with a local director is called an opaque actor. Composite actors do not require a local director. Composite actors with no local director "inherit" the director from the containing workflow and are called non-opaque.</ [...]
-</property>        <property name="_location" class="ptolemy.kernel.util.Location" value="[-515.0, 895.0]">
-        </property>
-        <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:449:1">
-        </property>
-        <property name="DDF Director" class="ptolemy.domains.ddf.kernel.DDFDirector">
-            <property name="timeResolution" class="ptolemy.actor.parameters.SharedParameter" value="1E-10">
-            </property>
-            <property name="iterations" class="ptolemy.data.expr.Parameter" value="0">
-            </property>
-            <property name="maximumReceiverCapacity" class="ptolemy.data.expr.Parameter" value="0">
-            </property>
-            <property name="runUntilDeadlockInOneIteration" class="ptolemy.data.expr.Parameter" value="true">
-            </property>
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Gang Zhou</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
            <p> The dynamic dataflow (DDF) domain is a superset of the synchronous
            dataflow(SDF) and Boolean dataflow(BDF) domains. In the SDF domain,
            an actor consumes and produces a fixed number of tokens per firing.
            This static information makes possible compile-time scheduling. In the
            DDF domain, there are few  [...]
-<property name="prop:iterations" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Specify the number of times a workflow is iterated. By default, this parameter is set to "0". Note that "0" does not mean "no iterations." Rather, "0" means that the workflow will iterate forever. Values greater than zero specify the actual number of times the director should execute the entire workflow. </configure></property>
-<property name="prop:maximumReceiverCapacity" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A Parameter representing the maximum capacity of each receiver controlled by this director. This is an integer that defaults to 0, which means the queue in each receiver is unbounded. To specify bounded queues, set this to a positive integer. </configure></property>
-<property name="prop:runUntilDeadlockInOneIteration" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>A parameter indicating whether one iteration consists of repeated basic iterations until deadlock. If this parameter is true, the model will be executed until deadlock in one iteration. The default value is a BooleanToken with the value false. It cannot be set to true if this director is at the top level.</configure></property>
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31617:99:1">
-            </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.domains.ddf.kernel.DDFDirector">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:directorclass:5:1">
-                </property>
-            </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Director">
-            </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#Director">
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{-20.0, 275.0}">
-            </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:director:5:1">
-            </property>
-        </property>
-        <port name="datasets_in" class="ptolemy.actor.TypedIOPort">
-            <property name="input"/>
-            <property name="multiport"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{-15.0, 405.0}">
-            </property>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
-            </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
-            </property>
-        </port>
-        <port name="dataset_out" class="ptolemy.actor.TypedIOPort">
-            <property name="output"/>
-            <property name="multiport"/>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{210.0, 405.0}">
-            </property>
-            <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
-            </property>
-            <property name="_showName" class="ptolemy.data.expr.SingletonParameter" value="false">
-            </property>
-        </port>
-        <entity name="DataSetChooser" class="org.eso.DataSetChooser">
-            <display name="Data Set Chooser"/>
-            <property name="Mode" class="ptolemy.data.expr.StringParameter" value="Select">
-            </property>
-            <property name="FITS Viewer" class="ptolemy.data.expr.StringParameter" value="$FITS_VIEWER">
-            </property>
-            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31617:78:3">
-            </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="org.eso.DataSetChooser">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="null">
-                </property>
-            </property>
-            <property name="semanticType41" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:4:1#ESO">
-            </property>
-            <property name="" class="ptolemy.vergil.basic.DocAttribute">
-                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="ESO">
-                </property>
-                <property name="version" class="ptolemy.kernel.util.StringAttribute" value="1.0">
-                </property>
-                <property name="Mode (parameter)" class="ptolemy.data.expr.StringParameter" value="<p>Skip: automatically select all files and don't show any window;</p><p>Display: select all the files and allow the user only to view them;</p><p>Select: standard mode.</p>">
-                </property>
-                <property name="FITS Viewer (parameter)" class="ptolemy.data.expr.StringParameter" value="The application used to inspect FITS files">
-                </property>
-                <property name="class (parameter)" class="ptolemy.data.expr.StringParameter" value="">
-                </property>
-                <property name="semanticType41 (parameter)" class="ptolemy.data.expr.StringParameter" value="">
-                </property>
-                <property name="LoSOs (port)" class="ptolemy.kernel.util.StringAttribute" value="The input LoSOs">
-                </property>
-                <property name="sof (port)" class="ptolemy.kernel.util.StringAttribute" value="The SoF of the current LoSO">
-                </property>
-                <property name="sop (port)" class="ptolemy.kernel.util.StringAttribute" value="The SoP of the current LoSO">
-                </property>
-                <property name="entityId (parameter)" class="ptolemy.data.expr.StringParameter" value="">
-                </property>
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{65.0, 385.0}">
-            </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:workflow:5:1:urn:lsid:kepler-project.org/ns/:12776:6:1:urn:lsid:kepler-project.org/ns/:13961:210:1">
-            </property>
-            <port name="datasets in" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="multiport"/>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="WEST">
-                </property>
-            </port>
-            <port name="dataset out" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="multiport"/>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="EAST">
-                </property>
-            </port>
-            <port name="#selected" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="_hide" class="ptolemy.data.expr.SingletonParameter" value="false">
-                </property>
-            </port>
-        </entity>
-        <entity name="Variable Setter" class="ptolemy.actor.lib.SetVariable">
-            <property name="variableName" class="ptolemy.kernel.util.StringAttribute" value="N_SELECTED_DATASETS">
-            </property>
-            <property name="delayed" class="ptolemy.data.expr.Parameter" value="false">
-            </property>
-<property name="KeplerDocumentation" class="ptolemy.vergil.basic.KeplerDocumentationAttribute">
-<property name="description" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="author" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>Edward Lee, Steve Neuendorffer, Jerome Blanc</configure></property>
-<property name="version" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>null</configure></property>
-<property name="userLevelDocumentation" class="ptolemy.kernel.util.ConfigurableAttribute"><configure>
Set the value of a variable. The result may occur at two different times, depending on the value of the delayed parameter. 
If delayed is true, then the change to the value of the variable is implemented in a change request, and consequently will not take hold until the end of the current toplevel iteration. This helps ensure that users of value of the variable will see changes t [...]
-</property>            <property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:kepler-project.org/ns/:31989:67:1">
-            </property>
-            <property name="class" class="ptolemy.kernel.util.StringAttribute" value="ptolemy.actor.lib.SetVariable">
-                <property name="id" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:kepler-project.org:class:886:1">
-                </property>
-            </property>
-            <property name="semanticType00" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:1:1#Variable">
-            </property>
-            <property name="semanticType11" class="org.kepler.sms.SemanticType" value="urn:lsid:localhost:onto:2:1#LocalInput">
-            </property>
-            <property name="_location" class="ptolemy.kernel.util.Location" value="{65.0, 500.0}">
-            </property>
-            <property name="_hideName" class="ptolemy.data.expr.SingletonParameter" value="true">
-            </property>
-            <property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList" value="urn:lsid:kepler-project.org:actor:10:1:urn:lsid:kepler-project.org/ns/:13757:404:3:urn:lsid:kepler-project.org/ns/:31617:89:8">
-            </property>
-            <property name="" class="ptolemy.vergil.basic.DocAttribute">
-                <property name="description" class="ptolemy.kernel.util.StringAttribute" value="
Set the value of a variable. The result may occur at two different times, depending on the value of the delayed parameter. 
If delayed is true, then the change to the value of the variable is implemented in a change request, and consequently will not take hold until the end of the current toplevel iteration. This helps ensure that users of value of the variable will see changes to the [...]
-                </property>
-                <property name="author" class="ptolemy.kernel.util.StringAttribute" value="Edward Lee, Steve Neuendorffer, Jerome Blanc">
-                </property>
-                <property name="version" class="ptolemy.kernel.util.StringAttribute" value="null">
-                </property>
-            </property>
-            <property name="requiredFiringsPerIteration" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-            <port name="input" class="ptolemy.actor.TypedIOPort">
-                <property name="input"/>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="NORTH">
-                </property>
-            </port>
-            <port name="output" class="ptolemy.actor.TypedIOPort">
-                <property name="output"/>
-                <property name="_cardinal" class="ptolemy.kernel.util.StringAttribute" value="SOUTH">
-                </property>
-            </port>
-        </entity>
-        <relation name="relation" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </relation>
-        <relation name="relation2" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </relation>
-        <relation name="relation3" class="ptolemy.actor.TypedIORelation">
-            <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-            </property>
-        </relation>
-        <link port="datasets_in" relation="relation"/>
-        <link port="dataset_out" relation="relation2"/>
-        <link port="DataSetChooser.datasets in" relation="relation"/>
-        <link port="DataSetChooser.dataset out" relation="relation2"/>
-        <link port="DataSetChooser.#selected" relation="relation3"/>
-        <link port="Variable Setter.input" relation="relation3"/>
-    </entity>
     <relation name="relation2" class="ptolemy.actor.TypedIORelation">
         <property name="width" class="ptolemy.data.expr.Parameter" value="1">
         </property>
@@ -5855,14 +6357,6 @@
         <property name="width" class="ptolemy.data.expr.Parameter" value="1">
         </property>
     </relation>
-    <relation name="relation18" class="ptolemy.actor.TypedIORelation">
-        <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-        </property>
-    </relation>
-    <relation name="relation13" class="ptolemy.actor.TypedIORelation">
-        <property name="width" class="ptolemy.data.expr.Parameter" value="1">
-        </property>
-    </relation>
     <relation name="relation20" class="ptolemy.actor.TypedIORelation">
         <property name="width" class="ptolemy.data.expr.Parameter" value="1">
         </property>
@@ -5878,16 +6372,40 @@
         </property>
     </relation>
     <relation name="relation11" class="ptolemy.actor.TypedIORelation">
+        <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+        </property>
     </relation>
     <relation name="relation5" class="ptolemy.actor.TypedIORelation">
+        <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+        </property>
     </relation>
     <relation name="relation14" class="ptolemy.actor.TypedIORelation">
-    </relation>
-    <relation name="relation22" class="ptolemy.actor.TypedIORelation">
+        <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+        </property>
     </relation>
     <relation name="relation10" class="ptolemy.actor.TypedIORelation">
+        <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+        </property>
+    </relation>
+    <relation name="relation18" class="ptolemy.actor.TypedIORelation">
+        <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+        </property>
+    </relation>
+    <relation name="relation13" class="ptolemy.actor.TypedIORelation">
+        <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+        </property>
+    </relation>
+    <relation name="relation23" class="ptolemy.actor.TypedIORelation">
+        <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+        </property>
+    </relation>
+    <relation name="relation16" class="ptolemy.actor.TypedIORelation">
+        <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+        </property>
     </relation>
     <relation name="relation9" class="ptolemy.actor.TypedIORelation">
+        <property name="width" class="ptolemy.data.expr.Parameter" value="1">
+        </property>
     </relation>
     <link port="FitsRouter.in" relation="relation14"/>
     <link port="FitsRouter.sci" relation="relation8"/>
@@ -5909,12 +6427,10 @@
     <link port="SofCombiner2.sof in" relation="relation20"/>
     <link port="SofCombiner2.sof in" relation="relation8"/>
     <link port="SofCombiner2.sof out" relation="relation7"/>
-    <link port="Data Filter.sof in" relation="relation9"/>
-    <link port="Data Filter.sof out" relation="relation18"/>
     <link port="VimosMosCalib.sof_in" relation="relation3"/>
     <link port="VimosMosCalib.sof_out" relation="relation17"/>
     <link port="VimosScience.sof_in" relation="relation7"/>
-    <link port="VimosScience.sof_out" relation="relation9"/>
+    <link port="VimosScience.sof_out" relation="relation16"/>
     <link port="SofCombiner3.sof in" relation="relation21"/>
     <link port="SofCombiner3.sof in" relation="relation15"/>
     <link port="SofCombiner3.sof in" relation="relation17"/>
@@ -5924,14 +6440,18 @@
     <link port="DataOrganizer.datasets out" relation="relation11"/>
     <link port="Initialise Current Dataset.dataset" relation="relation14"/>
     <link port="Initialise Current Dataset.dataset_in" relation="relation5"/>
-    <link port="Initialise Current Dataset.current_dataset" relation="relation22"/>
-    <link port="Close DataSet.current_dataset" relation="relation22"/>
-    <link port="Close DataSet.final_files" relation="relation13"/>
+    <link port="Initialise Current Dataset.current_dataset" relation="relation18"/>
     <link port="Response Curve.sof in" relation="relation6"/>
     <link port="Response Curve.sof out" relation="relation10"/>
     <link port="Response Curve.sof opt" relation="relation4"/>
-    <link port="ProductRenamer.sof_in" relation="relation18"/>
-    <link port="ProductRenamer.sof_out" relation="relation13"/>
     <link port="Data Set Selection.datasets_in" relation="relation11"/>
     <link port="Data Set Selection.dataset_out" relation="relation5"/>
+    <link port="Close DataSet.current_dataset" relation="relation18"/>
+    <link port="Close DataSet.final_files" relation="relation9"/>
+    <link port="Close DataSet.bookkeeping_db" relation="relation13"/>
+    <link port="Close DataSet.global_timestamp" relation="relation23"/>
+    <link port="ProvenanceExplorer.bookkeeping db" relation="relation13"/>
+    <link port="ProvenanceExplorer.start date" relation="relation23"/>
+    <link port="ProductRenamer.sof_in" relation="relation16"/>
+    <link port="ProductRenamer.sof_out" relation="relation9"/>
 </entity>
diff --git a/reflex/vimos_mos_wkf.oca b/reflex/vimos_mos_wkf.oca
index 4f54c66..6439c26 100644
--- a/reflex/vimos_mos_wkf.oca
+++ b/reflex/vimos_mos_wkf.oca
@@ -1,154 +1,58 @@
 ///Original file: DFO rules provided by Burkhard by e-mail on 25.04.2012
 ///
 /// Replaced DO.CLASS with REFLEX.CATG throughout
-if (DPR.CATG=="CALIB" or DPR.CATG=="SCIENCE") and DPR.TYPE=="LAMP,AFC" and INS.MODE=="IMG" then 
-{
-  RAW.TYPE = "ACQ_IMG";
-  REFLEX.CATG = "ACQ_IMG";
-  PACK.DIR = "NONE";
-  CATG = "ACQUISITION";
-}
-if DPR.CATG=="ACQUISITION" and DPR.TYPE=="SLIT,OBJECT" and INS.MODE=="MOS" and INSTRUME=="VIMOS" then 
-{
-  RAW.TYPE = "ACQ_MOS";
-  REFLEX.CATG = "ACQ_MOS";
-  PACK.DIR = "NONE";
-  CATG = "ACQUISITION";
-}
-if DPR.CATG=="CALIB" and DPR.TYPE=="BIAS" and INSTRUME=="VIMOS" and INSTRUME=="VIMOS" then 
+if DPR.CATG=="CALIB" and DPR.TYPE=="BIAS" and INSTRUME=="VIMOS" then 
 {
   RAW.TYPE = "BIAS";
   REFLEX.CATG = "BIAS";
-  PACK.DIR = "DET";
   CATG = "CALIB";
 }
-if DPR.CATG=="CALIB" and DPR.TYPE=="DARK" and INSTRUME=="VIMOS" and INSTRUME=="VIMOS" then 
+if DPR.CATG=="CALIB" and DPR.TYPE=="DARK" and INSTRUME=="VIMOS" then 
 {
   RAW.TYPE = "DARK";
   REFLEX.CATG = "DARK";
-  PACK.DIR = "NONE";
-  CATG = "CALIB";
-}
-if DPR.CATG=="CALIB" and DPR.TYPE=="BIAS,DETCHECK" and (DET.READ.CLOCK=="225kHz,1port,LG" or DET.READ.CLOCK=="225kHz,1port,LGCenter") and INSTRUME=="VIMOS" then 
-{
-  RAW.TYPE = "DETLIN_LO";
-  REFLEX.CATG = "OFF_RAW";
-  PACK.DIR = "NONE";
-  CATG = "CALIB";
-}
-if DPR.CATG=="CALIB" and DPR.TYPE=="FLAT,LAMP,DETCHECK" and (DET.READ.CLOCK=="225kHz,1port,LG" or DET.READ.CLOCK=="225kHz,1port,LGCenter") and INSTRUME=="VIMOS" then 
-{
-  RAW.TYPE = "DETLIN_LO";
-  REFLEX.CATG = "ON_RAW";
-  PACK.DIR = "NONE";
-  CATG = "CALIB";
-}
-if DPR.CATG=="CALIB" and DPR.TYPE=="BIAS,DETCHECK" and DET.READ.CLOCK=="225kHz,1port,HG" and INSTRUME=="VIMOS" then 
-{
-  RAW.TYPE = "DETLIN_HI";
-  REFLEX.CATG = "OFF_RAW";
-  PACK.DIR = "NONE";
-  CATG = "CALIB";
-}
-if DPR.CATG=="CALIB" and DPR.TYPE=="FLAT,LAMP,DETCHECK" and DET.READ.CLOCK=="225kHz,1port,HG" and INSTRUME=="VIMOS" then 
-{
-  RAW.TYPE = "DETLIN_HI";
-  REFLEX.CATG = "ON_RAW";
-  PACK.DIR = "NONE";
   CATG = "CALIB";
 }
 if DPR.CATG=="CALIB" and DPR.TYPE=="LAMP,OTHER" and INSTRUME=="VIMOS" then 
 {
   RAW.TYPE = "MASK_TO_CCD";
   REFLEX.CATG = "MASK_TO_CCD";
-  PACK.DIR = "NONE";
-  CATG = "CALIB";
-}
-if DPR.CATG=="CALIB" and DPR.TYPE=="FLAT,SKY" and INS.MODE=="IMG" and INSTRUME=="VIMOS" then 
-{
-  RAW.TYPE = "SKYFLAT";
-  REFLEX.CATG = "IMG_SKY_FLAT";
-  PACK.DIR = "IMG_FLAT";
-  CATG = "CALIB";
-}
-if DPR.CATG=="CALIB" and DPR.TYPE=="FLAT,LAMP" and INS.MODE=="IMG" and INSTRUME=="VIMOS" then 
-{
-  RAW.TYPE = "SFLAT_IMG";
-  REFLEX.CATG = "IMG_SCREEN_FLAT";
-  PACK.DIR = "IMG_FLAT";
-  CATG = "CALIB";
-}
-if DPR.CATG=="CALIB" and DPR.TYPE=="STD" and INS.MODE=="IMG" and INSTRUME=="VIMOS" then 
-{
-  RAW.TYPE = "STD_IMG";
-  REFLEX.CATG = "IMG_STANDARD";
-  PACK.DIR = "IMG_STD";
-  CATG = "CALIB";
-}
-if DPR.CATG=="CALIB" and DPR.TYPE=="STD" and INS.MODE=="IMG" and (INS.FILT1.NAME=="z" or INS.FILT2.NAME=="z" or INS.FILT3.NAME=="z" or INS.FILT4.NAME=="z") and INSTRUME=="VIMOS" then 
-{
-  RAW.TYPE = "STD_Z_IMG";
-  REFLEX.CATG = "IMG_STANDARD";
-  PACK.DIR = "IMG_STD";
-  CATG = "CALIB";
-}
-if PRO.CATG=="IMG_STAR_MATCH_TABLE" and INSTRUME=="VIMOS" then 
-{
-  RAW.TYPE = "IMG_STAR_MATCH_TABLE";
-  REFLEX.CATG = "IMG_STAR_MATCH_TABLE";
-  PACK.DIR = "IMG_STD";
   CATG = "CALIB";
 }
 if DPR.CATG=="CALIB" and DPR.TYPE=="FLAT,LAMP" and INS.MODE=="MOS" and INSTRUME=="VIMOS" then 
 {
  RAW.TYPE = "MOS_CAL";
  REFLEX.CATG = "MOS_SCREEN_FLAT";
- PACK.DIR = "MOS_ARC";
  CATG = "CALIB";
 }
 if DPR.CATG=="CALIB" and DPR.TYPE=="WAVE,LAMP" and INS.MODE=="MOS" and INSTRUME=="VIMOS" then 
 {
-/// RAW.TYPE = "MOS_CAL"; /// Is replaced by...
- RAW.TYPE = "MOS_CAL_ARC"; ///...to classify arcs separately from flats, so as to associate them even if not generated from the same template
+ RAW.TYPE = "MOS_CAL";
  REFLEX.CATG = "MOS_ARC_SPECTRUM";
- PACK.DIR = "MOS_ARC";
  CATG = "CALIB";
 }
-/// Not quite sure why the distincion between CAL for SCI and STD, let's try to get rid of the latter...it seems to work fine!
-///if DPR.CATG=="CALIB" and DPR.TYPE=="FLAT,LAMP" and INS.MODE=="MOS" and (INS.MASK1.ID==101385 or INS.MASK2.ID==201052 or INS.MASK3.ID==301052 or INS.MASK4.ID==401052) then 
-///{
-/// RAW.TYPE = "MOS_STDCAL";
-/// REFLEX.CATG = "MOS_SCREEN_FLAT";
-/// PACK.DIR = "MOS_ARC";
-/// CATG = "CALIB";
-///}
-///if DPR.CATG=="CALIB" and DPR.TYPE=="WAVE,LAMP" and INS.MODE=="MOS" and (INS.MASK1.ID==101385 or INS.MASK2.ID==201052 or INS.MASK3.ID==301052 or INS.MASK4.ID==401052) then 
-///{
-/// RAW.TYPE = "MOS_STDCAL";
-/// REFLEX.CATG = "MOS_ARC_SPECTRUM";
-/// PACK.DIR = "MOS_ARC";
-/// CATG = "CALIB";
-///}
-///...done!
+//if DPR.CATG=="CALIB" and DPR.TYPE=="WAVE,LAMP" and INS.MODE=="MOS" and INSTRUME=="VIMOS" then 
+//{
+// RAW.TYPE = "MOS_CAL_ARC"; ///...to classify arcs separately from flats, so as to associate them even if not generated from the same template
+// REFLEX.CATG = "MOS_ARC_SPECTRUM";
+// CATG = "CALIB";
+//}
 if DPR.CATG=="CALIB" and DPR.TYPE=="STD" and INS.MODE=="MOS" and OCS.CON.QUAD==TPL.EXPNO and INSTRUME=="VIMOS" then 
 {
   RAW.TYPE = "STD_MOS";
   REFLEX.CATG = "MOS_STANDARD";
-  PACK.DIR = "MOS_STD";
   CATG = "CALIB";
 }
 if DPR.CATG=="CALIB" and DPR.TYPE=="FLAT,LAMP" and INS.MODE=="IFU" and INSTRUME=="VIMOS" then 
 {
   RAW.TYPE = "IFU_CAL";
   REFLEX.CATG = "IFU_SCREEN_FLAT";
-  PACK.DIR = "IFU_ARC";
   CATG = "CALIB";
 }
 if DPR.CATG=="CALIB" and DPR.TYPE=="WAVE,LAMP" and INS.MODE=="IFU" and INSTRUME=="VIMOS" then 
 {
   RAW.TYPE = "IFU_CAL";
   REFLEX.CATG = "IFU_ARC_SPECTRUM";
-  PACK.DIR = "IFU_ARC";
   CATG = "CALIB";
 }
 
@@ -156,28 +60,12 @@ if DPR.CATG=="CALIB" and DPR.TYPE=="STD" and INS.MODE=="IFU" and OCS.CON.QUAD==T
 {
   RAW.TYPE = "STD_IFU";
   REFLEX.CATG = "IFU_STANDARD";
-  PACK.DIR = "IFU_STD";
   CATG = "CALIB";
 }
-if DPR.CATG=="SCIENCE" and DPR.TYPE=="OBJECT" and INS.MODE=="IMG" and INSTRUME=="VIMOS" then 
-{
-  RAW.TYPE = "SCI_IMG";
-  REFLEX.CATG = "IMG_SCIENCE";
-  PACK.DIR = "NONE";
-  CATG = "SCIENCE";
-}
-if DPR.CATG=="SCIENCE" and DPR.TYPE=="OBJECT" and INS.MODE=="IMG" and (INS.FILT1.NAME=="z" or INS.FILT2.NAME=="z" or INS.FILT3.NAME=="z" or INS.FILT4.NAME=="z") and INSTRUME=="VIMOS" then 
-{
-  RAW.TYPE = "SCI_Z_IMG";
-  REFLEX.CATG = "IMG_SCIENCE";
-  PACK.DIR = "NONE";
-  CATG = "SCIENCE";
-}
 if DPR.CATG=="SCIENCE" and DPR.TYPE=="OBJECT" and INS.MODE=="MOS" and INSTRUME=="VIMOS" then 
 {
   RAW.TYPE = "SCI_MOS";
   REFLEX.CATG = "MOS_SCIENCE";
-  PACK.DIR = "NONE";
   CATG = "SCIENCE";
   REFLEX.TARGET = "T"; /// Needed for Reflex use.
 }
@@ -185,7 +73,6 @@ if DPR.CATG=="SCIENCE" and DPR.TYPE=="OBJECT" and INS.MODE=="IFU" and INSTRUME==
 {
   RAW.TYPE = "SCI_IFU";
   REFLEX.CATG = "IFU_SCIENCE";
-  PACK.DIR = "NONE";
   CATG = "SCIENCE";
 }
 
@@ -226,40 +113,18 @@ select execute(BIAS) from inputFiles where RAW.TYPE=="BIAS"
   group by DET.READ.CLOCK,TPL.START,OCS.CON.QUAD as (TPL_D,tpl);
 select execute(DARK) from inputFiles where RAW.TYPE=="DARK"
   group by DET.READ.CLOCK,TPL.START,OCS.CON.QUAD as (TPL_D,tpl);
-select execute(DETLIN_LO) from inputFiles where RAW.TYPE=="DETLIN_LO"
-  group by DET.READ.CLOCK,TPL.START,OCS.CON.QUAD as (TPL_D,tpl);
-select execute(DETLIN_HI) from inputFiles where RAW.TYPE=="DETLIN_HI"
-  group by DET.READ.CLOCK,TPL.START,OCS.CON.QUAD as (TPL_D,tpl);
 select execute(MASK_TO_CCD) from inputFiles where RAW.TYPE=="MASK_TO_CCD"
   group by TPL.START,OCS.CON.QUAD as (TPL_D,tpl);
-select execute(SKYFLAT) from inputFiles where RAW.TYPE=="SKYFLAT"
-  group by INS.FILT1.NAME,INS.FILT2.NAME,INS.FILT3.NAME,INS.FILT4.NAME,TPL.START,OCS.CON.QUAD as (TPL_D,tpl);
-select execute(SFLAT_IMG) from inputFiles where RAW.TYPE=="SFLAT_IMG"
-  group by INS.FILT1.NAME,INS.FILT2.NAME,INS.FILT3.NAME,INS.FILT4.NAME,TPL.START,OCS.CON.QUAD as (TPL_D,tpl);
-select execute(STD_IMG) from inputFiles where RAW.TYPE=="STD_IMG"
-  group by INS.FILT1.NAME,INS.FILT2.NAME,INS.FILT3.NAME,INS.FILT4.NAME,OCS.CON.QUAD,ARCFILE;
-select execute(STD_Z_IMG) from inputFiles where RAW.TYPE=="STD_Z_IMG"
-  group by INS.FILT1.NAME,INS.FILT2.NAME,INS.FILT3.NAME,INS.FILT4.NAME,OCS.CON.QUAD,ARCFILE;
-select execute(IMG_STAR_MATCH_TABLE) from inputFiles where PRO.CATG=="IMG_STAR_MATCH_TABLE"
-  group by INS.FILT1.NAME,INS.FILT2.NAME,INS.FILT3.NAME,INS.FILT4.NAME,OCS.CON.QUAD,DPR.TYPE as (GRP_ALL,all);
 select execute(MOS_CAL) from inputFiles where RAW.TYPE=="MOS_CAL"
   group by INS.GRIS1.NAME,INS.GRIS2.NAME,INS.GRIS3.NAME,INS.GRIS4.NAME,INS.FILT1.NAME,INS.FILT2.NAME,INS.FILT3.NAME,INS.FILT4.NAME,INS.MASK1.ID,INS.MASK2.ID,INS.MASK3.ID,INS.MASK4.ID,TPL.START,OCS.CON.QUAD as (TPL_D,tpl);
-///Not quite sure why the distincion between CAL for SCI and STD, let's try to get rid of the latter...
-///select execute(MOS_CAL) from inputFiles where RAW.TYPE=="MOS_STDCAL"
-///  group by INS.GRIS1.NAME,INS.GRIS2.NAME,INS.GRIS3.NAME,INS.GRIS4.NAME,INS.FILT1.NAME,INS.FILT2.NAME,INS.FILT3.NAME,INS.FILT4.NAME,INS.MASK1.ID,INS.MASK2.ID,INS.MASK3.ID,INS.MASK4.ID,TPL.START,OCS.CON.QUAD as (TPL_D,tpl);
-///...done...and it works fine!
 select execute(STD_MOS) from inputFiles where RAW.TYPE=="STD_MOS"
-  group by INS.GRIS1.NAME,INS.GRIS2.NAME,INS.GRIS3.NAME,INS.GRIS4.NAME,INS.FILT1.NAME,INS.FILT2.NAME,INS.FILT3.NAME,INS.FILT4.NAME,INS.MASK1.ID,INS.MASK2.ID,INS.MASK3.ID,INS.MASK4.ID,OCS.CON.QUAD,ARCFILE;
+  group by ARCFILE;
 select execute(IFU_CAL) from inputFiles where RAW.TYPE=="IFU_CAL"
   group by INS.GRIS1.NAME,INS.GRIS2.NAME,INS.GRIS3.NAME,INS.GRIS4.NAME,INS.FILT1.NAME,INS.FILT2.NAME,INS.FILT3.NAME,INS.FILT4.NAME,INS.IFUE.MAG,INS.IFUS.MODE,TPL.ID,TPL.START,OCS.CON.QUAD as (TPL_D,tpl);
 select execute(STD_IFU) from inputFiles where RAW.TYPE=="STD_IFU"
   group by INS.GRIS1.NAME,INS.GRIS2.NAME,INS.GRIS3.NAME,INS.GRIS4.NAME,INS.FILT1.NAME,INS.FILT2.NAME,INS.FILT3.NAME,INS.FILT4.NAME,INS.IFUE.MAG,INS.IFUS.MODE,TPL.ID,OCS.CON.QUAD,ARCFILE;
-select execute(SCI_IMG) from inputFiles where RAW.TYPE=="SCI_IMG"
-  group by INS.FILT1.NAME,INS.FILT2.NAME,INS.FILT3.NAME,INS.FILT4.NAME,OCS.CON.QUAD,ARCFILE;
-select execute(SCI_Z_IMG) from inputFiles where RAW.TYPE=="SCI_Z_IMG"
-  group by INS.FILT1.NAME,INS.FILT2.NAME,INS.FILT3.NAME,INS.FILT4.NAME,OCS.CON.QUAD,ARCFILE;
 select execute(SCI_MOS) from inputFiles where RAW.TYPE=="SCI_MOS"
-  group by INS.GRIS1.NAME,INS.GRIS2.NAME,INS.GRIS3.NAME,INS.GRIS4.NAME,INS.FILT1.NAME,INS.FILT2.NAME,INS.FILT3.NAME,INS.FILT4.NAME,INS.MASK1.ID,INS.MASK2.ID,INS.MASK3.ID,INS.MASK4.ID,TPL.ID,OCS.CON.QUAD ; ///,ARCFILE ; ///as (TPL_D,tpl);
+  group by INS.GRIS1.NAME,INS.GRIS2.NAME,INS.GRIS3.NAME,INS.GRIS4.NAME,INS.FILT1.NAME,INS.FILT2.NAME,INS.FILT3.NAME,INS.FILT4.NAME,INS.MASK1.ID,INS.MASK2.ID,INS.MASK3.ID,INS.MASK4.ID,TPL.START,OCS.CON.QUAD as (TPL_D,tpl);
 select execute(SCI_IFU) from inputFiles where RAW.TYPE=="SCI_IFU"
   group by INS.GRIS1.NAME,INS.GRIS2.NAME,INS.GRIS3.NAME,INS.GRIS4.NAME,INS.FILT1.NAME,INS.FILT2.NAME,INS.FILT3.NAME,INS.FILT4.NAME,INS.IFUE.MAG,INS.IFUS.MODE,TPL.ID,OCS.CON.QUAD,ARCFILE;
 action BIAS
@@ -268,7 +133,7 @@ action BIAS
    recipe vmbias
   {
   }
-  product MASTER_BIAS { PRO.CATG="MASTER_BIAS"; PRO.EXT="tpl_0000.fits";}
+  product MASTER_BIAS { REFLEX.CATG="MASTER_BIAS"; PRO.EXT="tpl_0000.fits";}
 }
 action DARK
 {
@@ -276,34 +141,13 @@ action DARK
   select file as MASTER_BIAS from calibFiles where PRO.CATG=="MASTER_BIAS" and inputFile.DET.READ.CLOCK==DET.READ.CLOCK and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INSTRUME==INSTRUME
   ;
   recipe vmdark {
-  "--StackMethod=Median";
-  "--CleanCosmic=true";
-  "--CleanBadPixel=false";
-  }
-  product MASTER_DARK { PRO.CATG="MASTER_DARK"; PRO.EXT="tpl_0000.fits";}
-}
-action DETLIN_LO
-{
-  recipe detmon_opt_lg {
-  "--llx=274";
-  "--urx=1874";
-  "--lly=320";
-  "--ury=2120";
-  }
-}
-action DETLIN_HI
-{
-  recipe detmon_opt_lg {
-  "--llx=274";
-  "--urx=1874";
-  "--lly=1148";
-  "--ury=2948";
   }
+  product MASTER_DARK { REFLEX.CATG="MASTER_DARK"; PRO.EXT="tpl_0000.fits";}
 }
 action MASK_TO_CCD
 {
    minRet = 1; maxRet = 1;
-   select file as MASTER_BIAS from calibFiles where PRO.CATG=="MASTER_BIAS" and inputFile.DET.READ.CLOCK==DET.READ.CLOCK and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INSTRUME==INSTRUME
+   select file as MASTER_BIAS from calibFiles where REFLEX.CATG=="MASTER_BIAS" and inputFile.DET.READ.CLOCK==DET.READ.CLOCK and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INSTRUME==INSTRUME
   ;
   recipe vmmasktoccd;
 }
@@ -314,7 +158,7 @@ action IFU_CAL
   select file as CCD_TABLE from calibFiles where PRO.CATG=="CCD_TABLE" and inputFile.DET.READ.CLOCK==DET.READ.CLOCK and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INSTRUME==INSTRUME
   ;
   minRet = 1; maxRet = 1;
-  select file as MASTER_BIAS from calibFiles where PRO.CATG=="MASTER_BIAS" and inputFile.DET.READ.CLOCK==DET.READ.CLOCK and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INSTRUME==INSTRUME
+  select file as MASTER_BIAS from calibFiles where REFLEX.CATG=="MASTER_BIAS" and inputFile.DET.READ.CLOCK==DET.READ.CLOCK and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INSTRUME==INSTRUME
   ;
   minRet = 1; maxRet = 1;
   select file as LINE_CATALOG from calibFiles where PRO.CATG=="LINE_CATALOG" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.GRIS1.ID?=INS.GRIS1.ID and inputFile.INS.GRIS2.ID?=INS.GRIS2.ID and inputFile.INS.GRIS3.ID?=INS.GRIS3.ID and inputFile.INS.GRIS4.ID?=INS.GRIS4.ID ) and inputFile.INSTRUME==INSTRUME
@@ -324,247 +168,108 @@ action IFU_CAL
   ;
   recipe vmifucalib {
   }
-  product IFU_IDS { PRO.CATG="IFU_IDS"; PRO.EXT="tpl_0002.fits";}
-  product IFU_TRACE { PRO.CATG="IFU_TRACE"; PRO.EXT="tpl_0004.fits";}
-  product IFU_TRANSMISSION { PRO.CATG="IFU_TRANSMISSION"; PRO.EXT="tpl_0005.fits";}
+  product IFU_IDS { REFLEX.CATG="IFU_IDS"; PRO.EXT="tpl_0002.fits";}
+  product IFU_TRACE { REFLEX.CATG="IFU_TRACE"; PRO.EXT="tpl_0004.fits";}
+  product IFU_TRANSMISSION { REFLEX.CATG="IFU_TRANSMISSION"; PRO.EXT="tpl_0005.fits";}
 }
-action IMG_STAR_MATCH_TABLE
-{
-  minRet = 1; maxRet = 16;
-  select file as IMG_STAR_MATCH_TABLE from calibFiles where PRO.CATG=="IMG_STAR_MATCH_TABLE" and inputFile.DET.READ.CLOCK==DET.READ.CLOCK and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and (MJD-OBS - inputFile.MJD-OBS < 0.5) and (MJD-OBS - inputFile.MJD-OBS > -0.1) and inputFile.INSTRUME==INSTRUME
-  ;
-  minRet = 1; maxRet = 1;
-  select file as PHOTOMETRIC_TABLE from calibFiles where PRO.CATG=="PHOTOMETRIC_TABLE" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME==INS.FILT1.NAME or inputFile.INS.FILT2.NAME==INS.FILT2.NAME or inputFile.INS.FILT3.NAME==INS.FILT3.NAME or inputFile.INS.FILT4.NAME==INS.FILT4.NAME ) and inputFile.INSTRUME==INSTRUME
-  ;
-  recipe vmimcalphot {
-  "--Extinction=false";
-  "--ColorTerm=false";
-  }
-}
-action SCI_IFU
+action STD_IFU
 {
 /// include CCD_TABLE 
   minRet = 1; maxRet = 1;
   select file as CCD_TABLE from calibFiles where PRO.CATG=="CCD_TABLE" and inputFile.DET.READ.CLOCK==DET.READ.CLOCK and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INSTRUME==INSTRUME
   ;
   minRet = 1; maxRet = 1;
-  select file as MASTER_BIAS from calibFiles where PRO.CATG=="MASTER_BIAS" and inputFile.DET.READ.CLOCK==DET.READ.CLOCK and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INSTRUME==INSTRUME
+  select file as MASTER_BIAS from calibFiles where REFLEX.CATG=="MASTER_BIAS" and inputFile.DET.READ.CLOCK==DET.READ.CLOCK and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INSTRUME==INSTRUME
   ;
   minRet = 1; maxRet = 1;
-  select file as IFU_IDS from calibFiles where PRO.CATG=="IFU_IDS" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAME?=INS.GRIS4.NAME ) and inputFile.IN [...]
+  select file as IFU_IDS from calibFiles where REFLEX.CATG=="IFU_IDS" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAME?=INS.GRIS4.NAME ) and inputFile [...]
   ;
   minRet = 1; maxRet = 1;
-  select file as IFU_TRACE from calibFiles where PRO.CATG=="IFU_TRACE" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAME?=INS.GRIS4.NAME ) and inputFil [...]
+  select file as IFU_TRACE from calibFiles where REFLEX.CATG=="IFU_TRACE" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAME?=INS.GRIS4.NAME ) and input [...]
   ;
   minRet = 1; maxRet = 1;
-  select file as IFU_TRANSMISSION from calibFiles where PRO.CATG=="IFU_TRANSMISSION" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAME?=INS.GRIS4.NAME  [...]
+  select file as IFU_TRANSMISSION from calibFiles where REFLEX.CATG=="IFU_TRANSMISSION" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAME?=INS.GRIS4.NA [...]
   ;
-///  minRet = 1; maxRet = 1;
-///  select file as IFU_MASTER_RESPONSE from calibFiles where PRO.CATG=="IFU_MASTER_RESPONSE" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAME?=INS.GR [...]
-///  ;
   minRet = 1; maxRet = 1;
   select file as EXTINCT_TABLE from calibFiles where PRO.CATG=="EXTINCT_TABLE" and (MJD-OBS < inputFile.MJD-OBS or MJD-OBS >= inputFile.MJD-OBS) and inputFile.INSTRUME==INSTRUME
   ;
   minRet = 1; maxRet = 1;
-  select file as IFU_SPECPHOT_TABLE_MASSOC from calibFiles where PRO.CATG=="IFU_SPECPHOT_TABLE" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAME?=INS. [...]
-  ;
- /// minRet = -1; maxRet = 0;
- /// select file as IFU_STANDARD_REDUCED_MASSOC from calibFiles where PRO.CATG=="IFU_STANDARD_REDUCED" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAM [...]
-///  ;
-///  minRet = 1; maxRet = 1;
-///  select file as IFU_STD_FOV_MASSOC from calibFiles where PRO.CATG=="IFU_STD_FOV" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAME?=INS.GRIS4.NAME  [...]
-///  ; 
-  recipe vmifuscience {
-    "--CalibrateFlux=true";
-  } 
-  product IFU_FOV { PRO.CATG="IFU_FOV"; PRO.EXT="tpl_0000.fits";}
-  product IFU_SCIENCE_FLUX_REDUCED { PRO.CATG="IFU_SCIENCE_FLUX_REDUCED"; PRO.EXT="tpl_0001.fits";}
-  product IFU_SCIENCE_REDUCED { PRO.CATG="IFU_SCIENCE_REDUCED"; PRO.EXT="tpl_0002.fits";}
-  product IFU_SKY_IDS { PRO.CATG="IFU_SKY_IDS "; PRO.EXT="tpl_0003.fits";}
-  product IFU_SKY_TRACE { PRO.CATG="IFU_SKY_TRACE "; PRO.EXT="tpl_0004.fits";}
-}
-action SCI_IMG
-{
-  minRet = 1; maxRet = 1;
-  select file as MASTER_BIAS from calibFiles where PRO.CATG=="MASTER_BIAS" and inputFile.DET.READ.CLOCK==DET.READ.CLOCK and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INSTRUME==INSTRUME
-  ;
-  minRet = 1; maxRet = 1;
-  select file as IMG_MASTER_SKY_FLAT from calibFiles where PRO.CATG=="IMG_MASTER_SKY_FLAT" and inputFile.DET.READ.CLOCK==DET.READ.CLOCK and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and inputFile.INSTRUME==INSTRUME
-  ;
-  minRet = 1; maxRet = 1;
-  select file as PHOT_COEFF_TABLE from calibFiles where PRO.CATG=="PHOT_COEFF_TABLE" and inputFile.DET.READ.CLOCK==DET.READ.CLOCK and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and inputFile.INSTRUME==INSTRUME
-  ;
-  minRet = 1; maxRet = 8;
-  select file as IMG_STANDARD_REDUCED_MASSOC from calibFiles where PRO.CATG=="IMG_STANDARD_REDUCED" and inputFile.DET.READ.CLOCK==DET.READ.CLOCK and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and inputFile.INSTRUME==INSTRUME
-  ;
-  recipe vmimobsstare {
-    "--CleanBadPixel=false";
-    "--CleanCosmic=false";
-    "--SearchRadius=6";
-    "--SExtractor.DetectThresh=5";
-    "--SExtractor.DetectMinArea=10";
-    "--SExtractor.Window=10,240,2000,2240";
-    "--SExtractor.SaturLevel=40000";
-  }
-}
-action SCI_Z_IMG
-{
-  minRet = 1; maxRet = 1;
-  select file as MASTER_BIAS from calibFiles where PRO.CATG=="MASTER_BIAS" and inputFile.DET.READ.CLOCK==DET.READ.CLOCK and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INSTRUME==INSTRUME
-  ;
-  minRet = 1; maxRet = 1;
-  select file as IMG_MASTER_SKY_FLAT from calibFiles where PRO.CATG=="IMG_MASTER_SKY_FLAT" and inputFile.DET.READ.CLOCK==DET.READ.CLOCK and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and inputFile.INSTRUME==INSTRUME
-  ;
-  minRet = 1; maxRet = 8;
-  select file as IMG_STANDARD_REDUCED_MASSOC from calibFiles where PRO.CATG=="IMG_STANDARD_REDUCED" and inputFile.DET.READ.CLOCK==DET.READ.CLOCK and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and inputFile.INSTRUME==INSTRUME
-  ;
-  recipe vmimobsstare {
-    "--CleanBadPixel=false";
-    "--CleanCosmic=false";
-    "--SearchRadius=6";
-    "--SExtractor.DetectThresh=5";
-    "--SExtractor.DetectMinArea=10";
-    "--SExtractor.Window=10,240,2000,2240";
-    "--SExtractor.SaturLevel=40000";
-  }
-}
-action SFLAT_IMG
-{
-  minRet = 1; maxRet = 1;
-  select file as MASTER_BIAS from calibFiles where PRO.CATG=="MASTER_BIAS" and inputFile.DET.READ.CLOCK==DET.READ.CLOCK and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INSTRUME==INSTRUME
-  ;
-  recipe vmimflatscreen {
-  "--CleanCosmic=false";
-  "--CleanBadPixel=false";
-  "--StackMethod=Average";
-  }
-  product IMG_MASTER_SCREEN_FLAT { PRO.CATG="IMG_MASTER_SCREEN_FLAT"; PRO.EXT="tpl_0000.fits";}
-}
-action MOS_CAL
-{
-  minRet = 1; maxRet = 1;
-  select file as MASTER_BIAS from calibFiles where PRO.CATG=="MASTER_BIAS" and inputFile.DET.READ.CLOCK==DET.READ.CLOCK and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INSTRUME==INSTRUME
-  ;
-  minRet = 1; maxRet = 1;
-  select file as LINE_CATALOG from calibFiles where PRO.CATG=="LINE_CATALOG" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.GRIS1.ID?=INS.GRIS1.ID and inputFile.INS.GRIS2.ID?=INS.GRIS2.ID and inputFile.INS.GRIS3.ID?=INS.GRIS3.ID and inputFile.INS.GRIS4.ID?=INS.GRIS4.ID ) and inputFile.INSTRUME==INSTRUME
-  ;
-///Associate the arc explicitely and not only if it's taken in the same template as flats like in the latest ops rules...
-  minRet = 1; maxRet = 1;
-  select file as MOS_CAL_ARC from inputFiles where RAW.TYPE=="MOS_CAL_ARC" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAME?=INS.GRIS4.NAME and inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME and inputFile. [...]
-///...done!
-  minRet = 1; maxRet = 1;
-  select file as CONFIG_TABLE from calibFiles where PRO.CATG=="CONFIG_TABLE" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAME?=INS.GRIS4.NAME ) and inputFile.INSTRUME==INSTRUME; /// and MJD-OBS < inputFile.MJD-OBS ; /// The config_tables distributed with the pipeline don't have mjd-obs in the header and CalSelector doesn't always de [...]
-  recipe vmmoscalib {
-  "--check=true";
-  }
-  product MOS_DISP_COEFF { PRO.CATG="MOS_DISP_COEFF"; PRO.EXT="tpl_0000.fits";}
-  product MOS_CURV_COEFF { PRO.CATG="MOS_CURV_COEFF"; PRO.EXT="tpl_0001.fits";}
-  product MOS_SLIT_LOCATION { PRO.CATG="MOS_SLIT_LOCATION"; PRO.EXT="tpl_0002.fits";}
-  product MOS_MASTER_SCREEN_FLAT { PRO.CATG="MOS_MASTER_SCREEN_FLAT"; PRO.EXT="tpl_0003.fits";}
-  product MOS_ARC_SPECTRUM_EXTRACTED { PRO.CATG="MOS_ARC_SPECTRUM_EXTRACTED"; PRO.EXT="tpl_0004.fits";}
-}
-action SKYFLAT
-{
-  minRet = 1; maxRet = 1;
-  select file as MASTER_BIAS from calibFiles where PRO.CATG=="MASTER_BIAS" and inputFile.DET.READ.CLOCK==DET.READ.CLOCK and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INSTRUME==INSTRUME
+  select file as STD_FLUX_TABLE from calibFiles where PRO.CATG=="STD_FLUX_TABLE" and inputFile.OBS.TARG.NAME==OBS.TARG.NAME and inputFile.INSTRUME==INSTRUME
   ;
-  recipe vmimflatsky {
-  "--StackMethod=Median";
-  "--CleanCosmic=false";
-  "--CleanBadPixel=false";
-  }
-  product IMG_MASTER_SKY_FLAT { PRO.CATG="IMG_MASTER_SKY_FLAT"; PRO.EXT="tpl_0000.fits";}
+  recipe vmifustandard;
+  product IFU_STD_FOV { REFLEX.CATG="IFU_STD_FOV"; PRO.EXT="0000.fits";}
+  product IFU_SPECPHOT_TABLE { REFLEX.CATG="IFU_SPECPHOT_TABLE"; PRO.EXT="0004.fits";}
+  product IFU_STANDARD_REDUCED { REFLEX.CATG="IFU_STANDARD_REDUCED"; PRO.EXT="0003.fits";}
 }
-action STD_IFU
+action SCI_IFU
 {
 /// include CCD_TABLE 
   minRet = 1; maxRet = 1;
   select file as CCD_TABLE from calibFiles where PRO.CATG=="CCD_TABLE" and inputFile.DET.READ.CLOCK==DET.READ.CLOCK and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INSTRUME==INSTRUME
   ;
   minRet = 1; maxRet = 1;
-  select file as MASTER_BIAS from calibFiles where PRO.CATG=="MASTER_BIAS" and inputFile.DET.READ.CLOCK==DET.READ.CLOCK and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INSTRUME==INSTRUME
+  select file as MASTER_BIAS from calibFiles where REFLEX.CATG=="MASTER_BIAS" and inputFile.DET.READ.CLOCK==DET.READ.CLOCK and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INSTRUME==INSTRUME
   ;
   minRet = 1; maxRet = 1;
-  select file as IFU_IDS from calibFiles where PRO.CATG=="IFU_IDS" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAME?=INS.GRIS4.NAME ) and inputFile.IN [...]
+  select file as IFU_IDS from calibFiles where REFLEX.CATG=="IFU_IDS" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAME?=INS.GRIS4.NAME ) and inputFile [...]
   ;
   minRet = 1; maxRet = 1;
-  select file as IFU_TRACE from calibFiles where PRO.CATG=="IFU_TRACE" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAME?=INS.GRIS4.NAME ) and inputFil [...]
+  select file as IFU_TRACE from calibFiles where REFLEX.CATG=="IFU_TRACE" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAME?=INS.GRIS4.NAME ) and input [...]
   ;
   minRet = 1; maxRet = 1;
-  select file as IFU_TRANSMISSION from calibFiles where PRO.CATG=="IFU_TRANSMISSION" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAME?=INS.GRIS4.NAME  [...]
+  select file as IFU_TRANSMISSION from calibFiles where REFLEX.CATG=="IFU_TRANSMISSION" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAME?=INS.GRIS4.NA [...]
   ;
+///  minRet = 1; maxRet = 1;
+///  select file as IFU_MASTER_RESPONSE from calibFiles where PRO.CATG=="IFU_MASTER_RESPONSE" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAME?=INS.GR [...]
+///  ;
   minRet = 1; maxRet = 1;
   select file as EXTINCT_TABLE from calibFiles where PRO.CATG=="EXTINCT_TABLE" and (MJD-OBS < inputFile.MJD-OBS or MJD-OBS >= inputFile.MJD-OBS) and inputFile.INSTRUME==INSTRUME
   ;
   minRet = 1; maxRet = 1;
-  select file as STD_FLUX_TABLE from calibFiles where PRO.CATG=="STD_FLUX_TABLE" and inputFile.OBS.TARG.NAME==OBS.TARG.NAME and inputFile.INSTRUME==INSTRUME
+  select file as IFU_SPECPHOT_TABLE_MASSOC from calibFiles where REFLEX.CATG=="IFU_SPECPHOT_TABLE" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAME?=I [...]
   ;
-  recipe vmifustandard;
-  product IFU_STD_FOV { PRO.CATG="IFU_STD_FOV"; PRO.EXT="0000.fits";}
-  product IFU_SPECPHOT_TABLE { PRO.CATG="IFU_SPECPHOT_TABLE"; PRO.EXT="0004.fits";}
-  product IFU_STANDARD_REDUCED { PRO.CATG="IFU_STANDARD_REDUCED"; PRO.EXT="0003.fits";}
+ /// minRet = -1; maxRet = 0;
+ /// select file as IFU_STANDARD_REDUCED_MASSOC from calibFiles where REFLEX.CATG=="IFU_STANDARD_REDUCED" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4. [...]
+///  ;
+///  minRet = 1; maxRet = 1;
+///  select file as IFU_STD_FOV_MASSOC from calibFiles where REFLEX.CATG=="IFU_STD_FOV" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAME?=INS.GRIS4.NA [...]
+///  ; 
+  recipe vmifuscience {
+  } 
 }
-action STD_IMG
+action MOS_CAL
 {
   minRet = 1; maxRet = 1;
-  select file as MASTER_BIAS from calibFiles where PRO.CATG=="MASTER_BIAS" and inputFile.DET.READ.CLOCK==DET.READ.CLOCK and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INSTRUME==INSTRUME
-  ;
-  minRet = 1; maxRet = 1;
-  select file as IMG_MASTER_SKY_FLAT from calibFiles where PRO.CATG=="IMG_MASTER_SKY_FLAT" and inputFile.DET.READ.CLOCK==DET.READ.CLOCK and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and inputFile.INSTRUME==INSTRUME
+  select file as MASTER_BIAS from calibFiles where REFLEX.CATG=="MASTER_BIAS" and inputFile.DET.READ.CLOCK==DET.READ.CLOCK and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INSTRUME==INSTRUME
   ;
   minRet = 1; maxRet = 1;
-  select file as PHOTOMETRIC_TABLE from calibFiles where PRO.CATG=="PHOTOMETRIC_TABLE" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME==INS.FILT1.NAME or inputFile.INS.FILT2.NAME==INS.FILT2.NAME or inputFile.INS.FILT3.NAME==INS.FILT3.NAME or inputFile.INS.FILT4.NAME==INS.FILT4.NAME ) and inputFile.INSTRUME==INSTRUME
+  select file as LINE_CATALOG from calibFiles where PRO.CATG=="LINE_CATALOG" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.GRIS1.ID?=INS.GRIS1.ID and inputFile.INS.GRIS2.ID?=INS.GRIS2.ID and inputFile.INS.GRIS3.ID?=INS.GRIS3.ID and inputFile.INS.GRIS4.ID?=INS.GRIS4.ID ) and inputFile.INSTRUME==INSTRUME
   ;
   minRet = 1; maxRet = 1;
-  select file as PHOTOMETRIC_CATALOG from calibFiles where PRO.CATG=="PHOTOMETRIC_CATALOG" and inputFile.INSTRUME==INSTRUME
-  ;
-  recipe vmimstandard {
-    "--CleanBadPixel=false";
-    "--CleanCosmic=false";
-    "--SearchRadius=7.0";
-    "--MinStars=1";
-    "--StarIndex=0.01";
-    "--ReduceAnyFrame=true";
-    "--SExtractor.DetectThresh=10";
-    "--SExtractor.SaturLevel=60000";
-    "--SExtractor.PhotApertures=10";
-    "--SExtractor.Window=150,240,1900,2240";
+  select file as CONFIG_TABLE from calibFiles where PRO.CATG=="CONFIG_TABLE" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.GRIS1.ID?=INS.GRIS1.ID and inputFile.INS.GRIS2.ID?=INS.GRIS2.ID and inputFile.INS.GRIS3.ID?=INS.GRIS3.ID and inputFile.INS.GRIS4.ID?=INS.GRIS4.ID ) and inputFile.INSTRUME==INSTRUME; /// and MJD-OBS < inputFile.MJD-OBS ; /// The config_tables distributed with the pipeline don't have mjd-obs in the header and CalSelector doesn't always deliver them, so t [...]
+  recipe vmmoscalib {
   }
-  product IMG_STAR_MATCH_TABLE { PRO.CATG="IMG_STAR_MATCH_TABLE"; PRO.EXT="0000.fits";}
-  product IMG_STANDARD_REDUCED { PRO.CATG="IMG_STANDARD_REDUCED"; PRO.EXT="0002.fits";}
-}
-action STD_Z_IMG
-{
-  minRet = 1; maxRet = 1;
-  select file as MASTER_BIAS from calibFiles where PRO.CATG=="MASTER_BIAS" and inputFile.DET.READ.CLOCK==DET.READ.CLOCK and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INSTRUME==INSTRUME
-  ;
-  minRet = 1; maxRet = 1;
-  select file as IMG_MASTER_SKY_FLAT from calibFiles where PRO.CATG=="IMG_MASTER_SKY_FLAT" and inputFile.DET.READ.CLOCK==DET.READ.CLOCK and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and inputFile.INSTRUME==INSTRUME
-  ;
-  minRet = 1; maxRet = 1;
-  select file as EXTINCT_TABLE from calibFiles where PRO.CATG=="EXTINCT_TABLE" and (MJD-OBS < inputFile.MJD-OBS or MJD-OBS >= inputFile.MJD-OBS) and inputFile.INSTRUME==INSTRUME
-  ;
-  minRet = 1; maxRet = 1;
-  select file as STD_FLUX_TABLE from calibFiles where PRO.CATG=="STD_FLUX_TABLE" and inputFile.OBS.TARG.NAME==OBS.TARG.NAME and inputFile.INSTRUME==INSTRUME
-  ;
-  recipe vmimstandard ;
-  product IMG_STANDARD_REDUCED { PRO.CATG="IMG_STANDARD_REDUCED"; PRO.EXT="0002.fits";}
+  product MOS_DISP_COEFF { REFLEX.CATG="MOS_DISP_COEFF"; PRO.EXT="tpl_0000.fits";}
+  product MOS_CURV_COEFF { REFLEX.CATG="MOS_CURV_COEFF"; PRO.EXT="tpl_0001.fits";}
+  product MOS_SLIT_LOCATION { REFLEX.CATG="MOS_SLIT_LOCATION"; PRO.EXT="tpl_0002.fits";}
+  product MOS_MASTER_SCREEN_FLAT { REFLEX.CATG="MOS_MASTER_SCREEN_FLAT"; PRO.EXT="tpl_0003.fits";}
+  product MOS_ARC_SPECTRUM_EXTRACTED { REFLEX.CATG="MOS_ARC_SPECTRUM_EXTRACTED"; PRO.EXT="tpl_0004.fits";}
 }
 action STD_MOS
 {
   minRet = 1; maxRet = 1;
-  select file as MASTER_BIAS from calibFiles where PRO.CATG=="MASTER_BIAS" and inputFile.DET.READ.CLOCK==DET.READ.CLOCK and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INSTRUME==INSTRUME
+  select file as MASTER_BIAS from calibFiles where REFLEX.CATG=="MASTER_BIAS" and inputFile.DET.READ.CLOCK==DET.READ.CLOCK and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INSTRUME==INSTRUME
   ;
   minRet = 1; maxRet = 1;
-  select file as CONFIG_TABLE from calibFiles where PRO.CATG=="CONFIG_TABLE" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAME?=INS.GRIS4.NAME ) and inputFile.INSTRUME==INSTRUME; /// and MJD-OBS < inputFile.MJD-OBS ; /// The config_tables distributed with the pipeline don't have mjd-obs in the header and CalSelector doesn't always de [...]
+  select file as CONFIG_TABLE from calibFiles where PRO.CATG=="CONFIG_TABLE" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.GRIS1.ID?=INS.GRIS1.ID and inputFile.INS.GRIS2.ID?=INS.GRIS2.ID and inputFile.INS.GRIS3.ID?=INS.GRIS3.ID and inputFile.INS.GRIS4.ID?=INS.GRIS4.ID ) and inputFile.INSTRUME==INSTRUME; /// and MJD-OBS < inputFile.MJD-OBS ; /// The config_tables distributed with the pipeline don't have mjd-obs in the header and CalSelector doesn't always deliver them, so t [...]
   minRet = 1; maxRet = 1;
-  select file as MOS_DISP_COEFF from calibFiles where PRO.CATG=="MOS_DISP_COEFF" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAME?=INS.GRIS4.NAME ) an [...]
+  select file as MOS_DISP_COEFF from calibFiles where REFLEX.CATG=="MOS_DISP_COEFF" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.ID?=INS.GRIS1.ID and inputFile.INS.GRIS2.ID?=INS.GRIS2.ID and inputFile.INS.GRIS3.ID?=INS.GRIS3.ID and inputFile.INS.GRIS4.ID?=INS.GRIS4.ID ) and ( inputFile [...]
   ;
   minRet = 1; maxRet = 1;
-  select file as MOS_CURV_COEFF from calibFiles where PRO.CATG=="MOS_CURV_COEFF" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAME?=INS.GRIS4.NAME ) an [...]
+  select file as MOS_CURV_COEFF from calibFiles where REFLEX.CATG=="MOS_CURV_COEFF" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.ID?=INS.GRIS1.ID and inputFile.INS.GRIS2.ID?=INS.GRIS2.ID and inputFile.INS.GRIS3.ID?=INS.GRIS3.ID and inputFile.INS.GRIS4.ID?=INS.GRIS4.ID ) and ( inputFile [...]
   ;
   minRet = 1; maxRet = 1;
-  select file as MOS_SLIT_LOCATION from calibFiles where PRO.CATG=="MOS_SLIT_LOCATION" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAME?=INS.GRIS4.NAM [...]
+  select file as MOS_SLIT_LOCATION from calibFiles where REFLEX.CATG=="MOS_SLIT_LOCATION" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.ID?=INS.GRIS1.ID and inputFile.INS.GRIS2.ID?=INS.GRIS2.ID and inputFile.INS.GRIS3.ID?=INS.GRIS3.ID and inputFile.INS.GRIS4.ID?=INS.GRIS4.ID ) and ( inp [...]
   ;
   minRet = 1; maxRet = 1;
   select file as EXTINCT_TABLE from calibFiles where PRO.CATG=="EXTINCT_TABLE" and (MJD-OBS < inputFile.MJD-OBS or MJD-OBS >= inputFile.MJD-OBS) and inputFile.INSTRUME==INSTRUME
@@ -572,69 +277,45 @@ action STD_MOS
   minRet = 1; maxRet = 1;
   select file as STD_FLUX_TABLE from calibFiles where PRO.CATG=="STD_FLUX_TABLE" and inputFile.OBS.TARG.NAME==OBS.TARG.NAME and inputFile.INSTRUME==INSTRUME
   ;
-///Why is a master response needed to process the STD in Reflex??
+///No master response needed to process the STD in Reflex
 ///  minRet = 1; maxRet = 1;
-///  select file as MOS_MASTER_RESPONSE from calibFiles where PRO.CATG=="MOS_MASTER_RESPONSE" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAME?=INS.GR [...]
+///  select file as MOS_MASTER_RESPONSE from calibFiles where PRO.CATG=="MOS_MASTER_RESPONSE" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.ID?=INS.GRIS1.ID and inputFile.INS.GRIS2.ID?=INS.GRIS2.ID and inputFile.INS.GRIS3.ID?=INS.GRIS3.ID and inputFile.INS.GRIS4.ID?=INS.GRIS4.ID ) and i [...]
 ///  ;
   recipe vmmosscience {
-  "--qc=true";
-  "--skyalign=0";
-  "--flatfield=false";
-  "--skymedian=true";
-  "--skylocal=false";
-  "--skyglobal=false";
-  "--cosmics=false";
-  "--ext_radius=15";
-  "--photometry=true";
   }
-  product MOS_STANDARD_REDUCED { PRO.CATG="MOS_STANDARD_REDUCED"; PRO.EXT="0000.fits";}
-  product MOS_SPECPHOT_TABLE { PRO.CATG="MOS_SPECPHOT_TABLE"; PRO.EXT="0002.fits";}
+  product MOS_STANDARD_REDUCED { REFLEX.CATG="MOS_STANDARD_REDUCED"; PRO.EXT="0000.fits";}
+  product MOS_SPECPHOT_TABLE { REFLEX.CATG="MOS_SPECPHOT_TABLE"; PRO.EXT="0002.fits";}
 }
 action SCI_MOS
 {
   minRet = 1; maxRet = 1;
-  select file as MASTER_BIAS from calibFiles where PRO.CATG=="MASTER_BIAS" and inputFile.DET.READ.CLOCK==DET.READ.CLOCK and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INSTRUME==INSTRUME
+  select file as MASTER_BIAS from calibFiles where REFLEX.CATG=="MASTER_BIAS" and inputFile.DET.READ.CLOCK==DET.READ.CLOCK and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and inputFile.INSTRUME==INSTRUME
   ;
   minRet = 1; maxRet = 1;
-  select file as CONFIG_TABLE from calibFiles where PRO.CATG=="CONFIG_TABLE" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAME?=INS.GRIS4.NAME ) and inputFile.INSTRUME==INSTRUME; /// and MJD-OBS < inputFile.MJD-OBS ; /// The config_tables distributed with the pipeline don't have mjd-obs in the header and CalSelector doesn't always de [...]
+  select file as CONFIG_TABLE from calibFiles where PRO.CATG=="CONFIG_TABLE" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.GRIS1.ID?=INS.GRIS1.ID and inputFile.INS.GRIS2.ID?=INS.GRIS2.ID and inputFile.INS.GRIS3.ID?=INS.GRIS3.ID and inputFile.INS.GRIS4.ID?=INS.GRIS4.ID ) and inputFile.INSTRUME==INSTRUME; /// and MJD-OBS < inputFile.MJD-OBS ; /// The config_tables distributed with the pipeline don't have mjd-obs in the header and CalSelector doesn't always deliver them, so t [...]
   minRet = 1; maxRet = 1;
-  select file as MOS_DISP_COEFF from calibFiles where PRO.CATG=="MOS_DISP_COEFF" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAME?=INS.GRIS4.NAME ) an [...]
+  select file as MOS_DISP_COEFF from calibFiles where REFLEX.CATG=="MOS_DISP_COEFF" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.ID?=INS.GRIS1.ID and inputFile.INS.GRIS2.ID?=INS.GRIS2.ID and inputFile.INS.GRIS3.ID?=INS.GRIS3.ID and inputFile.INS.GRIS4.ID?=INS.GRIS4.ID ) and ( inputFile [...]
   ;
   minRet = 1; maxRet = 1;
-  select file as MOS_CURV_COEFF from calibFiles where PRO.CATG=="MOS_CURV_COEFF" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAME?=INS.GRIS4.NAME ) an [...]
+  select file as MOS_CURV_COEFF from calibFiles where REFLEX.CATG=="MOS_CURV_COEFF" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.ID?=INS.GRIS1.ID and inputFile.INS.GRIS2.ID?=INS.GRIS2.ID and inputFile.INS.GRIS3.ID?=INS.GRIS3.ID and inputFile.INS.GRIS4.ID?=INS.GRIS4.ID ) and ( inputFile [...]
   ;
   minRet = 1; maxRet = 1;
-  select file as MOS_SLIT_LOCATION from calibFiles where PRO.CATG=="MOS_SLIT_LOCATION" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAME?=INS.GRIS4.NAM [...]
+  select file as MOS_SLIT_LOCATION from calibFiles where REFLEX.CATG=="MOS_SLIT_LOCATION" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.ID?=INS.GRIS1.ID and inputFile.INS.GRIS2.ID?=INS.GRIS2.ID and inputFile.INS.GRIS3.ID?=INS.GRIS3.ID and inputFile.INS.GRIS4.ID?=INS.GRIS4.ID ) and ( inp [...]
   ;
   minRet = 1; maxRet = 1;
-  select file as MOS_MASTER_SCREEN_FLAT from calibFiles where PRO.CATG=="MOS_MASTER_SCREEN_FLAT" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAME?=INS [...]
+  select file as MOS_MASTER_SCREEN_FLAT from calibFiles where REFLEX.CATG=="MOS_MASTER_SCREEN_FLAT" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.ID?=INS.GRIS1.ID and inputFile.INS.GRIS2.ID?=INS.GRIS2.ID and inputFile.INS.GRIS3.ID?=INS.GRIS3.ID and inputFile.INS.GRIS4.ID?=INS.GRIS4.ID ) [...]
   ;
-///Master response curve and Reflex: it seems that CalSelector doesn't always include it, plus, the vmmosscience recipe doesn't actually accept MOS_MASTER_RESPONSE as input...
-///  minRet = 1; maxRet = 1; /// Replaced by:
- /// minRet = 0; maxRet = 1; ///
-///  select file as MOS_MASTER_RESPONSE from calibFiles where PRO.CATG=="MOS_MASTER_RESPONSE" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAME?=INS.GR [...]
-///  ;
+//Master response curve and Reflex: it seems that CalSelector doesn't always include it, plus, the vmmosscience recipe doesn't actually accept MOS_MASTER_RESPONSE as input...
+//  minRet = 1; maxRet = 1; /// Replaced by:
+// minRet = 0; maxRet = 1; ///
+//  select file as MOS_MASTER_RESPONSE from calibFiles where PRO.CATG=="MOS_MASTER_RESPONSE" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.ID?=INS.GRIS1.ID and inputFile.INS.GRIS2.ID?=INS.GRIS2.ID and inputFile.INS.GRIS3.ID?=INS.GRIS3.ID and inputFile.INS.GRIS4.ID?=INS.GRIS4.ID ) and in [...]
+//  ;
   minRet = 1; maxRet = 1;
   select file as EXTINCT_TABLE from calibFiles where PRO.CATG=="EXTINCT_TABLE" and (MJD-OBS < inputFile.MJD-OBS or MJD-OBS >= inputFile.MJD-OBS) and inputFile.INSTRUME==INSTRUME
   ;
- /// minRet = 1; maxRet = 1;
- /// select file as MOS_ARC_SPECTRUM_EXTRACTED_MASSOC from calibFiles where PRO.CATG=="MOS_ARC_SPECTRUM_EXTRACTED" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.I [...]
-///  ;
-///  minRet = 1; maxRet = 1;
-///  select file as MOS_STANDARD_REDUCED_MASSOC from calibFiles where PRO.CATG=="MOS_STANDARD_REDUCED" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAM [...]
-///  ;
   minRet = 1; maxRet = 1;
-  select file as MOS_SPECPHOT_TABLE_MASSOC from calibFiles where PRO.CATG=="MOS_SPECPHOT_TABLE" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.NAME?=INS.GRIS1.NAME and inputFile.INS.GRIS2.NAME?=INS.GRIS2.NAME and inputFile.INS.GRIS3.NAME?=INS.GRIS3.NAME and inputFile.INS.GRIS4.NAME?=INS. [...]
+  select file as MOS_SPECPHOT_TABLE from calibFiles where REFLEX.CATG=="MOS_SPECPHOT_TABLE" and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.FILT1.NAME?=INS.FILT1.NAME and inputFile.INS.FILT2.NAME?=INS.FILT2.NAME and inputFile.INS.FILT3.NAME?=INS.FILT3.NAME and inputFile.INS.FILT4.NAME?=INS.FILT4.NAME ) and ( inputFile.INS.GRIS1.ID?=INS.GRIS1.ID and inputFile.INS.GRIS2.ID?=INS.GRIS2.ID and inputFile.INS.GRIS3.ID?=INS.GRIS3.ID and inputFile.INS.GRIS4.ID?=INS.GRIS4.ID ) and inp [...]
   ;
-///Association of the acquisition images is irrelevant for Reflex...
-///  minRet = 0; maxRet = 64;
-///  select file as ACQ_MOS_RASSOC from rawFiles where RAW.TYPE=="ACQ_MOS" and inputFile.OBS.ID==OBS.ID and inputFile.OCS.CON.QUAD==OCS.CON.QUAD and ( inputFile.INS.MASK1.ID?=INS.MASK1.ID and inputFile.INS.MASK2.ID?=INS.MASK2.ID and inputFile.INS.MASK3.ID?=INS.MASK3.ID and inputFile.INS.MASK4.ID?=INS.MASK4.ID ) and inputFile.INSTRUME==INSTRUME
-///  ;
   recipe vmmosscience {
-  "--qc=true";
-  "--skyalign=-1";
-  "--offset=4";
-  "--ext_radius=10";
-  "--photometry=true";
   }
 }
diff --git a/regtests/Makefile.am b/regtests/Makefile.am
index 5b23528..8abab04 100644
--- a/regtests/Makefile.am
+++ b/regtests/Makefile.am
@@ -15,7 +15,7 @@
 
 ##   You should have received a copy of the GNU General Public License
 ##   along with this program; if not, write to the Free Software
-##   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02111-1307  USA
+##   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
 AUTOMAKE_OPTIONS = 1.8 foreign
 
diff --git a/regtests/tests/Makefile.am b/regtests/tests/Makefile.am
index f7b7b4c..f493e88 100644
--- a/regtests/tests/Makefile.am
+++ b/regtests/tests/Makefile.am
@@ -15,7 +15,7 @@
 
 ##   You should have received a copy of the GNU General Public License
 ##   along with this program; if not, write to the Free Software
-##   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02111-1307  USA
+##   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
 AUTOMAKE_OPTIONS = 1.8 foreign
 
@@ -38,7 +38,7 @@ reg1:
 valgrind:
 	esoreg.pl  -valgrind -preload  ../../${PACKAGE}_reg/sof
 
-check:
+regcheck:
 	mkdir -p .purifydir
 	@if test -d ../../${PACKAGE}_reg/sof/; then esorex --version ; fi
 	@if test -d ../../${PACKAGE}_reg/sof/; then mkdir -p ../../${PACKAGE}_reg/sof/.purifydir ; fi
diff --git a/regtests/tests/Makefile.in b/regtests/tests/Makefile.in
index 7718151..65a6838 100644
--- a/regtests/tests/Makefile.in
+++ b/regtests/tests/Makefile.in
@@ -456,7 +456,7 @@ reg1:
 valgrind:
 	esoreg.pl  -valgrind -preload  ../../${PACKAGE}_reg/sof
 
-check:
+regcheck:
 	mkdir -p .purifydir
 	@if test -d ../../${PACKAGE}_reg/sof/; then esorex --version ; fi
 	@if test -d ../../${PACKAGE}_reg/sof/; then mkdir -p ../../${PACKAGE}_reg/sof/.purifydir ; fi
diff --git a/setup b/setup
index 1d5ad43..b05a175 100755
--- a/setup
+++ b/setup
@@ -17,9 +17,9 @@
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
 # $Author: cizzo $
-# $Date: 2008/10/21 09:10:11 $
+# $Date: 2008-10-21 09:10:11 $
 # $Revision: 1.1.1.1 $
-# $Name: vimos-2_9_7 $
+# $Name: not supported by cvs2svn $
 
 
 #   This script is the autoinstaller for the VLT instrument pipeline
diff --git a/vimos/TwoDLinearWCS.cc b/vimos/TwoDLinearWCS.cc
index e0e49dd..9c0670c 100755
--- a/vimos/TwoDLinearWCS.cc
+++ b/vimos/TwoDLinearWCS.cc
@@ -1,4 +1,4 @@
-/* $Id: TwoDLinearWCS.cc,v 1.3 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: TwoDLinearWCS.cc,v 1.5 2013-08-07 15:28:51 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2012 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
- * $Revision: 1.3 $
- * $Name: vimos-2_9_7 $
+ * $Date: 2013-08-07 15:28:51 $
+ * $Revision: 1.5 $
+ * $Name: not supported by cvs2svn $
  */
 
 #include <cmath>
@@ -35,7 +35,9 @@
 
 TwoDLinearWCS::TwoDLinearWCS()
 {
-    wcs_ = vimoswcsxinit(0.,0.,0.,0.,0.,0,0,0.,0,0.,"TAN");
+    std::string  proj = "TAN";
+    wcs_ = vimoswcsxinit(0.,0.,0.,0.,0.,0,0,0.,0,0.,
+                         const_cast<char *>(proj.c_str()));
 }
 
 TwoDLinearWCS::TwoDLinearWCS
@@ -44,8 +46,10 @@ TwoDLinearWCS::TwoDLinearWCS
  const double& rotAngle, bool flip,
  const double& epoch, const int equinox)
 {
+    std::string  proj = "TAN";
     wcs_ = vimoswcsxinit(centralRA, centralDEC, plateScale, dimX/2., dimY/2., 
-            dimX, dimY, rotAngle, equinox, epoch, "TAN");
+            dimX, dimY, rotAngle, equinox, epoch,
+            const_cast<char *>(proj.c_str()));
     if(!flip) vimoswcsdeltset(wcs_, wcs_->cdelt[0],wcs_->cdelt[1],rotAngle);
     else      vimoswcsdeltset(wcs_,-wcs_->cdelt[0],wcs_->cdelt[1],rotAngle);
 }
diff --git a/vimos/TwoDLinearWCS.h b/vimos/TwoDLinearWCS.h
index 86b9c92..be11bd2 100755
--- a/vimos/TwoDLinearWCS.h
+++ b/vimos/TwoDLinearWCS.h
@@ -1,4 +1,4 @@
-/* $Id: TwoDLinearWCS.h,v 1.3 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: TwoDLinearWCS.h,v 1.3 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2012 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.3 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef TWODLINEARWCS_H
diff --git a/vimos/VimosIfuWCS.cc b/vimos/VimosIfuWCS.cc
index f77684f..b84aaa3 100644
--- a/vimos/VimosIfuWCS.cc
+++ b/vimos/VimosIfuWCS.cc
@@ -1,4 +1,4 @@
-/* $Id: VimosIfuWCS.cc,v 1.3 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: VimosIfuWCS.cc,v 1.3 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.3 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/VimosIfuWCS.h b/vimos/VimosIfuWCS.h
index 71d75a5..b1eeb8c 100644
--- a/vimos/VimosIfuWCS.h
+++ b/vimos/VimosIfuWCS.h
@@ -1,4 +1,4 @@
-/* $Id: VimosIfuWCS.h,v 1.3 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: VimosIfuWCS.h,v 1.3 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.3 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VIMOS_IFU_WCS_H
diff --git a/vimos/VimosUtils.cc b/vimos/VimosUtils.cc
index f02adce..4e7e214 100755
--- a/vimos/VimosUtils.cc
+++ b/vimos/VimosUtils.cc
@@ -1,4 +1,4 @@
-/* $Id: VimosUtils.cc,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: VimosUtils.cc,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2012 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #include <cmath>
diff --git a/vimos/VimosUtils.h b/vimos/VimosUtils.h
index 3c3c3c5..689e0c8 100755
--- a/vimos/VimosUtils.h
+++ b/vimos/VimosUtils.h
@@ -1,4 +1,4 @@
-/* $Id: VimosUtils.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: VimosUtils.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2012 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VIMOSUTILS_H
diff --git a/vimos/VimosUtils.tcc b/vimos/VimosUtils.tcc
index 10e5569..118fcb4 100755
--- a/vimos/VimosUtils.tcc
+++ b/vimos/VimosUtils.tcc
@@ -1,4 +1,4 @@
-/* $Id: VimosUtils.tcc,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: VimosUtils.tcc,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2012 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VIMOSUTILS_TCC
diff --git a/vimos/fors_dfs.c b/vimos/fors_dfs.c
index 8df42db..32df022 100644
--- a/vimos/fors_dfs.c
+++ b/vimos/fors_dfs.c
@@ -1,4 +1,4 @@
-/* $Id: fors_dfs.c,v 1.3 2010/07/19 13:18:50 cizzo Exp $
+/* $Id: fors_dfs.c,v 1.6 2013-07-11 11:22:27 cgarcia Exp $
  *
  * This file is part of the FORS library
  * Copyright (C) 2002-2006 European Southern Observatory
@@ -19,10 +19,10 @@
  */
 
 /*
- * $Author: cizzo $
- * $Date: 2010/07/19 13:18:50 $
- * $Revision: 1.3 $
- * $Name: vimos-2_9_7 $
+ * $Author: cgarcia $
+ * $Date: 2013-07-11 11:22:27 $
+ * $Revision: 1.6 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -56,13 +56,16 @@
 /*------------------------------------------------------------------------------
     Prototypes
  -----------------------------------------------------------------------------*/
+static void
+errorstate_dump_one(unsigned self, unsigned first, unsigned last);
+
 /*------------------------------------------------------------------------------
     Implementation
  -----------------------------------------------------------------------------*/
 
 /*----------------------------------------------------------------------------*/
 /*----------------------------------------------------------------------------*/
-static char *strlower(char *s)
+char *strlower(char *s)
 {
 
   char *t = s;
@@ -1059,51 +1062,6 @@ int dfs_save_table(cpl_frameset *frameset, const cpl_table *table,
 /*----------------------------------------------------------------------------*/
 /**
  * @brief
- *   Check if all SOF files exist
- *
- * @param frameset The input set-of-frames
- *
- * @return 1 if not all files exist, 0 if they all exist.
- *
- */
-/*----------------------------------------------------------------------------*/
-int dfs_files_dont_exist(cpl_frameset *frameset)
-{
-    const char *func = "dfs_files_dont_exist";
-    cpl_frame  *frame;
-
-
-    if (frameset == NULL) {
-        cpl_error_set(func, CPL_ERROR_NULL_INPUT);
-        return 1;
-    }
-
-    if (cpl_frameset_is_empty(frameset)) {
-        return 0;
-    }
-
-    frame = cpl_frameset_get_first(frameset);
-
-    while (frame) {
-        if (access(cpl_frame_get_filename(frame), F_OK)) {
-            cpl_msg_error(func, "File %s (%s) was not found", 
-                          cpl_frame_get_filename(frame), 
-                          cpl_frame_get_tag(frame));
-            cpl_error_set(func, CPL_ERROR_FILE_NOT_FOUND);
-        }
-
-        frame = cpl_frameset_get_next(frameset);
-    }
-
-    if (cpl_error_get_code())
-        return 1;
-
-    return 0;
-}
-
-/*----------------------------------------------------------------------------*/
-/**
- * @brief
  *   Saving table data of given category.
  *
  * @param frameset The input set-of-frames
diff --git a/vimos/fors_dfs.h b/vimos/fors_dfs.h
index 0afeb70..e4e6820 100644
--- a/vimos/fors_dfs.h
+++ b/vimos/fors_dfs.h
@@ -1,4 +1,4 @@
-/* $Id: fors_dfs.h,v 1.1 2010/06/16 11:07:49 cizzo Exp $
+/* $Id: fors_dfs.h,v 1.4 2013-04-24 14:05:15 cgarcia Exp $
  *
  * This file is part of the FORS Pipeline
  * Copyright (C) 2002-2006 European Southern Observatory
@@ -19,10 +19,10 @@
  */
 
 /*
- * $Author: cizzo $
- * $Date: 2010/06/16 11:07:49 $
- * $Revision: 1.1 $
- * $Name: vimos-2_9_7 $
+ * $Author: cgarcia $
+ * $Date: 2013-04-24 14:05:15 $
+ * $Revision: 1.4 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef FORS_DFS_H
@@ -32,7 +32,7 @@
 
 CPL_BEGIN_DECLS
 
-int dfs_files_dont_exist(cpl_frameset *frameset);
+char *strlower(char *s);
 int dfs_save_image(cpl_frameset *, const cpl_image *, const char *, 
                    cpl_propertylist *, const cpl_parameterlist *, 
                    const char *, const char *);
diff --git a/vimos/fors_paf.c b/vimos/fors_paf.c
index d3310c7..875f254 100644
--- a/vimos/fors_paf.c
+++ b/vimos/fors_paf.c
@@ -1,4 +1,4 @@
-/* $Id: fors_paf.c,v 1.1 2010/06/16 11:07:49 cizzo Exp $
+/* $Id: fors_paf.c,v 1.1 2010-06-16 11:07:49 cizzo Exp $
  *
  * This file is part of the FORS Library
  * Copyright (C) 2000-2006 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2010/06/16 11:07:49 $
+ * $Date: 2010-06-16 11:07:49 $
  * $Revision: 1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/fors_paf.h b/vimos/fors_paf.h
index c4ca5c4..b4a4fcd 100644
--- a/vimos/fors_paf.h
+++ b/vimos/fors_paf.h
@@ -1,4 +1,4 @@
-/* $Id: fors_paf.h,v 1.1 2010/06/16 11:07:49 cizzo Exp $
+/* $Id: fors_paf.h,v 1.1 2010-06-16 11:07:49 cizzo Exp $
  *
  * This file is part of the FORS Library
  * Copyright (C) 2000-2006 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2010/06/16 11:07:49 $
+ * $Date: 2010-06-16 11:07:49 $
  * $Revision: 1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
  
 #ifndef FORS_PAF_H
diff --git a/vimos/fors_qc.c b/vimos/fors_qc.c
index 76759b0..710a2a8 100644
--- a/vimos/fors_qc.c
+++ b/vimos/fors_qc.c
@@ -1,4 +1,4 @@
-/* $Id: fors_qc.c,v 1.1 2010/06/16 11:07:49 cizzo Exp $
+/* $Id: fors_qc.c,v 1.1 2010-06-16 11:07:49 cizzo Exp $
  *
  * This file is part of the FORS Library
  * Copyright (C) 2002-2006 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2010/06/16 11:07:49 $
+ * $Date: 2010-06-16 11:07:49 $
  * $Revision: 1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/fors_qc.h b/vimos/fors_qc.h
index c780591..f8b9275 100644
--- a/vimos/fors_qc.h
+++ b/vimos/fors_qc.h
@@ -1,4 +1,4 @@
-/* $Id: fors_qc.h,v 1.1 2010/06/16 11:07:49 cizzo Exp $
+/* $Id: fors_qc.h,v 1.1 2010-06-16 11:07:49 cizzo Exp $
  *
  * This file is part of the FORS Library
  * Copyright (C) 2002-2006 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2010/06/16 11:07:49 $
+ * $Date: 2010-06-16 11:07:49 $
  * $Revision: 1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef FORS_QC_H
diff --git a/vimos/fors_tools.c b/vimos/fors_tools.c
index 9d238cf..be27819 100644
--- a/vimos/fors_tools.c
+++ b/vimos/fors_tools.c
@@ -1,4 +1,4 @@
-/* $Id: fors_tools.c,v 1.1 2010/06/16 11:07:49 cizzo Exp $
+/* $Id: fors_tools.c,v 1.1 2010-06-16 11:07:49 cizzo Exp $
  *
  * This file is part of the FORS Library
  * Copyright (C) 2002-2006 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2010/06/16 11:07:49 $
+ * $Date: 2010-06-16 11:07:49 $
  * $Revision: 1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/fors_tools.h b/vimos/fors_tools.h
index 88427cb..0d3c09b 100644
--- a/vimos/fors_tools.h
+++ b/vimos/fors_tools.h
@@ -1,4 +1,4 @@
-/* $Id: fors_tools.h,v 1.1 2010/06/16 11:07:49 cizzo Exp $
+/* $Id: fors_tools.h,v 1.1 2010-06-16 11:07:49 cizzo Exp $
  *
  * This file is part of the FORS Library
  * Copyright (C) 2002-2006 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2010/06/16 11:07:49 $
+ * $Date: 2010-06-16 11:07:49 $
  * $Revision: 1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef FORS_TOOLS_H
diff --git a/vimos/moses.c b/vimos/moses.c
index 9815437..0f09c91 100644
--- a/vimos/moses.c
+++ b/vimos/moses.c
@@ -1,4 +1,4 @@
-/* $Id: moses.c,v 1.46 2012/02/16 10:34:00 cgarcia Exp $
+/* $Id: moses.c,v 1.48 2013-08-22 16:57:33 cgarcia Exp $
  *
  * This file is part of the MOSES library
  * Copyright (C) 2002-2010 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2012/02/16 10:34:00 $
- * $Revision: 1.46 $
- * $Name: vimos-2_9_7 $
+ * $Date: 2013-08-22 16:57:33 $
+ * $Revision: 1.48 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -55,11 +55,10 @@ float cpl_tools_get_median_float(float *, cpl_size);
 
 // Related to mos_identify_peaks(), used in multiplex mode
 
-static int bla = 0;
 
 static int mos_multiplex   = -1;
 static int mos_region_size = 800;
-static double bad_curvature = 0.0005;
+//static double bad_curvature = 0.0005;
 
 static double default_lines_hi[] = {   /* Default sky line catalog */
                     5577.338,          /* for high res data        */
@@ -931,7 +930,7 @@ static void mos_extraction(cpl_image *sciwin, cpl_image *skywin,
 {
 
   cpl_vector *vprofile;
-  cpl_matrix *kernel;
+//  cpl_matrix *kernel;
   cpl_image  *smowin;
 
   int i, j;
@@ -1730,11 +1729,11 @@ cpl_table *mos_build_slit_location(cpl_table *global, cpl_table *maskslits,
     }
 
     if (nslits > 1)
-        cpl_msg_info(func, "Slit location: %d slits are entirely or partially "
-                     "contained in CCD", nslits);
+        cpl_msg_info(func, "Slit location: %"CPL_SIZE_FORMAT" slits "
+                     "are entirely or partially contained in CCD", nslits);
     else
-        cpl_msg_info(func, "Slit location: %d slit is entirely or partially "
-                     "contained in CCD", nslits);
+        cpl_msg_info(func, "Slit location: %"CPL_SIZE_FORMAT" slit "
+                     "is entirely or partially contained in CCD", nslits);
 
     return slits;
 
@@ -4178,7 +4177,7 @@ cpl_image *mos_arc_background(cpl_image *image, int msize, int fsize)
 
     cpl_image  *fimage;
     cpl_image  *bimage;
-    cpl_matrix *kernel;
+/*    cpl_matrix *kernel; */
     float      *data;
     float      *bdata;
     float      *row;
@@ -18711,7 +18710,8 @@ int mos_check_polarisation(cpl_image *q_image, cpl_image *q_error,
     if (col != 1) {
         cpl_table_delete(standard);
         cpl_msg_error(cpl_func, 
-                      "Assertion failure!!! col = %d (it should be 1)", col);
+                      "Assertion failure!!! col = %"CPL_SIZE_FORMAT
+                      " (it should be 1)", col);
         return 1;
     }
 
@@ -18966,7 +18966,7 @@ int mos_compute_offset(cpl_table *reference, cpl_table *objects, double *offset)
     int       *nref;
     int       *nobj;
     int        corr, maxcorr;
-    int        shift, best_shift;
+    int        best_shift;
     int        i, j, k;
 
     cpl_error_code status = CPL_ERROR_NONE;
diff --git a/vimos/moses.h b/vimos/moses.h
index e783b52..733ca48 100644
--- a/vimos/moses.h
+++ b/vimos/moses.h
@@ -1,4 +1,4 @@
-/* $Id: moses.h,v 1.10 2011/03/28 12:36:03 cizzo Exp $
+/* $Id: moses.h,v 1.10 2011-03-28 12:36:03 cizzo Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2006 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2011/03/28 12:36:03 $
+ * $Date: 2011-03-28 12:36:03 $
  * $Revision: 1.10 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef MOSES_H
diff --git a/vimos/vimos_calib_impl.c b/vimos/vimos_calib_impl.c
index 4af3099..2c63dba 100644
--- a/vimos/vimos_calib_impl.c
+++ b/vimos/vimos_calib_impl.c
@@ -1,4 +1,4 @@
-/* $Id: vimos_calib_impl.c,v 1.19 2013/04/22 18:40:18 cgarcia Exp $
+/* $Id: vimos_calib_impl.c,v 1.22 2013-10-22 16:57:09 cgarcia Exp $
  *
  * This file is part of the FORS Data Reduction Pipeline
  * Copyright (C) 2006 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/04/22 18:40:18 $
- * $Revision: 1.19 $
- * $Name: vimos-2_9_7 $
+ * $Date: 2013-10-22 16:57:09 $
+ * $Revision: 1.22 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -195,8 +195,6 @@ int vimos_calib_impl(cpl_frameset *frameset, cpl_parameterlist *parlist)
     int         ddegree;
     int         sradius;
     int         dradius;
-    int         qc;
-    int         check;
 
     /*
      * CPL objects
@@ -304,10 +302,6 @@ int vimos_calib_impl(cpl_frameset *frameset, cpl_parameterlist *parlist)
 
     cpl_msg_set_indentation(2);
 
-    if (dfs_files_dont_exist(frameset))
-        vimos_calib_exit(NULL);
-
-
     /* 
      * Get configuration parameters
      */
@@ -416,10 +410,6 @@ int vimos_calib_impl(cpl_frameset *frameset, cpl_parameterlist *parlist)
     if (sradius < 1 || dradius < 1)
         vimos_calib_exit("Invalid smoothing box radius");
 
-    qc = dfs_get_parameter_bool(parlist, "vimos.vmmoscalib.qc", NULL);
-
-    check = dfs_get_parameter_bool(parlist, "vimos.vmmoscalib.check", NULL);
-
     cpl_table_delete(grism_table); grism_table = NULL;
 
     if (cpl_error_get_code())
@@ -824,8 +814,7 @@ int vimos_calib_impl(cpl_frameset *frameset, cpl_parameterlist *parlist)
         cpl_msg_indent_more();
 
         wavemap = cpl_image_new(nx, ny, CPL_TYPE_FLOAT);
-        if (check)
-            residual = cpl_image_new(nx, ny, CPL_TYPE_FLOAT);
+        residual = cpl_image_new(nx, ny, CPL_TYPE_FLOAT);
 
         fiterror = cpl_calloc(ny, sizeof(double));
         fitlines = cpl_calloc(ny, sizeof(int));
@@ -968,11 +957,9 @@ int vimos_calib_impl(cpl_frameset *frameset, cpl_parameterlist *parlist)
         cpl_propertylist_update_string(header, "CTYPE1", "LINEAR");
         cpl_propertylist_update_string(header, "CTYPE2", "PIXEL");
 
-        if (check) {
-            if (dfs_save_image(frameset, checkwave, spectra_detection_tag, 
-                               header, parlist, recipe, version))
-                vimos_calib_exit(NULL);
-        }
+        if (dfs_save_image(frameset, checkwave, spectra_detection_tag, 
+                           header, parlist, recipe, version))
+            vimos_calib_exit(NULL);
 
         cpl_image_delete(checkwave); checkwave = NULL;
         cpl_propertylist_delete(header); header = NULL;
@@ -990,7 +977,7 @@ int vimos_calib_impl(cpl_frameset *frameset, cpl_parameterlist *parlist)
     refimage = cpl_image_new_from_mask(refmask);
     cpl_mask_delete(refmask); refmask = NULL;
 
-    if (check) {
+    {
         save_header = dfs_load_header(frameset, arc_tag, 0);
         cpl_image_turn(refimage, rotate_back);
         if (dfs_save_image(frameset, refimage, slit_map_tag, NULL,
@@ -1134,7 +1121,7 @@ int vimos_calib_impl(cpl_frameset *frameset, cpl_parameterlist *parlist)
      * QC parameters for flat
      */
 
-    if (qc) {
+    {
         double     scale;
         double     slit_width;
         double     flux, flux_err;
@@ -1235,8 +1222,7 @@ int vimos_calib_impl(cpl_frameset *frameset, cpl_parameterlist *parlist)
     idscoeff = cpl_table_new(ny);
     restable = cpl_table_new(nlines);
     rainbow = cpl_image_new(nx, ny, CPL_TYPE_FLOAT);
-    if (check)
-        residual = cpl_image_new(nx, ny, CPL_TYPE_FLOAT);
+    residual = cpl_image_new(nx, ny, CPL_TYPE_FLOAT);
     fiterror = cpl_calloc(ny, sizeof(double));
     fitlines = cpl_calloc(ny, sizeof(int));
 
@@ -1265,12 +1251,13 @@ int vimos_calib_impl(cpl_frameset *frameset, cpl_parameterlist *parlist)
 
         const char *clab[6] = {"c0", "c1", "c2", "c3", "c4", "c5"};
 
+/*
         int    *position = cpl_table_get_data_int   (slits, "position");
         int    *length   = cpl_table_get_data_int   (slits, "length");
         double *ytop     = cpl_table_get_data_double(slits, "ytop");
         double *ybottom  = cpl_table_get_data_double(slits, "ybottom");
-
         int     j, k, dr, irow;
+*/
 
         /*
          * Replace the LSS solutions to the poorer MOS solutions
@@ -1568,7 +1555,7 @@ int vimos_calib_impl(cpl_frameset *frameset, cpl_parameterlist *parlist)
     cpl_propertylist_update_string(header, "CTYPE2", "PIXEL");
     cpl_propertylist_update_int(header, "ESO PRO DATANCOM", 1);
 
-    if (qc) {
+    {
 
         double scale;
         double slit_width;
@@ -2004,7 +1991,7 @@ int vimos_calib_impl(cpl_frameset *frameset, cpl_parameterlist *parlist)
     cpl_image_delete(rectified); rectified = NULL;
     cpl_propertylist_delete(header); header = NULL;
 
-    if (check) {
+    {
         save_header = dfs_load_header(frameset, arc_tag, 0);
 
         cpl_propertylist_update_double(save_header, "CRPIX2", 1.0);
diff --git a/vimos/vimos_calib_impl.h b/vimos/vimos_calib_impl.h
index 3febd7e..4223ade 100644
--- a/vimos/vimos_calib_impl.h
+++ b/vimos/vimos_calib_impl.h
@@ -1,4 +1,4 @@
-/* $Id: vimos_calib_impl.h,v 1.1 2010/06/16 11:07:49 cizzo Exp $
+/* $Id: vimos_calib_impl.h,v 1.1 2010-06-16 11:07:49 cizzo Exp $
  *
  * This file is part of the FORS Library
  * Copyright (C) 2002-2010 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2010/06/16 11:07:49 $
+ * $Date: 2010-06-16 11:07:49 $
  * $Revision: 1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VIMOS_CALIB_IMPL_H
diff --git a/vimos/vimos_calib_mult.c b/vimos/vimos_calib_mult.c
index ef9131d..8bb01c8 100644
--- a/vimos/vimos_calib_mult.c
+++ b/vimos/vimos_calib_mult.c
@@ -1,4 +1,4 @@
-/* $Id: vimos_calib_mult.c,v 1.16 2013/04/22 19:06:31 cgarcia Exp $
+/* $Id: vimos_calib_mult.c,v 1.19 2013-10-22 16:57:09 cgarcia Exp $
  *
  * This file is part of the FORS Data Reduction Pipeline
  * Copyright (C) 2010 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/04/22 19:06:31 $
- * $Revision: 1.16 $
- * $Name: vimos-2_9_7 $
+ * $Date: 2013-10-22 16:57:09 $
+ * $Revision: 1.19 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -206,8 +206,6 @@ int vimos_calib_mult(cpl_frameset *frameset, cpl_parameterlist *parlist,
     int         ddegree;
     int         sradius;
     int         dradius;
-    int         qc;
-    int         check;
 
     /*
      * CPL objects
@@ -261,7 +259,7 @@ int vimos_calib_mult(cpl_frameset *frameset, cpl_parameterlist *parlist,
      * Auxiliary variables
      */
 
-    cpl_table  *idscoeff_lss = NULL;
+    /* cpl_table  *idscoeff_lss = NULL; */
     char        version[80];
     const char *arc_tag;
     const char *flat_tag;
@@ -291,8 +289,8 @@ int vimos_calib_mult(cpl_frameset *frameset, cpl_parameterlist *parlist,
     int         mos;
     int         nslits;
     int         ngroups;
-    double     *xpos;
-    double      mxpos;
+    /* double     *xpos; 
+    double      mxpos; */
     double      mean_rms;
     double      alltime, arctime;
     int         nflats;
@@ -345,9 +343,6 @@ int vimos_calib_mult(cpl_frameset *frameset, cpl_parameterlist *parlist,
 
     cpl_msg_set_indentation(2);
 
-    if (dfs_files_dont_exist(frameset))
-        vimos_calmul_exit(NULL);
-
 
     /* 
      * Get configuration parameters
@@ -463,10 +458,6 @@ int vimos_calib_mult(cpl_frameset *frameset, cpl_parameterlist *parlist,
     if (sradius < 1 || dradius < 1)
         vimos_calmul_exit("Invalid smoothing box radius");
 
-    qc = dfs_get_parameter_bool(parlist, "vimos.vmmoscalib.qc", NULL);
-
-    check = dfs_get_parameter_bool(parlist, "vimos.vmmoscalib.check", NULL);
-
     cpl_table_delete(grism_table); grism_table = NULL;
 
     if (cpl_error_get_code())
@@ -866,7 +857,7 @@ int vimos_calib_mult(cpl_frameset *frameset, cpl_parameterlist *parlist,
             continue;
         }
 
-        if (check) {
+        {
             header = cpl_propertylist_new();
             cpl_propertylist_update_double(header, "CRPIX1", 1.0);
             cpl_propertylist_update_double(header, "CRPIX2", 1.0);
@@ -937,7 +928,7 @@ int vimos_calib_mult(cpl_frameset *frameset, cpl_parameterlist *parlist,
         vimos_calmul_exit("Wavelength calibration failure.");
     }
 
-    if (check) {
+    {
         save_header = dfs_load_header(frameset, arc_tag, 0);
         cpl_image_turn(refimage, rotate_back);
         if (dfs_save_image(frameset, refimage, slit_map_tag, NULL,
@@ -1009,8 +1000,7 @@ int vimos_calib_mult(cpl_frameset *frameset, cpl_parameterlist *parlist,
 
     globals = cpl_calloc(ngroups, sizeof(cpl_table *));
 
-    if (qc)
-        wcoeff = cpl_calloc(wdegree + 1, sizeof(double));
+    wcoeff = cpl_calloc(wdegree + 1, sizeof(double));
 
     for (i = 0; i < ngroups; i++) {
 
@@ -1124,7 +1114,7 @@ int vimos_calib_mult(cpl_frameset *frameset, cpl_parameterlist *parlist,
          * QC parameters for flat
          */
 
-        if (qc && (cpl_table_and_selected_int(subslits,
+        if ((cpl_table_and_selected_int(subslits,
                                   "slit_id", CPL_EQUAL_TO, cslit_id) == 1)) {
 
             double     flux, flux_err;
@@ -1235,8 +1225,7 @@ int vimos_calib_mult(cpl_frameset *frameset, cpl_parameterlist *parlist,
         idscoeff = cpl_table_new(ny);
         restable = cpl_table_new(nlines);
         rainbow = cpl_image_new(nx, ny, CPL_TYPE_FLOAT);
-        if (check)
-            residual = cpl_image_new(nx, ny, CPL_TYPE_FLOAT);
+        residual = cpl_image_new(nx, ny, CPL_TYPE_FLOAT);
         fiterror = cpl_calloc(ny, sizeof(double));
         fitlines = cpl_calloc(ny, sizeof(int));
 
@@ -1505,7 +1494,7 @@ int vimos_calib_mult(cpl_frameset *frameset, cpl_parameterlist *parlist,
         cpl_propertylist_update_string(header, "CTYPE2", "PIXEL");
         cpl_propertylist_update_int(header, "ESO PRO DATANCOM", 1);
 
-        if (qc) {
+        {
 
             double flux, flux_err, resol, resol_err;
             int    selected;
@@ -1871,7 +1860,7 @@ int vimos_calib_mult(cpl_frameset *frameset, cpl_parameterlist *parlist,
         cpl_image_delete(rectified); rectified = NULL;
         cpl_propertylist_delete(header); header = NULL;
 
-        if (check) {
+        {
             save_header = dfs_load_header(frameset, arc_tag, 0);
 
             cpl_propertylist_update_double(save_header, "CRPIX2", 1.0);
@@ -2024,7 +2013,7 @@ int vimos_calib_mult(cpl_frameset *frameset, cpl_parameterlist *parlist,
      * in future, if necessary.
      */
 
-    if (qc) {
+    {
         cpl_frame *frame;
         char      *name    = "mos_arc_spectrum_extracted.fits";
         char      *tmpname = "TMP_mos_arc_spectrum_extracted.fits";
@@ -2136,7 +2125,7 @@ int vimos_calib_mult(cpl_frameset *frameset, cpl_parameterlist *parlist,
         }
 
         for (j = 0; j <= wdegree; j++) {
-            char *label = cpl_sprintf("c%d", j);
+            /* char *label = cpl_sprintf("c%d", j); */
             char *unit; 
             char *comment;
 
diff --git a/vimos/vimos_calib_mult.h b/vimos/vimos_calib_mult.h
index 172852d..103efc4 100644
--- a/vimos/vimos_calib_mult.h
+++ b/vimos/vimos_calib_mult.h
@@ -1,4 +1,4 @@
-/* $Id: vimos_calib_mult.h,v 1.1 2010/07/14 13:51:54 cizzo Exp $
+/* $Id: vimos_calib_mult.h,v 1.1 2010-07-14 13:51:54 cizzo Exp $
  *
  * This file is part of the FORS Library
  * Copyright (C) 2002-2010 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2010/07/14 13:51:54 $
+ * $Date: 2010-07-14 13:51:54 $
  * $Revision: 1.1 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VIMOS_CALIB_MULT_H
diff --git a/vimos/vimos_science_impl.c b/vimos/vimos_science_impl.c
index 2e987a6..676bf20 100644
--- a/vimos/vimos_science_impl.c
+++ b/vimos/vimos_science_impl.c
@@ -1,4 +1,4 @@
-/* $Id: vimos_science_impl.c,v 1.23 2013/04/22 18:17:09 cgarcia Exp $
+/* $Id: vimos_science_impl.c,v 1.24 2013-04-24 14:05:53 cgarcia Exp $
  *
  * This file is part of the VIMOS Data Reduction Pipeline
  * Copyright (C) 2006-2010 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/04/22 18:17:09 $
- * $Revision: 1.23 $
- * $Name: vimos-2_9_7 $
+ * $Date: 2013-04-24 14:05:53 $
+ * $Revision: 1.24 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -210,9 +210,6 @@ int vimos_science_impl(cpl_frameset *frameset, cpl_parameterlist *parlist,
 
     cpl_msg_set_indentation(2);
 
-    if (dfs_files_dont_exist(frameset))
-        vimos_science_exit(NULL);
-
 
     /* 
      * Get configuration parameters
diff --git a/vimos/vimos_science_impl.h b/vimos/vimos_science_impl.h
index e5623fa..267bddc 100644
--- a/vimos/vimos_science_impl.h
+++ b/vimos/vimos_science_impl.h
@@ -1,4 +1,4 @@
-/* $Id: vimos_science_impl.h,v 1.2 2010/07/20 11:11:41 cizzo Exp $
+/* $Id: vimos_science_impl.h,v 1.2 2010-07-20 11:11:41 cizzo Exp $
  *
  * This file is part of the FORS Library
  * Copyright (C) 2002-2010 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cizzo $
- * $Date: 2010/07/20 11:11:41 $
+ * $Date: 2010-07-20 11:11:41 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VIMOS_SCIENCE_IMPL_H
diff --git a/vimos/vmadf.c b/vimos/vmadf.c
index 528f555..6402353 100644
--- a/vimos/vmadf.c
+++ b/vimos/vmadf.c
@@ -1,4 +1,4 @@
-/* $Id: vmadf.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmadf.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmadf.h b/vimos/vmadf.h
index d6bd255..c43b61b 100644
--- a/vimos/vmadf.h
+++ b/vimos/vmadf.h
@@ -1,4 +1,4 @@
-/* $Id: vmadf.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmadf.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_ADF_H
diff --git a/vimos/vmadfifutable.c b/vimos/vmadfifutable.c
index dc66cc8..a9adffc 100644
--- a/vimos/vmadfifutable.c
+++ b/vimos/vmadfifutable.c
@@ -1,4 +1,4 @@
-/* $Id: vmadfifutable.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmadfifutable.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmadfifutable.h b/vimos/vmadfifutable.h
index 1a47e7c..1b84cd2 100644
--- a/vimos/vmadfifutable.h
+++ b/vimos/vmadfifutable.h
@@ -1,4 +1,4 @@
-/* $Id: vmadfifutable.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmadfifutable.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_ADFIFUTABLE_H
diff --git a/vimos/vmastrometrictable.c b/vimos/vmastrometrictable.c
index 7bc4bf3..dc2111b 100644
--- a/vimos/vmastrometrictable.c
+++ b/vimos/vmastrometrictable.c
@@ -1,4 +1,4 @@
-/* $Id: vmastrometrictable.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmastrometrictable.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
diff --git a/vimos/vmastrometrictable.h b/vimos/vmastrometrictable.h
index 00359a3..9eb9610 100644
--- a/vimos/vmastrometrictable.h
+++ b/vimos/vmastrometrictable.h
@@ -1,4 +1,4 @@
-/* $Id: vmastrometrictable.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmastrometrictable.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_ASTROMETRICTABLE_H
diff --git a/vimos/vmccdtable.c b/vimos/vmccdtable.c
index 82b8df6..2c3480e 100644
--- a/vimos/vmccdtable.c
+++ b/vimos/vmccdtable.c
@@ -1,4 +1,4 @@
-/* $Id: vmccdtable.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmccdtable.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmccdtable.h b/vimos/vmccdtable.h
index 4cbfc76..86158b0 100644
--- a/vimos/vmccdtable.h
+++ b/vimos/vmccdtable.h
@@ -1,4 +1,4 @@
-/* $Id: vmccdtable.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmccdtable.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_CCDTABLE_H
diff --git a/vimos/vmcpl.c b/vimos/vmcpl.c
index 16726c3..62ee224 100644
--- a/vimos/vmcpl.c
+++ b/vimos/vmcpl.c
@@ -1,4 +1,4 @@
-/* $Id: vmcpl.c,v 1.4 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmcpl.c,v 1.5 2013-08-23 10:22:37 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
- * $Revision: 1.4 $
- * $Name: vimos-2_9_7 $
+ * $Date: 2013-08-23 10:22:37 $
+ * $Revision: 1.5 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -831,7 +831,7 @@ vmCplRecipeStop(void)
  */
 
 int
-vmCplPostProcessFrames(PilSetOfFrames *sof, char *recipename)
+vmCplPostProcessFrames(PilSetOfFrames *sof, const char *recipename)
 {
 
     // const char *fctid = "vmCplPostProcessFrames";
diff --git a/vimos/vmcpl.h b/vimos/vmcpl.h
index 3bb45a1..3d5a126 100644
--- a/vimos/vmcpl.h
+++ b/vimos/vmcpl.h
@@ -1,4 +1,4 @@
-/* $Id: vmcpl.h,v 1.3 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmcpl.h,v 1.4 2013-08-23 10:22:37 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
- * $Revision: 1.3 $
- * $Name: vimos-2_9_7 $
+ * $Date: 2013-08-23 10:22:37 $
+ * $Revision: 1.4 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_CPL_H
@@ -66,7 +66,7 @@ int vmCplRecipeStop(void);
  * Miscellaneous utilities
  */
 
-int vmCplPostProcessFrames(PilSetOfFrames *, char *);
+int vmCplPostProcessFrames(PilSetOfFrames *, const char *);
 
 PIL_END_DECLS
 
diff --git a/vimos/vmcube.c b/vimos/vmcube.c
index ed3d266..060aff8 100644
--- a/vimos/vmcube.c
+++ b/vimos/vmcube.c
@@ -1,4 +1,4 @@
-/* $Id: vmcube.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmcube.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmcube.h b/vimos/vmcube.h
index 80a9ba6..62afc73 100644
--- a/vimos/vmcube.h
+++ b/vimos/vmcube.h
@@ -1,4 +1,4 @@
-/* $Id: vmcube.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmcube.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_CUBE_H
diff --git a/vimos/vmdetector.c b/vimos/vmdetector.c
index 01f17cc..322723c 100644
--- a/vimos/vmdetector.c
+++ b/vimos/vmdetector.c
@@ -1,4 +1,4 @@
-/* $Id: vmdetector.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmdetector.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmdetector.h b/vimos/vmdetector.h
index efdba1e..f47f1a4 100644
--- a/vimos/vmdetector.h
+++ b/vimos/vmdetector.h
@@ -1,4 +1,4 @@
-/* $Id: vmdetector.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmdetector.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_DETECTOR_H
diff --git a/vimos/vmdistmodels.c b/vimos/vmdistmodels.c
index 0194502..2f1f51f 100644
--- a/vimos/vmdistmodels.c
+++ b/vimos/vmdistmodels.c
@@ -1,4 +1,4 @@
-/* $Id: vmdistmodels.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmdistmodels.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmdistmodels.h b/vimos/vmdistmodels.h
index 23732e1..9b46e02 100644
--- a/vimos/vmdistmodels.h
+++ b/vimos/vmdistmodels.h
@@ -1,4 +1,4 @@
-/* $Id: vmdistmodels.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmdistmodels.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_DISTMODELS_H
diff --git a/vimos/vmextincttable.c b/vimos/vmextincttable.c
index d9ad741..d11fefa 100644
--- a/vimos/vmextincttable.c
+++ b/vimos/vmextincttable.c
@@ -1,4 +1,4 @@
-/* $Id: vmextincttable.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmextincttable.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmextincttable.h b/vimos/vmextincttable.h
index 865a03a..0b424d8 100644
--- a/vimos/vmextincttable.h
+++ b/vimos/vmextincttable.h
@@ -1,4 +1,4 @@
-/* $Id: vmextincttable.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmextincttable.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
  
 #ifndef VM_EXTINCTTABLE_H
diff --git a/vimos/vmextractiontable.c b/vimos/vmextractiontable.c
index bc20f83..c395cdd 100644
--- a/vimos/vmextractiontable.c
+++ b/vimos/vmextractiontable.c
@@ -1,4 +1,4 @@
-/* $Id: vmextractiontable.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmextractiontable.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmextractiontable.h b/vimos/vmextractiontable.h
index 7c4b383..6b54bb0 100644
--- a/vimos/vmextractiontable.h
+++ b/vimos/vmextractiontable.h
@@ -1,4 +1,4 @@
-/* $Id: vmextractiontable.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmextractiontable.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_EXTRACTIONTABLE_H
diff --git a/vimos/vmfit.c b/vimos/vmfit.c
index 095bc72..8ba81e0 100644
--- a/vimos/vmfit.c
+++ b/vimos/vmfit.c
@@ -1,4 +1,4 @@
-/* $Id: vmfit.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmfit.c,v 1.3 2013-08-07 18:30:28 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
- * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Date: 2013-08-07 18:30:28 $
+ * $Revision: 1.3 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -398,7 +398,7 @@ double *fitSurfacePolynomial(VimosPixel *surface, int np, char *controlString,
 void fitSurPolErrors(VimosPixel *poly,int ndat,double *a_all,double *b_all,double *c_all,double *sa,double *sb,double *sc)
 {
    double *ajpar,*bjpar,*cjpar;
-   double *ap,*bp,*cp,aasum2,bbsum2,ccsum2,a,b,c;
+   double *ap,*bp,*cp,aasum2,bbsum2,ccsum2;
    double a1,b1,c1,asum,bsum,csum,aasum1,bbsum1,ccsum1;
    double *coeff;
    int i,j,ncoef;
@@ -463,9 +463,9 @@ void fitSurPolErrors(VimosPixel *poly,int ndat,double *a_all,double *b_all,doubl
    a1 = ((aasum1-aasum2) >= 0.) ? (aasum1-aasum2) : -(aasum1-aasum2);
    b1 = ((bbsum1-bbsum2) >= 0.) ? (bbsum1-bbsum2) : -(bbsum1-bbsum2);
    c1 = ((ccsum1-ccsum2) >= 0.) ? (ccsum1-ccsum2) : -(ccsum1-ccsum2);
-   a = asum / ndat;
+/*   a = asum / ndat;
    b = bsum / ndat;
-   c = csum / ndat;
+   c = csum / ndat; */
    *sa = sqrt( a1 / (ndat*(ndat-1)) );
    *sb = sqrt( b1 / (ndat*(ndat-1)) );
    *sc = sqrt( c1 / (ndat*(ndat-1)) );
diff --git a/vimos/vmfit.h b/vimos/vmfit.h
index 10f5d35..882dc8a 100644
--- a/vimos/vmfit.h
+++ b/vimos/vmfit.h
@@ -1,4 +1,4 @@
-/* $Id: vmfit.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmfit.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_FIT_H
diff --git a/vimos/vmgalaxytable.c b/vimos/vmgalaxytable.c
index abfaa9d..205bb16 100644
--- a/vimos/vmgalaxytable.c
+++ b/vimos/vmgalaxytable.c
@@ -1,4 +1,4 @@
-/* $Id: vmgalaxytable.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmgalaxytable.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmgalaxytable.h b/vimos/vmgalaxytable.h
index 7d448e5..e1ea0eb 100644
--- a/vimos/vmgalaxytable.h
+++ b/vimos/vmgalaxytable.h
@@ -1,4 +1,4 @@
-/* $Id: vmgalaxytable.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmgalaxytable.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_GALAXYTABLE_H
diff --git a/vimos/vmgrismtable.c b/vimos/vmgrismtable.c
index 5556226..0249c2c 100644
--- a/vimos/vmgrismtable.c
+++ b/vimos/vmgrismtable.c
@@ -1,4 +1,4 @@
-/* $Id: vmgrismtable.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmgrismtable.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmgrismtable.h b/vimos/vmgrismtable.h
index 86ee239..238e7bb 100644
--- a/vimos/vmgrismtable.h
+++ b/vimos/vmgrismtable.h
@@ -1,4 +1,4 @@
-/* $Id: vmgrismtable.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmgrismtable.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_GRISMTABLE_H
diff --git a/vimos/vmidstable.c b/vimos/vmidstable.c
index 53564f2..74e0cfb 100644
--- a/vimos/vmidstable.c
+++ b/vimos/vmidstable.c
@@ -1,4 +1,4 @@
-/* $Id: vmidstable.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmidstable.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmidstable.h b/vimos/vmidstable.h
index 1e53ee3..1fb8b6d 100644
--- a/vimos/vmidstable.h
+++ b/vimos/vmidstable.h
@@ -1,4 +1,4 @@
-/* $Id: vmidstable.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmidstable.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_IDSTABLE_H
diff --git a/vimos/vmifu.c b/vimos/vmifu.c
index ebe1c1d..cab36db 100644
--- a/vimos/vmifu.c
+++ b/vimos/vmifu.c
@@ -1,4 +1,4 @@
-/* $Id: vmifu.c,v 1.12 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmifu.c,v 1.13 2013-08-23 10:13:51 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
- * $Revision: 1.12 $
- * $Name: vimos-2_9_7 $
+ * $Date: 2013-08-23 10:13:51 $
+ * $Revision: 1.13 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -4024,7 +4024,7 @@ cpl_table *ifuGauss(cpl_table *table, int start, int end)
   char   distance[MAX_COLNAME];
   char   flux[MAX_COLNAME];
 
-  int    nrow, ncol;
+  int    nrow;
   int    null;
   int    i, j;
 
@@ -4033,7 +4033,6 @@ cpl_table *ifuGauss(cpl_table *table, int start, int end)
 
   cpl_table_and_selected_int(table, "y", CPL_NOT_LESS_THAN, start);
   nrow = cpl_table_and_selected_int(table, "y", CPL_LESS_THAN, end);
-  ncol = limitCount;
 
   if (nrow < minCount)
     return NULL;
@@ -4146,7 +4145,7 @@ cpl_table *ifuGauss2(cpl_table *table, int start, int end)
   char   distance[MAX_COLNAME];
   char   flux[MAX_COLNAME];
 
-  int    nrow, ncol;
+  int    nrow;
   int    null;
   int    i, j;
 
@@ -4155,7 +4154,6 @@ cpl_table *ifuGauss2(cpl_table *table, int start, int end)
 
   cpl_table_and_selected_int(table, "y", CPL_NOT_LESS_THAN, start);
   nrow = cpl_table_and_selected_int(table, "y", CPL_LESS_THAN, end);
-  ncol = limitCount;
 
   if (nrow < minCount)
     return NULL;
@@ -5361,7 +5359,6 @@ cpl_table *ifuSimpleExtraction(cpl_image *image, cpl_table *model)
   int        countFibers = cpl_table_get_ncol(model) - 1;
   int        range       = cpl_table_get_nrow(model);
   cpl_table *spectra     = cpl_table_new(range);
-  double    *spectrum;
 
   double  c;             /* Running position of the centroid                */
   int     x1, x2, x3;    /* Positions of the pixels closest to the centroid */
@@ -5397,7 +5394,6 @@ cpl_table *ifuSimpleExtraction(cpl_image *image, cpl_table *model)
     }
     cpl_table_new_column(spectra, colSpectrum, CPL_TYPE_DOUBLE);
     cpl_table_fill_column_window_double(spectra, colSpectrum, 0, range, 0.0);
-    spectrum = cpl_table_get_data_double(spectra, colSpectrum);
 
     for (j = 0; j < range; j++) {            /* Loop along the dispersion */
 
diff --git a/vimos/vmifu.h b/vimos/vmifu.h
index b75c514..7e1aefc 100644
--- a/vimos/vmifu.h
+++ b/vimos/vmifu.h
@@ -1,4 +1,4 @@
-/* $Id: vmifu.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmifu.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_IFU_H
diff --git a/vimos/vmifuextraction.c b/vimos/vmifuextraction.c
index e332885..50ab09c 100644
--- a/vimos/vmifuextraction.c
+++ b/vimos/vmifuextraction.c
@@ -1,4 +1,4 @@
-/* $Id: vmifuextraction.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmifuextraction.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmifuextraction.h b/vimos/vmifuextraction.h
index 119c5fd..2e595f2 100644
--- a/vimos/vmifuextraction.h
+++ b/vimos/vmifuextraction.h
@@ -1,4 +1,4 @@
-/* $Id: vmifuextraction.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmifuextraction.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_IFUEXTRACTION_H
diff --git a/vimos/vmifufibers.c b/vimos/vmifufibers.c
index d3544cc..e05054b 100644
--- a/vimos/vmifufibers.c
+++ b/vimos/vmifufibers.c
@@ -1,4 +1,4 @@
-/* $Id: vmifufibers.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmifufibers.c,v 1.3 2013-07-11 11:27:43 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
- * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Date: 2013-07-11 11:27:43 $
+ * $Revision: 1.3 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -790,7 +790,7 @@ VmIfuCrossTalk(VimosImage *imageData, VimosIfuTable *ifuTable,
            pmaxY = (VimosUlong32) maxY;
 
 	   /* if pmaxY > image size, set it to image size */
-	   if (pmaxY >= yLen) pmaxY = (yLen - 1);
+	   if (pmaxY >= (VimosUlong32)yLen) pmaxY = (yLen - 1);
 
 
 	   /* now restart loop on fibers and extraction slits to compute,
@@ -819,7 +819,7 @@ VmIfuCrossTalk(VimosImage *imageData, VimosIfuTable *ifuTable,
 		    fibNum = theIfuFibers->fibNo - 1;
 
 		    /* CHECK THE LIMITS FOR THIS LOOP */
-		    for (jj=pminY; jj<=pmaxY; jj++)
+		    for (jj=pminY; (VimosUlong32)jj<=pmaxY; jj++)
 		       {
 			peakImage->data[fibNum + jj*PSEUDOSLIT] = 
 			    extSlits->ccdX->data[peakCentX] + 
@@ -866,7 +866,7 @@ VmIfuCrossTalk(VimosImage *imageData, VimosIfuTable *ifuTable,
 	   /* some checks, maybe redundant */
 	   for (m=0; m<PSEUDOSLIT; m++)
 	     {
-	      for (jj=pminY; jj<=pmaxY; jj++)
+	      for (jj=pminY; (VimosUlong32)jj<=pmaxY; jj++)
 	         {
 		  if (peakImage->data[m + jj*PSEUDOSLIT] == -1.0) 
 		       puts("ERROR in peakImage!");
@@ -886,7 +886,7 @@ VmIfuCrossTalk(VimosImage *imageData, VimosIfuTable *ifuTable,
 
 	   /* counter for rows in peakImage */
 	   i = 0;
-	   for (j=pminY; j<=pmaxY; j++)
+	   for (j=pminY; (VimosUlong32)j<=pmaxY; j++)
 	      {
 
 	       /* some initializations, just to be safe..*/
@@ -1201,7 +1201,7 @@ VmIfuCrossTalk(VimosImage *imageData, VimosIfuTable *ifuTable,
 	      } /* end loop on cross-dispersion cuts for this IFU pseudoslit */
 
 	   /* just to check */
-	   if (i != (pmaxY - pminY +1))
+	   if ((VimosUlong32)i != (pmaxY - pminY +1))
 	     {
 	      pilMsgError(modName,
 		  "ERROR! %5d cross-dispersion cuts done for pseudoslit: %5ld",
@@ -1211,7 +1211,7 @@ VmIfuCrossTalk(VimosImage *imageData, VimosIfuTable *ifuTable,
 			  (pmaxY - pminY +1));
 	      return NULL;
 	     }
-	   else if  (i == (pmaxY - pminY +1))
+	   else if  ((VimosUlong32)i == (pmaxY - pminY +1))
 	     {
 	      pilMsgInfo(modName,
 			 "%5ld cross dispersion cuts done for pseudoslit %3d", 
diff --git a/vimos/vmifufibers.h b/vimos/vmifufibers.h
index 17e9c63..c7c6cb5 100644
--- a/vimos/vmifufibers.h
+++ b/vimos/vmifufibers.h
@@ -1,4 +1,4 @@
-/* $Id: vmifufibers.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmifufibers.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_IFUFIBERS_H
diff --git a/vimos/vmifuflat.c b/vimos/vmifuflat.c
index a634803..1dc3725 100644
--- a/vimos/vmifuflat.c
+++ b/vimos/vmifuflat.c
@@ -1,4 +1,4 @@
-/* $Id: vmifuflat.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmifuflat.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmifuflat.h b/vimos/vmifuflat.h
index b3c201c..72aaf38 100644
--- a/vimos/vmifuflat.h
+++ b/vimos/vmifuflat.h
@@ -1,4 +1,4 @@
-/* $Id: vmifuflat.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmifuflat.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_IFUFLAT_H
diff --git a/vimos/vmifuimage.c b/vimos/vmifuimage.c
index 3857789..8190050 100644
--- a/vimos/vmifuimage.c
+++ b/vimos/vmifuimage.c
@@ -1,4 +1,4 @@
-/* $Id: vmifuimage.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmifuimage.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmifuimage.h b/vimos/vmifuimage.h
index e0513f5..19db820 100644
--- a/vimos/vmifuimage.h
+++ b/vimos/vmifuimage.h
@@ -1,4 +1,4 @@
-/* $Id: vmifuimage.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmifuimage.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_IFUIMAGE_H
diff --git a/vimos/vmifusky.c b/vimos/vmifusky.c
index 2448f18..f0521ee 100644
--- a/vimos/vmifusky.c
+++ b/vimos/vmifusky.c
@@ -1,4 +1,4 @@
-/* $Id: vmifusky.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmifusky.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmifusky.h b/vimos/vmifusky.h
index 4f62caa..19311f8 100644
--- a/vimos/vmifusky.h
+++ b/vimos/vmifusky.h
@@ -1,4 +1,4 @@
-/* $Id: vmifusky.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmifusky.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_IFUSKY_H
diff --git a/vimos/vmifusphotcalib.c b/vimos/vmifusphotcalib.c
index c317cd0..cccce9d 100644
--- a/vimos/vmifusphotcalib.c
+++ b/vimos/vmifusphotcalib.c
@@ -1,4 +1,4 @@
-/* $Id: vmifusphotcalib.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmifusphotcalib.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmifusphotcalib.h b/vimos/vmifusphotcalib.h
index 7321f68..fd62dc7 100644
--- a/vimos/vmifusphotcalib.h
+++ b/vimos/vmifusphotcalib.h
@@ -1,4 +1,4 @@
-/* $Id: vmifusphotcalib.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmifusphotcalib.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_IFUSPHOTCALIB_H
diff --git a/vimos/vmifutable.c b/vimos/vmifutable.c
index 3636759..b461da4 100644
--- a/vimos/vmifutable.c
+++ b/vimos/vmifutable.c
@@ -1,4 +1,4 @@
-/* $Id: vmifutable.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmifutable.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmifutable.h b/vimos/vmifutable.h
index eb0b5d2..c38508a 100644
--- a/vimos/vmifutable.h
+++ b/vimos/vmifutable.h
@@ -1,4 +1,4 @@
-/* $Id: vmifutable.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmifutable.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_IFUTABLE_H
diff --git a/vimos/vmifutypes.c b/vimos/vmifutypes.c
index b0d1f89..547db21 100644
--- a/vimos/vmifutypes.c
+++ b/vimos/vmifutypes.c
@@ -1,4 +1,4 @@
-/* $Id: vmifutypes.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmifutypes.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmifutypes.h b/vimos/vmifutypes.h
index 43c0f6d..b5682e8 100644
--- a/vimos/vmifutypes.h
+++ b/vimos/vmifutypes.h
@@ -1,4 +1,4 @@
-/* $Id: vmifutypes.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmifutypes.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_IFUTYPES_H
diff --git a/vimos/vmifuutils.c b/vimos/vmifuutils.c
index 93889ac..985c0fa 100644
--- a/vimos/vmifuutils.c
+++ b/vimos/vmifuutils.c
@@ -1,4 +1,4 @@
-/* $Id: vmifuutils.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmifuutils.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmifuutils.h b/vimos/vmifuutils.h
index 3f500a7..cb5fe07 100644
--- a/vimos/vmifuutils.h
+++ b/vimos/vmifuutils.h
@@ -1,4 +1,4 @@
-/* $Id: vmifuutils.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmifuutils.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_IFUUTILS_H
diff --git a/vimos/vmimage.c b/vimos/vmimage.c
index 138056a..5bb7d60 100644
--- a/vimos/vmimage.c
+++ b/vimos/vmimage.c
@@ -1,4 +1,4 @@
-/* $Id: vmimage.c,v 1.3 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmimage.c,v 1.3 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.3 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmimage.h b/vimos/vmimage.h
index a49a1ea..329e529 100644
--- a/vimos/vmimage.h
+++ b/vimos/vmimage.h
@@ -1,4 +1,4 @@
-/* $Id: vmimage.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmimage.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_IMAGE_H
diff --git a/vimos/vmimagearray.c b/vimos/vmimagearray.c
index 2116b88..0e38176 100644
--- a/vimos/vmimagearray.c
+++ b/vimos/vmimagearray.c
@@ -1,4 +1,4 @@
-/* $Id: vmimagearray.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmimagearray.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmimagearray.h b/vimos/vmimagearray.h
index 740d4aa..29d8bf2 100644
--- a/vimos/vmimagearray.h
+++ b/vimos/vmimagearray.h
@@ -1,4 +1,4 @@
-/* $Id: vmimagearray.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmimagearray.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_IMAGEARRAY_H
diff --git a/vimos/vmimageset.c b/vimos/vmimageset.c
index 5ea3dfe..921de13 100644
--- a/vimos/vmimageset.c
+++ b/vimos/vmimageset.c
@@ -1,4 +1,4 @@
-/* $Id: vmimageset.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmimageset.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmimageset.h b/vimos/vmimageset.h
index 114e29a..c51bf64 100644
--- a/vimos/vmimageset.h
+++ b/vimos/vmimageset.h
@@ -1,4 +1,4 @@
-/* $Id: vmimageset.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmimageset.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_IMAGESET_H
diff --git a/vimos/vmimgastrometry.c b/vimos/vmimgastrometry.c
index 85dd691..f1c8889 100644
--- a/vimos/vmimgastrometry.c
+++ b/vimos/vmimgastrometry.c
@@ -1,4 +1,4 @@
-/* $Id: vmimgastrometry.c,v 1.6 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmimgastrometry.c,v 1.6 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.6 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmimgastrometry.h b/vimos/vmimgastrometry.h
index a1df9c9..15c43ba 100644
--- a/vimos/vmimgastrometry.h
+++ b/vimos/vmimgastrometry.h
@@ -1,4 +1,4 @@
-/* $Id: vmimgastrometry.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmimgastrometry.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_IMGASTROMETRY_H
diff --git a/vimos/vmimgextraction.c b/vimos/vmimgextraction.c
index 0749c3b..abe7d63 100644
--- a/vimos/vmimgextraction.c
+++ b/vimos/vmimgextraction.c
@@ -1,4 +1,4 @@
-/* $Id: vmimgextraction.c,v 1.5 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmimgextraction.c,v 1.6 2013-08-07 15:39:39 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
- * $Revision: 1.5 $
- * $Name: vimos-2_9_7 $
+ * $Date: 2013-08-07 15:39:39 $
+ * $Revision: 1.6 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -1010,7 +1010,7 @@ VimosTable *VmImBuildStarTable(VimosTable *table, float starIndex,
     return 0;
   }
   else {
-    cpl_msg_info(fctid, "%d stars have been selected.", starCount);
+    cpl_msg_info(fctid, "%zd stars have been selected.", starCount);
     starTable = newStarTable(starCount);
   }
 
diff --git a/vimos/vmimgextraction.h b/vimos/vmimgextraction.h
index 9527426..dbd8787 100644
--- a/vimos/vmimgextraction.h
+++ b/vimos/vmimgextraction.h
@@ -1,4 +1,4 @@
-/* $Id: vmimgextraction.h,v 1.3 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmimgextraction.h,v 1.3 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.3 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_IMGEXTRACTION_H
diff --git a/vimos/vmimgphotcalib.c b/vimos/vmimgphotcalib.c
index f3175e9..8beff72 100644
--- a/vimos/vmimgphotcalib.c
+++ b/vimos/vmimgphotcalib.c
@@ -1,4 +1,4 @@
-/* $Id: vmimgphotcalib.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmimgphotcalib.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmimgphotcalib.h b/vimos/vmimgphotcalib.h
index 068c347..965be2c 100644
--- a/vimos/vmimgphotcalib.h
+++ b/vimos/vmimgphotcalib.h
@@ -1,4 +1,4 @@
-/* $Id: vmimgphotcalib.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmimgphotcalib.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_IMGPHOTCALIB_H
diff --git a/vimos/vmimgpreprocessing.c b/vimos/vmimgpreprocessing.c
index f168da2..a1b3a2f 100644
--- a/vimos/vmimgpreprocessing.c
+++ b/vimos/vmimgpreprocessing.c
@@ -1,4 +1,4 @@
-/* $Id: vmimgpreprocessing.c,v 1.3 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmimgpreprocessing.c,v 1.3 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.3 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmimgpreprocessing.h b/vimos/vmimgpreprocessing.h
index 79bb8e4..f39264b 100644
--- a/vimos/vmimgpreprocessing.h
+++ b/vimos/vmimgpreprocessing.h
@@ -1,4 +1,4 @@
-/* $Id: vmimgpreprocessing.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmimgpreprocessing.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_IMGPREPROCESSING_H
diff --git a/vimos/vmimgresampling.c b/vimos/vmimgresampling.c
index 2638057..3fa45d7 100644
--- a/vimos/vmimgresampling.c
+++ b/vimos/vmimgresampling.c
@@ -1,4 +1,4 @@
-/* $Id: vmimgresampling.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmimgresampling.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmimgresampling.h b/vimos/vmimgresampling.h
index 98bb5af..3a81f71 100644
--- a/vimos/vmimgresampling.h
+++ b/vimos/vmimgresampling.h
@@ -1,4 +1,4 @@
-/* $Id: vmimgresampling.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmimgresampling.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_IMGRESAMPLING_H
diff --git a/vimos/vmimgutils.c b/vimos/vmimgutils.c
index 9cf484e..f86f744 100644
--- a/vimos/vmimgutils.c
+++ b/vimos/vmimgutils.c
@@ -1,4 +1,4 @@
-/* $Id: vmimgutils.c,v 1.3 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmimgutils.c,v 1.3 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.3 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmimgutils.h b/vimos/vmimgutils.h
index 2ace457..b00a856 100644
--- a/vimos/vmimgutils.h
+++ b/vimos/vmimgutils.h
@@ -1,4 +1,4 @@
-/* $Id: vmimgutils.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmimgutils.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_IMGUTILS_H
diff --git a/vimos/vmlinecatalog.c b/vimos/vmlinecatalog.c
index a85b5e2..fe7d0f9 100644
--- a/vimos/vmlinecatalog.c
+++ b/vimos/vmlinecatalog.c
@@ -1,4 +1,4 @@
-/* $Id: vmlinecatalog.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmlinecatalog.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmlinecatalog.h b/vimos/vmlinecatalog.h
index 618e9df..f933b96 100644
--- a/vimos/vmlinecatalog.h
+++ b/vimos/vmlinecatalog.h
@@ -1,4 +1,4 @@
-/* $Id: vmlinecatalog.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmlinecatalog.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_LINECATALOG_H
diff --git a/vimos/vmmath.c b/vimos/vmmath.c
index 6183c48..041323f 100644
--- a/vimos/vmmath.c
+++ b/vimos/vmmath.c
@@ -1,4 +1,4 @@
-/* $Id: vmmath.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmmath.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmmath.h b/vimos/vmmath.h
index ceb2e8b..1df08c1 100644
--- a/vimos/vmmath.h
+++ b/vimos/vmmath.h
@@ -1,4 +1,4 @@
-/* $Id: vmmath.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmmath.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_MATH_H
diff --git a/vimos/vmmatrix.c b/vimos/vmmatrix.c
index af8f07e..bfdd303 100644
--- a/vimos/vmmatrix.c
+++ b/vimos/vmmatrix.c
@@ -1,4 +1,4 @@
-/* $Id: vmmatrix.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmmatrix.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -803,9 +803,9 @@ void deleteFloat2DArray(VimosFloat2DArray *array)
 
 /*
 
- $Id: vmmatrix.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+ $Id: vmmatrix.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  $Author: cgarcia $
- $Date: 2013/03/25 11:43:04 $
+ $Date: 2013-03-25 11:43:04 $
  $Revision: 1.2 $
 
  */
diff --git a/vimos/vmmatrix.h b/vimos/vmmatrix.h
index 9460935..95811be 100644
--- a/vimos/vmmatrix.h
+++ b/vimos/vmmatrix.h
@@ -1,4 +1,4 @@
-/* $Id: vmmatrix.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmmatrix.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_MATRIX_H
diff --git a/vimos/vmmosextraction.c b/vimos/vmmosextraction.c
index fc1e00a..fd00411 100644
--- a/vimos/vmmosextraction.c
+++ b/vimos/vmmosextraction.c
@@ -1,4 +1,4 @@
-/* $Id: vmmosextraction.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmmosextraction.c,v 1.5 2013-08-07 18:30:07 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
- * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Date: 2013-08-07 18:30:07 $
+ * $Revision: 1.5 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -212,6 +212,7 @@ findObjectsInProfile(VimosFloatArray *profile, float detLevel, int numLev,
   int totalNumObjects;
   int specStart;
   int pos;
+  (void)limFrac;
     
   /* should become a parameter, but is not in DRS document */
   int smoothWidth = 1;
@@ -696,6 +697,8 @@ specExtract2D(VimosImage *imageIn, VimosExtractionTable *exTable,
 
     VimosExtractionSlit  *slit;
     
+    (void)kernelType; /* To avoid compiler warning */
+
     pilErrno = 0;
 
     /* error handling: test entries */
@@ -1230,7 +1233,7 @@ VmSpDetObj(VimosImage *imageData, VimosExtractionTable *extractionTable,
            float limFrac, int minObjectSize, int minCompositeSize,
            float slitTolerance, float specFrac)
 {
-  int imageXlen, imageYlen;
+/*   int imageXlen, imageYlen; */
   int outXlen, outYlen;
   int pixStart, pixEnd;
   int pixStartSpec, pixEndSpec;
@@ -1264,8 +1267,8 @@ VmSpDetObj(VimosImage *imageData, VimosExtractionTable *extractionTable,
 
   cpl_msg_debug(modName, "Finding Objects");
 
-  imageXlen = imageData->xlen;
-  imageYlen = imageData->ylen;
+/*  imageXlen = imageData->xlen;
+  imageYlen = imageData->ylen; */
 
   
   /* get required length of spectrum and wavelength step */
@@ -1498,7 +1501,7 @@ VimosImage **
 VmSpEx2D(VimosImage **outSpSkyFra, VimosExtractionTable *extractionTable, 
          VimosSpecSampleOption sampleOption)
 {
-  int imageXlen, imageYlen;
+/*  int imageXlen, imageYlen; */
   int outXlen, outYlen;
   float wLenStart;
   float wLenEnd;
@@ -1517,8 +1520,8 @@ VmSpEx2D(VimosImage **outSpSkyFra, VimosExtractionTable *extractionTable,
   cpl_msg_debug (modName, "2D extract spectra");
   
   imageData = outSpSkyFra[0];
-  imageXlen = imageData->xlen;
-  imageYlen = imageData->ylen;
+/*  imageXlen = imageData->xlen;
+  imageYlen = imageData->ylen; */
 
   skyData = outSpSkyFra[1];
   
@@ -1617,7 +1620,7 @@ VimosImage **
 VmSpEx1D(VimosImage **outSpSkyEx, VimosWindowTable *windowTable,
          VimosObjectTable *objectTable, int horne, int ncomb)
 {
-  int imageXlen, imageYlen;
+  int imageXlen, imageYlen; 
   int outXlen, outYlen;
   
   VimosImage  *imageData;
@@ -1631,7 +1634,7 @@ VmSpEx1D(VimosImage **outSpSkyEx, VimosWindowTable *windowTable,
   cpl_msg_info (modName, "1D extract Spectra");
 
   imageData = outSpSkyEx[0];
-  imageXlen = imageData->xlen;
+/*   imageXlen = imageData->xlen; */
   imageYlen = imageData->ylen;
      
   /* same for sky spectra */
@@ -1691,12 +1694,12 @@ VmSpStack2D(VimosImage **images2D, VimosWindowTable **winTables,
   int                   slitXlen;
   int                   newSlitYlen,slitYlen;
   int                   xlen2D,ylen2D;
-  int                   startY,slitDone;
+  int                   startY; 
   int                   ref,medxlen;
   int                   nRow32low,nRow32high;
 
   float                 **singleOffSets,**singleOffSetsOk;
-  float                 minOffSet,maxOffSet;
+/*  float                 minOffSet,maxOffSet; */
   float                 maxWidth,objPos;
   float                 min,refOffSet,refExpectedOffSets;
   float                 max,newMax,yadd;
@@ -1832,8 +1835,8 @@ VmSpStack2D(VimosImage **images2D, VimosWindowTable **winTables,
     offSets->data[0] = 0.00;
     for(i=0; i<frameCount-1; i++) {
       foundOffSetOk=0;
-      minOffSet = expectedOffSets->data[i+1] - OFFSET_TOLERANCE;
-      maxOffSet = expectedOffSets->data[i+1] + OFFSET_TOLERANCE;
+/*      minOffSet = expectedOffSets->data[i+1] - OFFSET_TOLERANCE;
+      maxOffSet = expectedOffSets->data[i+1] + OFFSET_TOLERANCE; */
       
       /* rejecting */
       for(j=0; j<foundOffSet; j++) {
@@ -1905,7 +1908,6 @@ VmSpStack2D(VimosImage **images2D, VimosWindowTable **winTables,
   if(extTable) extrSlit=extTable->slits;
 
   startY = 0;
-  slitDone = 0;
 
   /* determine output 2D image dimension */
   max = offSets->data[0];
diff --git a/vimos/vmmosextraction.h b/vimos/vmmosextraction.h
index 3a04350..a9b1581 100644
--- a/vimos/vmmosextraction.h
+++ b/vimos/vmmosextraction.h
@@ -1,4 +1,4 @@
-/* $Id: vmmosextraction.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmmosextraction.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_MOSEXTRACTION_H
diff --git a/vimos/vmmosflat.c b/vimos/vmmosflat.c
index 41a8475..2554ce8 100644
--- a/vimos/vmmosflat.c
+++ b/vimos/vmmosflat.c
@@ -1,4 +1,4 @@
-/* $Id: vmmosflat.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmmosflat.c,v 1.3 2013-08-22 16:58:58 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
- * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Date: 2013-08-22 16:58:58 $
+ * $Revision: 1.3 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -311,7 +311,6 @@ VmSpNormSmooth(VimosImage *imageData, VimosExtractionTable *extractionTable,
   VimosUlong32 index;
   int nPixBelow, nPixAbove;
   int imageXlen, imageYlen;
-  const int excludeCenter = 0;
 
   double xOutF;
   double frac;
diff --git a/vimos/vmmosflat.h b/vimos/vmmosflat.h
index 9130757..78a3b23 100644
--- a/vimos/vmmosflat.h
+++ b/vimos/vmmosflat.h
@@ -1,4 +1,4 @@
-/* $Id: vmmosflat.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmmosflat.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_MOSFLAT_H
diff --git a/vimos/vmmosfringes.c b/vimos/vmmosfringes.c
index 37744cc..d7d7dd5 100644
--- a/vimos/vmmosfringes.c
+++ b/vimos/vmmosfringes.c
@@ -1,4 +1,4 @@
-/* $Id: vmmosfringes.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmmosfringes.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmmosfringes.h b/vimos/vmmosfringes.h
index 091dfda..d0fbf6a 100644
--- a/vimos/vmmosfringes.h
+++ b/vimos/vmmosfringes.h
@@ -1,4 +1,4 @@
-/* $Id: vmmosfringes.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmmosfringes.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_MOSFRINGES_H
diff --git a/vimos/vmmosmodels.c b/vimos/vmmosmodels.c
index c3b039b..69177fd 100644
--- a/vimos/vmmosmodels.c
+++ b/vimos/vmmosmodels.c
@@ -1,4 +1,4 @@
-/* $Id: vmmosmodels.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmmosmodels.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmmosmodels.h b/vimos/vmmosmodels.h
index 4319fb0..adb07af 100644
--- a/vimos/vmmosmodels.h
+++ b/vimos/vmmosmodels.h
@@ -1,4 +1,4 @@
-/* $Id: vmmosmodels.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmmosmodels.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_MOSMODELS_H
diff --git a/vimos/vmmossky.c b/vimos/vmmossky.c
index 423c7ce..ee58e3a 100644
--- a/vimos/vmmossky.c
+++ b/vimos/vmmossky.c
@@ -1,4 +1,4 @@
-/* $Id: vmmossky.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmmossky.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmmossky.h b/vimos/vmmossky.h
index f8a5d69..3cb4e9b 100644
--- a/vimos/vmmossky.h
+++ b/vimos/vmmossky.h
@@ -1,4 +1,4 @@
-/* $Id: vmmossky.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmmossky.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_MOSSKY_H
diff --git a/vimos/vmmossphotcalib.c b/vimos/vmmossphotcalib.c
index 0103340..4df9c0d 100644
--- a/vimos/vmmossphotcalib.c
+++ b/vimos/vmmossphotcalib.c
@@ -1,4 +1,4 @@
-/* $Id: vmmossphotcalib.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmmossphotcalib.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmmossphotcalib.h b/vimos/vmmossphotcalib.h
index 678c469..636ad92 100644
--- a/vimos/vmmossphotcalib.h
+++ b/vimos/vmmossphotcalib.h
@@ -1,4 +1,4 @@
-/* $Id: vmmossphotcalib.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmmossphotcalib.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_MOSSPHOTCALIB_H
diff --git a/vimos/vmmosutils.c b/vimos/vmmosutils.c
index 3df84dc..db13bf6 100644
--- a/vimos/vmmosutils.c
+++ b/vimos/vmmosutils.c
@@ -1,4 +1,4 @@
-/* $Id: vmmosutils.c,v 1.4 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmmosutils.c,v 1.4 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.4 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmmosutils.h b/vimos/vmmosutils.h
index a08c133..e65348e 100644
--- a/vimos/vmmosutils.h
+++ b/vimos/vmmosutils.h
@@ -1,4 +1,4 @@
-/* $Id: vmmosutils.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmmosutils.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_MOSUTILS_H
diff --git a/vimos/vmmoswavecalib.c b/vimos/vmmoswavecalib.c
index f2f1520..f7a5c3a 100644
--- a/vimos/vmmoswavecalib.c
+++ b/vimos/vmmoswavecalib.c
@@ -1,4 +1,4 @@
-/* $Id: vmmoswavecalib.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmmoswavecalib.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmmoswavecalib.h b/vimos/vmmoswavecalib.h
index f8f45ec..38be034 100644
--- a/vimos/vmmoswavecalib.h
+++ b/vimos/vmmoswavecalib.h
@@ -1,4 +1,4 @@
-/* $Id: vmmoswavecalib.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmmoswavecalib.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_MOSWAVECALIB_H
diff --git a/vimos/vmobjecttable.c b/vimos/vmobjecttable.c
index a1c4279..b034fb1 100644
--- a/vimos/vmobjecttable.c
+++ b/vimos/vmobjecttable.c
@@ -1,4 +1,4 @@
-/* $Id: vmobjecttable.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmobjecttable.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmobjecttable.h b/vimos/vmobjecttable.h
index 6330d7e..6c2f9ac 100644
--- a/vimos/vmobjecttable.h
+++ b/vimos/vmobjecttable.h
@@ -1,4 +1,4 @@
-/* $Id: vmobjecttable.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmobjecttable.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
diff --git a/vimos/vmphotometrictable.c b/vimos/vmphotometrictable.c
index 07a8dd7..e6e64ed 100644
--- a/vimos/vmphotometrictable.c
+++ b/vimos/vmphotometrictable.c
@@ -1,4 +1,4 @@
-/* $Id: vmphotometrictable.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmphotometrictable.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
diff --git a/vimos/vmphotometrictable.h b/vimos/vmphotometrictable.h
index 58919ae..2c2baec 100644
--- a/vimos/vmphotometrictable.h
+++ b/vimos/vmphotometrictable.h
@@ -1,4 +1,4 @@
-/* $Id: vmphotometrictable.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmphotometrictable.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
diff --git a/vimos/vmqcutils.c b/vimos/vmqcutils.c
index 59051d9..9cb24d2 100644
--- a/vimos/vmqcutils.c
+++ b/vimos/vmqcutils.c
@@ -1,4 +1,4 @@
-/* $Id: vmqcutils.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmqcutils.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmqcutils.h b/vimos/vmqcutils.h
index 11fb6f2..41025fb 100644
--- a/vimos/vmqcutils.h
+++ b/vimos/vmqcutils.h
@@ -1,4 +1,4 @@
-/* $Id: vmqcutils.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmqcutils.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_QCUTILS_H
diff --git a/vimos/vmsextractor.c b/vimos/vmsextractor.c
index 281bdb0..241da83 100644
--- a/vimos/vmsextractor.c
+++ b/vimos/vmsextractor.c
@@ -1,4 +1,4 @@
-/* $Id: vmsextractor.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmsextractor.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmsextractor.h b/vimos/vmsextractor.h
index a0bdc52..139b56c 100644
--- a/vimos/vmsextractor.h
+++ b/vimos/vmsextractor.h
@@ -1,4 +1,4 @@
-/* $Id: vmsextractor.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmsextractor.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_SEXTRACTOR_H
diff --git a/vimos/vmspecphottable.c b/vimos/vmspecphottable.c
index 420fc77..57d8742 100644
--- a/vimos/vmspecphottable.c
+++ b/vimos/vmspecphottable.c
@@ -1,4 +1,4 @@
-/* $Id: vmspecphottable.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmspecphottable.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmspecphottable.h b/vimos/vmspecphottable.h
index 2b47805..0f8cf9a 100644
--- a/vimos/vmspecphottable.h
+++ b/vimos/vmspecphottable.h
@@ -1,4 +1,4 @@
-/* $Id: vmspecphottable.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmspecphottable.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
  
 #ifndef VM_SPECPHOTTABLE_H
diff --git a/vimos/vmsphottable.c b/vimos/vmsphottable.c
index 171679b..1f9e063 100644
--- a/vimos/vmsphottable.c
+++ b/vimos/vmsphottable.c
@@ -1,4 +1,4 @@
-/* $Id: vmsphottable.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmsphottable.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmsphottable.h b/vimos/vmsphottable.h
index 7ef53cb..6eea24c 100644
--- a/vimos/vmsphottable.h
+++ b/vimos/vmsphottable.h
@@ -1,4 +1,4 @@
-/* $Id: vmsphottable.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmsphottable.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_SPHOTTABLE_H
diff --git a/vimos/vmstarmatchtable.c b/vimos/vmstarmatchtable.c
index 5cdd0c1..1cb6aa5 100644
--- a/vimos/vmstarmatchtable.c
+++ b/vimos/vmstarmatchtable.c
@@ -1,4 +1,4 @@
-/* $Id: vmstarmatchtable.c,v 1.4 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmstarmatchtable.c,v 1.4 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.4 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmstarmatchtable.h b/vimos/vmstarmatchtable.h
index 29e8eb1..784141e 100644
--- a/vimos/vmstarmatchtable.h
+++ b/vimos/vmstarmatchtable.h
@@ -1,4 +1,4 @@
-/* $Id: vmstarmatchtable.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmstarmatchtable.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
  
 #ifndef VM_STARMATCHTABLE_H
diff --git a/vimos/vmstartable.c b/vimos/vmstartable.c
index f81e2c3..d351664 100644
--- a/vimos/vmstartable.c
+++ b/vimos/vmstartable.c
@@ -1,4 +1,4 @@
-/* $Id: vmstartable.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmstartable.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 
diff --git a/vimos/vmstartable.h b/vimos/vmstartable.h
index 00b3fe5..b782954 100644
--- a/vimos/vmstartable.h
+++ b/vimos/vmstartable.h
@@ -1,4 +1,4 @@
-/* $Id: vmstartable.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmstartable.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
  
 #ifndef VM_STARTABLE_H
diff --git a/vimos/vmstdfluxtable.c b/vimos/vmstdfluxtable.c
index c0e7d8d..c870617 100644
--- a/vimos/vmstdfluxtable.c
+++ b/vimos/vmstdfluxtable.c
@@ -1,4 +1,4 @@
-/* $Id: vmstdfluxtable.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmstdfluxtable.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmstdfluxtable.h b/vimos/vmstdfluxtable.h
index 84bb43a..c5c4439 100644
--- a/vimos/vmstdfluxtable.h
+++ b/vimos/vmstdfluxtable.h
@@ -1,4 +1,4 @@
-/* $Id: vmstdfluxtable.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmstdfluxtable.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
  
 #ifndef VM_STDFLUXTABLE_H
diff --git a/vimos/vmtable.c b/vimos/vmtable.c
index a72dfb5..51c959d 100644
--- a/vimos/vmtable.c
+++ b/vimos/vmtable.c
@@ -1,4 +1,4 @@
-/* $Id: vmtable.c,v 1.3 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmtable.c,v 1.3 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.3 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmtable.h b/vimos/vmtable.h
index e3b1076..44d3576 100644
--- a/vimos/vmtable.h
+++ b/vimos/vmtable.h
@@ -1,4 +1,4 @@
-/* $Id: vmtable.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmtable.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_TABLE_H
diff --git a/vimos/vmtablearray.c b/vimos/vmtablearray.c
index c7d0b7b..bac3014 100644
--- a/vimos/vmtablearray.c
+++ b/vimos/vmtablearray.c
@@ -1,4 +1,4 @@
-/* $Id: vmtablearray.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmtablearray.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmtablearray.h b/vimos/vmtablearray.h
index 22bd29d..683476b 100644
--- a/vimos/vmtablearray.h
+++ b/vimos/vmtablearray.h
@@ -1,4 +1,4 @@
-/* $Id: vmtablearray.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmtablearray.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_TABLEARRAY_H
diff --git a/vimos/vmtypes.c b/vimos/vmtypes.c
index 91bf4e8..dadc07e 100644
--- a/vimos/vmtypes.c
+++ b/vimos/vmtypes.c
@@ -1,4 +1,4 @@
-/* $Id: vmtypes.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmtypes.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmtypes.h b/vimos/vmtypes.h
index c698c66..80001a9 100644
--- a/vimos/vmtypes.h
+++ b/vimos/vmtypes.h
@@ -1,4 +1,4 @@
-/* $Id: vmtypes.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmtypes.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_TYPES_H
diff --git a/vimos/vmutils.c b/vimos/vmutils.c
index c9dcab6..fa077ed 100644
--- a/vimos/vmutils.c
+++ b/vimos/vmutils.c
@@ -1,4 +1,4 @@
-/* $Id: vmutils.c,v 1.15 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmutils.c,v 1.17 2013-08-23 10:23:02 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
- * $Revision: 1.15 $
- * $Name: vimos-2_9_7 $
+ * $Date: 2013-08-23 10:23:02 $
+ * $Revision: 1.17 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -1072,7 +1072,7 @@ static PilFrame *get_raw_frame_time_sequence(PilSetOfFrames *framelist, int seq)
 }
 
 
-int vm_dfs_setup_product_header(PilFrame *proFrame, char *recipename, 
+int vm_dfs_setup_product_header(PilFrame *proFrame, const char *recipename, 
                                 PilSetOfFrames *framelist)
 {
 
@@ -1084,8 +1084,6 @@ int vm_dfs_setup_product_header(PilFrame *proFrame, char *recipename,
     int          ncal;
     int          npar;
     int          size;
-    double       tobs; 
-    double       mintobs;
     int          i;
 
     char        *productName;
diff --git a/vimos/vmutils.h b/vimos/vmutils.h
index decd94a..e444b06 100644
--- a/vimos/vmutils.h
+++ b/vimos/vmutils.h
@@ -1,4 +1,4 @@
-/* $Id: vmutils.h,v 1.5 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmutils.h,v 1.6 2013-08-23 10:23:02 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
- * $Revision: 1.5 $
- * $Name: vimos-2_9_7 $
+ * $Date: 2013-08-23 10:23:02 $
+ * $Revision: 1.6 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_UTILS_H
@@ -61,7 +61,7 @@ void sortN (int ncol, float **ra, int sortCol, int fromRow, int forRows);
 
 cxint vm_plist_update(cpl_propertylist *, cpl_propertylist *, const cxchar *);
 
-int vm_dfs_setup_product_header(PilFrame *, char *, PilSetOfFrames *);
+int vm_dfs_setup_product_header(PilFrame *, const char *, PilSetOfFrames *);
 
 int getArcLampTimes(VimosImage *, double *);
 
diff --git a/vimos/vmwcsutils.c b/vimos/vmwcsutils.c
index 9d0f4fa..6056d1a 100644
--- a/vimos/vmwcsutils.c
+++ b/vimos/vmwcsutils.c
@@ -1,4 +1,4 @@
-/* $Id: vmwcsutils.c,v 1.4 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmwcsutils.c,v 1.4 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.4 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmwcsutils.h b/vimos/vmwcsutils.h
index 6dde3e8..57de171 100644
--- a/vimos/vmwcsutils.h
+++ b/vimos/vmwcsutils.h
@@ -1,4 +1,4 @@
-/* $Id: vmwcsutils.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmwcsutils.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_WCSUTILS_H
diff --git a/vimos/vmwindowtable.c b/vimos/vmwindowtable.c
index 08821bd..4b7125f 100644
--- a/vimos/vmwindowtable.c
+++ b/vimos/vmwindowtable.c
@@ -1,4 +1,4 @@
-/* $Id: vmwindowtable.c,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmwindowtable.c,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifdef HAVE_CONFIG_H
diff --git a/vimos/vmwindowtable.h b/vimos/vmwindowtable.h
index e22e0d3..6c8858b 100644
--- a/vimos/vmwindowtable.h
+++ b/vimos/vmwindowtable.h
@@ -1,4 +1,4 @@
-/* $Id: vmwindowtable.h,v 1.2 2013/03/25 11:43:04 cgarcia Exp $
+/* $Id: vmwindowtable.h,v 1.2 2013-03-25 11:43:04 cgarcia Exp $
  *
  * This file is part of the VIMOS Pipeline
  * Copyright (C) 2002-2004 European Southern Observatory
@@ -20,9 +20,9 @@
 
 /*
  * $Author: cgarcia $
- * $Date: 2013/03/25 11:43:04 $
+ * $Date: 2013-03-25 11:43:04 $
  * $Revision: 1.2 $
- * $Name: vimos-2_9_7 $
+ * $Name: not supported by cvs2svn $
  */
 
 #ifndef VM_WINDOWTABLE_H

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/cpl-plugin-vimos.git



More information about the debian-science-commits mailing list