moduleareal(dp)::xend modulemodulebusea,only:x! 合法,使用的是a中的x, 不推荐end modulemodulecuseb,only:x! 也合法,使用的是仍是a中的x,不推荐end module! 推荐写法moduledcontainssubroutinefusea,only:x! 合法,且d中不会如b一样多出一个x变量end subroutineend modulemodulefused,only:x ! 不再合法...
Fortran中module的作用 Fortran中的module主要用途有两个: 在module内声明一些变量, 通过use module的方式实现变量在其余过程中的共享. 通过contains 在module内定义具有显式接口(explicit interface)的过程, 供其它函数或子例程调用. 相较于隐式过程(implicit interface)而言,显式接口对过程的检查更为全面,能够得到更准...
二:Module contains的subroutine内局部变量会出错(没错又是接口问题): module contains 的subroutine中,圈内的变量“MaxToltin”,必须声明在module中,如果在subroutine下声明(在上图tin,i位置),可能会出错:我这里没有把tin值赋给MaxToltin,因此MaxToltin=0,导致逻辑错误。换到module下就正常。(吐槽:说实话真心不知...
usemodulem1,m2,...!给出数据格式...contains internal subroutinesandfunctionsendprogram test 这样,在进行编译时,编译器会核查module与主程序之间参数的使用,是否一致。 实际使用时,最好将每个module都单独编译,再联合在一起。这样每个module可以多次重复利用。 同时,为了避免在每个程序中都写变量,可以将所有的变量都...
模块内部子程序的定义方式与普通的子程序类似,但需要在子程序前面加上关键字"CONTAINS",表示该子程序是模块内部的子程序。模块内部子程序可以访问模块中定义的所有变量和常量,包括私有变量和公共变量。 使用模块内部子程序的优势有: 封装性:模块内部子程序可以将一些功能封装在模块内部,提高代码的可读性和可维护性。
!!! add_new.f90 文件modulefunc_modcontainsintegerfunctionadd(a,b)implicit noneinteger,intent(in):...
形式: module module_name …… …… end [module [module_name]] 使用:在主程序或函数中使用时,需要在声明之前先写上一行:use module_name. Module中有函数时必须在contains命令之后(即在某一行写上contains然后下面开始写数,多所有函数都写在这个contains之后)。
Module中有函数时必须在contains命令之后(即在某一行写上contains然后下面开始写数,多所有函数都写在这个contains之后)。并且module中定义过的变量在module里的函数中可直接使用,函数之间也可以直接相互调用,连module中的自定义函数在被调用时也不用先声明。
module math_operations implicit none contains ! 函数:计算平方 www.zebtt.com/hWfH4H/ function square(x) result(y) real, intent(in) :: x real :: y y = x**2 end function square ! 子程序:计算阶乘 subroutine factorial(n, result) ...
MODULE SUBROUTINE sub2(arg2) ! Module procedure interface body for sub2 INTEGER :: arg2 END SUBROUTINE END INTERFACE END MODULE SUBMODULE (m) n ! The descendant submodule n INTEGER :: j ! Specification part CONTAINS ! Module subprogram part ...