We can keep maintenance simple using a single "task wrapper file", called in multiple contexts, for multiple tasks. It can be seen as a single task in research mode, for example, while it is used to generated generate multiple tasks jobs in parallel in operation so we can get the expected data faster., still respecting the blocks that cannot be run in parallel, calling the task again as a single exclusive job:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
%manual %end %include <head.h> if [[ %PARALLEL:1% == 1 ]]; then for param in %PARAMS:2t u v rh%; do # process: create ${param}.grib done fi if [[ %SERIAL:1% == 1 ]]; then for param in %PARAMS:2t u v rh%; do # push into fields data base done fi %include <tail.h> |
...