以文本方式查看主题

-  Fortran中文网  (http://fortran.cn/bbs/index.asp)
--  Fortran语言开发经验交流  (http://fortran.cn/bbs/list.asp?boardid=3)
----  请高手指点,急,谢谢  (http://fortran.cn/bbs/dispbbs.asp?boardid=3&id=2246)

--  作者:linuxlxx
--  发布时间:2011/3/10 11:09:09

--  请高手指点,急,谢谢
各位大虾:

定义了数组,x(idim,jdim,kdim),y(idim,jdim,kdim),z(idim,jdim,kdim)

如果:x(:,:,:)=y(:,:,:)+z(:,:,:);表示什么意思啊,最近在看程序,遇到了点类似的问题,请高手指点。


--  作者:大胆想
--  发布时间:2011/3/13 8:37:21

--  

印象中新版本FORTRAN(2003)中矩阵操作(如矩阵加减法)可以一个语句完成,免除了老版本的做几个do循环。

楼主的这句可能就是矩形求和。


--  作者:chunxiao
--  发布时间:2011/3/14 19:45:42

--  
这种情况直接z=x+y即可。
冒号的实用情况:INTEGER::A(10)=(/(I*2,I=1,10)/),B(10,3)B(:,2)=A

--  作者:whl2dxl
--  发布时间:2011/4/18 1:07:33

--  

x(:,:,:)=y(:,:,:)+z(:,:,:);是指可以自定义大小的数组

例如 定义一个数组 real(8),allocatable:: x(:)

   然后定义它的大小allocate (x(10000))

不知道你要问的是不是这个问题

[此贴子已经被作者于2011-4-18 1:07:56编辑过]


--  作者:tsz2008
--  发布时间:2011/5/6 14:03:10

--  

定义了数组,x(idim,jdim,kdim),y(idim,jdim,kdim),z(idim,jdim,kdim)
如果:x(:,:,:)=y(:,:,:)+z(:,:,:);表示什么意思啊,最近在看程序,遇到了点类似的问题,请高手指点。

首先这是f90对新增的对数组的操作,实际上就是x(i,j,k)=y(i,j,k)+z(i,j,k)

注意x(:,:,:)代表数数组x的首地址,也等价于数组x,所以

x(:,:,:)=y(:,:,:)+z(:,:,:) 可以简写为

x=y+z

上面只是F90新支持的功能哦,不要见怪。


京ICP备05056801号