                 //2. Compute fsa and output fsa
                 transferH_out = fieldaligned.interpolate_from_coarse_grid(
                     g3d_in, transferH_in);
-                dg::assign( transferH_out, transferH_out_float);
+                dg::blas2::symv( interpolate_in_2d, transferH_out, transferH);
+                dg::assign( transferH, transferH_out_float);
             }
             else
             {
                 dg::blas1::scal( transferH_out_float, (float)0);
             }
             err = nc_put_vara_float( ncid_out, id4d.at(record.name), start3d,
-                count3d_out, append(transferH_out_float, g3d_out).data());
+                count3d_out, append(transferH_out_float, g3d_out_equidistant).data());
         }
 
     } //end timestepping

    err = nc_inq_unlimdim( ncid_in, &timeID); //Attention: Finds first unlimited dim, which hopefully is time and not energy_time
    err = nc_inq_dimlen( ncid_in, timeID, &steps);
    size_t count3d_in[4]  = {1, g3d_in.Nz(), g3d_in.n()*g3d_in.Ny(), g3d_in.n()*g3d_in.Nx()};
    size_t count3d_out[4] = {1, g3d_out_periodic.Nz(), g3d_out.n()*g3d_out.Ny(), g3d_out.n()*g3d_out.Nx()};
    size_t start3d[4] = {0, 0, 0, 0};
    ///////////////////////////////////////////////////////////////////////
    for( unsigned i=0; i<steps; i+=10)//timestepping

            std::get<1>(record).data());
        dg::assign( std::get<2>(record), transferH_out_float);
        err = nc_enddef( ncid_out);
        err = nc_put_var_float( ncid_out, vID, append(transferH_out_float, g3d_out_equidistant).data());
        err = nc_redef(ncid_out);

    }
