Fortran中function,subroutine, interface和module的简单使用
代码运行在simply fortran2下,复制,粘贴可直接运行看效果
!!!!!-------------------
! Fortran中函数分两类:子程序(subroutine)和自定义函数(function)。
! 自定义函数本质上就是一般数学上的函数,一般要传递自变量给自定义函数,返回函数值。
! 子程序不一定是这样,可以没有返值也可以多个返回值。
! func能做到的事,sub一定能做到。
! 传递参数要注意类型的对应,这跟C是一样的。
!!!!!-------------------!!!!!!!!!
! Module不是函数。它用于封装程序模块,一般是把具有相关功能的函数及变量封装在一起
! 。用法很单,但能提供很多方便,使程序变得简洁,比如使用全局变量不必每次都声明一长串,
! 写在odule里调用就行了。Module一般写在主程序开始之前。
!!!!!!!!!program helloworld
use opModule
! 在主程序或函数中使用时,需要在声明之前先写上一行:
! use module_name.
implicit nonereal(kind = 4):: a = 2.0, b = 3.0, add_result = 0.0interface ! 声明函数调用接口,sub无需声明可直接调用real(kind=4) function add_func(a, b)implicit nonereal(kind=4) :: a, bend function add_func
end interface! 注意sub的调用方式 call subname(╬aram1, ...)call add_sub(a, b, add_result) Print *, "Hello World!", add_result, add_func(a, b)call prtHi()print*, M_add_func(2.3, 4.3), M_resultend program helloworldsubroutine add_sub(a, b, add_result)
implicit none
real(kind=4) :: a, b, add_resultadd_result = a + b;end subroutine add_subreal(kind=4) function add_func(a, b)
implicit none
real(kind=4) :: a, badd_func = a + bend function add_func!!!!!!
! Module中有函数时必须在contains命令之后(即在某一行写上contains然后下
! 面开始写函数)。并且module中定义过的变量在module里的
! 函数中可直接使用,函数之间也可以直接相互调用(包括主程序或其他包含module的子函数中),
! 连module中的自定义函数在被调用时也不用先声明。
!!!!!!
module opModulereal(kind = 4) :: M_result
containssubroutine prtHi()implicit noneprint *, 'hello fortran, hello 2016.11.16 10:55'end subroutine prtHireal(kind=4) function M_add_func(a, b)implicit nonereal(kind=4) :: a, bM_result = a + bM_add_func = M_resultend function M_add_funcend module opModule
Fortran中function,subroutine, interface和module的简单使用相关推荐
- fortran语言和python_如何在Fortran中调用Python
Python是机器学习领域不断增长的通用语言.拥有一些非常棒的工具包,比如scikit-learn,tensorflow和pytorch.气候模式通常是使用Fortran实现的.那么我们应该将基于Py ...
- 今天還是和大家聊點基本功,就是“如何在DLL中活用Interface” DATE :2004-05-21
聊點基本功,就是"如何在DLL中活用Interface" <Code 1> {--------------------------------------------- ...
- fortran中类型
- 由于 GNU 的 Fortran 和 C 语言二者的函数彼此可以直接相互调用,所以混合编程可以非常容易地实现.只要你足够仔细,确保函数调用时传递的参数类型正确,函数就可以在两种语言间来回调用,就像 ...
- php中abstract和interface的区别
转载链接 1.https://www.cnblogs.com/songanwei/p/9389005.html#!comments 2.https://blog.csdn.net/qq_2263016 ...
- 介绍Unreal Engine 4中的接口(Interface)使用C++和蓝图
这个教程是从UE4 Wiki上整理而来. 在C++中直接使用Interface大家应该很熟悉.只是简单先定义一个个有虚函数的基类,然后在子类中实现相应的虚函数.像这样的虚函数的基类一般概念上叫接口.那 ...
- python中function函数的用法_Python中Function(函数)和methon(方法)
在Python中,对这两个东西有明确的规定: 函数function -- A series of statements which returns some value toa caller. It ...
- 如何用mshtml获得Javascript中function的返回值[mshtml]
marginwidth="0" marginheight="0" src="http://218.16.120.35:65001/PC/Global/ ...
- JAVA中Function的使用
JAVA中Function的使用 一.方法介绍 参数类型 方法介绍 源码 二.demo 参考: https://blog.csdn.net/boyan_HFUT/article/details/996 ...
- Java8中Function函数式接口详解及使用
文章目录 1.函数式接口 1.1允许定义默认方法 1.2允许定义静态方法 1.3允许定义java.lang.Object的public方法 1.4已有函数式接口 2.Function函数 2.1Fun ...
最新文章
- 【转】用示例说明索引数据块中出现热块的场景,并给出解决方案
- 剑指offer:删除链表中重复的结点
- 安装使用vmware及vsphere流程介绍
- android获取文件上级目录,Android 文件存储
- Organization Unit buffer - OOATTRCUST
- python改变列的数据类型_python – Pandas:更改列的数据类型
- 这4种分析方法,大牛产品经理都在用
- java volatile关键字的作用_java volatile关键字作用及使用场景详解
- js数组常用方法总结(包括ES6)
- Windows 实用小工具
- [PED07]Feature Selection for Clustering:A Review聚类特征选择综述
- 视频转换成gif动图如何操作?教你三步完成视频转gif
- 【技术分享】使用opencv进行火焰分割
- linux --chdir() 改变当前工作目录函数
- Homekit智能家居DIY之智能灯泡
- 关于微信公众号开发时获取用户昵称作为参数乱码的问题
- 别再胡乱写简历了,一份适合普通大众的简历模版,送给大家
- Java 代码简单模拟商城购物车
- 智能视频抠图_App Store 上的“智能视频抠图: 一键去背景”
- flutter/Android接入友盟、阿里百川SDK,打包APK后报无法加载arr库的坑