Skip to content

vtkCGNSReader: Only read 32 characters per grid from GridCoordinatesPointers

The CGNS data array GridCoordinatesPointers consists of 32-character chunks, each containing the name of the coordinate grid to use for the particular time step. ParaView was reading 33 characters from the list and then setting the last character to NUL. This worked for all grids except for the last one, where there are not enough characters for a valid read-in of length 33. This branch fixes the indexing:

    offset + 1   for the start position
    offset + 32  for the end position

(CGNS uses Fortran indices. For reference, see e.g. https://github.com/CGNS/CGNS/blob/0303991c620fb2d859bc63de97995b24fa288a80/src/adf/ADF_interface.c#L2777 , where these indices are converted to the C indices.)

This branch provides also a new test

    ctest -R TestCGNSUnsteadyGrid

which attempts to read a trivial CGNS file with two times steps, each with different grid. The test fails---ParaView successfully reads only the first grid---unless the follow-up fixing commit is included.

Merge request reports