zhe*_*ric 0 fortran generic-interface
我对Fortran不熟悉.这是一个包含一些子程序的通用接口.gfortran 4.8抱怨说:
(1)中通用接口'sorti'中的模糊接口'sortic4'和'sortic'
INTERFACE SORTI
SUBROUTINE SORTIC( N, IND, TBLC )
INTEGER , INTENT(IN ) :: N
INTEGER , INTENT(INOUT) :: IND( N )
CHARACTER*(*), INTENT(IN ) :: TBLC( * )
END SUBROUTINE SORTIC
SUBROUTINE SORTIC4( N, IND, TBLC )
INTEGER , INTENT(IN ) :: N
INTEGER , INTENT(INOUT) :: IND( N )
CHARACTER*(*), INTENT(IN ) :: TBLC( * )
END SUBROUTINE SORTIC4
SUBROUTINE SORTIC8( N, IND, TBLC )
INTEGER(8) , INTENT(IN ) :: N
INTEGER(8) , INTENT(INOUT) :: IND( N )
CHARACTER*(*), INTENT(IN ) :: TBLC( * )
END SUBROUTINE SORTIC8
SUBROUTINE SORTI1( N, IND, TBL1 )
INTEGER, INTENT(IN ) :: N
INTEGER, INTENT(INOUT) :: IND( N )
INTEGER, INTENT(IN ) :: TBL1( * )
END SUBROUTINE SORTI1
....
END INTERFACE
Run Code Online (Sandbox Code Playgroud)
代码来自ioapi3.1库,m3utilio.f:http://www.baronams.com/products/ioapi/index.html
怎么了?
前两个子程序(SORTIC和SORTIC4)具有与伪参数完全相同的类型,种类和维度(等级).TKR分辨率因此不能区分它们,它们是模棱两可的.它们中的某些属性必须不同才能在通用接口中使用.
第二个和第三个不同的种类,这是可以的.(默认值integer和integer(8),种类8不可移植,但通常与默认值不同.)第一个和第二个是相同的.
我查看了库的源代码.我的结论是,这个通用接口不符合Fortran 90及更高版本的标准.因此,我将开始将其更改为仅用于显式接口的常规接口块,即删除SORTI单词后面的名称interface,并直接调用各个子例程.
| 归档时间: |
|
| 查看次数: |
2238 次 |
| 最近记录: |