Fortran 函数和返回值
如何在 Fortran 中编写一个同时接受输入和输出作为参数的函数?例如:
fun(integer input,integer output)
我想利用输出值。我已经尝试过类似的操作,但输出变量未保存该值。
具体来说,我从 Fortran 调用一个 C 函数,它将输入和输出作为参数。我能够成功传递输入值,但输出变量未获取值。
How can I write a function in Fortran which takes both input and output as arguments? For example:
fun(integer input,integer output)
I want to make use of the output value. I have tried something like this but the output variable is not holding the value.
Specifically, I am calling a C function from Fortran which takes input and output as parameters. I am able to pass input values successfully, but the output variable is not acquiring a value.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在 Fortran 中,
fun()
称为子例程。函数是一个像这样返回值的东西:所以你的第一个决定是你的 Fortran 代码将采用哪种方法。您可能想使用子例程。然后理清你的论点的意图。
In Fortran, your
fun()
is called a subroutine. A function is a value-returning thing like this:So your first decision is which approach your Fortran code will take. You probably want to use a subroutine. Then sort out the intent of your arguments.
一个例子。如果你想要一个返回 void 的函数,你应该使用子例程。
如果您正在调用 C 例程,则签名将使用引用。
如果你使用字符串,事情就会变得混乱。
An example. if you want a function that returns void you should use a subroutine instead.
If you are calling a C routine, then the signature makes use of references.
if you use strings, things gets messy.