On 07.10.21 05:35, Michael Meissner via Fortran wrote:
I tried this at one point. There are a lot of hidden assumptions that the kind number is the number of bytes. I'm sure it can be tracked down, but the problem is with these assumptions is you can't prove a negative (i.e. you never know that you've missed some).
So, summing up from the Fortran side, I'd say the best course of action is to - make KIND=16 into IEEE QP - bump the SONAME on on affected systems on POWER and nowhere else - have a preprocessor flag so we can #ifdef out code which is relevant only there - provide a CONVERT option (have to think of a suitable syntax) to do unformatted I/O either in IEEE QP or double double, but only on affected systems, so people can set this either via a CONVERT option on open or an environment variable. For OPEN, we should extend the existing one, for an environment variable, I'd say we should use a new one and reuse the existing parsing routines. Sounds like a reasonable minimum of user pain to me. The rest I'll leave to the experts in all things ABI and POWER :-)