Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

ecFlow looks for files using the following search process, when trying to locate the '.ecf' associated with a task.

  • First it uses the variable ECF_SCRIPT and tries to open that file. ECF_SCRIPT is generated from ECF_HOME/SUITE/FAMILY/TASK.

  • DEFAULT:
    Otherwise if variable ECF_FILES exists, it must point to a directory which is searched in reverse order, e.g. let's assume that the node name is /o/12/fc/model and that ECF_FILES is defined as /home/ecmwf/emos_ECF/def/o/ECFfiles.
    The order of files tried is as follows:

    Code Block
    /home/ecmwf/emos_ECF/def/o/ECFfiles/o/12/fc/model.ecf

...

  • 
    /home/ecmwf/emos_ECF/def/o/ECFfiles/12/fc/model.ecf
    /home/ecmwf/emos_ECF/def/o/ECFfiles/fc/model.ecf
    /home/ecmwf/emos_ECF/def/o/ECFfiles/model.ecf


    ALTERNATIVE:

    The search can be reversed, by adding a variable ECF_FILES_LOOKUP, with a value of "prune_leaf". ( from ecflow 4.12.0) . Then ecFlow will use the following search pattern

    Code Block
    /home/ecmwf/emos_ECF/def/o/ECFfiles/o/12/fc/model.ecf
    /home/ecmwf/emos_ECF/def/o/ECFfiles/o/12/model.ecf

...

  • 
    /home/ecmwf/emos_ECF/def/o/ECFfiles/o/model.ecf
    /home/ecmwf/emos_ECF/def/o/ECFfiles/model.ecf

...

  •         However please be aware this will also affect the search in ECF_HOME



  •  If the ECF_FILES directory does not exist

...

  • , the server will try variable substitution

...

  • .  This allows additional configuration.

             edit ECF_FILES /home/ecmwf/emos/def/o/%FILE_DIR:ECFfiles%



  • Finally it searches ECF_HOME directory. ( in reverse order)

This may at first may be seen as over kill, but you can put all the files for a number of suites in one distinct file system/directory.

...


Using ECF_FILES means that you do not have to create and maintain a link-jungle, e.g. the model.ecf above exists in a number of different families in ECMWF operational suites. The file is placed in a directory .../ECFfiles/fc/ and used by nodes /o/00/fc/model, /o/12/fc/model etc. This trick works nicely as long as there are no other tasks named model in the same family.