首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >子例程内有数组的循环

子例程内有数组的循环
EN

Stack Overflow用户
提问于 2014-03-24 18:02:15
回答 1查看 120关注 0票数 0

我有一个关于fortran子例程中的循环的问题。

如果我把它作为子例程,那么变量测试就会变成从1到5的数组。

附注:type3被定义为real, dimension(5,1)

代码语言:javascript
运行
复制
subroutine build(test)
    type(typelist)     :: test
    do i = 1, 5
        test%type3(i)         = i 
end subroutine build

然而,这是一个错误;

代码语言:javascript
运行
复制
    ||Error: Rank mismatch in array reference  (1/2)|

当我删除测试%3后的"(i)“时,它将工作,但结果是5.000 5.000 5.000。因此,它只将最后一个循环中的值分配给数组中的所有条目。如果我删除了%测试,程序就不知道变量测试是什么类型了,它给出了

代码语言:javascript
运行
复制
 ||Error: Unclassifiable statement  |

有人能告诉我我做错了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-24 18:13:08

你忘记用test%type3(i,1) = i赋值了吗?

因为type3是一个2D数组,所以需要两个索引来赋值。当您键入test%type3 = i时,您将使用相同的值在同一时间分配所有元素。这就是为什么最终你会得到所有的5.0

PS。ENDDO语句在哪里?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22617149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档