         {
             int I_q = I + mq*zs;  
             double gupdate = 0.5*dtdx*bmasdq[mq];
-            gm[I_q - 1] -= gupdate;       
-            gp[I_q - 1] -= gupdate;   
-            //atomicAdd(&gm[I_q-1],-gupdate);
-            //atomicAdd(&gp[I_q-1],-gupdate);
+            //gm[I_q - 1] -= gupdate;       
+            //gp[I_q - 1] -= gupdate;   
+            atomicAdd(&gm[I_q-1],-gupdate);
+            atomicAdd(&gp[I_q-1],-gupdate);
         }            
     }
-    __syncthreads();
+    //__syncthreads();
 
 
     /*     transverse-x

        {
            int I_q = I + mq*zs;  
            double gupdate = 0.5*dtdy*bmasdq[mq];
            fm[I_q - ys] -= gupdate;        
            fp[I_q - ys] -= gupdate;
        }
    }
    __syncthreads();


    /*  transverse-y

        {
            int I_q = I + mq*zs;  
            double gupdate = 0.5*dtdy*bpasdq[mq];
            //fm[I_q + 1] -= gupdate;
            //fp[I_q + 1] -= gupdate;
            atomicAdd(&fm[I_q + 1],-gupdate);
            atomicAdd(&fp[I_q + 1],-gupdate);
        }   
    } 

    //__syncthreads();

    /* ------------------------------- Final update ----------------------------------- */

