diff --git a/source/python/classes/ControlFile.py b/source/python/classes/ControlFile.py
index 97e6989b336ac4d35730e424da7e82aac7c060f6..21c12e270f8f21d55c9f500a3121b028db7a487c 100644
--- a/source/python/classes/ControlFile.py
+++ b/source/python/classes/ControlFile.py
@@ -179,9 +179,17 @@ class ControlFile(object):
         from mods.tools import my_error
 
         # read whole CONTROL file
-        with open(os.path.join(_config.PATH_CONTROLFILES,
-                               self.controlfile)) as f:
-            fdata = f.read().split('\n')
+
+        try:
+            with open(os.path.join(_config.PATH_CONTROLFILES,
+                                   self.controlfile)) as f:
+                fdata = f.read().split('\n')
+        except IOError:
+            print('Could not read CONTROL file "' + args.controlfile + '"')
+            print('Either it does not exist or its syntax is wrong.')
+            print('Try "' + sys.argv[0].split('/')[-1] + \
+                      ' -h" to print usage information')
+            sys.exit(1)
 
         # go through every line and store parameter
         for ldata in fdata:
diff --git a/source/python/classes/EcFlexpart.py b/source/python/classes/EcFlexpart.py
index 6f4fbaec9372c3f9b0ea550f46b7371da5431ecd..cd9f8e9a3d354be99b7586c674304f551f7cde48 100644
--- a/source/python/classes/EcFlexpart.py
+++ b/source/python/classes/EcFlexpart.py
@@ -806,7 +806,7 @@ class EcFlexpart(object):
             of "date", "time" and "stepRange" values. This is used to iterate
             over all messages in each grib file which were passed through the
             parameter "inputfiles" to seperate specific parameters into fort.*
-            files. Afterwards the FORTRAN program Convert2 is called to convert
+            files. Afterwards the FORTRAN program is called to convert
             the data fields all to the same grid and put them in one file
             per unique time step (combination of "date", "time" and
             "stepRange").
@@ -865,7 +865,7 @@ class EcFlexpart(object):
             #             (  date    ,time, step)
             # per date e.g. time = 0, 1200
             # per time e.g. step = 3, 6, 9, 12
-            # flag for Fortran program CONVERT2 and file merging
+            # flag for Fortran program and file merging
             convertFlag = False
             print('current prod: ', prod)
             # e.g. prod = ('20170505', '0', '12')
@@ -883,8 +883,8 @@ class EcFlexpart(object):
             if gid is not None:
                 # Combine all temporary data files into final grib file if
                 # gid is at least one time not None. Therefore set convertFlag
-                # to save information. The fortran program CONVERT2 is also
-                # only done if convertFlag is True
+                # to save information. The Fortran program is also
+                # only executed if convertFlag is True
                 convertFlag = True
                 # remove old fort.* files and open new ones
                 # they are just valid for a single product
@@ -996,7 +996,7 @@ class EcFlexpart(object):
             for f in fdict.values():
                 f.close()
 
-            # call for CONVERT2 if flag is True
+            # call for Fortran program if flag is True
             if convertFlag:
                 pwd = os.getcwd()
                 os.chdir(c.inputdir)
@@ -1008,9 +1008,9 @@ class EcFlexpart(object):
                              is set to 1 in CONTROL file')
 
                 # create the corresponding output file fort.15
-                # (generated by CONVERT2) + fort.16 (paramId 167 and 168)
-                p = subprocess.check_call([os.path.join(c.exedir, 'CONVERT2')],
-                                          shell=True)
+                # (generated by Fortran program) + fort.16 (paramId 167 and 168)
+                p = subprocess.check_call([os.path.join(
+                    c.exedir, _config.FORTRAN_EXECUTABLE)], shell=True)
                 os.chdir(pwd)
 
                 # create final output filename, e.g. EN13040500 (ENYYMMDDHH)
