| 查看: 2591 | 回复: 15 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
hanye0517木虫 (小有名气)
|
[求助]
fortran 如何在子程序中实现动态数组的定义和声明? 已有4人参与
|
||
|
我编了一个动态数组的小例子,代码如下 但是我觉得声明数组和分配内存的语句在主程序里太碍眼了,很烦躁。 想把他放到subroutine或者module或者function中,让结构更清晰。 但是子程序中的话,能编译,但是显示段错误。 module中干脆不能编译。 function说是只能返回一个数值,不知到怎么能返回一个数组,还是一个动态数组。 其实我想实现的功能就是避开复杂的fortran声明,像matlab那样用一个函数什么的声明一个动态数组。比如上边程序中,如果要是能用time=func(n),生成一个n个元素的一维数组,TB=func(m,n)生成一个2位数组就最好了。不知到这样的程序function要怎么整?求指导! |
» 猜你喜欢
退学或坚持读
已经有6人回复
多组分精馏求助
已经有6人回复
免疫学博士有名额,速联系
已经有8人回复
26申博求博导推荐-遥感图像处理方向
已经有5人回复
国家级人才课题组招收2026年入学博士
已经有6人回复
交叉科学部支持青年基金,对三无青椒是个机会吗?
已经有7人回复
青椒八年已不青,大家都被折磨成啥样了?
已经有15人回复
国家基金申请书模板内插入图片不可调整大小?
已经有6人回复

supersunyan
金虫 (正式写手)
- 应助: 10 (幼儿园)
- 金币: 1585.9
- 散金: 1604
- 红花: 9
- 帖子: 695
- 在线: 296小时
- 虫号: 1145382
- 注册: 2010-11-13
- 性别: GG
- 专业: 流体力学
【答案】应助回帖
感谢参与,应助指数 +1
|
不知你做什么用,我们计算时会用到多个网格块,每个块都是不定大小的,用时循环定义就是了。如: module data type blocktype integer : :n real,allocatable:: x( ![]() end blocktype type(blocktype),alloacatable::blk( ![]() end module data program main use data implicit none integer :: i allocate(blk(100)) do i=1,100 blk(i)%n=i allocate(blk(i)%x(blk(i)%n)) enddo end program [ 发自小木虫客户端 ] |

15楼2014-04-22 21:03:15
baobiao007
木虫 (职业作家)
中国特色
- 应助: 201 (大学生)
- 金币: 6482.7
- 散金: 557
- 红花: 40
- 帖子: 3050
- 在线: 1009.9小时
- 虫号: 505962
- 注册: 2008-02-18
- 专业: 应用地球物理学

2楼2014-04-21 13:31:51
虚空中的幻影
金虫 (正式写手)
- 应助: 9 (幼儿园)
- 金币: 1563.4
- 散金: 694
- 帖子: 335
- 在线: 232.7小时
- 虫号: 1012166
- 注册: 2010-05-05
- 性别: GG
- 专业: 核物理
3楼2014-04-21 15:18:46
hanye0517
木虫 (小有名气)
- 应助: 1 (幼儿园)
- 金币: 1700.7
- 散金: 98
- 红花: 17
- 帖子: 144
- 在线: 116.8小时
- 虫号: 1253805
- 注册: 2011-04-02
- 性别: GG
- 专业: 核物理

4楼2014-04-21 15:36:15













回复此楼