I do not know whether in F2003 the interface of a procedure has to specify ASYNCHRONOUS if the dummy gets it implicitly
Fascinating. I think yes. The relevant provisions seem to be 12.3.1.1 [04-007:page257] "A procedure ... shall have an explicit interface if it is reference and ... The procedure has a dummy argument that (a) has the ... ASYNCHRONOUS ... attribute" and 5.1.2.3 [04-007:page77] "The ASYNCHRONOUS attribute may be conferred implicitly by the use of a variable in an asynchronous input/output statement." and 12.2.1.1 [04-007:page256] "The characteristics of a dummy data object are its type,...whether it has the ... ASYNCHRONOUS ... attribute[s]" and 12.3 "The characteristics of a procedure are fixed ... in different scoping units" So in order that an interface block not be a scoping unit in which a dummy argument had different characteristics than the actual procedure, I think the standard does require that the ASYNCHRONOUS attribute be explicitly conferred on the dummy argument. That is, unless someone can figure out a way to give it the ASYNCHRONOUS attribute implicitly in an interface block; for all I remember we may have introduced a way to smuggle an asynchronous input/output statement into a type declaration. --Michael I.