\[~pierre-yves.nicolas] this looks to me like the calling code, rather than the declaration. Once a sub-proc has been specified with a prototype, do you then have the choice of invoking it with a PLIST?
My previous comment was about code calling another program. It seems possible to call a program with a PLIST even if the main procedure of that program is defined with a prototype. I was able to compile and execute something like that.
In the second case example code which I provided, the compliant solution has to be understood as a whole: the call to MYPROG in free form uses the prototype which is defined in the D specs. However, in the new version of the rule compliant solution, the comment line "* or in free-format:" seems to indicate that the lines just above and the lines just after are alternatives.
Moreover, in that new version of the compliant solution, the prototype (D specs containing "PR") for "MYPROG" is defined twice.