像文件一样解析Fortran字符串

时间:2015-09-30 04:48:36

标签: string fortran

我想将一个字符串从C传递给Fortran,然后逐行处理,就好像我正在读取文件一样。这可能吗?

示例字符串 - 包含换行符

File description: this file contains stuff
3 Values
  1     Description
  2     Another description
  3     More text

然后,我想逐行解析字符串,就像文件一样。与此类似:

subroutine READ_STR(str, len)
character str(len),desc*70

read(str,'(a)') desc
read(str,*) n
do 10 i=1,n
read(str,*) parm(i)
10    continue

1 个答案:

答案 0 :(得分:2)

并非没有重要的“手动”干预。有几个问题:

  • 换行符在内部文件中没有特殊含义。内部文件中的记录对应于数组中的元素。您可能需要先将字符标量手动预处理为数组,或者使用跳过换行符的单个READ。

  • 如果您确实将字符串处理为数组,则内部文件不会在父READ语句之间维护文件位置。您需要自己手动跟踪当前记录,或使用访问多个记录的单个READ语句处理整个数组。

如果您有可变宽度字段,那么编写一个格式规范来处理单个READ中的所有内容可能会有问题,但这取决于输入的详细信息。