MODULE PROCEDURE语句是单独的模块子程序的第一个语句。 语法 规则 必须将procedure_name声明为包含程序单元、祖先模块或祖先子模块中的单独模块过程。 示例 以下示例显示如何将MODULE PROCEDURE语句用作单独模块子程序的第一个语句。 MODULE m INTERFACE MODULE SUBROUTINE sub(arg) INTEGER :: arg END SUBROUTINE END INTERFACE END MODULE SUBMODULE (...
虚拟函数的名称 module procedure show_int module procedure show_char end interface contains subroutine show_int(i) implicit none integer, intent(in)::i write(*, *) i return end subroutine show_int subroutine show_char(str) implicit none charactor(len=*), intent(in)::str ! 注意这里的星号 ...
MODULEPROCEDUREprocedure_name Rules Theprocedure_namemust be declared to be a separate module procedure in the containing program unit, the ancestor module, or an ancestor submodule. Examples The following example shows how aMODULE PROCEDUREstatement is used as the first statement of a separate module...
fortran 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 real :: myFunction_real ...
module my_module implicit noneinterfacemaxvalmodule procedure maxval_int,maxval_real endinterfacemaxvalcontainsfunctionmaxval_int(a)result(m)integer,intent(in)::a(:)integer::m m=maxval(a)endfunctionmaxval_intfunctionmaxval_real(a)result(m)real,intent(in)::a(:)real::m ...
end program UseMathModule 4. 面向对象编程 Fortran 2003引入了面向对象编程(OOP)特性,包括类型继承和多态性。以下是一个简单的OOP示例。 fortran 复制代码 module ShapeModule implicit none type :: Shape real :: x, y contains procedure :: move => move_shape ...
8module Vec3d_class9implicitnone1011type,public:: Vec3d12real :: mU =0., mV =0., mW =0. ! Make'private'inpractice!13contains14procedure :: display! Convenience output-method.15end type Vec3d1617! 用于运算符重载的泛型接口 18interface operator(-)19module procedure negate! 一元负号 ...
INTERFACE OPERATOR(*) MODULE PROCEDURE INTERSECTION_INTERVALS END INTERFACE CONTAINS FUNCTION COMB_INTERVALS(A,B) TYPE(INTERVAL) COMB_INTERVALS,A,B COMB_INTERVALS%LOWER=MIN(A&LOWER,B%LOWER) COMB_INTERVALS%UPPER=MAX(A&UPPER,B%UPPER) END FUNCTION FUNCTION INTERSECTION_INTERVALS(A,B) ...
MODULE abc INTERFACE ASSIGNMENT( = ) MODULE PROCEDURE ascii_to_int END INTERFACE CONTAINS SUBROUTINE ascii_to_int(value,string) CHARACTER( len = *),INTENT(in)::string INTEGER,INTENT(out)::value INTEGER::i value=0 DO i=1,LEN_TRIM(string) value=value+ICHAR(string(i:i)) END DO END ...
模块过程语句的形式为:MODULE PROCEDURE 过程名表。 例: !--- interface subroutine swap(x,y) real x,y end subroutine end interface real a,b read *,a,b call swap(a,b) end subroutine swap(x,y) real x,y z=x;x=y;y=z end subroutine ...