The new test fails unless I replace 64 with 16 in 'if (rl.ne.64) call abort’.
This seems consistent with your comment
> The language seems a little obscure. I think the first sentence means
> don't expect inquire to use a UDDTIO procedure and the second sentence
> says when you use a derived type that has UDDTIO procedures
> in the output list, treat them as if they don't and use the default derived
> type lengths.
The end of the line
inquire(iolength=rl) rl, kl, chairman, rl, chairman, t;
looks suspicious. Should nit be
inquire(iolength=rl) rl, kl, chairman, rl, chairman, tl