Index: Source/Python/Mods/checks.py
===================================================================
--- Source/Python/Mods/checks.py	(revision 5606fc9016f687817ac735fc0bbcf2f26d9f7039)
+++ Source/Python/Mods/checks.py	(revision a676cf743d0a6b0d6132985caac376d371883c70)
@@ -93,5 +93,5 @@
         else:
             raise ValueError('GRID parameter contains two '
-                             'different values: %s' (grid))
+                             'different values: %s', grid)
     # # determine grid format
     # if float(grid) / 100. >= 0.5:
@@ -236,5 +236,4 @@
     return levelist, level
 
-
 def check_ppid(c, ppid):
     '''Sets the current PPID.
@@ -262,5 +261,4 @@
     return
 
-
 def check_purefc(ftype):
     '''Check for a pure forecast mode.
@@ -283,5 +281,4 @@
 
     return 0
-
 
 def check_step(step):
@@ -404,12 +401,7 @@
         Valid values are hours (HH) from forecast base time.
     '''
-    if not len(ftype) == len(ftime) == len(steps):
-        raise ValueError('ERROR: The number of field types, times and steps '
-                         'are not the same! Please check the settings in the '
-                         'CONTROL file!')
-
     # if pure forecast is selected and only one field type/time is set
     # prepare a complete list of type/time/step combination upto maxstep
-    if len(ftype) == 1 and purefc:
+    if len(ftime) == 1 and purefc:
         nftype = []
         nsteps = []
@@ -421,4 +413,8 @@
         return nftype, nftime, nsteps
 
+    if not len(ftype) == len(ftime) == len(steps):
+        raise ValueError('ERROR: The number of field types, times and steps '
+                         'are not the same! Please check the settings in the '
+                         'CONTROL file!')
     return ftype, ftime, steps
 
@@ -605,5 +601,5 @@
     return maxstep
 
-def check_basetime(basetime):
+def check_basetime(basetime, time, purefc):
     '''Check if basetime is set and contains one of the two
     possible values (0, 12).
@@ -615,4 +611,11 @@
         retrieved.
 
+    time : str
+        The time in hours of the field.
+
+    purefc : int
+        1 if pure forecasts are to be retrieved. 0 if there are
+        analysis fields in between.
+
     Return
     ------
@@ -620,4 +623,7 @@
         The time for a half day retrieval. The 12 hours upfront are to be
         retrieved.
+
+    time : str or list of str
+        The time in hours of the field.
     '''
     if basetime is not None:
@@ -626,5 +632,7 @@
             raise ValueError('ERROR: Basetime has an invalid value '
                              '-> {}'.format(str(basetime)))
-    return basetime
+        if purefc:
+            time = str(basetime)
+    return basetime, time
 
 def check_request(request, marsfile):
@@ -707,6 +715,5 @@
     return acctype
 
-
-def check_acctime(acctime, marsclass, purefc, time):
+def check_acctime(acctime, marsclass, purefc, time, basetime, oper):
     '''Guarantees that the accumulation forecast times were set.
 
@@ -725,4 +732,12 @@
         Switch for definition of pure forecast mode or not.
 
+    basetime : int
+        The time for a half day retrieval. The 12 hours upfront are to be
+        retrieved.
+
+    oper : int
+        Switch to prepare the operational job script. Start date, end date and
+        basetime will be prepared with environment variables.
+
     Return
     ------
@@ -730,4 +745,7 @@
         The starting time for the accumulated forecasts.
     '''
+
+    if acctime and basetime and oper:
+        return basetime
 
     if not acctime:
@@ -817,5 +835,5 @@
         if '/' in addpar:
             parlist = addpar.split('/')
-            parlist = [p for p in parlist if p is not '']
+            parlist = [p for p in parlist if p != '']
         else:
             parlist = [addpar]
@@ -824,5 +842,4 @@
 
     return addpar
-
 
 def check_job_chunk(job_chunk):
@@ -853,5 +870,4 @@
 
     return job_chunk
-
 
 def check_number(number):
