[問題] C 呼叫lapack..

看板Fortran作者 (交換關聯)時間16年前 (2008/10/03 01:30), 編輯推噓1(102)
留言3則, 1人參與, 最新討論串1/1
參考這Code : http://www.openmx-square.org/zero_fermi/zero_fermi.c 注意到他呼叫lapack(既dsygv_ )前 做了下面的事: for (i=0; i<n; i++) { for (j=0; j<n; j++) { a[j*n+i] = A[i+1][j+1]; b[j*n+i] = B[i+1][j+1]; } } 把二維array轉成一維,並且放置方式比造fortran(column base) dsygv裡面是 http://www.netlib.org/lapack/double/dsygv.f 關於 a,b的輸入也沒有限制為幾維array,只是若自己程式直接用fortran 通常是2D array。 請問是否C call lapack只要參考此例,將2D-array轉為1-D array後既可? thx -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.117.70.62

10/03 12:56, , 1F
如果只是要call lapack 就像你說的這樣 如同c一般call c的
10/03 12:56, 1F

10/03 12:56, , 2F
subroutine, 大概只有兩個要注意:1. 函數後面要加底線 XXX_
10/03 12:56, 2F

10/03 12:57, , 3F
然後 C這邊要傳址過去 不能傳值
10/03 12:57, 3F
文章代碼(AID): #18vGKOvf (Fortran)
文章代碼(AID): #18vGKOvf (Fortran)