Hello Bernard,
I was originally using out3D_vars etc, but the resulting output was always *chunked* and *cumulative* over time. I don't see a parameter that controls this behavior in CarpetIOHDF5/param.ccl.
Hmm, in that case you will have to modify C++ code. In CarpetIOHDF5's OutputSlice.cc near the end of the routine CheckSteerableParameters (around line 215 in my checkout) you will see code: --8<-- // copy ioprocs and ioproc ot if (outdim == 3) { // only 3D output splits files const ioGH *IO = (ioGH *) CCTK_GHExtension (cctkGH, "IO"); assert(IO); nioprocs = IO->nioprocs; ioproc = IO->ioproc; ioproc_every = IO->ioproc_every; //cout << "nioprocs: " << nioprocs << " ioproc: " << ioproc << endl; } else { nioprocs = 1; ioproc = 0; ioproc_every = dist::size(); } --8<-- which tells you that out1d and out2d are always unchunked (one file) and out3d respects nioprocs which is what "onefile" sets. So in order to get unchuncked 3d output you'd have to make the outdim == 3 case look like the else case. Note that the current code does what it ought to do: it respects your "onefile" choice.
The single file issue is a bug, and needs a fix. The easiest by far will be to add ".it_XXX" to basefilenamebuf in OutputVarAs around line 461, ie make it look like this:
--8<-- ostringstream basefilenamebuf; basefilenamebuf << my_out_slice_dir << "/" << alias << ".it_" << cctk_iteration; const string basefilename = basefilenamebuf.str(); --8<--
mind you, this is a hack though :-) it really should be controlled by the out_timesteps_per_file option.
Yours, Roland