diff --git a/source/python/mods/tools.py b/source/python/mods/tools.py
index ac2c6516ca2b9514c84d46251e94a3f247885d27..6cbc2f1ac144e31b523898a828693ad1a7dd2a5b 100644
--- a/source/python/mods/tools.py
+++ b/source/python/mods/tools.py
@@ -166,7 +166,7 @@ def get_cmdline_arguments():
     parser.add_argument("--outputdir", dest="outputdir",
                         type=none_or_str, default=None,
                         help="root directory for storing output files")
-    parser.add_argument("--flexpart_root_scripts", dest="flexpart_root_scripts",
+    parser.add_argument("--flexpartdir", dest="flexpartdir",
                         type=none_or_str, default=None,
                         help="FLEXPART root directory (to find grib2flexpart \
                         and COMMAND file)\n Normally flex_extract resides in \
@@ -658,7 +658,7 @@ def get_informations(filename):
         'longitudeOfLastGridPointInDegrees', 'jDirectionIncrementInDegrees',
         'iDirectionIncrementInDegrees', 'missingValue'
     '''
-    from eccodes import *
+    from eccodes import codes_grib_new_from_file, codes_get, codes_release
 
     data = {}
 
@@ -693,15 +693,11 @@ def get_informations(filename):
     return data
 
 
-def get_dimensions(c, info):
+def get_dimensions(info, purefc, dtime, index_vals, start_date, end_date):
     '''This function specifies the correct dimensions for x, y and t.
 
     Parameters
     ----------
-    c : :obj:`ControlFile`
-        Contains all the parameters of CONTROL file and
-        command line.
-
     info : :obj:`dictionary`
         Contains basic informations of the ECMWF grib files, e.g.
         'Ni', 'Nj', 'latitudeOfFirstGridPointInDegrees',
@@ -709,6 +705,26 @@ def get_dimensions(c, info):
         'longitudeOfLastGridPointInDegrees', 'jDirectionIncrementInDegrees',
         'iDirectionIncrementInDegrees', 'missingValue'
 
+    purefc : :obj:`integer`
+        Switch for definition of pure forecast mode or not.
+
+    dtime : :obj:`string`
+        Time step in hours.
+
+    index_vals : :obj:`list`
+        Contains the values from the keys used for a distinct selection
+        of grib messages in processing  the grib files.
+        Content looks like e.g.:
+        index_vals[0]: ('20171106', '20171107', '20171108') ; date
+        index_vals[1]: ('0', '1200', '1800', '600') ; time
+        index_vals[2]: ('0', '12', '3', '6', '9') ; stepRange
+
+    start_date : :obj:`string`
+        The start date of the retrieval job.
+
+    end_date : :obj:`string`
+        The end date of the retrieval job.
+
     Return
     ------
     (ix, jy, it) : :obj:`tuple` of :obj:`integer`
@@ -719,9 +735,10 @@ def get_dimensions(c, info):
 
     jy = info['Nj']
 
-    start = datetime.strptime(c.start_date, '%Y%m%d')
-    end = datetime.strptime(c.end_date, '%Y%m%d')
-    it = ((end - start).days + 1) * 24/int(c.dtime)
-    print 'it', it, (end - start).days, 24/int(c.dtime)
+    if not purefc:
+        it = ((end_date - start_date).days + 1) * 24/int(dtime)
+    else:
+        # #no of step * #no of times * #no of days
+        it = len(index_vals[2]) * len(index_vals[1]) * len(index_vals[0])
 
     return (ix, jy, it)