     double* gm_dev;
     double* gp_dev;
 
-    fclaw2d_timer_start (&glob->timers[FCLAW2D_TIMER_CUDA_ALLOCATE]);
+    cudaEventRecord(start);
     cudaMalloc((void**)&qold_dev, size * sizeof(double));
     cudaMalloc((void**)&fm_dev, size * sizeof(double));
     cudaMalloc((void**)&fp_dev, size * sizeof(double));
     cudaMalloc((void**)&gm_dev, size * sizeof(double));
     cudaMalloc((void**)&gp_dev, size * sizeof(double));
-    fclaw2d_timer_stop (&glob->timers[FCLAW2D_TIMER_CUDA_ALLOCATE]);
+    cudaEventRecord(stop);
+    cudaEventSynchronize(stop);
+    cudaEventElapsedTime(&milliseconds, start, stop);
+    glob->timers[FCLAW2D_TIMER_CUDA_ALLOCATE].cumulative += milliseconds*1e-3;
 
     cudaMemcpy(qold_dev, qold, size * sizeof(double), cudaMemcpyHostToDevice);
     cudaMemcpy(fm_dev, fm, size * sizeof(double), cudaMemcpyHostToDevice);


#include "../fc2d_cudaclaw5_fort.h"
#include "../fc2d_cudaclaw5_options.h"

#include "cudaclaw5_update_q.h"


                       double t,
                       double dt)
{
    cudaEvent_t start, stop;
    cudaEventCreate(&start);
    cudaEventCreate(&stop);
    float milliseconds = 0;
    
    fc2d_cudaclaw5_vtable_t*  cuclaw5_vt = fc2d_cudaclaw5_vt();
    fc2d_cudaclaw5_options_t* cudaclaw_options;
    int level;
