Fortran Coder

查看: 796|回复: 3
打印 上一主题 下一主题

[调试器] 数组传递问题

[复制链接]

2

帖子

1

主题

0

精华

新人

F 币
15 元
贡献
5 点
跳转到指定楼层
楼主
发表于 2024-3-28 00:24:53 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
本帖最后由 Viola 于 2024-3-28 00:28 编辑

初学Fortran,边用边学,还请大佬们不吝赐教。我在给程序新加了一个module并调用后,没有编译错误但出现了问题:为什么进入子程序后,H的维度变成了(1:1),而不是子程序中声明的DIMENSION(N)呢?
我简化了一下出现问题的程序:

[Fortran] 纯文本查看 复制代码
MODULE Source1

IMPLICIT NONE

PUBLIC :: sub_a

CONTAINS

SUBROUTINE sub_a (N,H)

INTEGER, PARAMETER :: wp = SELECTED_REAL_KIND(12,307)
INTEGER, INTENT(in) :: N
REAL(wp), DIMENSION(N), INTENT(inout) :: H
INTEGER::k

DO k = 2,N
H = H+H
END DO

END SUBROUTINE sub_a


END MODULE Source1


[Fortran] 纯文本查看 复制代码
 PROGRAM Console1

USE Source1
IMPLICIT NONE


INTEGER, PARAMETER :: wp = SELECTED_REAL_KIND(12,307)
INTEGER, PARAMETER :: k = 20
REAL(wp), DIMENSION(:), ALLOCATABLE :: v

ALLOCATE(v(k))
v(:) = 0.0

CALL sub_a (k,v) 

END PROGRAM Console1





1111.png (29.75 KB, 下载次数: 65)

1111.png
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

168

帖子

2

主题

1

精华

大师

Vim

F 币
1021 元
贡献
486 点

规矩勋章

地板
发表于 2024-3-28 19:41:40 | 只看该作者
Viola 发表于 2024-3-28 17:27
原来是这样,谢谢回复!我干脆更新了oneAPI没有这个问题了
-------------------------------------------- ...

改成ifort试试

2

帖子

1

主题

0

精华

新人

F 币
15 元
贡献
5 点
板凳
 楼主| 发表于 2024-3-28 17:27:55 | 只看该作者
本帖最后由 Viola 于 2024-3-28 17:34 编辑
Transpose 发表于 2024-3-28 08:41
可能是ifx还没适配好

原来是这样,谢谢回复!我干脆更新了oneAPI没有这个问题了
--------------------------------------------
编辑一下,看错了,更新后还是这样

168

帖子

2

主题

1

精华

大师

Vim

F 币
1021 元
贡献
486 点

规矩勋章

沙发
发表于 2024-3-28 08:41:02 | 只看该作者
可能是ifx还没适配好
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-12-22 17:24

Powered by Tencent X3.4

© 2013-2024 Tencent

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