Fortran Coder

查看: 659|回复: 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

166

帖子

2

主题

1

精华

大师

Vim

F 币
1003 元
贡献
482 点

规矩勋章

发表于 2024-3-28 08:41:02 | 显示全部楼层
可能是ifx还没适配好

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没有这个问题了
--------------------------------------------
编辑一下,看错了,更新后还是这样

166

帖子

2

主题

1

精华

大师

Vim

F 币
1003 元
贡献
482 点

规矩勋章

发表于 2024-3-28 19:41:40 | 显示全部楼层
Viola 发表于 2024-3-28 17:27
原来是这样,谢谢回复!我干脆更新了oneAPI没有这个问题了
-------------------------------------------- ...

改成ifort试试
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-10-11 10:38

Powered by Tencent X3.4

© 2013-2024 Tencent

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