CABSDock编译遇Fortran 2018已删除特性警告,请求技术支持
解决CABSDock编译警告的方案
警告原因
这个警告是因为新版gfortran遵循Fortran 2018标准,该标准删除了用带标签的非END DO/CONTINUE语句终止DO循环的特性。你的CABSDock源码基于旧版Fortran标准编写,所以用新版gfortran编译时会触发这个警告。
可行解决方法
1. 调整编译参数兼容旧标准(最快)
不用修改源码,直接在编译命令里添加-std=legacy参数,强制gfortran采用旧Fortran标准编译,即可屏蔽该警告:
gfortran -O2 -std=legacy -o CABSdock [你的源码文件列表]
如果源码符合Fortran 95标准,也可以用-std=f95替代-std=legacy,效果一致。
2. 修改源码(彻底解决)
找到警告提示的第1879行附近的DO循环,将带标签的终止语句改成END DO或CONTINUE:
- 原代码大概是这种写法:
DO 7000 i = 1, num ! 循环内代码
7000 PRINT *, i
- 改成`END DO`形式(推荐): ```fortran DO i = 1, num ! 循环内代码 PRINT *, i END DO
- 或者保留标签用
CONTINUE:DO 7000 i = 1, num ! 循环内代码 PRINT *, i
7000 CONTINUE
### 3. 单独屏蔽该警告(临时方案) 如果不想修改编译标准也不想改源码,直接添加`-Wno-deleted-features`参数屏蔽已删除特性的警告: ```bash gfortran -O2 -Wno-deleted-features -o CABSdock [你的源码文件列表]
内容的提问来源于stack exchange,提问作者Farha Anwer
相关产品推荐
相关产品推荐

