Re: [請益] 如何將矩陣值傳入副程式?
請參考如下
program main_test
real,allocatable :: aaa(:,:,:,:)
real,allocatable :: bbb(:,:,:,:)
integer ii,jj,kk
! ii,jj,kk=.....
allocate ( aaa(ii,jj,kk,3) )
allocate ( bbb(ii,jj,kk,3) )
do i=1,kk
...
aaa(...)=...
bbb(...)=...
..
enddo
call sub_test (aaa,bbb,ii,jj,kk)
stop
end
subroutine sub_test(aaa,bbb,ii,jj,kk)
real :: aaa,bbb
integer :: ii,jj,kk
dimenstion aaa(ii,jj,kk,3)
dimenstion bbb(ii,jj,kk,3)
print*, aaa,bbb
return
end
※ 引述《zx168zx (zx168zx)》之銘言:
: 小弟想請益一下
: 如何將主程式所設定好的矩陣傳入副程式
: 小弟的矩陣是四維的
: 一開始先設定allocatable的四維可變矩陣
: allocatable :: aaa(:,:,:,:)
: allocatable :: bbb(:,:,:,:)
: ----中間計算ii,jj,kk--------
: allocate ( aaa(ii,jj,kk,3) )
: allocate ( bbb(ii,jj,kk,3) )
: 之後open六個檔案分別寫入aaa,bbb中
: 我是用
: do 1,kk
: do 1,jj
: do 1,ii
: read(114,......)
: read(115,......)
: read(116,......)
: read(117,......)
: read(118,......)
: read(119,......)
: aaa(i,j,k,1) = 114的資料
: aaa(i,j,k,2) = 115的資料
: aaa(i,j,k,3) = 116的資料
: bbb(i,j,k,1) = 117的資料
: bbb(i,j,k,2) = 118的資料
: bbb(i,j,k,3) = 119的資料
: enddo
: enddo
: enddo
: 把資料寫進去 像是四維資料庫的方式
: 然後我的subroutine需要用到我這個四維矩陣的值
: 但我現在不知道要如何將這個矩陣傳入
: 他在執行後出現
: error LNK2001: unresolved external symnol aaa@16
: error LNK2001: unresolved external symnol bbb@16
: 我有想過是不是要用interface 但看彭大的書好像是回傳在用
: 麻煩各位大大解惑
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.30.15
※ 文章網址: http://www.ptt.cc/bbs/Fortran/M.1414028883.A.114.html
※ 編輯: laa7352 (118.163.30.15), 10/23/2014 09:48:46
→
10/23 10:02, , 1F
10/23 10:02, 1F
→
10/23 10:05, , 2F
10/23 10:05, 2F
→
10/23 10:06, , 3F
10/23 10:06, 3F
→
10/23 10:08, , 4F
10/23 10:08, 4F
※ 編輯: laa7352 (118.163.30.15), 10/23/2014 10:53:35
※ 編輯: laa7352 (118.163.30.15), 10/23/2014 10:55:40
→
10/23 16:08, , 5F
10/23 16:08, 5F
→
11/02 03:13, , 6F
11/02 03:13, 6F
→
11/02 03:13, , 7F
11/02 03:13, 7F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Fortran 近期熱門文章
PTT數位生活區 即時熱門文章