當前位置:首頁 » 編程軟體 » fortran與c混合編程

fortran與c混合編程

發布時間: 2022-06-21 20:47:24

❶ 請問,這個c語言與Fortran混編的函數是什麼意思

CS_PROCF應該是C的一個宏,你可以查一下這個宏的定義是什麼。

應該是把後面的兩個參數 caltri, CALTRI 以一定的格式組合成fortran的函數名。

一般來說 在C中調用fortran,聲明後可以直接調的。

❷ 問Fortran 和C語言混編如何編寫Makefile

您可以下載編譯器與編譯器直接編譯就好了。 。 。的前提是要編譯的源代碼,

❸ 如何在C語言中調用FORTRAN生成的DLL里的函數

C語言和Fortran混合編程藉助於Fortran生成的DLL進行(採用C默認的傳址方式進行函數參數傳遞)方法和實例:
1.Fortran
生成DLL
新建Fortran
DLL程序test1.f
添加如下代碼:
! test1.f90

! FUNCTIONS/SUBROUTINES
exported from test1.dll:
! test1 -
subroutine
!示例沒有返回值的子常式
subroutine
test1(a,b)
! Expose subroutine test1 to
users of this DLL

!DEC$ ATTRIBUTES
C,DLLEXPORT::test1
! Variables
! Body of
test1
integer a,b
integer sum
sum=a+b
return
end subroutine
test1
!示例有返回值的整數四則運算
!兩數相加
function
add(a,b)
implicit none
!DEC$ ATTRIBUTES
C,DLLEXPORT::add
integer
a,b,add
add=a+b
return
end
!兩數相減
function
abstract(a,b)
implicit none
!DEC$ ATTRIBUTES
C,DLLEXPORT::abstract
integer
a,b,abstract
abstract=a-b
return
end
!兩數相乘
function
multiply(a,b)
implicit none
!DEC$ ATTRIBUTES
C,DLLEXPORT::multiply
integer
a,b,multiply
multiply=a*b
return
end
!兩數相除
(需要添加考慮被除數是否為0以及能否整除的判斷)
function
divided(a,b)
implicit none
!DEC$ ATTRIBUTES
C,DLLEXPORT::divided
integer
a,b,divided
divided=a/b
return
end
編譯後生成test1.dll,test1.obj等文件。其中這兩個文件是我們在VC中調用所需要的。

❹ C#和FORTRAN混合編程中,如何合理設置進度條 做的是一個科學類計算軟體,C#做界面,FORTRAN做演算法內核。

多線程步考慮安全其實很簡單的,如果你繼續學vc遲早是要接觸的。我把用進度條的程序給你個框架代碼你自己填;
1、設計一個帶有進度條的對話框,把對話框用一個類CProgressDlg 來管理(這個你會吧),進度條增加一個成員變數m_progress;
2、定義一個多線程函數DWORD WINAPI ThreadReadFile (CProgressDlg *pDlg)(如何聲明函數你應該會),函數實體裡面就是具體讀取文件的代碼,先取得文件的大小,用這個除一個整數設置進度條的最大值,文件大了,分一小塊一小塊的讀,比如1024K,這樣就好插入對進度條的操作,每讀一塊就pDlg->m_progress.SetPos(progressStep+1);怎麼分?你自己看MSDN。文件讀完後在pDlg->PostMessage(WM_CLOSE);AfxMessageBox("文件已讀完!");發送消息關閉主線程的對話框結束工作。
3、在主線程其實就是你的主程序里先調用多線程函數,然後產生對話框;
[code=C/C++][/code]
CProgressDlg *pdlg=new CProgressDlg;//注意:一定要把對話框的Visable選上才能顯示控制項;
HANDLE m_Thread; //線程句柄
DWORD threadID;
//AfxBeginThread(ThreadReadFile ,NULL,THREAD_PRIORITY_NORMAL,0,0,NULL);
m_Thread=CreateThread(NULL, 0,
(LPTHREAD_START_ROUTINE)ThreadReadFile ,(LPVOID)pdlg,0,&threadID);
pdlg->DoModal();//產生進度條對話框,這個對話框由你的線程來結束,否則一直有。

❺ c語言和fortran語言可以結合編程嗎

可以。如 軍酷兒所說「Fortran做成DLL動態庫格式,在C中直接調用就行了」。
建議看一下彭國倫老師的fortran95程序設計一書

❻ FORTRAN/C++混合編程中字元串的傳遞問題

C 語言這樣調用
extern "C" {int _stdcall FACT (int n,char *,int len);}

FACT(7,string,strlen(string))

❼ 用vs2008和ivf11進行c和fortran的混合編程,出現lnk2019錯誤

看fortran代碼,有沒有定義的變數或是有些變數在某個部位寫錯了,這需要你重新檢查一遍,細心一點找出來改了就ok了

❽ 請教下64位下Fortran和C混編應該使用哪種編譯器

IVF現在不支持直接同一工程的混編,需要分開兩個工程。

如果還有問題,請告知具體提示。你的 IVF 版本號。

❾ vs2013如何實現C與Fortran混合編程

方法一,使用obj

  1. 創建兩個工程。其中一個 C ,其中一個Fortran

  2. 把被調用的工程編譯(但不鏈接),得到一個obj文件

  3. 把 obj 文件添加到需調用的工程中。鏈接。

方法二,使用lib

  1. 創建兩個工程。其中一個 C ,其中一個 Fortran(被調用的創建為靜態庫 lib)

  2. 把被調用的工程編譯,鏈接,得到一個 lib文件

  3. 把 lib文件添加到需調用的工程中。再次鏈接。

❿ 我看了你的「請教下64位下Fortran和C混編應該使用哪種編譯器 」,請問在VS2008里怎麼編譯C+FORTRAN的程

VS2008是不能直接編譯Fortran的,你安裝的是intel fortran的編譯器嗎?如果是的話,VS2008編譯環境不支持VC和intel fortran的混編,你需要把其中一種語言打包成.dll的庫文件再在另一種語言中調用它。.dll的具體生成過程網上你可以搜索到不少。

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:645
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:936
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:632
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:821
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:731
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1066
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:299
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:160
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:850
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:763