Fortran中存在几种特殊的函数或子程序,这些函数或子程序需要在定义时特殊说明。主要有以下三种特殊程序
- pure 程序 (纯程序)
- recursive 程序 (递归程序)
- elemental 程序 (逐元程序)
pure 程序
pure程序是不造成任何副作用的程序,即不能对输入参数以及模块中的数据进行修改,局部变量定义时不能初始化,也不能有save属性。很多函数都可以定义为pure 函数。
|
|
该程序中定义了add纯函数,作用是将两个字符合起来,相当于 // 符号, 可以利用该函数重载 +,使文字合并操作与 python 一致。
结果
|
|
recursive 程序
递归程序是不断调用自身的程序,它一定是一个纯程序
该程序中定义了 fact 递归函数,求一个整数的阶乘。
结果
|
|
elemental 程序
elemental程序的形参是标量,但输入参数可以是标量也可以是数组,如果是数组,则对数组中的每一个元素调用该程序。逐元程序也必须是纯函数。
该程序中定义了将字符转换为整数的逐元函数to_int和将字符转化为实数的逐元函数to_real。
结果
|
|