请教大神 如何在fortran 子程序中再定义函数进行运算

 我来答
健康快乐李泡泡
2013-10-20 · TA获得超过420个赞
知道小有建树答主
回答量:106
采纳率:100%
帮助的人:74.1万
展开全部
就跟在主程序里面的定义函数一样,主程序和子程序的变量也可以是相同的,
如,subroutine *(*,*,、、)
implicit none
real :: a,b,c,d、、、、
、、、
real,external :: add
c=add(a,b)+d
、、、、
return
end subroutine *

function add(a,b)
implicit none
real :: a,b
real :: add
add=a+b
return
end
大概就是这样
追问
你的 function已放在subroutine外了啊,我想放在subroutine里面前面因为在subroutine子程序里面要用到FUNCTION
追答
我晕,子程序可以调用函数,子程序也可以调用子程序,放外面也一样,放在外面才是常规的写法,放在外面还可以供其他函数或者子程序调用。放在子程序里面,只能够给某一个单独的子程序使用。好好看看Fortran 95程序设计这本书吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天河流纹石
2013-10-18 · TA获得超过1.3万个赞
知道大有可为答主
回答量:7624
采纳率:76%
帮助的人:4049万
展开全部
Program Main
call a()
End Program Main

subroutine a()

call b()
call c()
x = y()
end subroutine a

subroutine b()
...
end subroutine b

subroutine c()
...
end subroutine c

integer function y
...
end function y
追问
我想放在subroutine里面前面因为在subroutine子程序里面要用到FUNCTION    如何把函数定义放进subroutine里
追答
你为啥非要把function放在 Subroutine 里面呢??
语法规定就是函数间各自独立的。
不管源代码function书写在subroutine里面,还是外面。只要你可以用就OK了。

subroutine a()
real func
write( * , * ) func( 3 , 2 )
end subroutine a

real function func( a , b )
real a , b
func = a + b
end function func
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式