diff --git a/src/cdf_write.c b/src/cdf_write.c index b0e37a2a6a439dc41c8846a978a5b69c9012e1bf..da8e0b6624ae8e4e8661ba469e2102d353598706 100644 --- a/src/cdf_write.c +++ b/src/cdf_write.c @@ -862,9 +862,10 @@ cdfDefVar(stream_t *streamptr, int varID) const int zaxisindex = vlistZaxisIndex(vlistID, zaxisID); const int zid = streamptr->zaxisID[zaxisindex]; - int dimorder[3]; // ZYX and ZXY + int dimorder[3]; // ZYX/321 and ZXY/312 vlistInqVarDimorder(vlistID, varID, &dimorder); - const bool useChunks = (dimorder[0] == 3) ? (gridsize >= 32) : false; + const bool useGridsize = (dimorder[0] == 3) || (dimorder[1] == 3 && dimorder[2] == 1 && gridsize == gridInqXsize(gridID)); + const bool useChunks = useGridsize ? (gridsize >= 32) : false; if (((dimorder[0] > 0) + (dimorder[1] > 0) + (dimorder[2] > 0)) < ((xid != CDI_UNDEFID) + (yid != CDI_UNDEFID) + (zid != CDI_UNDEFID)))