24小时热门版块排行榜    

查看: 3028  |  回复: 5
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

nano_xinxin

金虫 (小有名气)

[交流] 【求助】求指点,在Fortran里面,怎样实现“数组维度可调”的数组?

我刚开始学习 Fortran 语言编程,最近在编程时,遇到一个问题,因为要在程序里面涉及一个do 循环,希望通过控制 do 循环的循环变量 I ,来调用一个维度可以改变的三维数组(第一维度已经确定),例如数组 A (I ,:,:) .
        例如,我希望:
     ..............
   
     real(8) , allocatable  ::   A ( : ,: ,:)
         ..............

   I=1 时, A (1 ,: ,:) 数组元素是一个4*3(四乘三) 的二维矩阵;
   I=2 时, A (2 ,:,:) 数组元素是一个3*5 的二维矩阵;
     ..............
         I=N时, A (N ,: ,:) 数组元素 是一个X*Y的二维矩阵.
     ..............
        
        请问,怎样定义、赋值、调用这样一个维度可以改变的动态数组?(三个维度同时改变或者只改变第二、第三维度?)
     
     谢谢!

[ Last edited by nano_xinxin on 2010-9-2 at 19:26 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

好好做人,认真做事
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nano_xinxin

金虫 (小有名气)

引用回帖:
Originally posted by liubin1984 at 2010-09-07 17:53:25:

我想的是用子例行程序,用SUBROTINE(A,I,J,K)
                                    其中A是程序名,ijk就是其维度,用子例行程序应该能解决。

谢谢你!
    我仔细思考了一下,用子例行程序 SUBROTINE   XX(A,I,J,K) 的话,假设 XX 是程序名, A 是返回的矩阵,调用的时候,通过改变 I,J,K 的值,的确可以改变 A 的数组维度(需重新定义A)。但是,在调用的时候,首先要定义 A 的矩阵维度,当改变I,J,K 的时候,相当于又要重新定义一个矩阵A*,等价于在调用之前要定义N个不同维度的矩阵A1,A2,...,AN,即通过调用该 子例行程序 SUBROTINE   XX(A,I,J,K) ,只是起到了一个定义多个矩阵维度不同的矩阵这样一个功能,实际上数组名 A 已经发生了变化。
    我设想的是在数组名 A 不变的情况下,怎样实现改变其数组维度。
    感谢你的帮助!
好好做人,认真做事
6楼2010-09-07 22:10:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

nano_xinxin

金虫 (小有名气)

不会吧,没人甩我
好好做人,认真做事
2楼2010-09-04 09:46:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hakekill

木虫 (小有名气)


nano_xinxin(金币+8):谢谢啦,我试试看,再想一想 2010-09-04 20:25:39
余泽成(金币+1):谢谢参与应助! 2010-09-04 22:26:04
你这个只能自己定义数据类型了。
我的想法是:
CODE:
type a
integer i
integer, dimension(:,:), pointer :: arr
end type a

[ Last edited by hakekill on 2010-9-4 at 11:15 ]
3楼2010-09-04 11:14:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liubin1984

木虫 (著名写手)

不纠结的男人

nano_xinxin(金币+10):谢谢 2010-09-07 22:10:49
引用回帖:
Originally posted by 250748574 at 2010-09-05 20:22:26:
谢谢发帖

我想的是用子例行程序,用SUBROTINE(A,I,J,K)
                                    其中A是程序名,ijk就是其维度,用子例行程序应该能解决。
路漫漫其修远兮,吾将上下而求索
5楼2010-09-07 17:53:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考博] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 j5mmowWXNWxv 2026-09-05 4/200 2026-09-06 12:49 by eObJPa4gWmp6
[考博] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 j5mmowWXNWxv 2026-09-05 4/200 2026-09-06 12:29 by eObJPa4gWmp6
[找工作] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 jPDp0sc2B7zQ 2026-09-05 7/350 2026-09-06 11:40 by eObJPa4gWmp6
[硕博家园] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 jPDp0sc2B7zQ 2026-09-05 7/350 2026-09-06 11:20 by eObJPa4gWmp6
[基金申请] 科研人应该花精力去思考如何解决问题,而不是去凝练问题 +10 瞬息宇宙 2026-09-01 19/950 2026-09-06 11:15 by jiangxuan2004
[博后之家] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 jPDp0sc2B7zQ 2026-09-05 8/400 2026-09-06 11:09 by eObJPa4gWmp6
[教师之家] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 jPDp0sc2B7zQ 2026-09-05 8/400 2026-09-06 11:00 by eObJPa4gWmp6
[考研] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 jPDp0sc2B7zQ 2026-09-04 7/350 2026-09-06 11:00 by eObJPa4gWmp6
[论文投稿] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +6 7ZYIEW2YWn72 2026-09-04 9/450 2026-09-06 06:00 by E1iiBLMU2XnD
[教师之家] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +8 CRJ0Aq2FtVH0 2026-09-03 15/750 2026-09-06 05:48 by E1iiBLMU2XnD
[硕博家园] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 jPDp0sc2B7zQ 2026-09-05 5/250 2026-09-06 02:39 by E1iiBLMU2XnD
[论文投稿] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 jPDp0sc2B7zQ 2026-09-05 5/250 2026-09-06 02:19 by E1iiBLMU2XnD
[基金申请] 面上没中,邀请各位路过的虫友分析一下分数 +12 jackleilei 2026-09-03 13/650 2026-09-05 18:10 by fireguard
[文学芳草园] 两块石头 +6 阿美_Lml888 2026-09-03 8/400 2026-09-05 13:52 by 阿美_Lml888
[文学芳草园] 初秋的晨风 +4 阿美_Lml888 2026-09-04 6/300 2026-09-05 13:51 by 阿美_Lml888
[基金申请] 学科评审组评审是指会评吗? +6 瞬息宇宙 2026-08-31 9/450 2026-09-05 13:11 by haizai99
[博后之家] 广西大学-广州大学招聘博士后 欢迎广大优秀人才!!! +4 SCSIOyxguo 2026-09-03 7/350 2026-09-05 10:39 by Honglianlian
[硕博家园] Ei源刊怎么投 +4 Fengshun9711 2026-09-04 4/200 2026-09-04 19:30 by 研途知予
[硕博家园] 哈尔滨工业大学韩晓军教授课题组招收2027年硕士推免生及博士研究生 +3 灯灯灯灯DDDD 2026-09-03 3/150 2026-09-03 21:22 by 科研皮皮猪
[基金申请] 要骂人了,新模版改版就是要淡化问题凝练这种虚的东西,结果有个评委还在说凝练得不够 +9 瞬息宇宙 2026-08-31 17/850 2026-09-02 14:04 by anjeeshine
信息提示
请填处理意见