接口概念
过程的接口确定过程引用的形式。 该接口包括:
- 过程的特征
- 过程的名称
- 每个哑参数的名称和特征
- 过程的通用标识(如果有)
过程的特征:
- 将过程区分为子例程或函数
- 将每个哑参数区分为数据对象、哑过程或替代返回说明符
虚拟数据对象的特征是其声明的类型、类型参数(如果有)、形状
(除非是假设等级)
、意图、是否可选、可分配、
多态、
指针、目标,或者是否具有
VALUE
或
CONTIGUOUS
属性。 类型参数或数组边界确定对其他对象的任何依赖都是一个特征。 如果假设或延迟了形状、大小或字符长度,则这是一个特征。哑过程的特征是它的接口的显式性、它的过程特性(如果接口是显式的)以及它是否是可选的。
- 如果过程是函数,它指定结果值的特征,具体而言:
- 声明的类型
- 任何类型参数
- 排名
- 结果值是否为指针
- 结果值是否是过程指针
- 结果值是否可分配。
结果值是否为多态 
结果值是否连续。 
- 确定过程是 PURE 还是 ELEMENTAL。
确定该过程是否具有 BIND 属性。
如果过程在作用域限定单元中是可访问的,那么它具有在该作用域限定单元中显式或隐式的接口。 规则如下:
| 实体 | 接口 |
|---|---|
| 哑过程 | 如果接口块存在或可访问,或者如果显式接口由 PROCEDURE 声明语句指定,那么在作用域限定单元中显式。 在所有其他情况下都是隐式的。 |
| 外部子程序 | 如果接口块存在或可访问,或者如果 PROCEDURE 声明语句指定了显式接口,那么在作用域限定单元中不是它自己的显式接口。 在所有其他情况下都是隐式的。 |
| 带有结果子句的递归过程 | 在子程序的自身作用域限定单元中为显式。 |
| 模块过程 | 始终为隐式。 |
| 内部过程 | 始终为隐式。 |
| 通用过程 | 始终为隐式。 |
| 内部过程 | 始终为隐式。 |
| 语句函数 | 总是为隐式。 |
内部子程序不能出现在接口块或 PROCEDURE 声明语句中。
过程在作用域限定单元中不得有多个可访问的接口。
不能在接口块或 PROCEDURE 声明语句中指定语句函数的接口。