Versions Compared

Key

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

...

Ecf Script

In suite definition below we will create a family f1 with two tasks t1 and t2.
In this case you will have to create a directory $HOME/course/test/f1,
and move t1.ecf and t2.ecf into it.
Conversely, the ecFlow jobs and the outputs will be created in this directory.
Because we have moved the scripts to another directory, ecFlow will not find
the two included files head.h and tail.h one directory up from
the scripts.
We could modify the scripts to search the include file two directories up,
but this would be very cumbersome.
The solution is to define a special ecFlow variable called ECF_INCLUDE
that points to the directory containing the include files. See pre-processing
Whenever angled brackets are used, ecFlow first looks to see if ECF_INCLUDE
variable is specified. If the variable exists, it checks to see if file
%ECF_INCLUDE%/head.h exists, otherwise it looks for %ECF_HOME%/head.h
This has the added advantage that specific includes files can be placed under
ECF_INCLUDE, and includes file common to many tasks can placed in
ECF_HOME. For more details see directives.
We need to do the following changes to the ecf script‘s.

from:

Code Block
%include "../head.h"
echo "I am part of a suite that lives in %ECF_HOME%"
%include "../tail.h"
 

to:

Code Block
%include <head.h>
echo "I am part of a suite that lives in %ECF_HOME%"
%include <tail.h>

suite‘s, family‘s and task‘s are called node‘s.

 

...