Fortran编程:变量定义与标准内置过程解析
1. 变量定义相关事件
在Fortran编程中,有多种事件会导致变量被定义:
- 调用一个过程会使该过程中每个大小为零的自动对象被定义。
- 调用包含非保存、非指针、非可分配局部对象的过程,会使该对象的所有非指针默认初始化子组件被定义。
- 调用具有非指针、非可分配INTENT (OUT)哑元的过程,会使该哑元的所有非指针默认初始化子组件被定义。
- 调用派生类型的非指针函数,会使函数结果的所有非指针默认初始化子组件被定义。
- 具有VOLATILE属性的对象,若通过程序未指定的方式发生改变,则该对象被定义。
2. 变量未定义相关事件
变量未定义的情况较为复杂,以下是详细列表:
1. 当给定类型的变量被定义时,所有关联的不同类型变量会变为未定义。但存在特殊情况:
- 当默认实型变量与默认复型变量的一部分关联时,实型变量被定义时复型变量不会变为未定义,反之亦然。
- 当默认复型变量的一部分与同一复型变量的不同部分关联时,其中一个被定义不会使另一个变为未定义。
- 当默认复型变量相互关联时,其中一个被定义不会使另一个变为未定义。
2. 如果函数的求值可能导致变量被定义,且函数引用出现在表达式中,而该表达式的值不需要函数的值来确定,那么在表达式求值时,该变量会变为未定义。
3. 子程序实例执行完成时:
- 其非保存局部变量会变为未定义。
- 子程序中命名公共块里的非保存变量,若已被定义或重新定义,除非有其他活动作用域单元引用该公共块,否则会变为未定义。
- 模块的非保存可终结局部变量,若没有其他活
超级会员免费看
订阅专栏 解锁全文
31

被折叠的 条评论
为什么被折叠?



