ISO/IEC JTC1/SC22/WG5/N1576 8 September 2003 To: WG5 From: Van Snyder Subject: Changes proposed to TR 19767 at J3 meeting 165 The purpose of technical report 19767 is to address the deficiencies of Fortran to support large programming projects. In a large project, it is likely that conflicts arise between names of global entities, including submodules. To reduce the possibility of name conflicts, it was proposed that the name of a submodule ought to be local to its ancestor module. This proposal was approved by a straw vote. This requires that both the ancestor module and the parent submodule be mentioned in the case of a submodule that is not a child of the module. To accomodate this, the following modification of the SUBMODULE statement was proposed: SUBMODULE ( [ : ] ) Beyond this syntax change, which affects [7:21] in 03-199r1, edits (with respect to 03-007r1) to implement this change are not extensive: [405:19,22] Insert "non-submodule" before "program unit", twice. {Submodule names are not global identifiers.} [406:9] Delete "and". [406:10] Append ", and". [406:10+] insert "(4) If the scoping unit is that of a module, its submodules". Another proposal was to require a submodule to be a child of a module, but to allow one submodule to access another by use association, provided they have the same parent module. This allows a more general (DAG instead of tree) relation between submodules of a module. It was observed that the present proposal allows one to put a module procedure interface in a submodule and its separate module procedure body in one of its descendants. Replacing the submodule hierarchy with inter-submodule use association would not allow to put a separate module procedure body in one submodule and access its corresponding module procedure interface body from a sibling submodule.