IVF动态链接库的函数的调用接口声明
! 根据IAPWS-IF97/IFC67编写的动态链接库的函数的调用接口声明
! 专供DEC Visual Fortran(Fortran语言) 使用
! 使用方法:
! 直接把本软件包提供的导入库文件(WASPCN.Lib)和模块文件(WASPCN.f90)加进对应项目,
! 在需要调用的程序文件中use模块文件(WASPCN.f90)即可!
module WASPCN
!DEC$objcommentlib:"WASPCN.lib"
!设定将要使用的标准
!已知压力(MPa)和温度(℃),求比焓(kJ/kg)、比熵(kJ/(kg.℃))、比容(m^3/kg)
Interface
Subroutine PT(P,T,H,S,V,X,R)
!DEC$Attributes Stdcall,Dllimport,Alias:'PT'::PT
Real(8)P,T,H,S,V,X
Integer(4)R
!DEC$Attributes Value::P
!DEC$Attributes Value::T
!DEC$Attributes Reference::H
!DEC$Attributes Reference::S
!DEC$Attributes Reference::V
!DEC$Attributes Reference::X
!DEC$Attributes Reference::R
End Subroutine
End Interface
end module WASPCN
上述调用接口中:
!DEC$objcomment lib:"WASPCN.lib"
!DEC$Attributes Stdcall,Dllimport,Alias:'PT'::PT
!DEC$Attributes Value::P
这三段语句分别是什么意思哦,我在彭国伦的教材上没有找到详细的解释,还请赐教,如果有这方面详细介绍的书籍,能否分享一下呢,先谢谢了。
!DEC$objcomment lib:"WASPCN.lib"
表示链接时带上 WASPCN.lib 一起链接
!DEC$Attributes Stdcall,Dllimport,Alias:'PT'::PT
表示 PT 采用 stdcall 调用协定。并由 DLL 导入,别名为 PT
!DEC$Attributes Value::P
表示 P 参数采用传值,而不是传址
这些用法都是 IVF 特有的扩展用法,并不是标准的规范。所以很少有教科书提及。
如果你想了解,可以看 IVF 的帮助 《General Compiler Directives》 的章节
感谢VVT的热情回复! VVT您好,我在《General Compiler Directives》中看到IVF2013的编译指令说明中是这样写的:
MODULE MOD1
INTERFACE
SUBROUTINE SUB1
!DIR$ ATTRIBUTES C, ALIAS:'othername' :: NEW_SUB
END SUBROUTINE
END INTERFACE
CONTAINS
SUBROUTINE SUB2
CALL NEW_SUB
END SUBROUTINE
END MODULE
那是不是说不能再用!DEC,必须用!DIR呢? !DEC$ 是由 Digital 公司的 DVF 延续下来的
Intel 为了保持与旧代码的一致性,沿用了 !DEC$
!DIR$ 也可以。两者等效。但是绝大多数程序员还习惯 !DEC$,包括我。 谢谢fcode的及时回复! 学习了,每天都有收获!
呵呵
{:5_121:}
页:
[1]