通过Module Procedure和Interface Operator可以将操作符进行重载,从而实现一些更加“人性化”的程序。(参考代码:"module_oper") 9.4 小结 Interface作为控制子程序间数据交换的关键,建议在所有子程序调用时都使用接口; 注意数据交换(共享)的三种方式,其中推荐使用Module而不使用Common; Module的使用能够完成数据共享,并且...
MODULE PROCEDURE 语句是单独模块子程序的第一个语句。语法 MODULEPROCEDUREprocedure_name 规则 必须将 procedure_name 声明为包含程序单元、祖先模块或祖先子模块中的单独模块过程。示例 以下示例显示如何将 MODULE PROCEDURE 语句用作单独模块子程序的第一个语句。 MODULE m INTERFACE MODULE SUBROUTINE sub(arg) INTEGER...
在Fortran中,interface通常定义在模块(module)中,模块是Fortran中用于封装程序模块的结构,可以将具有相关功能的函数和变量封装在一起。在interface内部,使用MODULE PROCEDURE关键字列出所有可能的具体函数。 3. 展示一个具体的Fortran interface示例,包含xxx_0d函数 以下是一个包含零维函数xxx_0d的Fortran interface示例:...
13contains14procedure :: display! Convenience output-method.15end type Vec3d1617! 用于运算符重载的泛型接口 18interface operator(-)19module procedure negate! 一元负号 20module procedure subtract! 二元减号 21end interface operator(-)2223contains24type(Vec3d) function negate( inVec ) 25 class(Vec3d)...
interface myFunction module procedure myFunction_int, myFunction_real end interface function myFunction_int(x) integer, intent(in) :: x integer :: myFunction_int ! Implementation end function myFunction_int function myFunction_real(x) real, intent(in) :: x ...
interface my_interface module procedure my_subroutine, my_function end interface my_interface contains ! 子程序 subroutine my_subroutine(a) integer, intent(in) :: a ! 实现具体功能 print *, "This is my_subroutine. Input: ", a end subroutine my_subroutine ...
INTERFACE REAL MODULE FUNCTION func1() ! Module procedure interface body for func1 END FUNCTION MODULE FUNCTION func2(b) ! Module procedure interface body for func2 TYPE(Base) :: b TYPE(Base) :: func2 END FUNCTION END INTERFACE END MODULE ...
要定义一个泛型函数,需要在模块中使用 interface 块来声明泛型函数的名字和具体函数的名字。例如,可以定义一个泛型函数 maxval,它可以接受整数或实数数组作为参数,并返回数组中的最大值: module my_module implicit noneinterfacemaxvalmodule procedure maxval_int,maxval_real ...
module operation_i !!//operator".i."is usedforsolve the inverse MATRIX of a given MATRIX.public interfaceoperator(.i.)!!//自定义重载矩阵求逆操作符 module procedure brinv !!//实矩阵求逆 module procedure bcinv !!//复矩阵求逆endinterface ...
这并不完全和module一样,因为在这里仅有procedure部分出现——procedure的具体实现在出现在代码的其他位置。Fortran2003标准支持上述的这种过程(也叫类型绑定过程(type-bound procedures)或方法(methods))。上述方法的接口需要是显式的(所以它既可以是模块过程(module procdures),如本例;也可以是具有接口块(interface-blo...