推荐, 编译器会检查传入的x是否合法implicit nonereal(dp),intent(in)::x(:)end subroutinefend module use语句都应该加only,遵循最小化原则。 module中的public元素(变量和函数)应该显式列出,其他的应保留为private。最小化原则。 如下代码中module c 中 use b, only : x 不仅是合法的,而且会修改同一个x...
END SUBROUTINE SWAP END MODULE MY_MODULE 该模块内有一内部过程SWAP,引用这个模块的外部过程都将包含有此内部过程。 ◆使用模块: USE 模块名1, 模块名2, … 模块名n 它包括两方面:模块定义时规定只有哪些内容允许共享、引用模块时只要求共享哪些内容。 1) 模块的PRIVATE属性: 当定义派生类型的TYPE块写在模块中...
print *, 'This is a private subroutine.' end subroutine private_subroutine public :: public_subroutine contains ! 公共过程:可在模块外部调用 subroutine public_subroutine() print *, 'This is a public subroutine.' call private_subroutine() end subroutine public_subroutine end module private_module p...
modulebankimplicit noneprivatemoney! 声明这是私有的! 变量会被module的各个子程序/方法共享publicLoadMoney,SaveMoney,Report! 声明这是公开的, 缺省时默认公开integer::money=100containssubroutineLoadMoney(num)implicit noneinteger::nummoney=money-numreturnend subroutinesubroutineSaveMoney(num)implicit noneinteger::...
module matrix_operations implicit none contains ! 子程序声明 interface subroutine multiply_matrix_vector(A, x, b) real, intent(in) :: A(:,:) ! 二维实数数组,任意大小 real, intent(in) :: x(:) ! 实数向量,任意大小 real, intent(out) :: b(:) ! 实数向量,任意大小 ...
public::subroutine_name2 ! 数据类型定义 private::type_name1 public::type_name2 ! 其他内容 contains ! 函数定义 private::function_name1 public::function_name2 end modulemodule_name 在使用模块前需要先声明(use)模块,如上述代码中的”use module_name1”和”use module_name2”。声明模块后,可以通过...
每个框都可以是一个独立的源文件:以是一个独立的源文件:Program A1Use module ACall BContains内部子程序或内部函数End Program A1Module AContains模块子程序或函数Subroutine B(外部子程序)下一页上一页停止放映 Fortran Fortran可以定义一个过程就是指它是一个函数或是一个子程序。可以定义一个过程就是指它是...
In the code sample below, subroutine_1() and function_1() are accessible from outside the module via the requisite "use" statement, but any other variable/subroutine/function will be private. module so_example implicit none private public :: subroutine_1 public :: function_1 contains ! Impl...
Library files(*.lib) / include Files(*.mod,即module)n Project > Settings | Link标签,设置常用.lib,这里的|Debug可以设置output的.exe相对位置 DLL动态链接库Project : Fortran Dynamic Link Libraryn 这个.dll可以拿给别的程序用,无需重新编译。n 设置可被外界调用的程序u subroutine sub()u !DEC$ ...
但是希望只用一个子程序接口swap(a,b)来实现。F90可以用类属接口来实现这种子程序超载:moduleUtilitiesimplicitnoneprivateI_Swap,R_Swap,RVec_Swap,RMat_Swap,Type_Swappublic::SwapinterfaceSwapmoduleprocedureI_Swap,R_Swap,RVec_Swap,RMat_Swap,Type_Swapendinterfacecontainssubr...