Fortran中module的作用 Fortran中的module主要用途有两个: 在module内声明一些变量, 通过use module的方式实现变量在其余过程中的共享. 通过contains 在module内定义具有显式接口(explicit interface)的过程, 供其它函数或子例程调用. 相较于隐式过程(implicit interface)而言,显式接口对过程的检查更为全面,能够得到更准...
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! 不再合法,...
二: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可以多次重复利用。 同时,为了避免在每个程序中都写变量,可以将所有的变量都...
在Fortran中,模块可以用来封装变量、常量、子程序和函数,以便在程序中重复使用。下面是一个简单的示例来展示如何定义和使用一个模块: modulemy_moduleimplicitnoneinteger:: my_variablecontainssubroutinemy_subroutine()print*,"Hello from my subroutine!"endsubroutinemy_subroutineendmodulemy_moduleprogrammain_programuse...
Module中有函数时必须在contains命令之后(即在某一行写上contains然后下 面开始写数,多所有函数都写在这个contains之后)。并且module中定义过的变量在module里的 函数中可直接使用,函数之间也可以直接相互调用,连module中的自定义函数在被调用时也不用 先声明。
!!! add_new.f90 文件modulefunc_modcontainsintegerfunctionadd(a,b)implicit noneinteger,intent(in):...
Module中有函数时必须在contains命令之后(即在某一行写上contains然后下面开始写数,多所有函数都写在这个contains之后)。并且module中定义过的变量在module里的函数中可直接使用,函数之间也可以直接相互调用,连module中的自定义函数在被调用时也不用先声明。
模块永远是正确的选择;-)如果您有一个非常简单的F90程序,则可以在“包含”块中包含函数和子例程: program simple implicit none integer :: x, y x = ... y = myfunc(x) contains function myfunc(x) result(y) &...
4 使用fortran的关键字containscontains是Fortran 90中新增的一个语法功能在module或者subroutine中可以用contains来包含其他的module或者subroutine 5 编写主程序测试子程序是否能够改变传入的参数 implicit none character(len=255)::str integer::n str="168" n=3 print *, "***" print *, "子程序运...