diff --git a/optimizer/Comm/CommSplitter.h b/optimizer/Comm/CommSplitter.h
index 0808522675ed4649a330a29e77bd21794822396b..dd223dced1e2246632ac8646fa070ec4a9ce19d0 100644
--- a/optimizer/Comm/CommSplitter.h
+++ b/optimizer/Comm/CommSplitter.h
@@ -77,9 +77,10 @@ public:
 
     MPI_Comm mpiComm() const { return world_comm_; }
     int globalRank()   const { return global_rank_; }
-    int PilotRank()    const { return Strategy_t::poller_; }
+    int pilotRank()    const { return Strategy_t::poller_; }
     int getLeader()    const { return Strategy_t::leader_; }
 
+    int getNrWorkerGroups() const { return Strategy_t::getNrWorkerGroups();}
 
     /// construct comm bundle and return
     Comm::Bundle_t getBundle() const {
diff --git a/optimizer/Comm/Splitter/ManyMasterSplit.h b/optimizer/Comm/Splitter/ManyMasterSplit.h
index 94831f48fbc136ad457310965a9c8c3c3d1847f8..5ab2c092430d6efd31dbb3cfd8cb9a3a922e05ba 100644
--- a/optimizer/Comm/Splitter/ManyMasterSplit.h
+++ b/optimizer/Comm/Splitter/ManyMasterSplit.h
@@ -32,7 +32,7 @@ public:
     {}
 
 
-    void split() {
+    virtual void split() {
 
         parseArguments();
 
@@ -94,6 +94,10 @@ public:
             leader_ = 1;
     }
 
+    virtual int getNrWorkerGroups() const {
+        return (num_procs_ - 2 * num_masters_) / num_coworkers_worker_;
+    }
+
 private:
 
     size_t num_masters_;
diff --git a/optimizer/Comm/Splitter/SplitStrategy.h b/optimizer/Comm/Splitter/SplitStrategy.h
index 4c1dac9a436db28320507e015686d3e4e7a458c7..934b073db063e7988868af32148fe65b016fe0e7 100644
--- a/optimizer/Comm/Splitter/SplitStrategy.h
+++ b/optimizer/Comm/Splitter/SplitStrategy.h
@@ -43,6 +43,9 @@ public:
      */
     virtual void split() = 0;
 
+    /// Get number of worker groups
+    virtual int getNrWorkerGroups() const = 0;
+
     MPI_Comm getComm()  const { return comm_; }
 
     int getRank()       const { return rank_; }
@@ -53,10 +56,6 @@ public:
     int getLeader()     const { return leader_; }
     int getPoller()     const { return poller_; }
 
-    std::vector<int> getWorkers()     const { return workers_; }
-    std::vector<int> getOptimizers()  const { return optimizers_; }
-    std::vector<int> getCoworkers()   const { return coworkers_; }
-
 
 private:
 
@@ -83,18 +82,6 @@ protected:
 
     /// every core can specifies a master
     int poller_;
-
-    /// used in master <-> workers communicator
-    std::vector<int> workers_;
-
-    /// used in aster <-> optimizers communicator
-    std::vector<int> optimizers_;
-
-    /// every role has one or more pids to solve the task at hand
-    // a worker leader has more worker-cores to solve the forward problem
-    // a optimizer leader has more opt-cores to solve the opt problem
-    // a master has other masters working on the same opt problem
-    std::vector<int> coworkers_;
 };
 
 #endif
diff --git a/optimizer/Comm/types.h b/optimizer/Comm/types.h
index 36ad822d3fea85a946f4489236698a4e6bfff5d9..be9df1e42dc5dbe208fd9dd22821cd27d2ff17ff 100644
--- a/optimizer/Comm/types.h
+++ b/optimizer/Comm/types.h
@@ -2,30 +2,14 @@
 #define __COMM_TYPES__
 
 #include <vector>
-#include <map>
-#include <set>
 
 #include "mpi.h"
 
-#include "boost/tuple/tuple.hpp"
-#include "boost/variant/variant.hpp"
-
 namespace Comm {
 
     typedef size_t id_t;
     typedef size_t localId_t;
 
-    // defining different groups of processors (consecutive vs. sets).. This
-    // is currently not used.
-    typedef boost::tuple<size_t, size_t> blockProcessorGroup_t;
-    typedef std::set<size_t>             setProcessorGroup_t;
-
-    typedef boost::variant <
-            std::vector<blockProcessorGroup_t>
-            , std::vector<setProcessorGroup_t>
-            >
-        processorGroups_t;
-
     /// bundles all communicators for a specific role/pid
     struct Bundle_t {
         int island_id;
diff --git a/optimizer/Optimizer/EA/FixedPisaNsga2.h b/optimizer/Optimizer/EA/FixedPisaNsga2.h
index 9e24d8fc8c4bd4895edf2b277a49dc99225cf337..134838477451ff344e483a029c5c2718a758f15c 100644
--- a/optimizer/Optimizer/EA/FixedPisaNsga2.h
+++ b/optimizer/Optimizer/EA/FixedPisaNsga2.h
@@ -69,12 +69,13 @@ public:
                    Expressions::Named_t constraints,
                    DVarContainer_t dvars, size_t dim, Comm::Bundle_t comms,
                    CmdArguments_t args,
-                   std::vector<double> hypervolRef);
+                   std::vector<double> hypervolRef,
+                   int nrWorkerGroups);
 
     ~FixedPisaNsga2();
 
     /// Starting selection algorithm and variator PISA state machine
-    void initialize();
+    virtual void initialize();
 
     /// type used in solution state exchange with other optimizers
     typedef std::vector< Individual > SolutionState_t;
@@ -130,11 +131,9 @@ private:
 
     std::string getStateString(PisaState_t) const;
 
-    //FIXME:
     // selector parameters
     int seed;   /* seed for random number generator */
     const int tournament_m = 1;  /* number of opponents for mating selection */
-    size_t selector_mu_; ///< number of finished individuals in current generation
 
     /// the current state of the state machine
     PisaState_t curState_m;
@@ -181,8 +180,13 @@ private:
 
     /// size of initial population
     size_t alpha_m;
-    /// initial population optimization flag (doubles initial population)
+    /// initial population optimization flag (increases initial population)
     bool initialOptimization_m;
+    /// enforce strict population size
+    bool birthControl_m;
+    /// population file to be started from
+    std::string file_start_m;
+
     /// number of parents the selector chooses
     //size_t mu_m;
     /// number of children the variator produces
@@ -193,6 +197,8 @@ private:
     size_t act_gen = 1;
     /// maximal generation (stopping criterion)
     size_t maxGenerations_m;
+    /// number of individuals running
+    int num_workergroups_m;
 
     /// result file name
     std::string resultFile_m;
diff --git a/optimizer/Optimizer/EA/FixedPisaNsga2.tcc b/optimizer/Optimizer/EA/FixedPisaNsga2.tcc
index 627ba82c1555d66e0efab2f39b27030b08938490..1c09e323eb9f90e44631eb74f50b24db5edcfacc 100644
--- a/optimizer/Optimizer/EA/FixedPisaNsga2.tcc
+++ b/optimizer/Optimizer/EA/FixedPisaNsga2.tcc
@@ -1,6 +1,5 @@
 #include <iostream>
 #include <sstream>
-#include <cassert>
 #include <cmath>
 #include <cstring>
 #include <set>
@@ -37,7 +36,8 @@ FixedPisaNsga2<CO, MO>::FixedPisaNsga2(
                            DVarContainer_t dvars,
                            size_t dim, Comm::Bundle_t comms,
                            CmdArguments_t args,
-                           std::vector<double> hypervolRef)
+                           std::vector<double> hypervolRef,
+                           int nrWorkerGroups)
              : Optimizer(comms.opt)
              , statistics_(new Statistics<size_t>("individuals"))
              , comms_(comms)
