Index: source/python/classes/ControlFile.py
===================================================================
--- source/python/classes/ControlFile.py	(revision d8785f85ebf5d00c87a7a37eec240b966a17d48d)
+++ source/python/classes/ControlFile.py	(revision 2d56c04d12d1df747e1122329edf58c18fc28eb5)
@@ -327,6 +327,6 @@
         # otherwise program is not allowed to run
         if not self.start_date:
-            print('start_date specified neither in command line nor \
-                   in CONTROL file ' +  self.controlfile)
+            print('start_date specified neither in command line nor '
+                  'in CONTROL file ' +  self.controlfile)
             print('Try "' + sys.argv[0].split('/')[-1] +
                   ' -h" to print usage information')
@@ -365,14 +365,4 @@
             print('Check parameter "LEVEL" or the max level of "LEVELIST"!')
             sys.exit(1)
-
-        # if area was provided (only from commandline)
-        # decompose area into its 4 components
-        if self.area:
-            components = self.area.split('/')
-            # convert float to integer coordinates
-            if '.' in self.area:
-                components = [str(int(float(item) * 1000))
-                              for i, item in enumerate(components)]
-            self.upper, self.left, self.lower, self.right = components
 
         # prepare step list if "/" signs are found
@@ -386,6 +376,6 @@
             elif 'to' in self.step.lower() and 'by' not in self.step.lower():
                 my_error(self.mailfail, self.step + ':\n' +
-                         'if "to" is used in steps parameter, \
-                         please use "by" as well')
+                         'if "to" is used in steps parameter, '
+                         'please use "by" as well')
             else:
                 self.step = steps
@@ -427,8 +417,8 @@
            not self.gateway or not self.destination or \
            not self.ecuid or not self.ecgid:
-            print('\nEnvironment variables GATEWAY, DESTINATION, ECUID and \
-                   ECGID were not set properly!')
-            print('Please check for existence of file "ECMWF_ENV" in the \
-                   python directory!')
+            print('\nEnvironment variables GATEWAY, DESTINATION, ECUID and '
+                  'ECGID were not set properly!')
+            print('Please check for existence of file "ECMWF_ENV" in the '
+                  'python directory!')
             sys.exit(1)
 
@@ -484,4 +474,31 @@
             print('Use default value "12" for flux forecast!')
             self.accmaxstep='12'
+
+        # if area was provided (only from commandline)
+        # decompose area into its 4 components
+        if self.area:
+            components = self.area.split('/')
+            self.upper, self.left, self.lower, self.right = components
+
+        # convert grid and area components to correct format and input
+        if 'N' in self.grid:  # Gaussian output grid
+            self.area = 'G'
+        else:
+            # check on grid format
+            if float(self.grid) / 100. >= 0.5:
+                # grid is defined in 1/1000 degrees; old method
+                self.grid = '{}/{}'.format(float(self.grid) / 1000.,
+                                           float(self.grid) / 1000.)
+                self.area = '{}/{}/{}/{}'.format(float(self.upper) / 1000.,
+                                                 float(self.left) / 1000.,
+                                                 float(self.lower) / 1000.,
+                                                 float(self.right) / 1000.)
+            elif float(self.grid) / 100. < 0.5:
+                # grid is defined in normal degree; new method
+                self.grid = '{}/{}'.format(float(self.grid), float(self.grid))
+                self.area = '{}/{}/{}/{}'.format(float(self.upper),
+                                                 float(self.left),
+                                                 float(self.lower),
+                                                 float(self.right))
 
         return
Index: source/python/classes/EcFlexpart.py
===================================================================
--- source/python/classes/EcFlexpart.py	(revision d43706b7329ae34407bd34cd83de48cb3ba783f5)
+++ source/python/classes/EcFlexpart.py	(revision 2d56c04d12d1df747e1122329edf58c18fc28eb5)
@@ -194,15 +194,6 @@
         self.glevelist = '1/to/' + c.level
         self.gaussian = c.gaussian
-
-        if 'N' in c.grid:  # Gaussian output grid
-            self.grid = c.grid
-            self.area = 'G'
-        else:
-            self.grid = '{}/{}'.format(int(c.grid) / 1000., int(c.grid) / 1000.)
-            self.area = '{}/{}/{}/{}'.format(int(c.upper) / 1000.,
-                                             int(c.left) / 1000.,
-                                             int(c.lower) / 1000.,
-                                             int(c.right) / 1000.)
-
+        self.grid = c.grid
+        self.area = c.area
         self.outputfilelist = []
 
@@ -1107,4 +1098,7 @@
                          is set to 1 in CONTROL file')
 
+            # write out all output to log file before starting fortran programm
+            sys.stdout.flush()
+
             # Fortran program creates file fort.15 (with u,v,etadot,t,sp,q)
             p = subprocess.check_call([os.path.join(
Index: source/python/mods/tools.py
===================================================================
--- source/python/mods/tools.py	(revision 786cfd6a73b1cabe8b02b1e0e97f255550d30c6a)
+++ source/python/mods/tools.py	(revision 2d56c04d12d1df747e1122329edf58c18fc28eb5)
@@ -106,6 +106,4 @@
         return True
     return False
-
-
 
 def get_cmdline_arguments():
