从数组创建数组

时间:2014-05-24 19:24:14

标签: fortran fortran90

我想调整一个数组的大小。例如,如果我有一个包含10个元素的数组,我想排除前5个元素,从中定义另外5个元素,并将新10元素分配给新数组。也许我有这个想法,但我有一个问题来定义新的矢量。请在下面找到我的想法。

Program test

Implicit None

Integer               :: i,j,k,m,n

Real,Dimension(1:20)  ::A

Real,Dimension(1:15)  ::B

Do j=1,20

A(j)=j+3

End do

 Do i=1,5

   Do m=1,3
    ! here, i want to define new array with 15 elements 
    ( A(i)+m*0.5*(A(i+1)-A(i)) )

   End do

End Do

End Program test

1 个答案:

答案 0 :(得分:0)

考虑到评论中的信息,您的代码最直接的扩展如下,但您的意图并不是那么清楚。它使用A的前6个元素,而不是5。

Do i=1,5

   Do m=1,3

     B(3*(i-1)+m) = A(i)+m*0.5*(A(i+1)-A(i))

   End do

End Do

此代码将进行以下分配:

   B(1) <- A(1)+1*0.5*(A(2)-A(1))
   B(2) <- A(1)+2*0.5*(A(2)-A(1))
   ...
   B(4) <- A(2)+1*0.5*(A(3)-A(2))

检查您是否真的打算这个订单,它也可能是5*(m-1)+i