From: Kurt W. Hirchert J3/98-138 (Page of 1) Subject: Syntax for INITIAL | FINAL Procedures Meeting 144 J3/98-138 (Page of 1) Reference: J3/97-256 The proposed syntax for identifying initial and final procedures for a type is that they be type-bound procedures with "names" (INITIAL) and (FINAL) respectively. Note that the parentheses are part of these "names". Example: TYPE mytype REAL :: component CONTAINS PROCEDURE :: (initial) => my_initial_sub PROCEDURE :: initial => explicit_sub PROCEDURE :: (final) => my_final_sub END TYPE mytype TYPE(mytype) :: a_var ! In effect, a ! CALL my_initial_sub(a_var) ! is generated automatically at the beginning of execution ! this scoping unit and ! CALL my_final_sub(a_var) ! at the end of execution. There is no automatic generation of ! CALL explicit_sub(a_var) ! because INITIAL (without parentheses) is not a special name, so you ! would need to write ! CALL a_var%initial ! explicitly to get this effect. [The "names" (INITIAL) and (FINAL) are not merely illustrative syntax, but the subgroup is open to considering alternative special "names".] ‡