You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fortran 77中如何拆分超长字符串变量以适配72列行宽限制?

在Fortran 77中拆分超长字符串的解决方案

在Fortran 77里处理超过72列的字符串确实挺头疼的,不过有两种标准且可靠的方法能解决这个问题,保证编译通过:

方法1:使用字符串连接符//拆分

你可以把长字符串拆成多个短片段,每个片段放在单引号里,然后用Fortran的字符串连接符//把它们连起来,同时利用Fortran的续行规则(第6列放续行标记,比如&)来拆分代码行。示例如下:

CHARACTER*256 MYSTRING
      DATA MYSTRING / 'Lorem ipsum dolor sit amet, consectetur adipiscing '//
     &'elit, sed do eiusmod tempor incididunt ut labore et dolore magna '//
     &'aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco '//
     &'laboris nisi ut aliquip ex ea commodo consequat.' /

注意:

  • 第6列的&是续行标记,必须放在这个位置(不能在其他列),告诉编译器这行是上一行的延续。
  • 每个字符串片段要控制在7-72列范围内,符合Fortran 77的代码列限制。
  • 片段末尾的空格要保留,确保拼接后的字符串和原内容一致。

方法2:利用DATA语句的多行续行特性

Fortran 77的DATA语句允许将多个相邻的字符串常量自动拼接成一个长字符串,不需要连接符,同样用续行标记拆分代码行即可:

CHARACTER*256 MYSTRING
      DATA MYSTRING / 'Lorem ipsum dolor sit amet, consectetur adipiscing ',
     &'elit, sed do eiusmod tempor incididunt ut labore et dolore magna ',
     &'aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco ',
     &'laboris nisi ut aliquip ex ea commodo consequat.' /

这种方法和第一种效果完全一样,只是少了连接符//,写起来更简洁。需要注意的点和方法1一致,重点是续行标记的位置和字符串片段的列范围。

另外要提醒一下:有些老的Fortran编译器可能对续行标记的字符有要求(比如用*而不是&),如果&不行的话,换成*试试,这两种都是标准允许的续行标记。

内容的提问来源于stack exchange,提问作者Flux

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.01 02:17:43