@@ -46,6 +46,7 @@ FixedPisaNsga2<CO, MO>::FixedPisaNsga2(
              , dvars_m(dvars)
              , args_m(args)
              , dim_m(dim)
+             , num_workergroups_m(nrWorkerGroups)
              , hvol_ref_m(hypervolRef)
 {
     my_local_pid_ = 0;
@@ -77,11 +78,14 @@ FixedPisaNsga2<CO, MO>::FixedPisaNsga2(
     current_hvol_       = std::numeric_limits<double>::max();
     hvol_progress_      = std::numeric_limits<double>::max();
 
-    //XXX: we can also set alpha_m to number of workers
     lambda_m              = args->getArg<int>("num-ind-gen", 2, false);
     alpha_m               = args->getArg<int>("initialPopulation", true);
     //mu_m                = lambda_m;
-    initialOptimization_m = args->getArg<bool>("initial-optimization", false);
+
+    // initial population arguments
+    file_start_m          = args_m->getArg<std::string>("start-population",     "",    false);
+    initialOptimization_m = args_m->getArg<bool>       ("initial-optimization", false, false);
+    birthControl_m        = args_m->getArg<bool>       ("birth-control",        false, false);
 
     file_param_descr_ = "%ID,";
 
@@ -424,8 +428,8 @@ template< template <class> class CO, template <class> class MO >
 void FixedPisaNsga2<CO, MO>::toSelectorAndCommit() {
 
     to_selector_.clear();
-    selector_mu_ = finishedBuffer_m.size();
-    for(size_t i = 0; i < selector_mu_; i++) {
+    const size_t size = finishedBuffer_m.size();
+    for(size_t i = 0; i < size; i++) {
         unsigned int id = finishedBuffer_m.front();
         to_selector_.insert(id);
         finishedBuffer_m.pop_front();
@@ -536,11 +540,10 @@ void FixedPisaNsga2<CO, MO>::runStateMachine() {
     // information about initial population to ini file.
     case Initialize: {
         if(initialized_m == false) {
-            if (initialOptimization_m == true) {
-              // double population such that workers keep busy until full initial population is found
-              variator_m->initial_population(2*alpha_m);
-            } else {
-              variator_m->initial_population(alpha_m);
+            variator_m->initial_population(alpha_m, file_start_m);
+            if (initialOptimization_m == true && birthControl_m == false && file_start_m.empty()) {
+                // increase population such that workers keep busy until full initial population is found
+                variator_m->initial_population(num_workergroups_m, "");
             }
             dispatch_forward_solves();
             initialized_m = true;
@@ -557,9 +560,10 @@ void FixedPisaNsga2<CO, MO>::runStateMachine() {
             toSelectorAndCommit();
             curState_m = InitializeSelector;
 
-            if (initialOptimization_m == false) {
-                //FIXME: and double the population again to have all workers busy
-                variator_m->initial_population(alpha_m);
+            // add additional worker jobs to the queue so that single job won't keep system idle
+            if (initialOptimization_m == false && birthControl_m == false && file_start_m.empty()) {
+                // increase population to have all workers busy
+                variator_m->initial_population(num_workergroups_m, "");
                 dispatch_forward_solves();
             }
         }
@@ -1004,9 +1008,7 @@ void FixedPisaNsga2<CO, MO>::environmentalSelection() {
                 min = j;
         }
         // swap
-        unsigned int p_min = pp_all[min];
-        pp_all[min] = pp_all[i];
-        pp_all[i] = p_min;
+        std::swap(pp_all[min], pp_all[i]);
     }
     // erase others
     pp_all.erase(pp_all.begin() + alpha_m, pp_all.end());
@@ -1016,8 +1018,8 @@ void FixedPisaNsga2<CO, MO>::environmentalSelection() {
 /* Fills mating pool 'parent_queue_' */
 template< template <class> class CO, template <class> class MO >
 void FixedPisaNsga2<CO, MO>::matingSelection() {
-    // select at least lambda_m parents
-    for (size_t i = 0; i < std::max(selector_mu_, lambda_m); i++) {
+    // select lambda_m parents
+    for (size_t i = 0; i < lambda_m; i++) {
         int winner = irand(pp_all.size());
 
         for (int j = 0; j < tournament_m; j++) {
diff --git a/optimizer/Optimizer/EA/Variator.h b/optimizer/Optimizer/EA/Variator.h
index 02bd37a5e32df6f99806539dd936e320c06a9313..8cb72b35bbba93566c1724ce03d30d39a6bf287c 100644
--- a/optimizer/Optimizer/EA/Variator.h
+++ b/optimizer/Optimizer/EA/Variator.h
@@ -71,68 +71,66 @@ public:
     }
 
     /// create an initial population
-    void initial_population(size_t sizeInitial) {
-        
-        std::string fname = args_->getArg<std::string>("start-population", "", false);
-        
+    void initial_population(size_t sizeInitial, std::string fname) {
         if ( fname.empty() ) {
-            for(size_t i = 0; i < sizeInitial; i++)
+            for(size_t i = 0; i < sizeInitial; i++) {
                 new_individual();
-        } else {
-            typedef boost::property_tree::ptree ptree_t;
-            ptree_t tree;
-            
-            boost::property_tree::read_json(fname, tree);
-            
-            if ( tree.get<std::string>("name").compare("opt-pilot") ) {
-                throw OptPilotException("Variator::initial_population",
-                                        "Json file not generated by opt-pilot.");
-            }
-            
-            std::size_t nDVars = 0;
-            for(auto& elem : tree.get_child("dvar-bounds")) {
-                // check if it is a design variable
-                if (std::find(dNames_m.begin(), dNames_m.end(), elem.first) == dNames_m.end()) {
-                    throw OptPilotException("Variator::initial_population",
-                                            "The design variable '" + elem.first + "' is not in the list."); 
-                }
-                ++nDVars;
             }
-            
-            if ( nDVars != dVarBounds_m.size() ) {
+            return;
+        }
+        // read population from file
+        typedef boost::property_tree::ptree ptree_t;
+        ptree_t tree;
+
+        boost::property_tree::read_json(fname, tree);
+
+        if ( tree.get<std::string>("name").compare("opt-pilot") ) {
+            throw OptPilotException("Variator::initial_population",
+                                    "Json file not generated by opt-pilot.");
+        }
+
+        std::size_t nDVars = 0;
+        for(auto& elem : tree.get_child("dvar-bounds")) {
+            // check if it is a design variable
+            if (std::find(dNames_m.begin(), dNames_m.end(), elem.first) == dNames_m.end()) {
                 throw OptPilotException("Variator::initial_population",
-                                        "The number of design variables do not agree.");
-            }
-            
-            
-            boost::property_tree::ptree& population = tree.get_child("population");
-            
-            std::size_t size = 0;
-            Individual::genes_t dvars(nDVars);
-            for (auto& ind : population ) {
-                
-                if ( size > sizeInitial - 1 )
-                    break;
-                
-                /* just to be sure: It might be that the order of the design variables in the
-                 * Json file is not the same as it reads in, therefore, we check and take the order
-                 * of the container dNames_m.
-                 */
-                for (auto& dvar : population.get_child(ind.first).get_child("dvar")) {
-                    auto it = std::find(dNames_m.begin(), dNames_m.end(), dvar.first);
-                    std::size_t idx = std::distance(dNames_m.begin(), it);
-                    //FIXME requires random access of Individual::genes_t
-                    dvars[idx] = dvar.second.get_value<double>();
-                }
-                
-                new_individual(dvars);
-                ++size;
+                                        "The design variable '" + elem.first + "' is not in the list.");
             }
-            
-            // fill with random individuals
-            for (std::size_t i = size; i < sizeInitial; ++i) {
-                new_individual();
+            ++nDVars;
+        }
+
+        if ( nDVars != dVarBounds_m.size() ) {
+            throw OptPilotException("Variator::initial_population",
+                                    "The number of design variables do not agree.");
+        }
+
+        boost::property_tree::ptree& population = tree.get_child("population");
+
+        std::size_t size = 0;
+        Individual::genes_t dvars(nDVars);
+        for (auto& ind : population ) {
+
+            if ( size > sizeInitial - 1 )
+                break;
+
+            /* just to be sure: It might be that the order of the design variables in the
+             * Json file is not the same as it reads in, therefore, we check and take the order
+             * of the container dNames_m.
+             */
+            for (auto& dvar : population.get_child(ind.first).get_child("dvar")) {
+                auto it = std::find(dNames_m.begin(), dNames_m.end(), dvar.first);
+                std::size_t idx = std::distance(dNames_m.begin(), it);
+                //FIXME requires random access of Individual::genes_t
+                dvars[idx] = dvar.second.get_value<double>();
             }
+
+            new_individual(dvars);
+            ++size;
+        }
+
+        // fill with random individuals
+        for (std::size_t i = size; i < sizeInitial; ++i) {
+            new_individual();
         }
     }
 
diff --git a/optimizer/Pilot/Pilot.h b/optimizer/Pilot/Pilot.h
index 2663b4b9cd68e849393f57beee4cba8313752047..58c1b578b64abf0647e26d5ce898a4152d250e68 100644
--- a/optimizer/Pilot/Pilot.h
+++ b/optimizer/Pilot/Pilot.h
@@ -260,7 +260,7 @@ protected:
 
         boost::scoped_ptr<Opt_t> opt(
                 new Opt_t(objectives_, constraints_, dvars_, objectives_.size(),
-                          comm_->getBundle(), cmd_args_, hypervolRef_));
+                          comm_->getBundle(), cmd_args_, hypervolRef_, comm_->getNrWorkerGroups()));
         opt->initialize();
 
         std::cout << "Stop Opt.." << std::endl;
diff --git a/optimizer/Pilot/Worker.h b/optimizer/Pilot/Worker.h
index d3c02f7f102b977c500cf65f78ccf0ba0635dd8f..fe8e29f518d41c95a1d3d3e60838cfeb357276e4 100644
--- a/optimizer/Pilot/Worker.h
+++ b/optimizer/Pilot/Worker.h
@@ -12,9 +12,6 @@
 #include "Util/MPIHelper.h"
 #include "Util/CmdArguments.h"
 
-#include "Simulation/Simulation.h"
-
-
 /**
  *  \class Worker
  *  \brief A worker MPI entity consists of a processor group that runs a
diff --git a/src/Optimize/OptimizeCmd.cpp b/src/Optimize/OptimizeCmd.cpp
index c62331718ea13e4a2875fbbfd2ba804d3f99ed36..7f128182fcf4d1b98e9c3ebb4fff7a3b4c0f6570 100644
--- a/src/Optimize/OptimizeCmd.cpp
+++ b/src/Optimize/OptimizeCmd.cpp
@@ -76,6 +76,7 @@ namespace {
         RECOMBINATIONPROBABILITY,
         SIMBINCROSSOVERNU,
         INITIALOPTIMIZATION,
+        BIRTHCONTROL,
         SIMTMPDIR,
         TEMPLATEDIR,
         FIELDMAPDIR,
@@ -143,6 +144,8 @@ OptimizeCmd::OptimizeCmd():
         ("SIMBIN_CROSSOVER_NU", "Simulated binary crossover, default: 2.0");
     itsAttr[INITIALOPTIMIZATION] = Attributes::makeBool
         ("INITIAL_OPTIMIZATION", "Optimize speed of initial generation, default: false");
+    itsAttr[BIRTHCONTROL] = Attributes::makeBool
+        ("BIRTH_CONTROL", "Enforce strict population sizes (or flexible to keep workers busy), default: false");
     itsAttr[SIMTMPDIR] = Attributes::makeString
         ("SIMTMPDIR", "Directory where simulations are run");
     itsAttr[TEMPLATEDIR] = Attributes::makeString
@@ -260,6 +263,7 @@ void OptimizeCmd::execute() {
             {RECOMBINATIONPROBABILITY, "recombination-probability"},
             {SIMBINCROSSOVERNU, "simbin-crossover-nu"},
             {INITIALOPTIMIZATION, "initial-optimization"},
+            {BIRTHCONTROL, "birth-control"},
             {RESTART_FILE, "restartfile"},
             {RESTART_STEP, "restartstep"}
         });
@@ -308,6 +312,16 @@ void OptimizeCmd::execute() {
         throw OpalException("OptimizeCmd::execute",
                             "The hypervolume reference point should have the same dimension as the objectives");
     }
+    if (Attributes::getString(itsAttr[STARTPOPULATION])     != "" &&
+        Attributes::getBool(  itsAttr[INITIALOPTIMIZATION]) == true) {
+        throw OpalException("OptimizeCmd::execute",
+                            "No INITIAL_OPTIMIZATION possible when reading initial population from file (STARTPOPULATION)");
+    }
+    if (Attributes::getBool(itsAttr[BIRTHCONTROL])        == true &&
+        Attributes::getBool(itsAttr[INITIALOPTIMIZATION]) == true) {
+        throw OpalException("OptimizeCmd::execute",
+                            "No INITIAL_OPTIMIZATION possible with BIRTH_CONTROL");
+    }
 
     if (Attributes::getString(itsAttr[SIMTMPDIR]) != "") {
         fs::path dir(Attributes::getString(itsAttr[SIMTMPDIR]));
diff --git a/src/Sample/Sampler.cpp b/src/Sample/Sampler.cpp
index 4f0d1519fefb11616fe81e636abc4314baa8b996..eae62b30b65b3e81688513a7cae63d70e484ff7c 100644
--- a/src/Sample/Sampler.cpp
+++ b/src/Sample/Sampler.cpp
@@ -19,7 +19,8 @@ Sampler::Sampler(Expressions::Named_t objectives,
                  DVarContainer_t dvars,
                  size_t dim, Comm::Bundle_t comms,
                  CmdArguments_t args,
-                 std::vector<double> hypervolRef)
+                 std::vector<double> hypervolRef,
+                 int nrWorkerGroups)
     : Optimizer(comms.opt)
 {
     throw OptPilotException("Sampler::Sampler",
diff --git a/src/Sample/Sampler.h b/src/Sample/Sampler.h
index 78d076ab03b3ef04d9329d4eae72301853d62286..e55eaafd7355d424ccbff490c708d39517a4d7cf 100644
--- a/src/Sample/Sampler.h
+++ b/src/Sample/Sampler.h
@@ -52,7 +52,8 @@ public:
             DVarContainer_t dvars,
             size_t dim, Comm::Bundle_t comms,
             CmdArguments_t args,
-            std::vector<double> hypervolRef);
+            std::vector<double> hypervolRef,
+            int nrWorkerGroups);
 
 
     /**
@@ -73,8 +74,8 @@ public:
             Comm::Bundle_t comms,
             CmdArguments_t args);
 
-    /// Starting selection algorithm and variator PISA state machine
-    void initialize();
+    /// Initialization and start algorithm
+    virtual void initialize();
 
     /// type used in solution state exchange with other optimizers
     typedef std::vector< SampleIndividual > SolutionState_t;
@@ -94,7 +95,6 @@ protected:
 
 private:
 
-
     std::map<std::string,
              std::shared_ptr<SamplingMethod>
         > sampleMethods_m;
diff --git a/tools/emacs/opal.el b/tools/emacs/opal.el
index 4c54f0e942b96c0119bdb0eb63949605e3f2ec8a..31a41c02e6e570a395a51792cff0cdb5bdf29182 100644
--- a/tools/emacs/opal.el
+++ b/tools/emacs/opal.el
@@ -138,11 +138,11 @@
   )
   "Highlighting expressions for OPAL mode (seqediting).")
 
-;(concat "\\<" (regexp-opt '("A" "ADD" "AMPLITUDE_MODEL" "ANGLE" "APERTURE" "APVETO" "AT" "AUTOPHASE" "B" "BBOXINCR" "BCFFTZ" "BCFFTT" "BCFFTX" "BCFFTY" "BCURRENT" "BEAM_PHIINIT" "BEAM_PRINIT" "BEAM_RINIT" "BFREQ" "BMAX" "BOUNDPDESTROYFQ" "BSCALE" "BY" "CALLS" "CATHTEMP" "CENTRE" "CHARGE" "CLASS" "CLEAR" "CMD" "COEFDENOM" "COEFDENOMPHI" "COEFNUM" "COEFNUMPHI" "COLUMN" "CONDUCT" "CONSTRAINTS" "CONST_LENGTH" "CONV_HVOL_PROG" "CORRX" "CORRY" "CORRZ" "CSRDUMP" "CROSSOVER" "CUTOFFLONG" "CUTOFFPX" "CUTOFFPY" "CUTOFFPZ" "CUTOFFR" "CUTOFFX" "CUTOFFY" "CYHARMON" "CZERO" "DESIGNENERGY" "DK1" "DK1S" "DK2" "DK2S" "DKN" "DKNR" "DKS" "DKSR" "DLAG" "DPHI" "DPSI" "DS" "DT" "DTHETA" "DUMP" "DUMP_DAT" "DUMP_FREQ" "DUMP_OFFSPRING" "DVARS" "DVOLT" "DX" "DY" "DZ" "E1" "E2" "EBDUMP" "ECHO" "EKIN" "ELASER" "ELEMEDGE" "ELEMENT" "EMISSIONMODEL" "EMISSIONSTEPS" "EMITTED" "ENABLEHDF5" "ENERGY" "ENDSEQUENCE" "END_NORMAL_X" "END_NORMAL_Y" "END_POSITION_X" "END_POSITION_Y" "EPSILON" "ESCALE" "ET" "EVERYSTEP" "EX" "EXPECTED_HYPERVOL" "EXPR" "EY" "FE" "FGEOM" "FIELDMAPDIR" "FIELDMAPDIR" "FILE" "FINT" "FMAPFN" "FNAME" "FORM" "FREQ" "FREQUENCY_MODEL" "FROM" "FSTYPE" "FTOSCAMPLITUDE" "FTOSCPERIODS" "FULL" "GAMMA" "GAP" "GAPWIDTH" "GENE_MUTATION_PROBABILITY" "GEOMETRY" "GREENSF" "H1" "H2" "HAPERT" "HARMON" "HARMONIC_NUMBER" "HGAP" "HKICK" "HYPERVOLREFERENCE" "IDEALIZED" "INITIAL_OPTIMIZATION" "IMAGENAME" "INFO" "INITIALPOPULATION" "INPUT" "INPUTMOUNITS" "INTENSITYCUT" "INTERPL" "IS_CLOSED" "ITSOLVER" "K0" "K0S" "K1" "K1S" "K2" "K2S" "K3" "K3S" "KEYWORD" "KICK" "KN" "KS" "L" "LAG" "LASERPROFFN" "LATTICE_PHIINIT" "LATTICE_RINIT" "LATTICE_THETAINIT" "LENGTH" "LEVEL" "LOGBENDTRAJECTORY" "LOWER" "LOWERBOUND" "MASS" "MAXGENERATIONS" "MAXITERS" "MAXR" "MAXSTEPS" "MAXZ" "METHOD" "MINR" "MINZ" "MODE" "MREX" "MREY" "MSCALX" "MSCALY" "MT" "MUTATION_PROBABILITY" "MX" "MY" "NBIN" "NFREQ" "NLEFT" "NO" "NPART" "NPOINTS" "NRIGHT" "NUMCELLS" "NUM_COWORKERS" "NUM_IND_GEN" "NUM_MASTERS" "OBJECTIVES" "OFFSETPX" "OFFSETPY" "OFFSETPZ" "OFFSETT" "OFFSETX" "OFFSETY" "OFFSETZ" "ONE_PILOT_CONVERGE" "OPCHARGE" "OPMASS" "OPYIELD" "ORDER" "ORIENTATION" "ORIGIN" "OUTDIR" "OUTFN" "OUTPUT" "P1" "P2" "P3" "P4" "PARFFTT" "PARFFTX" "PARFFTY" "PARTICLE" "PARTICLEMATTERINTERACTION" "PATTERN" "PC" "PDIS" "PHI" "PHI0" "PHIINIT" "PHIMAX" "PHIMIN" "PLANE" "POLYORDER" "PRECMODE" "PRINIT" "PSDUMPEACHTURN" "PSDUMPFRAME" "PSDUMPFREQ" "PSI" "PTC" "PYMULT" "PZINIT" "PZMULT" "R51" "R52" "R61" "R62" "RADIUS" "RANDOM" "RANGE" "RASTER" "RECOMBINATION_PROBABILITY" "REFER" "REFPOS" "REPARTFREQ" "RESET" "RFFREQ" "RFMAPFN" "RFPHI" "RINIT" "RMAX" "RMIN" "ROTATION" "ROW" "S" "SAMPLINGS" "SCALABLE" "SEED" "SELECTED" "SEQUENCE" "SIGMA" "SIGMAPX" "SIGMAPY" "SIGMAPZ" "SIGMAR" "SIGMAT" "SIGMAX" "SIGMAY" "SIGMAZ" "SIGX" "SIGY" "SIMBIN_CROSSOVER_NU" "SIMTMPDIR" "SLPTC" "SOL_SYNCH" "SPLIT" "SPTDUMPFREQ" "STATDUMPFREQ" "STEP" "STEPSPERTURN" "STOP" "STRING" "SUPERPOSE" "SYMMETRY" "T0" "TABLE" "TAU" "TELL" "TEMPLATEDIR" "TFALL" "THETA" "THIN" "THRESHOLD" "TIME" "TIMEINTEGRATOR" "TMULT" "TO" "TOL" "TOLERANCE" "TPULSEFWHM" "TRACE" "TRIMCOILTHRESHOLD" "TRISE" "TURNS" "TYPE" "UPPER" "UPPERBOUND" "VARIABLE" "VERIFY" "VERSION" "VKICK" "VMAX" "VMIN" "VOLT" "W" "WAKEF" "WARN" "WARP" "WEIGHT" "WIDTH" "WRITETOFILE" "X" "XEND" "XMA" "XMULT" "XSIZE" "XSTART" "Y" "YEND" "YMA" "YMULT" "YSIZE" "YSTART" "Z" "Z0" "ZEND" "ZINIT" "ZSTART" "ZSTOP") t) "\\>")
+;(concat "\\<" (regexp-opt '("A" "ADD" "AMPLITUDE_MODEL" "ANGLE" "APERTURE" "APVETO" "AT" "AUTOPHASE" "B" "BBOXINCR" "BCFFTZ" "BCFFTT" "BCFFTX" "BCFFTY" "BCURRENT" "BEAM_PHIINIT" "BEAM_PRINIT" "BEAM_RINIT" "BFREQ" "BIRTH_CONTROL" "BMAX" "BOUNDPDESTROYFQ" "BSCALE" "BY" "CALLS" "CATHTEMP" "CENTRE" "CHARGE" "CLASS" "CLEAR" "CMD" "COEFDENOM" "COEFDENOMPHI" "COEFNUM" "COEFNUMPHI" "COLUMN" "CONDUCT" "CONSTRAINTS" "CONST_LENGTH" "CONV_HVOL_PROG" "CORRX" "CORRY" "CORRZ" "CSRDUMP" "CROSSOVER" "CUTOFFLONG" "CUTOFFPX" "CUTOFFPY" "CUTOFFPZ" "CUTOFFR" "CUTOFFX" "CUTOFFY" "CYHARMON" "CZERO" "DESIGNENERGY" "DK1" "DK1S" "DK2" "DK2S" "DKN" "DKNR" "DKS" "DKSR" "DLAG" "DPHI" "DPSI" "DS" "DT" "DTHETA" "DUMP" "DUMP_DAT" "DUMP_FREQ" "DUMP_OFFSPRING" "DVARS" "DVOLT" "DX" "DY" "DZ" "E1" "E2" "EBDUMP" "ECHO" "EKIN" "ELASER" "ELEMEDGE" "ELEMENT" "EMISSIONMODEL" "EMISSIONSTEPS" "EMITTED" "ENABLEHDF5" "ENERGY" "ENDSEQUENCE" "END_NORMAL_X" "END_NORMAL_Y" "END_POSITION_X" "END_POSITION_Y" "EPSILON" "ESCALE" "ET" "EVERYSTEP" "EX" "EXPECTED_HYPERVOL" "EXPR" "EY" "FE" "FGEOM" "FIELDMAPDIR" "FIELDMAPDIR" "FILE" "FINT" "FMAPFN" "FNAME" "FORM" "FREQ" "FREQUENCY_MODEL" "FROM" "FSTYPE" "FTOSCAMPLITUDE" "FTOSCPERIODS" "FULL" "GAMMA" "GAP" "GAPWIDTH" "GENE_MUTATION_PROBABILITY" "GEOMETRY" "GREENSF" "H1" "H2" "HAPERT" "HARMON" "HARMONIC_NUMBER" "HGAP" "HKICK" "HYPERVOLREFERENCE" "IDEALIZED" "INITIAL_OPTIMIZATION" "IMAGENAME" "INFO" "INITIALPOPULATION" "INPUT" "INPUTMOUNITS" "INTENSITYCUT" "INTERPL" "IS_CLOSED" "ITSOLVER" "K0" "K0S" "K1" "K1S" "K2" "K2S" "K3" "K3S" "KEYWORD" "KICK" "KN" "KS" "L" "LAG" "LASERPROFFN" "LATTICE_PHIINIT" "LATTICE_RINIT" "LATTICE_THETAINIT" "LENGTH" "LEVEL" "LOGBENDTRAJECTORY" "LOWER" "LOWERBOUND" "MASS" "MAXGENERATIONS" "MAXITERS" "MAXR" "MAXSTEPS" "MAXZ" "METHOD" "MINR" "MINZ" "MODE" "MREX" "MREY" "MSCALX" "MSCALY" "MT" "MUTATION_PROBABILITY" "MX" "MY" "NBIN" "NFREQ" "NLEFT" "NO" "NPART" "NPOINTS" "NRIGHT" "NUMCELLS" "NUM_COWORKERS" "NUM_IND_GEN" "NUM_MASTERS" "OBJECTIVES" "OFFSETPX" "OFFSETPY" "OFFSETPZ" "OFFSETT" "OFFSETX" "OFFSETY" "OFFSETZ" "ONE_PILOT_CONVERGE" "OPCHARGE" "OPMASS" "OPYIELD" "ORDER" "ORIENTATION" "ORIGIN" "OUTDIR" "OUTFN" "OUTPUT" "P1" "P2" "P3" "P4" "PARFFTT" "PARFFTX" "PARFFTY" "PARTICLE" "PARTICLEMATTERINTERACTION" "PATTERN" "PC" "PDIS" "PHI" "PHI0" "PHIINIT" "PHIMAX" "PHIMIN" "PLANE" "POLYORDER" "PRECMODE" "PRINIT" "PSDUMPEACHTURN" "PSDUMPFRAME" "PSDUMPFREQ" "PSI" "PTC" "PYMULT" "PZINIT" "PZMULT" "R51" "R52" "R61" "R62" "RADIUS" "RANDOM" "RANGE" "RASTER" "RECOMBINATION_PROBABILITY" "REFER" "REFPOS" "REPARTFREQ" "RESET" "RFFREQ" "RFMAPFN" "RFPHI" "RINIT" "RMAX" "RMIN" "ROTATION" "ROW" "S" "SAMPLINGS" "SCALABLE" "SEED" "SELECTED" "SEQUENCE" "SIGMA" "SIGMAPX" "SIGMAPY" "SIGMAPZ" "SIGMAR" "SIGMAT" "SIGMAX" "SIGMAY" "SIGMAZ" "SIGX" "SIGY" "SIMBIN_CROSSOVER_NU" "SIMTMPDIR" "SLPTC" "SOL_SYNCH" "SPLIT" "SPTDUMPFREQ" "STARTPOPULATION" "STATDUMPFREQ" "STEP" "STEPSPERTURN" "STOP" "STRING" "SUPERPOSE" "SYMMETRY" "T0" "TABLE" "TAU" "TELL" "TEMPLATEDIR" "TFALL" "THETA" "THIN" "THRESHOLD" "TIME" "TIMEINTEGRATOR" "TMULT" "TO" "TOL" "TOLERANCE" "TPULSEFWHM" "TRACE" "TRIMCOILTHRESHOLD" "TRISE" "TURNS" "TYPE" "UPPER" "UPPERBOUND" "VARIABLE" "VERIFY" "VERSION" "VKICK" "VMAX" "VMIN" "VOLT" "W" "WAKEF" "WARN" "WARP" "WEIGHT" "WIDTH" "WRITETOFILE" "X" "XEND" "XMA" "XMULT" "XSIZE" "XSTART" "Y" "YEND" "YMA" "YMULT" "YSIZE" "YSTART" "Z" "Z0" "ZEND" "ZINIT" "ZSTART" "ZSTOP") t) "\\>")
 
 (defconst opal-font-lock-keywords-parameters
   (list
- '("\\<\\(A\\(?:DD\\|MPLITUDE_MODEL\\|NGLE\\|P\\(?:ERTURE\\|VETO\\)\\|T\\|UTOPHASE\\)\\|B\\(?:BOXINCR\\|C\\(?:FFT[TXYZ]\\|URRENT\\)\\|EAM_\\(?:\\(?:P\\(?:HI\\|R\\)\\|R\\)INIT\\)\\|FREQ\\|MAX\\|OUNDPDESTROYFQ\\|SCALE\\|Y\\)\\|C\\(?:A\\(?:LLS\\|THTEMP\\)\\|ENTRE\\|HARGE\\|L\\(?:ASS\\|EAR\\)\\|MD\\|O\\(?:EF\\(?:DENOM\\(?:PHI\\)?\\|NUM\\(?:PHI\\)?\\)\\|LUMN\\|N\\(?:DUCT\\|ST\\(?:RAINTS\\|_LENGTH\\)\\|V_HVOL_PROG\\)\\|RR[XYZ]\\)\\|ROSSOVER\\|SRDUMP\\|UTOFF\\(?:LONG\\|P[XYZ]\\|[RXY]\\)\\|YHARMON\\|ZERO\\)\\|D\\(?:ESIGNENERGY\\|K\\(?:1S\\|2S\\|[NS]R\\|[12NS]\\)\\|LAG\\|P\\(?:[HS]I\\)\\|THETA\\|UMP\\(?:_\\(?:DAT\\|FREQ\\|OFFSPRING\\)\\)?\\|V\\(?:ARS\\|OLT\\)\\|[STXYZ]\\)\\|E\\(?:BDUMP\\|CHO\\|KIN\\|L\\(?:ASER\\|EME\\(?:DGE\\|NT\\)\\)\\|MI\\(?:SSION\\(?:MODEL\\|STEPS\\)\\|TTED\\)\\|N\\(?:ABLEHDF5\\|D\\(?:SEQUENCE\\|_\\(?:NORMAL_[XY]\\|POSITION_[XY]\\)\\)\\|ERGY\\)\\|PSILON\\|SCALE\\|VERYSTEP\\|XP\\(?:ECTED_HYPERVOL\\|R\\)\\|[12TXY]\\)\\|F\\(?:E\\|GEOM\\|I\\(?:ELDMAPDIR\\|LE\\|NT\\)\\|MAPFN\\|NAME\\|ORM\\|R\\(?:EQ\\(?:UENCY_MODEL\\)?\\|OM\\)\\|STYPE\\|TOSC\\(?:AMPLITUDE\\|PERIODS\\)\\|ULL\\)\\|G\\(?:A\\(?:MMA\\|P\\(?:WIDTH\\)?\\)\\|E\\(?:\\(?:NE_MUTATION_PROBABILIT\\|OMETR\\)Y\\)\\|REENSF\\)\\|H\\(?:A\\(?:PERT\\|RMON\\(?:IC_NUMBER\\)?\\)\\|GAP\\|KICK\\|YPERVOLREFERENCE\\|[12]\\)\\|I\\(?:DEALIZED\\|MAGENAME\\|N\\(?:FO\\|ITIAL\\(?:\\(?:POPUL\\|_OPTIMIZ\\)ATION\\)\\|PUT\\(?:MOUNITS\\)?\\|TE\\(?:NSITYCUT\\|RPL\\)\\)\\|S_CLOSED\\|TSOLVER\\)\\|K\\(?:0S\\|1S\\|2S\\|3S\\|EYWORD\\|ICK\\|[0-3NS]\\)\\|L\\(?:A\\(?:G\\|SERPROFFN\\|TTICE_\\(?:\\(?:PHI\\|R\\|THETA\\)INIT\\)\\)\\|E\\(?:NGTH\\|VEL\\)\\|O\\(?:GBENDTRAJECTORY\\|WER\\(?:BOUND\\)?\\)\\)\\|M\\(?:A\\(?:SS\\|X\\(?:GENERATIONS\\|ITERS\\|STEPS\\|[RZ]\\)\\)\\|ETHOD\\|IN[RZ]\\|ODE\\|RE[XY]\\|SCAL[XY]\\|UTATION_PROBABILITY\\|[TXY]\\)\\|N\\(?:BIN\\|FREQ\\|LEFT\\|O\\|P\\(?:ART\\|OINTS\\)\\|RIGHT\\|UM\\(?:CELLS\\|_\\(?:COWORKERS\\|IND_GEN\\|MASTERS\\)\\)\\)\\|O\\(?:BJECTIVES\\|FFSET\\(?:P[XYZ]\\|[TXYZ]\\)\\|NE_PILOT_CONVERGE\\|P\\(?:CHARGE\\|MASS\\|YIELD\\)\\|R\\(?:DER\\|I\\(?:\\(?:ENTATIO\\|GI\\)N\\)\\)\\|UT\\(?:DIR\\|FN\\|PUT\\)\\)\\|P\\(?:A\\(?:R\\(?:FFT[TXY]\\|TICLE\\(?:MATTERINTERACTION\\)?\\)\\|TTERN\\)\\|DIS\\|HI\\(?:0\\|INIT\\|M\\(?:AX\\|IN\\)\\)?\\|LANE\\|OLYORDER\\|R\\(?:ECMODE\\|INIT\\)\\|S\\(?:DUMP\\(?:EACHTURN\\|FR\\(?:AME\\|EQ\\)\\)\\|I\\)\\|TC\\|\\(?:YMUL\\|Z\\(?:INI\\|MUL\\)\\)T\\|[1-4C]\\)\\|R\\(?:5[12]\\|6[12]\\|A\\(?:DIUS\\|N\\(?:DOM\\|GE\\)\\|STER\\)\\|E\\(?:COMBINATION_PROBABILITY\\|F\\(?:ER\\|POS\\)\\|PARTFREQ\\|SET\\)\\|F\\(?:FREQ\\|MAPFN\\|PHI\\)\\|INIT\\|M\\(?:AX\\|IN\\)\\|O\\(?:TATION\\|W\\)\\)\\|S\\(?:AMPLINGS\\|CALABLE\\|E\\(?:ED\\|LECTED\\|QUENCE\\)\\|I\\(?:G\\(?:MA\\(?:P[XYZ]\\|[RTXYZ]\\)?\\|[XY]\\)\\|M\\(?:BIN_CROSSOVER_NU\\|TMPDIR\\)\\)\\|LPTC\\|OL_SYNCH\\|P\\(?:LIT\\|TDUMPFREQ\\)\\|T\\(?:ATDUMPFREQ\\|EP\\(?:SPERTURN\\)?\\|OP\\|RING\\)\\|UPERPOSE\\|YMMETRY\\)\\|T\\(?:A\\(?:BLE\\|U\\)\\|E\\(?:LL\\|MPLATEDIR\\)\\|FALL\\|H\\(?:ETA\\|IN\\|RESHOLD\\)\\|IME\\(?:INTEGRATOR\\)?\\|MULT\\|OL\\(?:ERANCE\\)?\\|PULSEFWHM\\|R\\(?:ACE\\|I\\(?:MCOILTHRESHOLD\\|SE\\)\\)\\|URNS\\|YPE\\|[0O]\\)\\|UPPER\\(?:BOUND\\)?\\|V\\(?:ARIABLE\\|ER\\(?:IFY\\|SION\\)\\|KICK\\|M\\(?:AX\\|IN\\)\\|OLT\\)\\|W\\(?:A\\(?:KEF\\|R[NP]\\)\\|EIGHT\\|IDTH\\|RITETOFILE\\)\\|X\\(?:END\\|M\\(?:A\\|ULT\\)\\|S\\(?:IZE\\|TART\\)\\)\\|Y\\(?:END\\|M\\(?:A\\|ULT\\)\\|S\\(?:IZE\\|TART\\)\\)\\|Z\\(?:0\\|END\\|INIT\\|ST\\(?:ART\\|OP\\)\\)\\|[ABLSW-Z]\\)\\>"
+ '("\\<\\(A\\(?:DD\\|MPLITUDE_MODEL\\|NGLE\\|P\\(?:ERTURE\\|VETO\\)\\|T\\|UTOPHASE\\)\\|B\\(?:BOXINCR\\|C\\(?:FFT[TXYZ]\\|URRENT\\)\\|EAM_\\(?:\\(?:P\\(?:HI\\|R\\)\\|R\\)INIT\\)\\|FREQ\\|IRTH_CONTROL\\|MAX\\|OUNDPDESTROYFQ\\|SCALE\\|Y\\)\\|C\\(?:A\\(?:LLS\\|THTEMP\\)\\|ENTRE\\|HARGE\\|L\\(?:ASS\\|EAR\\)\\|MD\\|O\\(?:EF\\(?:DENOM\\(?:PHI\\)?\\|NUM\\(?:PHI\\)?\\)\\|LUMN\\|N\\(?:DUCT\\|ST\\(?:RAINTS\\|_LENGTH\\)\\|V_HVOL_PROG\\)\\|RR[XYZ]\\)\\|ROSSOVER\\|SRDUMP\\|UTOFF\\(?:LONG\\|P[XYZ]\\|[RXY]\\)\\|YHARMON\\|ZERO\\)\\|D\\(?:ESIGNENERGY\\|K\\(?:1S\\|2S\\|[NS]R\\|[12NS]\\)\\|LAG\\|P\\(?:[HS]I\\)\\|THETA\\|UMP\\(?:_\\(?:DAT\\|FREQ\\|OFFSPRING\\)\\)?\\|V\\(?:ARS\\|OLT\\)\\|[STXYZ]\\)\\|E\\(?:BDUMP\\|CHO\\|KIN\\|L\\(?:ASER\\|EME\\(?:DGE\\|NT\\)\\)\\|MI\\(?:SSION\\(?:MODEL\\|STEPS\\)\\|TTED\\)\\|N\\(?:ABLEHDF5\\|D\\(?:SEQUENCE\\|_\\(?:NORMAL_[XY]\\|POSITION_[XY]\\)\\)\\|ERGY\\)\\|PSILON\\|SCALE\\|VERYSTEP\\|XP\\(?:ECTED_HYPERVOL\\|R\\)\\|[12TXY]\\)\\|F\\(?:E\\|GEOM\\|I\\(?:ELDMAPDIR\\|LE\\|NT\\)\\|MAPFN\\|NAME\\|ORM\\|R\\(?:EQ\\(?:UENCY_MODEL\\)?\\|OM\\)\\|STYPE\\|TOSC\\(?:AMPLITUDE\\|PERIODS\\)\\|ULL\\)\\|G\\(?:A\\(?:MMA\\|P\\(?:WIDTH\\)?\\)\\|E\\(?:\\(?:NE_MUTATION_PROBABILIT\\|OMETR\\)Y\\)\\|REENSF\\)\\|H\\(?:A\\(?:PERT\\|RMON\\(?:IC_NUMBER\\)?\\)\\|GAP\\|KICK\\|YPERVOLREFERENCE\\|[12]\\)\\|I\\(?:DEALIZED\\|MAGENAME\\|N\\(?:FO\\|ITIAL\\(?:\\(?:POPUL\\|_OPTIMIZ\\)ATION\\)\\|PUT\\(?:MOUNITS\\)?\\|TE\\(?:NSITYCUT\\|RPL\\)\\)\\|S_CLOSED\\|TSOLVER\\)\\|K\\(?:0S\\|1S\\|2S\\|3S\\|EYWORD\\|ICK\\|[0-3NS]\\)\\|L\\(?:A\\(?:G\\|SERPROFFN\\|TTICE_\\(?:\\(?:PHI\\|R\\|THETA\\)INIT\\)\\)\\|E\\(?:NGTH\\|VEL\\)\\|O\\(?:GBENDTRAJECTORY\\|WER\\(?:BOUND\\)?\\)\\)\\|M\\(?:A\\(?:SS\\|X\\(?:GENERATIONS\\|ITERS\\|STEPS\\|[RZ]\\)\\)\\|ETHOD\\|IN[RZ]\\|ODE\\|RE[XY]\\|SCAL[XY]\\|UTATION_PROBABILITY\\|[TXY]\\)\\|N\\(?:BIN\\|FREQ\\|LEFT\\|O\\|P\\(?:ART\\|OINTS\\)\\|RIGHT\\|UM\\(?:CELLS\\|_\\(?:COWORKERS\\|IND_GEN\\|MASTERS\\)\\)\\)\\|O\\(?:BJECTIVES\\|FFSET\\(?:P[XYZ]\\|[TXYZ]\\)\\|NE_PILOT_CONVERGE\\|P\\(?:CHARGE\\|MASS\\|YIELD\\)\\|R\\(?:DER\\|I\\(?:\\(?:ENTATIO\\|GI\\)N\\)\\)\\|UT\\(?:DIR\\|FN\\|PUT\\)\\)\\|P\\(?:A\\(?:R\\(?:FFT[TXY]\\|TICLE\\(?:MATTERINTERACTION\\)?\\)\\|TTERN\\)\\|DIS\\|HI\\(?:0\\|INIT\\|M\\(?:AX\\|IN\\)\\)?\\|LANE\\|OLYORDER\\|R\\(?:ECMODE\\|INIT\\)\\|S\\(?:DUMP\\(?:EACHTURN\\|FR\\(?:AME\\|EQ\\)\\)\\|I\\)\\|TC\\|\\(?:YMUL\\|Z\\(?:INI\\|MUL\\)\\)T\\|[1-4C]\\)\\|R\\(?:5[12]\\|6[12]\\|A\\(?:DIUS\\|N\\(?:DOM\\|GE\\)\\|STER\\)\\|E\\(?:COMBINATION_PROBABILITY\\|F\\(?:ER\\|POS\\)\\|PARTFREQ\\|SET\\)\\|F\\(?:FREQ\\|MAPFN\\|PHI\\)\\|INIT\\|M\\(?:AX\\|IN\\)\\|O\\(?:TATION\\|W\\)\\)\\|S\\(?:AMPLINGS\\|CALABLE\\|E\\(?:ED\\|LECTED\\|QUENCE\\)\\|I\\(?:G\\(?:MA\\(?:P[XYZ]\\|[RTXYZ]\\)?\\|[XY]\\)\\|M\\(?:BIN_CROSSOVER_NU\\|TMPDIR\\)\\)\\|LPTC\\|OL_SYNCH\\|P\\(?:LIT\\|TDUMPFREQ\\)\\|T\\(?:A\\(?:RTPOPULATION\\|TDUMPFREQ\\)\\|EP\\(?:SPERTURN\\)?\\|OP\\|RING\\)\\|UPERPOSE\\|YMMETRY\\)\\|T\\(?:A\\(?:BLE\\|U\\)\\|E\\(?:LL\\|MPLATEDIR\\)\\|FALL\\|H\\(?:ETA\\|IN\\|RESHOLD\\)\\|IME\\(?:INTEGRATOR\\)?\\|MULT\\|OL\\(?:ERANCE\\)?\\|PULSEFWHM\\|R\\(?:ACE\\|I\\(?:MCOILTHRESHOLD\\|SE\\)\\)\\|URNS\\|YPE\\|[0O]\\)\\|UPPER\\(?:BOUND\\)?\\|V\\(?:ARIABLE\\|ER\\(?:IFY\\|SION\\)\\|KICK\\|M\\(?:AX\\|IN\\)\\|OLT\\)\\|W\\(?:A\\(?:KEF\\|R[NP]\\)\\|EIGHT\\|IDTH\\|RITETOFILE\\)\\|X\\(?:END\\|M\\(?:A\\|ULT\\)\\|S\\(?:IZE\\|TART\\)\\)\\|Y\\(?:END\\|M\\(?:A\\|ULT\\)\\|S\\(?:IZE\\|TART\\)\\)\\|Z\\(?:0\\|END\\|INIT\\|ST\\(?:ART\\|OP\\)\\)\\|[ABLSW-Z]\\)\\>"
   . font-lock-variable-name-face)
   )
   "Highlighting expressions for OPAL mode (parameters).")