             }
         }
 
+        t3 = clock();
+        time_in_sec = (t3 - t2) / (double)CLOCKS_PER_SEC;
+        time_mat_J += time_in_sec;
 
 
 

    my_cuda_safe(cudaMemcpy(dev_start_contr, h_start_contr, n_CI_bytes_int, cudaMemcpyHostToDevice),"mem_start");
    my_cuda_safe(cudaMemcpy(dev_end_contr,   h_end_contr,   n_CI_bytes_int, cudaMemcpyHostToDevice),"mem_end");

    t0 = clock();
    time_in_sec = (t0 - t1) / (double)CLOCKS_PER_SEC;
    time_txt += "Time_2e_DMem  = " + std::to_string(time_in_sec) + " sec\n";
    time_total += time_in_sec;


    // create 8x8 thread blocks
    dim3 block_size;

             n_combi, dev_start_contr, dev_end_contr, dev_eri);
    }


    // copy the results back to host
    my_cuda_safe(cudaMemcpy(h_eri, dev_eri, n_ERI_bytes, cudaMemcpyDeviceToHost),"mem_eri"); 

    t0 = clock();
    time_in_sec = (t0 - t1) / (double)CLOCKS_PER_SEC;
    time_txt += "Time_2e_GPU   = " + std::to_string(time_in_sec) + " sec\n";
    time_total += time_in_sec;


