 
     dg::CartesianMPIGrid3d grid( 0, lx, 0, ly, 0,lz, n, Nx, Ny, Nz, bcx, bcy, dg::PER, comm);
     dg::Timer t;
-    Vector w3d = dg::create::weights( grid);
-    Vector lhs = dg::evaluate ( left, grid), jac(lhs);
-    Vector rhs = dg::evaluate ( right,grid), x(rhs), y(rhs), z(rhs);
-    const Vector sol = dg::evaluate( jacobian, grid );
-    Vector eins = dg::evaluate( dg::one, grid );
+    Vector w3d, lhs, rhs, jac, x, y, z;
+    try{
+        w3d = dg::transfer<Vector>( dg::create::weights( grid));
+        lhs = dg::transfer<Vector>( dg::evaluate ( left, grid));
+        rhs = dg::transfer<Vector>( dg::evaluate ( right,grid));
+        jac = dg::transfer<Vector>( dg::evaluate ( jacobian,grid));
+        x = y = z = lhs;
+    }
+    catch( std::exception& e)
+    {
+        if(rank==0)std::cout << std::endl;
+        if(rank==0)std::cerr << "Caught std::exception: "<<e.what()<<std::endl;
+        MPI_Finalize();
+        return 0;
+    }
     std::cout<< std::setprecision(6);
     unsigned multi=100;
 

    for( unsigned i=0; i<multi; i++)
        arakawa( lhs, rhs, jac);
    t.toc();
    if(rank==0)std::cout<<t.diff()/(double)multi<<" ";
    //The Elliptic scheme
    periods[0] = false, periods[1] = false;
    MPI_Comm commEll;

outputs one line to std::cout 
# npx npy npz #procs #threads n Nx Ny Nz t_SCAL t_AXPBY t_POINTWISEDOT t_DOT t_DX_per t_DY_per t_DZ_per t_ARAKAWA #iterations t_1xELLIPTIC_CG_dir_centered t_DS EXBLASCHECK( d and i)
if Nz == 1, DZ and DS are not executed
if std::exception is thrown program writes error to std::cerr and terminates
Run with: 
>$ echo npx npy npz n Nx Ny Nz | mpirun -n#procs ./cluster_mpib 
 
