我的代碼中包含2049個元素的數組。其中1681被稱爲流體粒子,368被稱爲邊界粒子。 現在粒子排列1681 + 368 = 2049。我需要添加40個粒子到我的陣列。新的粒子必須在1681年之後添加。我的問題是,如何從我的陣列中移動368以添加在1681之後爲40的新數字,以成爲總數= 2088。 請注意,我必須不時添加相同的編號到我的陣列添加數字並將其移動到Fortran中的同一個數組中
回答
您需要分配一個新的數組並複製它們。例如:
real, allocatable::a(:),tmp(:)
allocate(a(4))
a=(/1,2,3,4/)
write(*,*)a
allocate(tmp(5))
tmp(1:2)=a(1:2)
tmp(4:5)=a(3:4)
tmp(3)=0
call move_alloc(tmp,a)
write(*,*)a
1.0 2.0 3.0 4.0
1.0 2.0 0.0 3.0 4.0
注意如果你真的有一個塵封已久的f95編譯器瓦特/ move_alloc
最後一行必須替換爲:
deallocate(a)
allocate(a(5))
a=tmp
deallocate(tmp)
這可能需要兩倍於使用move_alloc
,因爲它實際上覆制了兩次。如果你發現自己在大型數組中執行此操作,則應該升級編譯器。
還有更簡潔的'a = [a(:2),0.,a(3 :)]'。 – francescalus
不是w/f95。我猜這是2008年的標準? (不適用於ifort 13,這是我認爲2003兼容的) – agentp
重新分配賦值以及使用數組構造函數的方括號都是Fortran 2003.ifort需要/標準語義才能工作,並且存在錯誤在左側重新分配的東西也出現在數組構造函數中。 – IanH
- 1. 添加到Fortran中的字符數組
- 2. 移動並添加一個元素到一個數組
- 3. 從數組中獲得值並將其添加到一個字符串中
- 4. 將一個數組添加到同一個循環中的另一個數組
- 5. 將textView的字符添加到數組中並將每個字母添加到數組中
- 6. 將PHP數組添加到MySQL中並添加其他列
- 7. 將多個字節[]添加到Java中的一個數組中
- 8. JavaScript - 帶空字段的反向數組並將其添加到舊數組中
- 9. 將JavaScript添加到數組中並將其顯示在html中
- 10. 將數組的第一個元素添加到同一個數組中
- 11. 將數組中的元素移動到其他數組中
- 12. 將數組添加到同一維數
- 13. 查找數組並將其移動到Multidimesional數組的開頭
- 14. 將數組中的每個數字添加到數組中的每個其他數字
- 15. C - 將字符串添加到數組x並將其從數組中移除y
- 16. php將2個數組添加到同一個會話數組
- 17. php將新字段添加到數組並將其顯示
- 18. 如何查找在兩個數組中的對象並將其快速添加到另一個數組中?
- 19. 如何將一個字符串數組添加到Swift中AnyObject的數組中?
- 20. 將XLSX隱藏到字符串中並將其添加到數組
- 21. 獲取視圖正在平移的字典鍵並將其添加到數組
- 22. 在Java中讀取兩個不同的arrayList值並將其添加到同一個數組對象
- 23. 將數組添加到數組中,其中鍵等於變量
- 24. 如何解碼json字符串並將其添加到PHP中的數組中
- 25. 如何將一個函數添加到PHP中的數組中
- 26. 獲取數組並將數組移動到php中的對象
- 27. 如何將一個數組的值添加到字符串中
- 28. 從行中grep一個數字並將其附加到文件
- 29. 如何將一個數組中的元素添加到另一個數組中?
- 30. 從retreiving值環和動態將其添加到一個JSON數組中的
這是一個相當混亂的問題,你可以請嘗試使用一些適當的文本格式和一個更容易理解的解釋你正在尋找什麼?對我來說,這聽起來像你正在尋找可以動態增長的數組? – haraldkl
是的,我想我的數組自動增長取決於我的條件 –
http://stackoverflow.com/q/7468268/1004168 – agentp