Index: issm/trunk/test/NightlyRun/runme.py
===================================================================
--- issm/trunk/test/NightlyRun/runme.py	(revision 25836)
+++ issm/trunk/test/NightlyRun/runme.py	(revision 26744)
@@ -1,6 +1,14 @@
 #!/usr/bin/env python
+#
+# NOTE: Switch to,
+#
+#   #!/usr/bin/python3
+#
+# when making Python 3 default
+#
 import argparse
 from glob import glob
 import os
+import re
 from sys import float_info
 from traceback import format_exc
@@ -9,12 +17,13 @@
 
 try:
-    from parallelrange import parallelrange
-except ImportError:  #we don't have issm code in path, just get it
+    from arch import archread
+except: # ISSM_DIR is not on path
     import devpath
-    from parallelrange import parallelrange
+
 from arch import archread
 from arch import archwrite
 from GetIds import *
 from IdToName import IdToName
+from parallelrange import parallelrange
 
 
@@ -22,35 +31,33 @@
     """RUNME - test deck for ISSM nightly runs
 
-    In a test deck directory (test/NightlyRun for example), the following 
-    command will launch all the existing tests,
+    In a test deck directory (for example, test/NightlyRun) the following 
+    command will launch all existing tests,
 
         ./runme.py
 
-    To run tests 101 and 102:
+    To run tests 101 and 102,
 
         ./runme.py -i [101, 102]
 
     Options:
-        -i/--id             followed by the list of ids or (parts of) test names requested
-                            NOTE: runs all tests by default
-
-        -e/--exclude        ids or (parts of) test names to be excluded (same format as id)
-                            NOTE: exclude does nothing if 'id' is specified with different values
-
-        -b/--benchmark      'all'           : (all of the tests)
-                            'nightly'       : (nightly run/daily run)
-                            'validation'    : (validation)
-                            'adolc'         : validation of adolc tests
-                            'eismint'       : validation of eismint tests
-                            'ismip'         : validation of ismip-hom tests
-                            'mesh'          : validation of mesh tests
-                            'qmu'           : validation of qmu tests
-                            'referential'   : validation of referential tests
-                            'slr'           : validation of slr tests
-                            'thermal'       : validation of thermal tests
-                            'tranforcing'   : validation of transient forcing tests
-
-        -p/--procedure      'check'         : run the test (default)
-                            'update'        : update the archive
+        -i/--id         Followed by the list of ids or (parts of) test names 
+                        requested
+        -e/--exclude    Ids or (parts of) test names to be excluded (same 
+                        format as id). Does nothing if 'id' is specified with 
+                        different values.
+        -b/--benchmark  'all'           : (all of the tests)
+                        'nightly'       : (nightly run/daily run)
+                        'validation'    : (validation)
+                        'adolc'         : validation of adolc tests
+                        'eismint'       : validation of eismint tests
+                        'ismip'         : validation of ismip-hom tests
+                        'mesh'          : validation of mesh tests
+                        'qmu'           : validation of qmu tests
+                        'referential'   : validation of referential tests
+                        'slc'           : validation of slc tests
+                        'thermal'       : validation of thermal tests
+                        'tranforcing'   : validation of transient forcing tests
+        -p/--procedure  'check'         : run the test (default)
+                        'update'        : update the archive
 
     Usage:
@@ -63,10 +70,19 @@
         ./runme.py -e 2001
         ./runme.py -e 'Dakota' --benchmark 'all'
-        ./runme.py -i [[101, 102], ['Dakota', 'Slr']]
+        ./runme.py -i [[101, 102], ['Dakota', 'Slc']]
+
+    NOTE:
+    - Will only run test scripts whose names explicitly follow the convention,
+
+        test<id>.py
+
+    where <id> is any integer.
 
     TODO:
     - At '#disp test result', make sure precision of output matches that of 
-        MATLAB.
-    - Check for failures that do not raise exceptions (for example, 'Standard exception'; see also jenkins/jenkins.sh). These should be counted as failures.
+    MATLAB.
+    - Check for failures that do not raise exceptions (for example, 'Standard 
+    exception'; see also jenkins/jenkins.sh). These should be counted as 
+    failures.
     """
 
@@ -76,5 +92,5 @@
     #Process options
     #GET benchmark {{{
-    if benchmark not in ['all', 'nightly', 'validation', 'adolc', 'eismint', 'ismip', 'mesh', 'slr', 'thermal', 'tranforcing', 'qmu']:
+    if benchmark not in ['all', 'nightly', 'validation', 'adolc', 'eismint', 'ismip', 'mesh', 'slc', 'thermal', 'tranforcing', 'qmu']:
         print(("runme warning: benchmark '{}' not supported, defaulting to test 'nightly'.".format(benchmark)))
         benchmark = 'nightly'
@@ -96,5 +112,5 @@
     #GET ids  {{{
     flist = glob('test*.py')  #File name must start with 'test' and must end by '.py' and must be different than 'test.py'
-    list_ids = [int(file[4:-3]) for file in flist if not file == 'test.py']  #Keep test id only (skip 'test' and '.py')
+    list_ids = [int(re.search(r'\d+',file.split('.')[0]).group()) for file in flist if not file == 'test.py'] # Keep test id only (skip 'test' and '.py')
 
     i1, i2 = parallelrange(rank, numprocs, len(list_ids))  #Get tests for this cpu only
@@ -129,5 +145,5 @@
     elif benchmark == 'referential':
         test_ids = test_ids.intersection(set(range(1601, 1603)))
-    elif benchmark == 'slr':
+    elif benchmark == 'slc':
         test_ids = test_ids.intersection(set(range(2001, 2500)))
     elif benchmark == 'adolc':
