H608 extrinsic-prefix is EXTRINSIC ( extrinsic-spec ) H609 extrinsic-spec is extrinsic-spec-arg-list
H610 extrinsic-spec-arg is language
H611 language is [ LANGUAGE = ] scalar-char-initialization-expr H612 model is [ MODEL = ] scalar-char-initialization-expr H613 external-name is [ EXTERNAL_NAME = ] scalar-char-initialization-expr
Note that these rules for extrinsic-spec-arg-list are as if EXTRINSIC were a procedure with an explicit interface with a dummy-arg-list of LANGUAGE, MODEL, EXTERNAL_NAME, each of which were OPTIONAL.
Note that, for most implementations, "0DC"0D will only be allowed for function-stmts and subroutine-stmts occurring in an interface-body.
H614 extrinsic-kind-keyword is HPF
An implementation may place certain restrictions on the programmer; moreover, each extrinsic kind may call for a different set of restrictions.
For example, an implementation on a parallel processor may find it convenient to replicate scalar arguments so as to provide a copy on every processor. This is permitted so long as this process is invisible to the caller. One way to achieve this is to place a restriction on the programmer: on return from the subprogram, all the copies of this scalar argument must have the same value. This implies that if the dummy argument has INTENT(OUT), then all copies must have been updated consistently by the time of subprogram return.
(End of advice to implementors.)