diff --git a/etc/config.csh/aliases b/etc/config.csh/aliases
index 18c2b26d3e9f5710377b32cdec6edc697bf92cbe..82f38002173c4f321bdc3a55baae9171ba5f4b1f 100644
--- a/etc/config.csh/aliases
+++ b/etc/config.csh/aliases
@@ -30,13 +30,6 @@ alias wmDP 'wmSet WM_PRECISION_OPTION=DP'
 alias wmUnset 'source $WM_PROJECT_DIR/etc/config.csh/unset'
 
 
-# Toggle wmakeScheduler on/off
-#  - also need to set WM_HOSTS
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-alias wmSchedOn 'setenv WM_SCHEDULER $WM_PROJECT_DIR/wmake/wmakeScheduler'
-alias wmSchedOff 'unsetenv WM_SCHEDULER'
-
-
 # Change directory aliases
 # ~~~~~~~~~~~~~~~~~~~~~~~~
 alias foam 'cd $WM_PROJECT_DIR'
diff --git a/etc/config.sh/aliases b/etc/config.sh/aliases
index b5739566715fb8614a168dcaf3e3caa4aad1b666..f1c874cf98d6700f95258f7aac22cb20515565fa 100644
--- a/etc/config.sh/aliases
+++ b/etc/config.sh/aliases
@@ -29,12 +29,6 @@ alias wmDP='wmSet WM_PRECISION_OPTION=DP'
 # Clear env
 alias wmUnset='. $WM_PROJECT_DIR/etc/config.sh/unset'
 
-# Toggle wmakeScheduler on/off
-#  - also need to set WM_HOSTS
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-alias wmSchedOn='export WM_SCHEDULER=$WM_PROJECT_DIR/wmake/wmakeScheduler'
-alias wmSchedOff='unset WM_SCHEDULER'
-
 # Change directory aliases
 # ~~~~~~~~~~~~~~~~~~~~~~~~
 alias foam='cd $WM_PROJECT_DIR'
diff --git a/wmake/scripts/AllwmakeParseArguments b/wmake/scripts/AllwmakeParseArguments
index 972d3f5be5470d4673ccb5c608ab8f111d42a294..9d9a9af16a6f51f8e342ea5e3bf6002b6d2a697d 100644
--- a/wmake/scripts/AllwmakeParseArguments
+++ b/wmake/scripts/AllwmakeParseArguments
@@ -3,7 +3,7 @@
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
 #   \\  /    A nd           | Copyright (C) 2014-2017 OpenFOAM Foundation
-#    \\/     M anipulation  |
+#    \\/     M anipulation  | Copyright (C) 2019 OpenCFD Ltd.
 #------------------------------------------------------------------------------
 # License
 #     This file is part of OpenFOAM, licensed under GNU General Public License
@@ -66,8 +66,8 @@ do
         # If called from wmake (to avoid recursion)
         fromWmake=true
         ;;
-    -k | -non-stop)
-        # Non-stop compilation, ignoring errors
+    -k | -keep-going | -non-stop)
+        # Keep going, ignoring errors
         export WM_CONTINUE_ON_ERROR=true
         continue    # Permanently remove arg
         ;;
diff --git a/wmake/wmake b/wmake/wmake
index 881f7662a78a7bc69048f948f2d90bb3ad05ab55..81b32ab5480dccc26f2c3904a57f45dd97995501 100755
--- a/wmake/wmake
+++ b/wmake/wmake
@@ -4,7 +4,7 @@
 # \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
 #  \\    /   O peration     |
 #   \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-#    \\/     M anipulation  | Copyright (C) 2017-2018 OpenCFD Ltd.
+#    \\/     M anipulation  | Copyright (C) 2017-2019 OpenCFD Ltd.
 #-------------------------------------------------------------------------------
 # License
 #     This file is part of OpenFOAM.
