|
integer :: num1(:)
这种写法属于函数的高级用法,它需要有显式的接口(interface),以便编译器能自动协调“调用者”和“被调用者”
关于 interface 你可以看书,或看李老师的教程,有详细的说明。
错误提示就是在提醒你,需要写显式接口(interface)
在这里,有几点可以说明:
1. 使用module并把函数包含在module里,可以避免手动书写接口。
现代 Fortran 代码,除了主程序,其他代码应该全部放在module里。
2. 有些编译器,可以在某些情况下,自动为你生成interface接口,这样编译器可以自动找出接口不一致的错误来。
(这属于编译器额外赠送的东西,不要过度依赖它。
3. intel fortran 在debug时会开启 Check Routine Interfaces,这是一个很好的功能,有利于编译时发现代码的问题,不建议关闭。
最后,我是个循规蹈矩的人,按语法去规范自己的代码。
我不是很愿意去琢磨“如果不按语法会发生什么”这种事情。原因是:
1. 会发生什么,语法没有规定,不同的编译器实现,可能会有不同的后果。(没有后果也是一种可能)
2. 没有多大意义。
|
|