要混合使用 f77 和 f95 目标二进制文件,应通过 -xlang=f77 选项利用 f95 编译器进行链接。即使主程序是 f77 程序,也使用 f95 执行链接步骤。
示例:编译包含 f77 目标文件的 f95 主程序。
demo% cat m.f95 CHARACTER*74 :: c = ’This is a test.’ CALL echo1( c ) END demo% f95 -xlang=f77 m.f95 sub77.o demo% a.out This is a test. demo% |
在 f95 程序中可以使用 FORTRAN 77 库和内部函数,《Fortran 库参考》手册中列出了这些库和内部函数。
示例: f95 主程序调用 FORTRAN 77 库中的例程。
demo% cat tdtime.f95 REAL e, dtime, t(2) e = dtime( t ) DO i = 1, 100000 as = as + cos(sqrt(float(i))) END DO e = dtime( t ) PRINT *, ’elapsed:’, e, ’, user:’, t(1), ’, sys:’, t(2) END demo% f95 tdtime.f95 demo% a.out elapsed: 0.14 , user: 0.14 , sys: 0.0E+0 demo% |
请参见 dtime(3F)。
Fortran 标准支持 FORTRAN 77 中没有的内部函数。《Fortran 库参考》手册中介绍了完整的 Fortran 内部函数集,其中包括非标准的内部函数。
如果在程序中将《Fortran 库参考》中列出的任何内部函数名称用作函数名称,则必须添加 EXTERNAL 语句才能让 f95 使用您的例程而不是内例程。
《Fortran 库参考》还列出了以前发行版的 f77 编译器能够识别的所有内部函数。f95 编译器也将这些名称识别为内部函数。
如果使用 -f77=intrinsics 进行编译,则会将编译器识别的内部函数限定为 f77 编译器识别的那些函数,而忽略 Fortran 内部函数。