@@ -68,10 +68,10 @@ options:
   -s | -silent      Quiet mode (does not echo commands)
   -a | -all         wmake all sub-directories, running Allwmake if present
   -q | -queue       wmakeCollect all sub-directories, running Allwmake if present
-  -k or -non-stop   Compile without stopping when errors occur
+  -k | -keep-going  Keep going without stopping when errors occur (-non-stop)
   -j                Compile using all local cores/hyperthreads
   -jN or -j N       Compile using N cores/hyperthreads
-  -no-scheduler     Compile without wmakeScheduler
+  -no-scheduler     Disable scheduled parallel compilation
   -update           Update lnInclude directories, dep files, remove deprecated
                     files and directories
   -h | -help        Print the usage
@@ -151,8 +151,8 @@ do
             export WM_NCOMPPROCS=${1#-j}
             echo "Compiling enabled on $WM_NCOMPPROCS cores"
             ;;
-        # Non-stop compilation, ignoring errors
-        -k | -non-stop)
+        # Keep going, ignoring errors
+        -k | -keep-going | -non-stop)
             export WM_CONTINUE_ON_ERROR=true
             ;;
         # Disable scheduled parallel compilation
@@ -205,27 +205,12 @@ checkEnv
 # Setup parallel compilation
 #------------------------------------------------------------------------------
 
-# Set WM_NCOMPPROCS automatically when both WM_HOSTS and WM_SCHEDULER are set
-if [ -z "$WM_NCOMPPROCS" -a -n "$WM_HOSTS" -a -n "$WM_SCHEDULER" ]
-then
-    WM_NCOMPPROCS=$(wmakeScheduler -count) || unset WM_NCOMPPROCS
-fi
-
 if [ -n "$WM_NCOMPPROCS" ]
 then
     parOpt="-j $WM_NCOMPPROCS"
 
     if [ "$WM_NCOMPPROCS" -gt 1 -a -z "$MAKEFLAGS" ]
     then
