             gp[I_q - 1] -= gupdate;   
         }
 
-        __threadfence_block();
+        //__syncthreads();
 
         for(mq = 0; mq < meqn; mq++)
         {

            gp[I_q - 1 + ys] -= gupdate;

        }
        __threadfence_block();


    /*     transverse-x

            |     |     | 
            |     |     | 
        ----|-----|--O--|-----
            |     X--^  | 
            |     X     |
            |     X--v  |
        ----|-----|--O--|-----
            |     |     |
            |     |     |

    */              

        rpt2(0,meqn,mwaves,maux,ql,qr,aux1,aux2,aux3,1,0,apdq,bmasdq,bpasdq);


                        dotr += wave[mq]*waves[I_waves+1];
                    }
                    wnorm2 = (wnorm2 == 0) ? 1e-15 : wnorm2;
                                               
                    r = (s[mw] > 0) ? dotl/wnorm2 : dotr/wnorm2;
                    wlimitr = cudaclaw_limiter(mthlim[mw],r);  

                    for (mq = 0; mq < meqn; mq++)
                    {
                        wave[mq] *= wlimitr;
                    }                    
                }
                for(mq = 0; mq < meqn; mq++)
                {
