数组是没有办法改变大小的。
间接的办法包括:
1.用两个数组。
Real :: a(3,4) , b(2,4)
b(1,:) = a(1,:)
b(2,:) = a(3,:)
这样b就相当于a删除了一列
2.用两个可分配数组。方法类同上面的。但可以实现缩减后还是 a
3.用一个可分配数组,一个指针:
[Fortran] 纯文本查看 复制代码 program www_fcode_cn
Implicit None
Integer , target :: a(3,4)
Integer , pointer :: p(:,:)
a(:,:) = reshape( (/1,2,3,4,5,6,7,8,9,10,11,12/) , (/3,4/) )
p=>a
write(*,99) p
a(:,2:3) = a(:,3:4)
p=>a(:,1:3)
write(*,99) p
99 format(4(3i5,/))
end program www_fcode_cn
4.用串表,类似于指针,但更复杂一些。 |