-        lockDir=$HOME/.$WM_PROJECT/.wmake
-
-        if [ -d $lockDir ]
-        then
-            rm -f $lockDir/*
-        else
-            mkdir -p $lockDir
-        fi
-
         make="$make --no-print-directory $parOpt"
     fi
 fi
@@ -338,12 +323,12 @@ then
     [ "$update" = true ] || wmakeLnIncludeAll $parOpt
 
     (
-        export WM_COLLECT_DIR=$WM_PROJECT_DIR/build/${WM_OPTIONS}/${PWD////_}
-        export WM_SCHEDULER=wmakeCollect
+        export WM_COLLECT_DIR="$WM_PROJECT_DIR/build/${WM_OPTIONS}/${PWD////_}"
+        export WM_SCHEDULER="$WM_DIR/wmakeCollect"
         trap '$WM_SCHEDULER -kill' TERM INT
-        $WM_SCHEDULER -clean \
+        "$WM_SCHEDULER" -clean \
      && wmake -all objects   \
-     && $WM_SCHEDULER
+     && "$WM_SCHEDULER"
     ) && wmake -all
     exit $?
 fi
diff --git a/wmake/wmakeCollect b/wmake/wmakeCollect
index b7d6cdd660ab41709aec31a317768bce001d9edf..89d6641b7c74c210703398d78f66194f50a62296 100755
--- a/wmake/wmakeCollect
+++ b/wmake/wmakeCollect
@@ -42,17 +42,17 @@ usage() {
 Usage: $Script [OPTION] <command>
 
 options:
-  -clean            Clean-up before compilation (removes old makefiles)
-  -kill             Clean-up after termination (removes makefiles)
-  -h | -help        Print the usage
+  -clean        Cleanup before compilation (removes old makefiles)
+  -kill         Cleanup after termination (removes makefiles)
+  -h | -help    Print the usage
 
-Collecting scheduler for fast parallel compilation of large numbers of object
-files.  Can be used in compiling OpenFOAM by setting the WM_SCHEDULER variable.
+A collecting scheduler for fast parallel compilation of large numbers of
+object files.
 
 When called with a compilation command it is written into a file in the
-directory $WM_COLLECT_DIR.
+directory \$WM_COLLECT_DIR.
 
-When called without a command the files in the $WM_COLLECT_DIR directory are
+When called without a command the files in the \$WM_COLLECT_DIR directory are
 combined into a single Makefile which is passed to make to compile all of the
 object files efficiently in parallel.
 
@@ -62,7 +62,7 @@ Typical usage for compiling OpenFOAM:
     wmakeLnIncludeAll
 
   - Compile all with this scheduler:
-    wmake -queue or wmake -q
+    wmake -queue
 
 USAGE
     exit 1
@@ -77,18 +77,17 @@ do
     -h | -help*)
         usage
         ;;
-    -kill | -clean)
+    -clean | -kill)
         cleanup=true
-        shift
         ;;
     -*)
         usage "unknown option: '$*'"
-        break
         ;;
     *)
         break
         ;;
     esac
+    shift
 done
 
 
@@ -112,8 +111,8 @@ makefile="$WM_COLLECT_DIR.Makefile"
 # Clean-up files and exit
 if [ "$cleanup" = true ]
 then
-    rm -rf $WM_COLLECT_DIR
-    rm -f $makefile
+    rm -rf "$WM_COLLECT_DIR"
+    rm -f "$makefile"
     exit 0
 fi
 
@@ -121,26 +120,26 @@ fi
 if [ "$#" -gt 0 ]
 then
     # Make sure directories exist
-    mkdir -p $WM_COLLECT_DIR
+    mkdir -p "$WM_COLLECT_DIR"
 
     # The current source file
-    source="${@: -3:1}"
+    sourceFile="${@: -3:1}"
 
     # The current target
-    object="${@: -1:1}"
+    objectFile="${@: -1:1}"
 
     # Create a unique name for the makefile from the object path
-    file=$(mktemp $WM_COLLECT_DIR/XXXXXX)
+    file="$(mktemp $WM_COLLECT_DIR/XXXXXX)"
 
     # Add the current target to the list of objects
-    echo "OBJECTS += $object" >> $file
+    echo "OBJECTS += $objectFile" >> $file
 
     # Add the build rule for the current target
-    echo "$object: $makefile" >> $file
+    echo "$objectFile: $makefile" >> $file
     [ -z "$E" ] ||
-        echo -e "\t@echo \"    compiling: ${source##*/}\"" >> $file
+        echo -e "\t@echo \"    compiling: ${sourceFile##*/}\"" >> $file
     echo -e "\t$E cd $PWD && \\" >> $file
-    echo -e "\t${@:1:($#-1)} $object" >> $file
+    echo -e "\t${@:1:($#-1)} $objectFile" >> $file
     echo >> $file
 elif [ -d $WM_COLLECT_DIR ]
 then
@@ -151,12 +150,12 @@ then
     echo 'all: $(OBJECTS)' >> $makefile
 
     # Clear out all of the target makefiles
-    rm -rf $WM_COLLECT_DIR
+    rm -rf "$WM_COLLECT_DIR"
 
     # Run make on the collected makefile
     make -j $WM_NCOMPPROCS -f $makefile all
 
-    rm -f $makefile
+    rm -f "$makefile"
 fi
 
 exit 0 # clean exit
