Index: sansmodels/src/sans/models/ReflAdvModel.py
===================================================================
--- sansmodels/src/sans/models/ReflAdvModel.py	(revision d760c0a7c07819d90825484cca5c772f79445ad7)
+++ sansmodels/src/sans/models/ReflAdvModel.py	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -2,15 +2,15 @@
 
 ##############################################################################
-#    This software was developed by the University of Tennessee as part of the
-#    Distributed Data Analysis of Neutron Scattering Experiments (DANSE)
-#    project funded by the US National Science Foundation.
+#	This software was developed by the University of Tennessee as part of the
+#	Distributed Data Analysis of Neutron Scattering Experiments (DANSE)
+#	project funded by the US National Science Foundation.
 #
-#    If you use DANSE applications to do scientific research that leads to
-#    publication, we ask that you acknowledge the use of the software with the
-#    following sentence:
+#	If you use DANSE applications to do scientific research that leads to
+#	publication, we ask that you acknowledge the use of the software with the
+#	following sentence:
 #
-#    "This work benefited from DANSE software developed under NSF award DMR-0520547."
+#	"This work benefited from DANSE software developed under NSF award DMR-0520547."
 #
-#    copyright 2008, University of Tennessee
+#	copyright 2008, University of Tennessee
 ##############################################################################
 
@@ -127,21 +127,21 @@
         ## Model description
         self.description ="""Calculate neutron reflectivity using the Parratt iterative formula
-        Parameters:
-        background:background
-        scale: scale factor
-        sld_bottom0: the SLD of the substrate
-        sld_medium: the SLD of the incident medium
-        or superstrate
-        sld_flatN: the SLD of the flat region of
-        the N'th layer
-        thick_flatN: the thickness of the flat
-        region of the N'th layer
-        func_interN: the function used to describe
-        the interface of the N'th layer
-        nu_interN: the coefficient for the func_interN
-        thick_interN: the thickness of the interface
-        of the N'th layer
-        Note: the layer number starts to increase
-        from the bottom (substrate) to the top."""
+		Parameters:
+		background:background
+		scale: scale factor
+		sld_bottom0: the SLD of the substrate
+		sld_medium: the SLD of the incident medium
+		or superstrate
+		sld_flatN: the SLD of the flat region of
+		the N'th layer
+		thick_flatN: the thickness of the flat
+		region of the N'th layer
+		func_interN: the function used to describe
+		the interface of the N'th layer
+		nu_interN: the coefficient for the func_interN
+		thick_interN: the thickness of the interface
+		of the N'th layer
+		Note: the layer number starts to increase
+		from the bottom (substrate) to the top."""
        
         ## Parameter details [units, min, max]
@@ -245,5 +245,5 @@
         """ Return a identical copy of self """
         return self._clone(ReflAdvModel())   
-           
+       	
    
     def run(self, x=0.0):
Index: sansmodels/src/sans/models/ReflModel.py
===================================================================
--- sansmodels/src/sans/models/ReflModel.py	(revision 500be8250f3cb81ae2cd8fe2bd6efe053eca9d2f)
+++ sansmodels/src/sans/models/ReflModel.py	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -2,15 +2,15 @@
 
 ##############################################################################
-#    This software was developed by the University of Tennessee as part of the
-#    Distributed Data Analysis of Neutron Scattering Experiments (DANSE)
-#    project funded by the US National Science Foundation.
+#	This software was developed by the University of Tennessee as part of the
+#	Distributed Data Analysis of Neutron Scattering Experiments (DANSE)
+#	project funded by the US National Science Foundation.
 #
-#    If you use DANSE applications to do scientific research that leads to
-#    publication, we ask that you acknowledge the use of the software with the
-#    following sentence:
+#	If you use DANSE applications to do scientific research that leads to
+#	publication, we ask that you acknowledge the use of the software with the
+#	following sentence:
 #
-#    "This work benefited from DANSE software developed under NSF award DMR-0520547."
+#	"This work benefited from DANSE software developed under NSF award DMR-0520547."
 #
-#    copyright 2008, University of Tennessee
+#	copyright 2008, University of Tennessee
 ##############################################################################
 
@@ -103,20 +103,20 @@
         ## Model description
         self.description ="""Calculate neutron reflectivity using the Parratt iterative formula
-        Parameters:
-        background:background
-        scale: scale factor
-        sld_bottom0: the SLD of the substrate
-        sld_medium: the SLD of the incident medium
-        or superstrate
-        sld_flatN: the SLD of the flat region of
-        the N'th layer
-        thick_flatN: the thickness of the flat
-        region of the N'th layer
-        func_interN: the function used to describe
-        the interface of the N'th layer
-        thick_interN: the thickness of the interface
-        of the N'th layer
-        Note: the layer number starts to increase
-        from the bottom (substrate) to the top."""
+		Parameters:
+		background:background
+		scale: scale factor
+		sld_bottom0: the SLD of the substrate
+		sld_medium: the SLD of the incident medium
+		or superstrate
+		sld_flatN: the SLD of the flat region of
+		the N'th layer
+		thick_flatN: the thickness of the flat
+		region of the N'th layer
+		func_interN: the function used to describe
+		the interface of the N'th layer
+		thick_interN: the thickness of the interface
+		of the N'th layer
+		Note: the layer number starts to increase
+		from the bottom (substrate) to the top."""
        
         ## Parameter details [units, min, max]
