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

使用gfortran时OPEN语句中MAXREC说明符出现语法错误求助

解决gfortran编译SGI遗留Fortran OPEN语句的语法错误

问题原因

你原来在SGI Unix上运行的代码用了非标准的maxrec参数——SGI自家的Fortran编译器允许在OPEN语句里用这个参数指定直接访问文件的最大记录数,但gfortran严格遵循标准Fortran语法,根本不认maxrec这玩意儿,所以才会报语法错误,跟参数顺序没关系。

修复方法

直接删掉maxrec=2606这个参数即可,标准Fortran的直接访问文件不需要预先声明最大记录数,只要读写时使用的记录号在文件实际存在的范围内就行。

修正后的代码

open(unit=14, recl=185, file='fort.15', status='old',
     1      access='direct')

或者按你调整后的参数顺序编写(仅风格差异,不影响编译):

open(unit=14, file='fort.15', status='old', access='direct',
     1      recl=185)

额外提醒

如果原代码中有依赖maxrec做记录数校验的逻辑,需要手动在代码中添加校验:比如在读写记录前判断记录号是否≤2606,避免出现越界访问的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 08:17:03