Bug in loading grid data corrected

This bug only appears when the merge function is added.

Appearance: while reading a saved grid structure file generated by the same
program, at some point it complains that the number of children of a certain
cell is smaller than the number kept in this cell.

Reason: the saved grid structure was produced after many merging and refining
steps, which means a final terminal cell might be non-terminal in the beginning
(i.e. after the inialization stage), and its number of children is likely to be
different from the initial value.

Solution: when the number of children retrieved from the file is different from
the current value, then delete the tree structure starting from this cell, and
re-make the tree structure as needed.

Something not completely understood: when deleting the tree structure, it seems
the individual pointer to each child should not be deallocated, but only
nullified; otherwise the program will complain in a later (i.e. after loading
the grid structure) stage when making all the leaves, even simply asking
associated(c%children(i)%p) will cause segamentation fault.