Index: Source/Python/Mods/tools.py
===================================================================
--- Source/Python/Mods/tools.py	(revision d1bfa247a8f3e942f37f92ed1ecacc13220fa8c8)
+++ Source/Python/Mods/tools.py	(revision 8209738749e51ca1a930a71db547bfca4a26820b)
@@ -18,5 +18,5 @@
 #        - added documentation
 #        - moved all non class methods from former file Flexparttools in here
-#        - seperated args and control interpretation
+#        - separated args and control interpretation
 #        - added functions get_list_as_string, read_ecenv, send_mail, make_dir,
 #          put_file_to_ecserver, submit_job_to_ecserver, get_informations,
@@ -118,6 +118,6 @@
 
 def none_or_str(value):
-    '''Converts the input string into pythons None-type if the string
-    contains string "None".
+    '''Converts the input string into Pythons None type if it
+    contains the string "None".
 
     Parameters
@@ -130,5 +130,5 @@
     None or value:
         Return depends on the content of the input value. If it was "None",
-        then the python type None is returned. Otherwise the string itself.
+        then the Python type None is returned, otherwise the string itself.
     '''
     if value == 'None':
@@ -137,6 +137,6 @@
 
 def none_or_int(value):
-    '''Converts the input string into pythons None-type if the string
-    contains string "None". Otherwise it is converted to an integer value.
+    '''Converts the input string into Pythons None-type if it
+    contains string "None"; otherwise it is converted to an integer value.
 
     Parameters
@@ -158,5 +158,5 @@
 def get_cmdline_args():
     '''Decomposes the command line arguments and assigns them to variables.
-    Apply default values for non mentioned arguments.
+    Apply default values for arguments not present.
 
     Parameters
@@ -166,5 +166,5 @@
     ------
     args : Namespace
-        Contains the commandline arguments from script/program call.
+        Contains the command line arguments from the script / program call.
     '''
 
@@ -191,5 +191,5 @@
     parser.add_argument("--basetime", dest="basetime",
                         type=none_or_int, default=None,
-                        help="base such as 0 or 12 (for half day retrievals)")
+                        help="base time such as 0 or 12 (for half day retrievals)")
     parser.add_argument("--step", dest="step",
                         type=none_or_str, default=None,
@@ -200,24 +200,24 @@
     parser.add_argument("--area", dest="area",
                         type=none_or_str, default=None,
-                        help="area defined as north/west/south/east")
+                        help="area, defined by north/west/south/east")
 
     # some switches
     parser.add_argument("--debug", dest="debug",
                         type=none_or_int, default=None,
-                        help="debug mode - leave temporary files intact")
+                        help="debug mode - temporary files will be conserved")
     parser.add_argument("--oper", dest="oper",
                         type=none_or_int, default=None,
-                        help='operational mode - prepares dates with '
+                        help='operational mode - prepares dates from '
                         'environment variables')
     parser.add_argument("--request", dest="request",
                         type=none_or_int, default=None,
-                        help="list all mars requests in file mars_requests.dat")
+                        help="list all MARS requests in file mars_requests.dat")
     parser.add_argument("--public", dest="public",
                         type=none_or_int, default=None,
-                        help="public mode - retrieves the public datasets")
+                        help="public mode - retrieves public datasets")
     parser.add_argument("--rrint", dest="rrint",
                         type=none_or_int, default=None,
-                        help='Selection of old or new precipitation '
-                        'interpolation:\n'
+                        help='Selection of old or new  '
+                        'interpolation method for precipitation:\n'
                         '     0 - old method\n'
                         '     1 - new method (additional subgrid points)')
@@ -226,15 +226,15 @@
     parser.add_argument("--inputdir", dest="inputdir",
                         type=none_or_str, default=None,
-                        help='Path to the temporary directory for the '
-                        'retrieval grib files and other processing files.')
+                        help='Path to temporary directory for '
+                        'retrieved grib files and other processing files.')
     parser.add_argument("--outputdir", dest="outputdir",
                         type=none_or_str, default=None,
-                        help='Path to the final directory where the final '
-                        'FLEXPART ready input files are stored.')
+                        help='Path to final directory where '
+                        'FLEXPART input files will be stored.')
 
     # this is only used by prepare_flexpart.py to rerun a postprocessing step
     parser.add_argument("--ppid", dest="ppid",
                         type=none_or_str, default=None,
-                        help='This is the specify parent process id of a '
+                        help='This is the specify the parent process id of a '
                         'single flex_extract run to identify the files. '
                         'It is the second number in the GRIB files.')
@@ -243,10 +243,11 @@
     parser.add_argument("--job_template", dest='job_template',
                         type=none_or_str, default="job.temp",
-                        help='The job template file which are adapted to be '
-                        'submitted to the batch system on ECMWF server.')
+                        help='Job template file. Will be used for submission '
+                        'to the batch system on the ECMWF server after '
+                        'modification.')
     parser.add_argument("--queue", dest="queue",
                         type=none_or_str, default=None,
-                        help='The ECMWF server name for submission of the '
-                        'job script to the batch system '
+                        help='The name of the ECMWF server name where the'
+                        'job script is to be submitted ' 
                         '(e.g. ecgate | cca | ccb)')
 
@@ -289,5 +290,5 @@
 
     It keeps the final FLEXPART input files if program runs without
-    ECMWF Api and keywords "ectrans" or "ecstorage" are set to "1".
+    ECMWF API and keywords "ectrans" or "ecstorage" are set to "1".
 
     Parameters
@@ -410,5 +411,5 @@
 
     This method combines the single characters of the passed arguments
-    with each other. So that each character of each argument value
+    with each other in a way that each character of each argument value
     will be combined with each character of the other arguments as a tuple.
 
@@ -519,7 +520,6 @@
     pars : str
         Addpar argument from CONTROL file in the format of
-        parameter names instead of ids. The parameter short
-        names are sepearted with "/" and they are passed as
-        one single string.
+        parameter names instead of IDs. The parameter short
+        names are separated by "/" and passed as one single string.
 
     table : dict
@@ -555,5 +555,5 @@
 
 def to_param_id_with_tablenumber(pars, table):
-    '''Transform parameter names to parameter ids and add table id.
+    '''Transform parameter names to parameter IDs and add table ID.
 
     Conversion with ECMWF grib table 128.
@@ -563,7 +563,6 @@
     pars : str
         Addpar argument from CONTROL file in the format of
-        parameter names instead of ids. The parameter short
-        names are sepearted with "/" and they are passed as
-        one single string.
+        parameter names instead of ID. The parameter short
+        names are separated by "/" and passed as one single string.
 
     table : dict
@@ -576,5 +575,5 @@
     spar : str
         List of addpar parameters from CONTROL file transformed to
-        parameter ids in the format of integer.
+        parameter IDs in the format of integer.
     '''
     if not pars:
