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

Fortran 77编译报错#6633:实参与哑参类型不匹配求助

解决Fortran 77编译报错#6633:实参与哑参类型不匹配

问题根源

Fortran 77默认遵循隐式类型规则:首字母为I-N的变量默认是整数类型,其余字母开头的变量默认是实数类型。你的代码里:

  • COMMON块中的A首字母非I-N,默认被识别为实数类型
  • 子程序START3的哑参JAD11首字母J属于I-N范围,默认被识别为整数类型
    调用START3(A(KA(LJAD1)))时,实参是实数数组元素,哑参要求整数数组,类型不匹配触发#6633错误。

解决方案

方案1:修正COMMON块中A的类型

如果程序逻辑要求START3接收整数数组,在定义COMMON /VARDIM/的代码块前,显式声明A为整数类型:

INTEGER A
      COMMON /VARDIM/ A(8000000)                                        VSO  220

方案2:修正子程序START3的哑参类型

如果A确实应该是实数类型,在START3中显式声明JAD11为实数类型,放在DIMENSION语句之前:

SUBROUTINE START3(JAD11)                                          RT3   10
      REAL JAD11
      DIMENSION JAD11(JD11)                                             RT3  410
      ......
      RETURN                                                            RT3 1150
      END                                                               RT3 1160

额外检查点

  • 确认KA(LJAD1)的返回值类型:KA作为函数,其返回值应是整数类型(用于数组索引),如果KA未显式声明,也要检查它的隐式类型是否正确。
  • 建议在所有程序单元开头添加IMPLICIT NONE(虽然Fortran77不强制,但能避免隐式类型带来的后续问题,不过要注意需要显式声明所有变量)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 08:35:10