| 查看: 3115 | 回复: 9 | ||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | ||
鸿影惊天下金虫 (小有名气)
|
[求助]
主程序中未分配的可变数组,如何在子程序中调用?
|
|
|
请前辈们帮忙,自己编的一段程序: Program test_main implicit none integer NP,ele_n,NE,NNE,npt,num integer,pointer :: ele_concentrate( : ),ele_c( : ) double precision,pointer::vcl( : , : ) interface subroutine new_node(NP,ele_n,NE,NNE,ele_concentrate,ele_c,vcl,npt,num) implicit none integer NP,ele_n,NE,NNE,npt,num integer,allocatable :: ele_concentrate(NE),ele_c(NNE) double precision,allocatable :: vcl(2,npt) end subroutine new_node subroutine zhaobian_gj01(NP,ele_n,NE,NNE,ele_concentrate,ele_c,vcl,npt,num) implicit none integer NP,ele_n,NE,NNE,npt,num integer :: ele_concentrate(NE),ele_c(NNE) double precision ::vcl(2,npt) end subroutine zhaobian_gj01 end interface call zhaobian_gj01(NP,ele_n,NE,NNE,ele_concentrate,ele_c,vcl,npt,num) call new_node(NP,ele_n,NE,NNE,ele_concentrate,ele_c,vcl,npt,num) end 后面的zhaobian_gj01, new_node是子程序经调试没有错误,但是主程序在调试过程中总报错。 ![]() 一个错误是可变数组ele_concentrate,ele_c,vcl:ALLOCATABLE or POINTER attribute dictates a deferred-shape-array 另外一个错误是An allocatable dummy argument may only be argument associated with an allocatable actual argument. 同样也是可变数组出错。 两个错误都出在interface块。 求有经验的前辈帮忙指点一二!谢谢 [ Last edited by 鸿影惊天下 on 2014-3-4 at 15:06 ] |
» 猜你喜欢
真诚求助:手里的省社科项目结项要求主持人一篇中文核心,有什么渠道能发核心吗
已经有8人回复
寻求一种能扛住强氧化性腐蚀性的容器密封件
已经有5人回复
论文投稿,期刊推荐
已经有6人回复
请问哪里可以有青B申请的本子可以借鉴一下。
已经有4人回复
孩子确诊有中度注意力缺陷
已经有14人回复
请问下大家为什么这个铃木偶联几乎不反应呢
已经有5人回复
请问有评职称,把科研教学业绩算分排序的高校吗
已经有5人回复
2025冷门绝学什么时候出结果
已经有3人回复
天津工业大学郑柳春团队欢迎化学化工、高分子化学或有机合成方向的博士生和硕士生加入
已经有4人回复
康复大学泰山学者周祺惠团队招收博士研究生
已经有6人回复
» 本主题相关价值贴推荐,对您同样有帮助:

5楼2014-03-04 18:04:47
2楼2014-03-04 16:07:33
鸿影惊天下
金虫 (小有名气)
- 应助: 4 (幼儿园)
- 金币: 1011.8
- 散金: 840
- 红花: 1
- 帖子: 140
- 在线: 36.4小时
- 虫号: 2359442
- 注册: 2013-03-19
- 性别: MM
- 专业: 力学中的基本问题和方法
|
对不起我不是很明白,你的意思是vcl这个数组定义成(2,: )是已经给定了大小吗?我把interface块改成这样: interface subroutine new_node(NP,ele_n,NE,NNE,ele_concentrate,ele_c,vcl,npt,num) implicit none integer NP,ele_n,NE,NNE,npt,num integer,allocatable :: ele_concentrate(NE),ele_c(NNE) double precision :: vcl(2,npt) end subroutine new_node end interface interface subroutine zhaobian_gj01(NP,ele_n,NE,NNE,ele_concentrate,ele_c,vcl,npt,num) implicit none integer NP,ele_n,NE,NNE,npt,num integer,allocatable :: ele_concentrate(NE),ele_c(NNE) double precision ::vcl(2,npt) end subroutine zhaobian_gj01 end interface 之后,vcl数组不再提示错误,但是其他两个数组还是会报原来的错误。但是如果把interface里申请可变数组的allocatable都去掉,错误提示就会变成:error #8000: There is a conflict between local interface block and external interface block. [ELE_CONCENTRATE] 位置是在interface里zhaobian_gj01(NP,ele_n,NE,NNE,ele_concentrate,ele_c,vcl,npt,num)这一句。 这是为什么呢? |

3楼2014-03-04 17:02:28
4楼2014-03-04 18:03:06














回复此楼
就行了,确定大小用allocate(vcl(2,npt))