So the “lesson” to be learned here (as per my hints in earlier posts across a couple of threads on this topic) is
- Avoid implementing defined assignment in a “container” derived type, rely instead on intrinsic assignment semantics as provided in the standard, and
- Should the “container” derived type need to have “components” for which the intrinsic assignment might be seen as inadequate e.g., those with
POINTER
attribute, then wrap such components themselves in a derived type that has a suitably defined assignment.