Index: source/python/classes/ControlFile.py
===================================================================
--- source/python/classes/ControlFile.py	(revision 631ba13f7fac01d7a39c94b584498f6683aa7dee)
+++ source/python/classes/ControlFile.py	(revision 97f4f4c5a73cb9dc0b6c44b3e3a1134051a3b74e)
@@ -61,4 +61,5 @@
 import _config
 from mods.tools import my_error, silent_remove
+from mods.checks import check_grid_area
 
 # ------------------------------------------------------------------------------
@@ -475,30 +476,37 @@
             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
+
+        self.grid, self.area = check_grid_area(self.grid, self.area,
+                                               self.upper, self.lower,
+                                               self.left, self.right)
+
+
 
         # 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))
+        #if 'N' in self.grid:  # Gaussian output grid
+        #    self.area = 'G'
+        # else:
+            # if '/' in self.grid:
+                # gridx, gridy = self.grid.split('/')
+                # if gridx == gridy:
+                    # self.grid = gridx
+
+
+            # # check on grid format
+            # if float(self.grid) / 100. >= 0.5:
+                # # grid is defined in 1/1000 degrees; old format
+                # 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 format
+                # 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/mods/checks.py
===================================================================
--- source/python/mods/checks.py	(revision 97f4f4c5a73cb9dc0b6c44b3e3a1134051a3b74e)
+++ source/python/mods/checks.py	(revision 97f4f4c5a73cb9dc0b6c44b3e3a1134051a3b74e)
@@ -0,0 +1,88 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+##*******************************************************************************
+# @Author: Anne Philipp (University of Vienna)
+#
+# @Date: November 2018
+#
+# @Change History:
+#
+# @License:
+#    (C) Copyright 2014-2018.
+#
+#    This software is licensed under the terms of the Apache Licence Version 2.0
+#    which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
+#
+# @Modul Description:
+#
+#
+# @Module Content:
+
+#
+#*******************************************************************************
+
+# ------------------------------------------------------------------------------
+# MODULES
+# ------------------------------------------------------------------------------
+
+
+# ------------------------------------------------------------------------------
+# FUNCTIONS
+# ------------------------------------------------------------------------------
+
+
+def check_grid_area(grid, area, upper, lower, left , right):
+    '''
+
+
+    '''
+    # if area was provided
+    # decompose area into its 4 components
+    if area:
+        components = area.split('/')
+        upper, left, lower, right = components
+
+    if 'N' in grid:  # Gaussian output grid
+        area = 'G'
+        return grid, area
+
+    if '/' in grid:
+        gridx, gridy = grid.split('/')
+        if gridx == gridy:
+            grid = gridx
+        else:
+            raise ValueError('GRID parameter contains two values '
+                             'which are unequal %s' (grid))
+    # determine grid format
+    if float(grid) / 100. >= 0.5:
+        # grid is defined in 1/1000 degrees; old format
+        grid = '{}/{}'.format(float(grid) / 1000.,
+                              float(grid) / 1000.)
+    elif float(grid) / 100. < 0.5:
+        # grid is defined in normal degree; new format
+        grid = '{}/{}'.format(float(grid), float(grid))
+
+    # determine area format
+    if (float(upper) / 1000. >= 0.05 and
+        float(lower) / 1000. >= 0.05 and
+        float(left) / 1000. >= 0.05 and
+        float(right) / 1000. >= 0.05):
+        # area is defined in 1/1000 degrees; old format
+        area = '{}/{}/{}/{}'.format(float(upper) / 1000.,
+                                    float(left) / 1000.,
+                                    float(lower) / 1000.,
+                                    float(right) / 1000.)
+    elif (float(upper) / 1000. < 0.05 and
+          float(lower) / 1000. < 0.05 and
+          float(left) / 1000. < 0.05 and
+          float(right) / 1000. < 0.05):
+        # area is already in new format
+        area = '{}/{}/{}/{}'.format(float(upper),
+                                    float(left),
+                                    float(lower),
+                                    float(right))
+    else:
+        raise ValueError('The area components have different '
+                         'formats: %s ' (area))
+
+    return grid, area
Index: source/python/mods/tools.py
===================================================================
--- source/python/mods/tools.py	(revision b2e95c3d84f5536fde70b9f53b9aaac85422f996)
+++ source/python/mods/tools.py	(revision 97f4f4c5a73cb9dc0b6c44b3e3a1134051a3b74e)
@@ -99,5 +99,4 @@
         return None
     return int(value)
-
 
 def get_cmdline_arguments():
