Oracle® Developer Studio 12.5:Fortran 用户指南

退出打印视图

更新时间: 2016 年 6 月
 
 

5.3 与传统 FORTRAN 77 编译的例程链接

  • 要混合使用 f77f95 对象二进制文件,应通过 -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)。

5.3.1 Fortran 内部函数

Fortran 标准支持 FORTRAN 77 中没有的内部函数。《Fortran 库参考》手册中介绍了完整的 Fortran 内部函数集,其中包括非标准的内部函数。

如果在程序中将《Fortran 库参考》中列出的任何内部函数名称用作函数名称,则必须添加 EXTERNAL 语句才能让 f95 使用您的例程而不是内例程。

Fortran 库参考》还列出了早期 f77 编译器发行版可识别的所有内部函数f95 编译器可识别这些名称和内部函数。

如果使用 -f77=intrinsics 进行编译,则会将编译器识别的内部函数限定为 f77 编译器识别的那些函数,而忽略 Fortran 内部函数。