@@ -598,5 +597,6 @@
 
 def get_list_as_string(list_obj, concatenate_sign=', '):
-    '''Converts a list of arbitrary content into a single string.
+    '''Converts a list of arbitrary content into a single string using a given
+    concatenation character.
 
     Parameters
@@ -624,6 +624,6 @@
     '''Creates a directory.
 
-    It gives a warning if the directory already exists and skips process.
-    The program stops only if there is another problem.
+    If the directory already exists, an information is printed and the creation 
+    skipped. The program stops only if there is another problem.
 
     Parameters
@@ -641,5 +641,5 @@
         # errno.EEXIST = directory already exists
         if e.errno == errno.EEXIST:
-            print('WARNING: Directory {0} already exists!'.format(directory))
+            print('INFORMATION: Directory {0} already exists!'.format(directory))
         else:
             raise # re-raise exception if a different error occured
@@ -720,5 +720,5 @@
     ------
     job_id : int
-        The id number of the job as a reference at the ecmwf server.
+        The id number of the job as a reference at the ECMWF server.
     '''
 
@@ -732,5 +732,5 @@
 
         print('\n... Do you have a valid ecaccess certification key?')
-        sys.exit('... ECACCESS-JOB-SUBMIT FAILED!')
+        sys.exit('... ecaccess-job-submit FAILED!')
     except OSError as e:
         print('... ERROR CODE: ' + str(e.errno))
@@ -738,5 +738,5 @@
 
         print('\n... Most likely the ECACCESS library is not available!')
-        sys.exit('... ECACCESS-JOB-SUBMIT FAILED!')
+        sys.exit('... ecaccess-job-submit FAILED!')
 
     return job_id.decode()
@@ -744,8 +744,8 @@
 
 def get_informations(filename):
-    '''Gets basic information from an example grib file.
-
-    These information are important for later use and the
-    initialization of numpy arrays for data storing.
+    '''Extracts basic information from a sample grib file.
+
+    This information is needed for later use and the
+    initialization of numpy arrays where data are stored.
 
     Parameters
@@ -768,5 +768,5 @@
 
     # --- open file ---
-    print("Opening file for getting information data --- %s" % filename)
+    print("Opening grib file for extraction of information --- %s" % filename)
     with open(filename, 'rb') as f:
         # load first message from file
@@ -785,5 +785,5 @@
                ]
 
-        print('\nInformations are: ')
+        print('\nInformation extracted: ')
         for key in keys:
             # Get the value of the key in a grib message.
@@ -798,5 +798,5 @@
 
 def get_dimensions(info, purefc, dtime, index_vals, start_date, end_date):
-    '''This function specifies the correct dimensions for x, y and t.
+    '''This function specifies the correct dimensions for x, y, and t.
 
     Parameters
@@ -817,5 +817,5 @@
     index_vals : list of list of str
         Contains the values from the keys used for a distinct selection
-        of grib messages in processing  the grib files.
+        of GRIB messages in processing the grib files.
         Content looks like e.g.:
         index_vals[0]: ('20171106', '20171107', '20171108') ; date
@@ -849,5 +849,5 @@
 
 def execute_subprocess(cmd_list, error_msg='SUBPROCESS FAILED!'):
-    '''Executes a command line instruction via a subprocess.
+    '''Executes a command via a subprocess.
 
     Error handling is done if an error occures.
@@ -856,14 +856,13 @@
     ----------
     cmd_list : list of str
-        A list of the components for the command line execution. Each
-        list entry is a single part of the command which is seperated from
-        the rest by a blank space.
-        E.g. ['mv', file1, file2]
+        A list of the components for the command line execution. 
+        They will be concatenated with blank space for the command 
+        to be submitted, like ['mv', file1, file2] for mv file1 file2.
 
     Return
     ------
     error_msg : str, optional
-        The possible error message if the subprocess failed.
-        By default it will just tell "SUBPROCESS FAILED!".
+        Error message if the subprocess fails.
+        By default it will just say "SUBPROCESS FAILED!".
     '''
 
