问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

什么是fortran函数

发布网友 发布时间:2022-04-23 09:56

我来回答

2个回答

热心网友 时间:2023-10-02 16:24

fortran是一种编程语言,跟C、C++一样,如果理解C函数或者C++函数的话,就就理解了这个

热心网友 时间:2023-10-02 16:24

Fortran中函数分两类:子程序(subroutine)和自定义函数(function)。自定义函数本质上就是数学上的函数,一般要传递自变量给自定义函数,返回函数值。子程序不一定是这样,可以没有返值。传递参数要注意类型的对应,这跟C是一样的。
1、子程序
目的:把某一段经常使用的有特定功能的程序独立出来,可以方便调用。
习惯上一般都把子程序放在主程序结束之后。
形式:
subroutine name (parameter1, parameter2)
!给子程序起一个有意义的名字。可以传递参数,这样可以有返回值。括号内也可以空着,代不传递参数。
implicit none
integer:: parameter1, parameter2 !需要定义一下接收参数的类型。
…… !接下来的程序编写跟主程序没有任何别。
……
mreturn !跟C不同,这里表示子程序执行后回到调用它的地方继续执行下面的程序。不一定放

!在最后。可以放在子程序的其他位置,作用相同;子程序中return之后的部分不执行。
end [subroutine name]
调用:使用call命令直接使用,不需要声明。在调用处写:
call subroutine name(parameter1,parameter2)
注意点:
a.子程序之间也可相互调用。直接调用就是了,像在主程序中调用子程序一样。
b.传递参数的原理和C中不同。Fortran里是传址调用(call by address/reference),就是传递时用参数和子程序中接收时用的参数使用同一个地址,尽管命名可以不同。这样如果子程序的执行改子程序中接收参数的值,所传递的参数也相应发生变化。
c.子程序各自内部定义的变量具有独立性,类似于C。各自的行代码也具有独立性。因此各个子程序主程序中有相同的变量名、行代码号,并不会相互影响。

2、自定义函数
和子程序的明显不同在于:需要在主程序中声明之后才能使用。调用方式也有差别。另外按照惯例用函数不去改变自变量的值。如果要改变传递参数的值,习惯上用子程序来做。
声明方式:real, external :: function_name
一般自定义函数也是放在主程序之后。
形式:
function function_name(parameter1, parameter2)
implicit none
real:: parameter1, parameter2 !声明函数参数类型,这是必需的
real::function_name !声明函数返回值类型,这是必需的
……
……
function_name=…. !返回值的表达式
return
end
也可以这样直接声明返回值类型,简洁些:
real function function_name(parameter1, parameter2)
implicit none
real:: parameter1, parameter2 !这个还是必需的
……
……
function_name=…. !返回值表达式
return
end
调用:function_name(parameter1,parameter2)
不需要call命令。
自定义函数可以相互调用。调用时也需要事先声明。
总之,调用自定义函数前需要做声明,调用子程序则不需要。

参考资料:网上搜索《Fortran 95 程序设计》读书笔记

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
平安e家保是什么险 2023年高级会计师报名时间和条件 2022高级会计师报考条件要求是什么? 问几个英文语法问题,希望能正确回答~ 女生锁骨下长痣,左右都有 不是很对称 寓意什么呐? 抖音上传照片音乐短怎么办 断夜奶好方法 婴儿断夜奶最佳方法 建设银行,你打算坑害多少优质客户? 【PS教程】如何做出凹陷字体效果的氛围海报 一个fortran程序 fortran语言中的常量,变量等不需要先声明吗 fortran 编程运行程序 出现段错误 求助 在线等 fortran的函数变量问题 何时在声明函数时使用EXTERNAL Fortran菜鸟一个,一个简单的程序 竟然有31个错误,求大神指教 fortran里面subroutine子程序不是不用声明吗? 滴滴快车注册成功后,如果中途注销后,车辆还当营运车辆的年限报废吗? 怎么注销滴滴快车司机,注销后系统还有记录吗? 滴滴车王注销了就等于自己滴滴车也注销了吗 滴滴出行注销后,公司会保留信息吗? 滴滴车主注销后换驾驶证重新注册车辆信息还在吗? 注销滴滴支付会清空打车记录吗? 怎么注销滴滴快车司机,注销后系统还有我的记录吗 怎么注销滴滴快车!只注销账号,不注销车辆信息,算是注销了吗? 滴滴下架了,不小心卸载了,里面填写了运营车辆信息,还没注销,怎么办?_百度问一问 怎么注销滴滴快车!只注销账号,不注销车辆信息,算是注销了吗?你好咨询一下滴滴账号注消了,车辆还需要_百度问一问 滴滴出行app帐号注销后里面的个人资料还会存在吗? 手机版软件那种免费的吉他软件谁有,可以在手机上弹曲子的 有什么软件适合吉他弹唱入门学习? 在Fortran中unresolvedexternalsymbol_MPH@4是什么意思 ...visual studio 2010 中怎么将里面的fortran程序和C++程序嵌套。_百度... 怎样用fortran获取一个文件夹里的所有文件名? 如何将matlab代码直接转化为fortran代码? 如何采用fortran用牛顿插值法对N个数进行插值 fortran中close候怎么没有数据 fortran里的画图库函数有哪些 急求fortran 修改,有两个错误怎么也找不出来 请问如果我要用fortran求解一个二元一次线性方程组的话,应该调用IMSL函数库的哪个函数好 用fortran语言调试没有错误,运行有错误,程序叫brook90 六年级百分数有哪些知识点 头发软化后还会蓬松吗? 六年级百分数有哪些呢? 怎样让软化过的头发变得蓬松? 小学六年级上册数学百分数不怎么懂,请给我讲讲 头发软化可以使头发蓬松吗 小学六年级百分数的应用知识点与考点谁能说一下 男孩的头发软化后,原来的蓬松度,就会塌陷吗?还能在蓬松吗? 六年级百分数应用题该怎么样讲解 头发软化后用蓬松粉,可以变得蓬松吗?