Fortran函数返回字符

时间:2014-12-03 17:02:48

标签: function fortran character

我有一个返回字符串的函数。在Fortran有 要求必须定义输出s的长度而不能定义 是(len=*)。我不确定打电话时可能会遇到什么问题 一个函数和字符串比在。中声明的大小更短或更长 功能。

Function real_to_str_new  &
  (                       &
    r, fmt                &
  )                       &
    Result (s)

Real, Intent(in) :: r
Character (len=*), Intent(in) :: fmt

Character (len=65) :: s

1 个答案:

答案 0 :(得分:3)

有一个函数结果不是很重要,问题遵循赋值规则。

在(内在)分配中,如果您有variable = expr字符类型,则7.2.1.3, 10规则为:

  

对于变量类型为字符的内部赋值语句,expr可能具有不同的字符长度参数,在这种情况下,expr到变量长度的转换如下所示。

     

(1)如果变量的长度小于expr的长度,则expr的值从右边截断,直到它与变量的长度相同。

     

(2)如果变量的长度大于expr的长度,则使用空格将expr的值扩展到右边,直到它与变量的长度相同。

在这种情况下,expr(作为函数结果)具有长度参数65,variable将具有声明的长度参数(除非allocatable发挥作用)。