Fortran Coder

查看: 20723|回复: 11
打印 上一主题 下一主题

[子程序] 数组实参传递到虚参出错

[复制链接]

130

帖子

10

主题

0

精华

大师

F 币
617 元
贡献
372 点

贡献勋章管理勋章帅哥勋章元老勋章星光勋章规矩勋章

楼主
发表于 2018-6-26 15:10:43 | 显示全部楼层
subroutine的声明部分,                               請列出各"虛參"的type/dimension宣告
CALL lineplu_v1(...). CALL doubplu_v1(...), 請列出各"實參"的type/dimension宣告

130

帖子

10

主题

0

精华

大师

F 币
617 元
贡献
372 点

贡献勋章管理勋章帅哥勋章元老勋章星光勋章规矩勋章

沙发
发表于 2018-6-27 20:28:26 | 显示全部楼层
藍原なみだ 发表于 2018-6-27 19:19
subroutine lineplu_v1的宣告:

REAL*8 ALPHA,AREA,B,CO2,COMG,CN2,CNMG,DS,DZ,DENSEA,DENSEP,DENSEW,

1. REAL(8) 是 REAL(KIND=8),  REAL*8 是 8-byte REAL, 兩者不一定相同 (compiler dependent)
    如果有問題, compile-time 應該就知道, 所以就不是這個問題
    建議你通通改為 REAL*8, 或是
    INTEGER, PARAMETER :: r8=SELECTED_REAL_KIND(P=15)
    REAL(KIND=r8) :: ...

2. 請問你的 compiler ?

3. 請告知 完整的 SUBROUTINE title
   SUBROUTIEN doubplu_v1(...)
   SUBROUTINE lineplu_v1(...)

4. 請先自己檢查 "虛參"與"實參"的對應 是否一致

5. ksrc=?, km1=?
    REAL(8), DIMENSION (1:km1) :: qwd, bwd
    CALL lineplu_v1(..., qwd(1:ksrc), bwd(1:ksrc), ...)

130

帖子

10

主题

0

精华

大师

F 币
617 元
贡献
372 点

贡献勋章管理勋章帅哥勋章元老勋章星光勋章规矩勋章

板凳
发表于 2018-6-27 21:03:25 | 显示全部楼层
chiangtp 发表于 2018-6-27 20:28
1. REAL(8) 是 REAL(KIND=8),  REAL*8 是 8-byte REAL, 兩者不一定相同 (compiler dependent)
    如果有 ...

1. 虛參CO2M有問題,   對應的實參是 DOamb(1:kms)
in SUBROUTINE DOUBPLU_v1,  REAL*8 :: CO2M
in SUBROUTINE LINEPLU_v1,     REAL*8 :: CO2M(1000)

2. 實參 salamb 與 patm 的 type?

3. runtime時, 請確認: km1=1000, krsc=500

130

帖子

10

主题

0

精华

大师

F 币
617 元
贡献
372 点

贡献勋章管理勋章帅哥勋章元老勋章星光勋章规矩勋章

地板
发表于 2018-6-27 21:08:12 | 显示全部楼层
4. 實參: CALL ABC(..., zamb (1:kms), Tamb (1:kms), DOamb(1:kms), ..., qwd(1:ksrc), bwd(1:ksrc), ...), array-setction的用法, 沒有必要
   --->  CALL ABC(..., zamb, Tamb, DOamb, ..., qwd, bwd, ...)

130

帖子

10

主题

0

精华

大师

F 币
617 元
贡献
372 点

贡献勋章管理勋章帅哥勋章元老勋章星光勋章规矩勋章

5#
发表于 2018-6-27 21:17:45 | 显示全部楼层
應該就是錯在這裡: in SUBROUTINE DOUBPLU_v1
REAL*8 :: CO2M   --->  REAL*8 :: CO2M(1000)

130

帖子

10

主题

0

精华

大师

F 币
617 元
贡献
372 点

贡献勋章管理勋章帅哥勋章元老勋章星光勋章规矩勋章

6#
发表于 2018-6-28 17:39:13 | 显示全部楼层
藍原なみだ 发表于 2018-6-28 16:10
非常感谢你,但是我修改为CO2M(1000)以后运行,赋值仍然和以前一样......

實參 salamb 與 patm 的 type?
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-5 07:15

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表