Oops, I didn't see the END FUNCTION on Van's syntax. But that is really something different from most things in the language--some kind of multiple statement entity declaration. (Yes, I understand that the function subprogram does define the PROCEDURE--it's all this confusion about the procudure itself versus the type of the result, etc. Van Snyder wrote: === To make the symmetry more complete, every entity declaration should allow :: before the entity, and every specifiable attribute of the entity should be allowed in a comma-separated list before ::, viz. TYPE(MyType), RECURSIVE, ALLOCATABLE, DIMENSION(10), PUBLIC, & RESULT(MyResult), FUNCTION :: MyFunc ( ... ) ... END FUNCTION MyFunc === %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%