Fortran Coder

查看: 2171|回复: 1
打印 上一主题 下一主题

[数值问题] Fortran中传递数组,将三维数组传递到二维数组

[复制链接]

3

帖子

2

主题

0

精华

新人

F 币
14 元
贡献
6 点
跳转到指定楼层
楼主
发表于 2022-8-3 23:54:27 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
Fortran中传递数组,将三维数组传递到二维数组
[Fortran] 纯文本查看 复制代码
program ex0819
implicit none
integer,parameter::dim1=2
integer,parameter::dim2=2
integer,parameter::dim3=2
integer::a(dim1,dim2,dim3)
a(:,:,1)=1
a(:,:,2)=2
call getarray1(a(:,:,1),dim1,dim2)
call getarray2(a(1,1,2),dim1)
stop
end program ex0819

subroutine getarray1(a,dim1,dim2)
implicit none
integer::dim1,dim2
integer::a(dim1,dim2)
write(*,*)a
return
end subroutine getarray1

subroutine getarray2(a,dim1)
implicit none
integer::dim1,dim2
integer::a(dim1,*)!最后一维可以不赋值数组大小
integer::i
write(*,*)(a(:,i),i=1,2)
return
end subroutine getarray2

第一个子程序
为什么出来的结果会是1,1,1,1,第二个子程序为什么出来的结果会是2,2,2,2???

(彭国伦Fortran95程序设计,p182页例子)


分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-5 01:20

Powered by Tencent X3.4

© 2013-2024 Tencent

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