diff --git a/source/python/install.py b/source/python/install.py
index 9b0142d1929a4c1da4dbd6fe94906e5f955be857..da9ac582c58c3025d37650fac780a53ccab6a405 100755
--- a/source/python/install.py
+++ b/source/python/install.py
@@ -77,19 +77,8 @@ def main():
         <nothing>
     '''
 
-    #os.chdir(_config.PATH_LOCAL_PYTHON)
-
     args = get_install_cmdline_arguments()
-
-    try:
-        c = ControlFile(args.controlfile)
-    except IOError:
-        print('Could not read CONTROL file "' + args.controlfile + '"')
-        print('Either it does not exist or its syntax is wrong.')
-        print('Try "' + sys.argv[0].split('/')[-1] +
-              ' -h" to print usage information')
-        exit(1)
-
+    c = ControlFile(args.controlfile)
     c.assign_args_to_control(args)
     c.check_install_conditions()
 
diff --git a/source/python/mods/get_mars_data.py b/source/python/mods/get_mars_data.py
index 1ccdfa972088d84bf9dbd230b625c6d1c481954f..6d9677efc646143f1ef7ea4d65df601a512d2f13 100755
--- a/source/python/mods/get_mars_data.py
+++ b/source/python/mods/get_mars_data.py
@@ -78,15 +78,7 @@ def main():
     '''
 
     args = get_cmdline_arguments()
-
-    try:
-        c = ControlFile(args.controlfile)
-    except IOError:
-        print('Could not read CONTROL file "' + args.controlfile + '"')
-        print('Either it does not exist or its syntax is wrong.')
-        print('Try "' + sys.argv[0].split('/')[-1] + \
-              ' -h" to print usage information')
-        sys.exit(1)
+    c = ControlFile(args.controlfile)
 
     env_parameter = read_ecenv(_config.PATH_ECMWF_ENV)
     c.assign_args_to_control(args, env_parameter)
diff --git a/source/python/mods/prepare_flexpart.py b/source/python/mods/prepare_flexpart.py
index 4ac0af8fe37d7f4be3e7d4f7975f6b91e033470d..2c28e0786fb33d91836c49bd50ec6a7ebe86865c 100755
--- a/source/python/mods/prepare_flexpart.py
+++ b/source/python/mods/prepare_flexpart.py
@@ -88,15 +88,7 @@ def main():
     '''
 
     args = get_cmdline_arguments()
-
-    try:
-        c = ControlFile(args.controlfile)
-    except IOError:
-        print('Could not read CONTROL file "' + args.controlfile + '"')
-        print('Either it does not exist or its syntax is wrong.')
-        print('Try "' + sys.argv[0].split('/')[-1] + \
-              ' -h" to print usage information')
-        sys.exit(1)
+    c = ControlFile(args.controlfile)
 
     env_parameter = read_ecenv(_config.PATH_ECMWF_ENV)
     c.assign_args_to_control(args, env_parameter)
diff --git a/source/python/submit.py b/source/python/submit.py
index 9819583fe2d42f975612fb724a20ac1850cfe9c6..acd69dcd17e003d926259693163b19b01d0ad83e 100755
--- a/source/python/submit.py
+++ b/source/python/submit.py
@@ -76,15 +76,7 @@ def main():
     '''
 
     args = get_cmdline_arguments()
-
-    try:
-        c = ControlFile(args.controlfile)
-    except IOError:
-        print('Could not read CONTROL file "' + args.controlfile + '"')
-        print('Either it does not exist or its syntax is wrong.')
-        print('Try "' + sys.argv[0].split('/')[-1] + \
-              ' -h" to print usage information')
-        sys.exit(1)
+    c = ControlFile(args.controlfile)
 
     env_parameter = read_ecenv(_config.PATH_ECMWF_ENV)
     c.assign_args_to_control(args)
@@ -94,7 +86,7 @@ def main():
     # on local side
     # on ECMWF server this would also be the local side
     called_from_dir = os.getcwd()
-    if args.queue is None:
+    if not args.queue:
         if c.inputdir[0] != '/':
             c.inputdir = os.path.join(called_from_dir, c.inputdir)
         if c.outputdir[0] != '/':