diff --git a/sPuReMD/Makefile.am b/sPuReMD/Makefile.am
index cabbb008c8e8c8dc23c4e5e69d8ce9bbd51abeec..392170679cfcf8b18bdf5a7416a3c181f287e258 100644
--- a/sPuReMD/Makefile.am
+++ b/sPuReMD/Makefile.am
@@ -7,7 +7,7 @@ lib_libspuremd_la_SOURCES = src/ffield.c src/grid.c src/list.c src/lookup.c src/
 		  src/geo_tools.c src/neighbors.c src/lin_alg.c src/charges.c src/bond_orders.c \
 		  src/single_body_interactions.c src/two_body_interactions.c \
 		  src/three_body_interactions.c src/four_body_interactions.c src/forces.c \
-		  src/integrate.c src/init_md.c src/spuremd.c
+		  src/integrate.c src/init_md.c src/spuremd.c \
 		  src/ffield.h src/grid.h src/list.h src/lookup.h src/print_utils.h \
 		  src/reset_utils.h src/restart.h src/random.h src/tool_box.h src/traj.h \
 		  src/vector.h src/allocate.h src/analyze.h src/box.h src/system_props.h src/control.h \
diff --git a/sPuReMD/src/system_props.c b/sPuReMD/src/system_props.c
index 8969c7adf03a910cd6f51f7e752485a2b7de4153..2d4a309d5f239b7b232c78178492c40316bb19f0 100644
--- a/sPuReMD/src/system_props.c
+++ b/sPuReMD/src/system_props.c
@@ -238,7 +238,7 @@ void Compute_Total_Energy( reax_system* system, control_params *control,
     else if ( control->charge_method == ACKS2_CM )
     {
 #ifdef _OPENMP
-        #pragma omp parallel for default(none) private(q, type_i) shared(system) \
+        #pragma omp parallel for default(none) private(q, type_i) shared(system, workspace) \
             reduction(+: e_pol) schedule(static)
 #endif
         for ( i = 0; i < system->N; i++ )
diff --git a/sPuReMD/src/two_body_interactions.c b/sPuReMD/src/two_body_interactions.c
index bf1f5f87a41811385070df516795a86e39786819..c47b753c161ee407236ba7d9ac2debcd5c6eb54a 100644
--- a/sPuReMD/src/two_body_interactions.c
+++ b/sPuReMD/src/two_body_interactions.c
@@ -403,6 +403,9 @@ void vdW_Coulomb_Energy( reax_system *system, control_params *control,
          * kinetic energy */
         if ( control->charge_method == ACKS2_CM )
         {
+#ifdef _OPENMP
+            #pragma omp for schedule(guided)
+#endif
             for ( i = 0; i < system->N; ++i )
             {
                 for ( pj = Start_Index(i, far_nbrs); pj < End_Index(i, far_nbrs); ++pj )
diff --git a/tools/run_sim.py b/tools/run_sim.py
index 5c7875fa7883517f6c36f27964cc7c86d0c0caec..302d777ee9ad103b0cea22abed072da5ba098281 100644
--- a/tools/run_sim.py
+++ b/tools/run_sim.py
@@ -813,13 +813,17 @@ if __name__ == '__main__':
                     exit(-1)
 
         geo_base, geo_ext = path.splitext(args.geo_file[0])
-        if geo_ext == '.pdb':
-            geo_format = ['1']
-        elif geo_ext == '.geo':
-            geo_format = ['0']
+        if 'geo_format' in control_params_dict:
+            geo_format = control_params_dict['geo_format']
+        # infer geometry file format by file extension
         else:
-            print("ERROR: unrecognized geometry format {0}. Terminating...".format(ext))
-            exit(-1)
+            if geo_ext.lower() == '.pdb':
+                geo_format = ['1']
+            elif geo_ext.lower() == '.geo':
+                geo_format = ['0']
+            else:
+                print("ERROR: unrecognized geometry format {0}. Terminating...".format(ext))
+                exit(-1)
 
         test_case = TestCase(geo_base, args.geo_file[0], args.ffield_file[0],
                 params=control_params_dict, geo_format=geo_format)