diff --git a/wmake/wmakeScheduler b/wmake/wmakeScheduler
deleted file mode 100755
index 0a92eaa0d84fc87f13fdaec46ef007bfe7c60cc7..0000000000000000000000000000000000000000
--- a/wmake/wmakeScheduler
+++ /dev/null
@@ -1,241 +0,0 @@
-#!/bin/bash
-#------------------------------------------------------------------------------
-# =========                 |
-# \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-#  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-#    \\/     M anipulation  | Copyright (C) 2018-2019 OpenCFD Ltd.
-#-------------------------------------------------------------------------------
-# License
-#     This file is part of OpenFOAM.
-#
-#     OpenFOAM is free software: you can redistribute it and/or modify it
-#     under the terms of the GNU General Public License as published by
-#     the Free Software Foundation, either version 3 of the License, or
-#     (at your option) any later version.
-#
-#     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-#     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-#     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-#     for more details.
-#
-#     You should have received a copy of the GNU General Public License
-#     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
-#
-# Script
-#     wmakeScheduler
-#
-# Usage
-#     wmakeScheduler COMMAND
-#         run 'COMMAND' on one of the slots listed in WM_HOSTS
-#
-#     wmakeScheduler -count
-#         count the total number of slots available in WM_HOSTS
-#         eg,  export WM_NCOMPPROCS=$(wmakeScheduler -count)
-#
-# Description
-#     Scheduler for network distributed compilations using wmake.
-#     - WM_HOSTS contains a list of hosts and number of concurrent processes
-#     eg,
-#         export WM_HOSTS="hostA:1 hostB:2 hostC:1"
-#     - WM_COLOURS contains a list of colours to cycle through
-#         export WM_COLOURS="black blue green cyan red magenta yellow"
-#
-#     Sources the relevant cshrc/bashrc if not set.
-#
-# Environment
-#     - FOAM_API
-#     - WM_PROJECT_DIR
-#     - WM_PROJECT  (defaults to OpenFOAM)
-#
-#-------------------------------------------------------------------------------
-Script="${0##*/}"
-
-# Default project
-[ -n "$WM_PROJECT" ] || WM_PROJECT=OpenFOAM
-
-lockDir="$HOME/.$WM_PROJECT/.wmake"
-
-# csh sets HOST, bash sets HOSTNAME
-[ -n "$HOST" ] || HOST="$HOSTNAME"
-
-# Fallback - 1 core on current host
-[ -n "$WM_HOSTS" ] || WM_HOSTS="${HOST}:1"
-
-
-# Count the total number of slots available and exit
-if [ "$1" = "-count" ]
-then
-    expr $(
-        for slotGroup in $WM_HOSTS
-        do
-            n=${slotGroup##*:}
-            [ "$n" = "${slotGroup%%:*}" ] && n=1  # missing ':'
-            echo "+ ${n:-1}"
-        done
-    )
-    exit 0
-fi
-
-# Where to source WM_PROJECT settings in a remote shell
-# This code tries to figure out which cshrc or bashrc to execute.
-# !! Assumes remote computer running same shell and startup files
-# in same location
-
-sourceFoam=false    # Fallback command
-case $SHELL in
-*/csh | */tcsh )    # [t]csh vs bash|ksh|sh
-    shellRc=cshrc
-    ;;
-*)
-    shellRc=bashrc
-    ;;
-esac
-
-# Same as foamEtcFile -mode=uo bashrc
-#
-# Check ~/.$WM_PROJECT/$FOAM_API/
-# Check ~/.$WM_PROJECT/
-# Check projectDir/etc/
-if [ -n "$WM_PROJECT_DIR" ]
-then
-    for i in \
-        "$HOME/.$WM_PROJECT/$FOAM_API" \
-        "$HOME/.$WM_PROJECT" \
-        "$WM_PROJECT_DIR/etc" \
-        ;
-    do
-        if [ -f "$i/$shellRc" ]
-        then
-            sourceFoam="$i/$shellRc"
-            break
-        fi
-    done
-fi
-
-# Construct test string for remote execution.
-# Source WM_PROJECT settings if WM_PROJECT environment not set.
-# Use FOAM_SETTINGS to pass command-line settings
-case "$sourceFoam" in
-*/bashrc)
-    sourceFoam='[ -n "$WM_PROJECT_DIR" ] || '". $sourceFoam $FOAM_SETTINGS"
-    ;;
-
-*/cshrc)
-    sourceFoam='if ( ! $?WM_PROJECT_DIR ) source '"$sourceFoam $FOAM_SETTINGS"
-    ;;
-esac
-
-# Quote double-quotes for remote command line
-rcmd=$(echo $* | sed -e s/\"/\'\"\'/g)
-# The same, without forking (not ksh, maybe not /bin/sh either)
-# rcmd=$(while [ "$#" -gt 0 ]; do echo "${1//\"/'\"'}"; shift; done)
-
-
-# Convert WM_COLOURS into an array
-declare colourList
-nColours=0
-for col in $WM_COLOURS
-do
-    colourList[$nColours]=$col
-    ((nColours = $nColours + 1))
-done
-
-# Bashism: make pipe fail early.
-# This ensures the return value of the command is returned and not of the
-# colouring pipe etc.
-set -o pipefail
-
-
-#------------------------------------------------------------------------------
-# Colour output by argument 1
-#------------------------------------------------------------------------------
-colourPipe()
-{
-    if tty -s <&1       #    [ "$1" ]
-    then
-    (
-        while read line
-        do
-            setterm -foreground $1
-            echo "$line"
-        done
-        setterm -foreground default
-    )
-    else
-        cat
-    fi
-}
-
-
-colourIndex=0
-
-# Check for existence of lockfile binary
-if ! type -p lockfile >/dev/null
-then
-    echo "$Script: Could not find executable 'lockfile'"
-    exit 1
-fi
-
-while :
-do
-    for slotGroup in $WM_HOSTS
-    do
-        # Split 'host:N', but catch 'host:' and 'host' too
-        host=${slotGroup%%:*}
-        n=${slotGroup##*:}
-        [ "$n" = "$host" ] && n=1  # missing ':'
-        : ${n:=1}
-
-        i=0
-        while [ "$i" -lt "$n" ]
-        do
-            lockFile="$lockDir/$host:$i"
-            if lockfile -r0 "$lockFile" 2>/dev/null
-            then
-                if [ "$nColours" -gt 0 ]
-                then
-                    # Set colour
-                    colour="${colourList[$colourIndex]}"
-
-                    if [ "$host" = "$HOST" ]; then
-                        eval $* 2>&1 | colourPipe "$colour"
-                    else
-                        ssh $host "$sourceFoam 2>/dev/null; cd $PWD && $rcmd" \
-                            2>&1 | colourPipe "$colour"
-                    fi
-                    retval=$?
-                else
-                    if [ "$host" = "$HOST" ]; then
-                        eval $* 2>&1
-                    else
-                        ssh $host "$sourceFoam 2>/dev/null; cd $PWD && $rcmd" \
-                            2>&1
-                    fi
-                    retval=$?
-                fi
-
-                # Release lock
-                rm -f "$lockFile" 2>/dev/null
-                exit $retval
-            fi
-            i=$(expr $i + 1)
-
-            # Cycle through colours. Note: outside lock clause!
-            colourIndex=$(expr $colourIndex + 1)
-            [ "$colourIndex" -lt "$nColours" ] || colourIndex=0
-
-        done
-    done
-    # Did not find any free slots. Rest a bit.
-    sleep 1
-done
-
-if [ "$nColours" -gt 0 ]
-then
-    setterm -foreground default
-fi
-
-exit 0 # clean exit
-
-#------------------------------------------------------------------------------
diff --git a/wmake/wmakeSchedulerUptime b/wmake/wmakeSchedulerUptime
deleted file mode 100755
index 2873d35d4783477c496f1cb664a55b351690562f..0000000000000000000000000000000000000000
--- a/wmake/wmakeSchedulerUptime
+++ /dev/null
@@ -1,258 +0,0 @@
-#!/bin/bash
-#------------------------------------------------------------------------------
-# =========                 |
-# \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-#  \\    /   O peration     |
-#   \\  /    A nd           | Copyright (C) 2011-2016 OpenFOAM Foundation
-#    \\/     M anipulation  | Copyright (C) 2018-2019 OpenCFD Ltd.
-#-------------------------------------------------------------------------------
-# License
-#     This file is part of OpenFOAM.
-#
-#     OpenFOAM is free software: you can redistribute it and/or modify it
-#     under the terms of the GNU General Public License as published by
-#     the Free Software Foundation, either version 3 of the License, or
-#     (at your option) any later version.
-#
-#     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-#     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-#     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-#     for more details.
-#
-#     You should have received a copy of the GNU General Public License
-#     along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
-#
-# Script
-#     wmakeSchedulerUptime
-#
-# Usage
-#     wmakeSchedulerUptime COMMAND
-#         run 'COMMAND' on one of the slots listed in WM_HOSTS
-#
-#     wmakeScheduler -count
-#         count the total number of slots available in WM_HOSTS
-#         eg,  export WM_NCOMPPROCS=$(wmakeScheduler -count)
-#
-# Description
-#     Scheduler for network distributed compilations using wmake.
-#     - WM_HOSTS contains a list of hosts and number of concurrent processes
-#     eg,
-#        export WM_HOSTS="hostA:1 hostB:2 hostC:1"
-#     - WM_COLOURS contains a list of colours to cycle through
-#        export WM_COLOURS="black blue green cyan red magenta yellow"
-#
-#     Sources the relevant cshrc/bashrc if not set.
-#
-# Environment
-#     - FOAM_API
-#     - WM_PROJECT_DIR
-#     - WM_PROJECT  (defaults to OpenFOAM)
-#
-#-------------------------------------------------------------------------------
-Script="${0##*/}"
-
-# Default project
-[ -n "$WM_PROJECT" ] || WM_PROJECT=OpenFOAM
-
-lockDir="$HOME/.$WM_PROJECT/.wmake"
-
-# csh sets HOST, bash sets HOSTNAME
-[ -n "$HOST" ] || HOST="$HOSTNAME"
-
-# Fallback - 1 core on current host
-[ -n "$WM_HOSTS" ] || WM_HOSTS="${HOST}:1"
-
-
-# Count the total number of slots available and exit
-if [ "$1" = "-count" ]
-then
-    expr $(
-        for slotGroup in $WM_HOSTS
-        do
-            n=${slotGroup##*:}
-            [ "$n" = "${slotGroup%%:*}" ] && n=1  # Missing ':'
-            echo "+ ${n:-1}"
-        done
-    )
-    exit 0
-fi
-
-# Where to source WM_PROJECT settings in a remote shell
-# This code tries to figure out which cshrc or bashrc to execute.
-# !! Assumes remote computer running same shell and startup files
-# in same location
-
-sourceFoam=false    # Fallback command
-case $SHELL in
-*/csh | */tcsh )    # [t]csh vs bash|ksh|sh
-    shellRc=cshrc
-    ;;
-*)
-    shellRc=bashrc
-    ;;
-esac
-
-# Same as foamEtcFile -mode=uo bashrc
-#
-# Check ~/.$WM_PROJECT/$FOAM_API/
-# Check ~/.$WM_PROJECT/
-# Check projectDir/etc/
-if [ -n "$WM_PROJECT_DIR" ]
-then
-    for i in \
-        "$HOME/.$WM_PROJECT/$FOAM_API" \
-        "$HOME/.$WM_PROJECT" \
-        "$WM_PROJECT_DIR/etc" \
-        ;
-    do
-        if [ -f "$i/$shellRc" ]
-        then
-            sourceFoam="$i/$shellRc"
-            break
-        fi
-    done
-fi
-
-# Construct test string for remote execution.
-# Source WM_PROJECT settings if WM_PROJECT environment not set.
-# Use FOAM_SETTINGS to pass command-line settings
-case "$sourceFoam" in
-*/bashrc)
-    sourceFoam='[ -n "$WM_PROJECT_DIR" ] || '". $sourceFoam $FOAM_SETTINGS"
-    ;;
-
-*/cshrc)
-    sourceFoam='if ( ! $?WM_PROJECT_DIR ) source '"$sourceFoam $FOAM_SETTINGS"
-    ;;
-esac
-
-# Quote double-quotes for remote command line
-rcmd=$(echo $* | sed -e s/\"/\'\"\'/g)
-# The same, without forking (not ksh, maybe not /bin/sh either)
-# rcmd=$(while [ "$#" -gt 0 ]; do echo "${1//\"/'\"'}"; shift; done)
-
-
-# Convert WM_COLOURS into an array
-declare colourList
-nColours=0
-for col in $WM_COLOURS
-do
-    colourList[$nColours]=$col
-    ((nColours = $nColours + 1))
-done
-
-# Bashism: make pipe fail early.
-# This ensures the return value of the command is returned and not of the
-# colouring pipe etc.
-set -o pipefail
-
-
-#------------------------------------------------------------------------------
-# Colour output by argument 1
-#------------------------------------------------------------------------------
-colourPipe()
-{
-    if [ -n "$1" ]
-    then
-    (
-        while read line
-        do
-            setterm -foreground $1
-            echo "$line"
-        done
-        setterm -foreground default
-    )
-    else
-        cat
-    fi
-}
-
-
-
-# Parse options
-nprocs=1
-while [ "$#" -gt 0 ]
-do
-    case "$1" in
-    -np)
-        nprocs="$2"
-        shift
-        ;;
-    -*)
-        usage "unknown option: '$*'"
-        ;;
-    *)
-        break
-        ;;
-    esac
-    shift
-done
-
-
-colourIndex=0
-
-while :
-do
-    for slotGroup in $WM_HOSTS
-    do
-        # Split 'host:N', but catch 'host:' and 'host' too
-        host=${slotGroup%%:*}
-        n=${slotGroup##*:}
-        [ "$n" = "$host" ] && n=1  # Missing ':'
-        : ${n:=1}
-
-
-        # Determine load
-        if [ "$host" = "$HOST" ]; then
-            stat=`uptime`
-        else
-            stat=`ssh $host uptime`
-        fi
-        load=`echo "$stat" | sed -e 's/.*average:[^0-9.]*\([0-9.]*\).*/\1/'`
-
-
-        #echo "$Script: Machine:$host  load:$load  allowed:$WM_NCOMPPROCS  nprocs:$nprocs"
-
-
-        # Check if adding nprocs to load causes overload
-        if (echo '' | awk "{if ($load + $nprocs > $WM_NCOMPPROCS) {exit 1}}")
-        then
-            if [ "$nColours" -gt 0 ]
-            then
-                # Set colour
-                colour="${colourList[$colourIndex]}"
-                echo "$Script: Machine:$host  Starting:$*"
-
-                if [ "$host" = "$HOST" ]; then
-                    eval $* 2>&1 | colourPipe "$colour"
-                else
-                    ssh $host "$sourceFoam 2>/dev/null; cd $PWD && $rcmd" 2>&1 \
-                        | colourPipe "$colour"
-                fi
-                retval=$?
-            else
-                echo "$Script: Machine:$host  Starting:$*"
-                if [ "$host" = "$HOST" ]; then
-                    eval $* 2>&1
-                else
-                    ssh $host "$sourceFoam 2>/dev/null; cd $PWD && $rcmd" 2>&1
-                fi
-                retval=$?
-            fi
-            exit $retval
-        fi
-
-
-        # Cycle through colours. Note: outside lock clause!
-        colourIndex=$(expr $colourIndex + 1)
-        [ "$colourIndex" -lt "$nColours" ] || colourIndex=0
-
-    done
-
-    # Did not find any free machines. Rest a bit.
-    sleep 1
-done
-
-exit 0 # clean exit
-
-#------------------------------------------------------------------------------