如何在FORTRAN中整理出意图(in),intent(out)和intent(inout)

Kuo*_*ang 4 fortran

我正在修改用F77编写的旧源代码到F90.我痛苦地解决了哪个变量是意图(in),intent(out)和intent(inout).

你有任何指导或提示吗?

任何想法和建议表示赞赏.

迈克尔

M. *_* B. 5

如果实际参数是变量(参见Fortran intent(inout)与省略intent),那么intent(inout)将始终有效,但是程序员和编译器没有提供任何信息.也不需要intent属性,因此您可以逐步改进代码.如果变量仅出现在赋值语句的RHS上,那么intent(in)是最好的.如果仅在LHS上,那么意图(out).如果将变量用作一个或多个过程调用的参数,则会变得更复杂,因为您必须跟踪该过程中的用法.因此,如果您从最低级别的程序开始并逐步完成,这是最简单的.大多数编译器会警告错误,例如,分配一个intent(in)参数.为了使编译器检查跨过程的一致性,每个被调用过程的接口需要对调用者是显式的.使接口知道的最简单方法是将过程放入一个或多个模块中并"使用"该模块.接口在同一模块中的过程之间是显式的.