@@ -196,5 +196,5 @@
         """ Return a identical copy of self """
         return self._clone(ReflModel())   
-           
+       	
    
     def run(self, x=0.0):
Index: sansmodels/src/sans/models/c_models/CBCCrystalModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CBCCrystalModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CBCCrystalModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -179,4 +179,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -196,5 +197,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -220,5 +221,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CBarBellModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CBarBellModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CBarBellModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -181,4 +181,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -198,5 +199,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -222,5 +223,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CBinaryHSModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CBinaryHSModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CBinaryHSModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -171,4 +171,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -188,5 +189,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -212,5 +213,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CCSParallelepipedModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CCSParallelepipedModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CCSParallelepipedModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -191,4 +191,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -208,5 +209,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -232,5 +233,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CCappedCylinderModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CCappedCylinderModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CCappedCylinderModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -181,4 +181,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -198,5 +199,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -222,5 +223,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CCoreFourShellModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CCoreFourShellModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CCoreFourShellModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -185,4 +185,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -202,5 +203,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -226,5 +227,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CCoreShellCylinderModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CCoreShellCylinderModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CCoreShellCylinderModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -182,4 +182,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -199,5 +200,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -223,5 +224,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CCoreShellEllipsoidModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CCoreShellEllipsoidModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CCoreShellEllipsoidModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -186,4 +186,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -203,5 +204,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -227,5 +228,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CCoreShellModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CCoreShellModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CCoreShellModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -170,4 +170,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -187,5 +188,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -211,5 +212,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CCylinderModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CCylinderModel.cpp	(revision 1a191e4e48b561cf319241e3b267b954072675f8)
+++ sansmodels/src/sans/models/c_models/CCylinderModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -195,5 +195,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -219,5 +219,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
@@ -284,10 +285,10 @@
 	        if (PyArray_Check(pars)) {
 		        return evaluateOneDim(self->model, (PyArrayObject*)pars); 
-	        }
-	    }else{
+		    }
+		}else{
 		    PyErr_SetString(CCylinderModelError, 
                    "CCylinderModel.evalDistribution expect numpy array of one dimension.");
 	        return NULL;
-	    }
+		}
     }else if( PyList_Check(pars)==1) {
     	// Length of list should be 2 for I(qx,qy)
Index: sansmodels/src/sans/models/c_models/CDiamCylFunc.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CDiamCylFunc.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CDiamCylFunc.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -165,4 +165,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -182,5 +183,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -206,5 +207,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CDiamEllipFunc.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CDiamEllipFunc.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CDiamEllipFunc.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -165,4 +165,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -182,5 +183,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -206,5 +207,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CEllipsoidModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CEllipsoidModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CEllipsoidModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -177,4 +177,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -194,5 +195,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -218,5 +219,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CEllipticalCylinderModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CEllipticalCylinderModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CEllipticalCylinderModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -185,4 +185,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -202,5 +203,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -226,5 +227,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CFCCrystalModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CFCCrystalModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CFCCrystalModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -179,4 +179,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -196,5 +197,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -220,5 +221,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CFlexCylEllipXModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CFlexCylEllipXModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CFlexCylEllipXModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -177,4 +177,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -194,5 +195,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -218,5 +219,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CFlexibleCylinderModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CFlexibleCylinderModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CFlexibleCylinderModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -173,4 +173,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -190,5 +191,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -214,5 +215,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CFractalModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CFractalModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CFractalModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -167,4 +167,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -184,5 +185,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -208,5 +209,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CFuzzySphereModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CFuzzySphereModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CFuzzySphereModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -169,4 +169,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -186,5 +187,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -210,5 +211,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CGaussian.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CGaussian.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CGaussian.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -160,4 +160,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -177,5 +178,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -201,5 +202,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CHardsphereStructure.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CHardsphereStructure.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CHardsphereStructure.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -162,4 +162,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -179,5 +180,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -203,5 +204,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CHayterMSAStructure.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CHayterMSAStructure.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CHayterMSAStructure.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -166,4 +166,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -183,5 +184,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -207,5 +208,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CHollowCylinderModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CHollowCylinderModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CHollowCylinderModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -181,4 +181,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -198,5 +199,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -222,5 +223,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CLamellarFFHGModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CLamellarFFHGModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CLamellarFFHGModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -170,4 +170,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -187,5 +188,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -211,5 +212,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CLamellarModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CLamellarModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CLamellarModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -165,4 +165,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -182,5 +183,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -206,5 +207,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CLamellarPCrystalModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CLamellarPCrystalModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CLamellarPCrystalModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -168,4 +168,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -185,5 +186,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -209,5 +210,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CLamellarPSHGModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CLamellarPSHGModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CLamellarPSHGModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -176,4 +176,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -193,5 +194,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -217,5 +218,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CLamellarPSModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CLamellarPSModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CLamellarPSModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -171,4 +171,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -188,5 +189,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -212,5 +213,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CLogNormal.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CLogNormal.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CLogNormal.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -160,4 +160,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -177,5 +178,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -201,5 +202,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CLorentzian.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CLorentzian.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CLorentzian.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -160,4 +160,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -177,5 +178,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -201,5 +202,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CMultiShellModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CMultiShellModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CMultiShellModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -174,4 +174,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -191,5 +192,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -215,5 +216,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/COnionModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/COnionModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/COnionModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -246,4 +246,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -263,5 +264,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -287,5 +288,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CParallelepipedModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CParallelepipedModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CParallelepipedModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -185,4 +185,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -202,5 +203,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -226,5 +227,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CPearlNecklaceModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CPearlNecklaceModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CPearlNecklaceModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -172,4 +172,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -189,5 +190,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -213,5 +214,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CPoly_GaussCoil.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CPoly_GaussCoil.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CPoly_GaussCoil.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -164,4 +164,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -181,5 +182,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -205,5 +206,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CRPAModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CRPAModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CRPAModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -189,4 +189,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -206,5 +207,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -230,5 +231,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CReflAdvModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CReflAdvModel.cpp	(revision d760c0a7c07819d90825484cca5c772f79445ad7)
+++ sansmodels/src/sans/models/c_models/CReflAdvModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -231,4 +231,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -248,5 +249,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -272,5 +273,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CReflModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CReflModel.cpp	(revision d760c0a7c07819d90825484cca5c772f79445ad7)
+++ sansmodels/src/sans/models/c_models/CReflModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -207,4 +207,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -224,5 +225,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -248,5 +249,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CSCCrystalModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CSCCrystalModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CSCCrystalModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -179,4 +179,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -196,5 +197,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -220,5 +221,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CSLDCalFunc.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CSLDCalFunc.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CSLDCalFunc.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -166,4 +166,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -183,5 +184,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -207,5 +208,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CSchulz.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CSchulz.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CSchulz.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -160,4 +160,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -177,5 +178,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -201,5 +202,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CSphereModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CSphereModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CSphereModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -165,4 +165,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -182,5 +183,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -206,5 +207,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CSphereSLDModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CSphereSLDModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CSphereSLDModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -223,4 +223,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -240,5 +241,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -264,5 +265,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CSquareWellStructure.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CSquareWellStructure.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CSquareWellStructure.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -164,4 +164,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -181,5 +182,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -205,5 +206,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CStackedDisksModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CStackedDisksModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CStackedDisksModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -184,4 +184,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -201,5 +202,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -225,5 +226,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CStickyHSStructure.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CStickyHSStructure.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CStickyHSStructure.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -164,4 +164,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -181,5 +182,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -205,5 +206,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CTriaxialEllipsoidModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CTriaxialEllipsoidModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CTriaxialEllipsoidModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -185,4 +185,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -202,5 +203,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -226,5 +227,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/CVesicleModel.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/CVesicleModel.cpp	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/CVesicleModel.cpp	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -169,4 +169,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -186,5 +187,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -210,5 +211,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
Index: sansmodels/src/sans/models/c_models/classTemplate.txt
===================================================================
--- sansmodels/src/sans/models/c_models/classTemplate.txt	(revision 2605da22e051f79e99c6ee33e4a4abe2b2c68929)
+++ sansmodels/src/sans/models/c_models/classTemplate.txt	(revision 0b082f3de70162b384089745e139588fda206422)
@@ -150,4 +150,5 @@
 		return NULL;
 	}
+#pragma omp parallel for
 	 for (int i = 0; i < q->dimensions[0]; i++){
       double q_value  = *(double *)(q->data + i*q->strides[0]);
@@ -167,5 +168,5 @@
  {
     PyArrayObject *result;
-    int i, x_len, y_len, dims[1];
+    int x_len, y_len, dims[1];
     //check validity of input vectors
     if (x->nd != 1 || x->descr->type_num != PyArray_DOUBLE
@@ -191,5 +192,6 @@
        
         /* Do the calculation. */
-        for ( i=0; i< x_len; i++) {
+#pragma omp parallel for
+        for (int i=0; i< x_len; i++) {
             double x_value = *(double *)(x->data + i*x->strides[0]);
   		    double y_value = *(double *)(y->data + i*y->strides[0]);
