2015-06-29 36 views
2

我有一个原始阵列称为pres_lev3d,其大小由pres_lev3d(im*jm, levsi),其中im*jm是72960和levsi定义是64,这相当于全球大气数据,从而大小。该数组是可分配的:real (kind=kind_io8), allocatable :: pres_lev3d(:, :)。我有一个第二阵列,press_1d,其大小也以类似的方式pres_1d(im*jm, levsi)定义的,但此数组中levsi是1如何连接两个阵列Fortran 90中

我需要两个阵列(技术上一个二维和一维阵列)串联到的阵列形状(/72960, 65/)。在MATLAB这似乎是一个非常简单的过程,但是,我似乎无法找到一个简单的方法去解决它的Fortran 90

我曾尝试创建第三个数组

pres_lev=(/pres_lev3d, pres_1d/) 

和也试图使用merge,但这些方法似乎都没有解决。

我是Fortran的新手。

回答

4

如果我已经按照你的解释正确,这将可能是工作

real(kind_io8), dimension(72960,65) :: out_array 
    ... 
    out_array(:,1:64) = pres_lev3d 
    out_array(:,65) = pres_1d 

如果这还不够方便,或者如果我误解了你的问题,进一步解释。要分配​​以符合您的输入阵列,请尝试类似

real(kind_io8), dimension(:,:), allocatable :: out_array 
    ... 
    allocate(out_array(size(pres_lev3d,1),size(pres_lev3d,2)+1)) 
    ... 
    out_array(:,1:64) = pres_lev3d 
    out_array(:,65) = pres_1d 
+0

工作就像一个魅力!非常感谢! – malanga