请教大神 如何在fortran 子程序中再定义函数进行运算
2个回答
展开全部
就跟在主程序里面的定义函数一样,主程序和子程序的变量也可以是相同的,
如,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
大概就是这样
如,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程序设计这本书吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询