Working with parameterised derived type containing array of parameterised derived type

If the arrays are allocated, then it is alright to use them in both read and write. The problem is when a component is unallocated on write, or unallocated when it is specified in the namelist read.

I think the standard could be extended in a consistent way to allow something like allocate-on-read for both namelist and list-directed i/o. I think this could be done in a backwards compatible way so that old code behaves the same as before. This has the potential to be both more efficient and easier to use than the current conventions.