fortran中call的用法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
fortran中call的用法
Fortran语言是一种被广泛应用的编程语言,其中call语句是常见的语句之一。
本文将围绕Fortran中call的用法进行讲解,并分步骤阐述。
首先,call语句是用于调用过程(procedure)的语句,过程是Fortran程序中的一种子程序,它可以实现一段特定的功能。
为了调用一个过程,需要按照如下格式书写一个call语句:
```
CALL Procedure-name ( Argument-list )
```
其中,Procedure-name是被调用的过程名称,Argument-list是传递给过程的参数列表。
下面是一个具体的例子:
```
REAL FUNCTION Add ( X, Y )
REAL X, Y
Add = X + Y
END FUNCTION
PROGRAM Main
REAL A, B, C
A = 1.0
B = 2.0
CALL Add(A, B, C)
PRINT *, 'A + B =', C
END PROGRAM
```
在该例子中,Add过程接收两个参数X和Y,并返回它们的和。
然后,在主程序中使用call语句调用Add过程,并将两个实参A和B 传递给该过程。
在调用结束后,Add过程将计算结果存储在变量C中,
然后主程序使用print语句输出结果。
除了用于调用过程,call语句还可以用于调用使用指针的过程。
此时,需要在传递指针参数时使用%符号。
下面是一个例子:```
SUBROUTINE Swap ( A, B )
REAL, INTENT(INOUT) :: A, B
REAL, POINTER :: Temp
Temp => A
A => B
B => Temp
END SUBROUTINE
PROGRAM Main
REAL, POINTER :: X, Y
ALLOCATE (X, SOURCE=1.0)
ALLOCATE (Y, SOURCE=2.0)
CALL Swap (X%VAL, Y%VAL)
PRINT *, 'X =', X%VAL
PRINT *, 'Y =', Y%VAL
DEALLOCATE (X)
DEALLOCATE (Y)
END PROGRAM
```
在该例子中,Swap过程使用两个指针参数A和B,并将它们交换。
主程序中使用allocate语句分配两个指针变量X和Y,并使用call语句调用Swap过程,并将X和Y的值传递给它。
在执行完Swap过程后,X和Y的值被交换,主程序使用print语句输出结果。
综上所述,Fortran中的call语句是用于调用过程的语句,它可以接收传递给过程的参数,并传递返回值给调用者。
在使用call语句时,需要按照如上所述的格式书写,并根据参数的类型和使用方式进
行适当的类型转换。