2015-06-29 37 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