當前位置:首頁 » 編程語言 » c語言調用fortran

c語言調用fortran

發布時間: 2022-08-29 07:48:50

Ⅰ 如何在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編程語言

! max與min在Fortran里已經有了。。。
Integer i,j,q,e,r;
Integer p; !交點個數
Integer m(520) !i條射線交點個數
Real v(108+1) !速度
Real s(520,12*9+1)
Real s2(520,12*9+1) !射線在每個格子內的路程
Real k(520) !第i條直線的斜率
Real time(505) !i條射線的走時
Real f1(520,0:22),f2(520,0:22),t !i條射交點橫縱坐標
Real x1(145,109),x2(145,109)
Real h1(145,109),h2(145,109)
float w(4)

!///////////////////速度賦初值/////////////
v=3.0;
v[21]=5.0;
v[30]=5.0;
v[78]=2.0;
v[79]=2.0;
!///////////////// //路程賦初值//////////////
time=0
s=0

!/////////////////上方激發,左側接收///////////
Do i=1,4
w(i)=7.5+(i-1)*10
p=0
Do j=12*(i-1)+1,12*i
k(j)=(1.5+3*p)/w(i)
p=p+1
End Do
End Do

!///////////////////////求交點的縱坐標/////////////
Do i=1,48
m(i)=i-(i-1)/12*12
Do j=0,m(i)
f2(i,j)=3*j+1.5
End Do
End Do

!我就譯這點兒吧,程序貌似有問題,譯下去的意義不太大。往後的您也可以照著來搞。
!您的C功底應該OK啦,上面我譯的已經把下面的都搞全了,而且程序確實有問題,比如那個time在後面再也沒有用過~~~~
!建議您再檢查檢查程序吧,保證他是對的譯了才有意義啊,否則嘛~~~~呵呵:)

Ⅲ fortran如何調用c語言函數,本人小白,求大神寫詳細點

你的想法,叫做 「混合編程」,簡稱「混編」。

混編有多種方式,一般有:
1.直接調用 C 編譯後的 exe
2.通過 DLL
3.通過靜態 lib
4.通過編譯器直接鏈接Fortran和C的obj

不管是 Fortran 還是 C 的語法,通常不會規定混編的具體內容。這些內容,是不同的編譯器自行規定的。(至少絕大多數是)

所以,具體的操作,也因你選擇的編譯器產品,因你選擇的混編方式,而有較大的不同。

所以,我建議你:
1.閱讀你使用的 C 編譯器和 Fortran 編譯器的幫助文檔,查看其中關於混合編程(mix-language)的章節。
2.如果你閱讀英文幫助有困難,至少告知你使用何種 C編譯器,何種 Fortran 編譯器。打算採用何種混編方式。

Ⅳ 如何使用c語言或fortran語言讀入從數據採集儀中採集的數據

需要串口通信備
描述
CON
控制台(即屏幕,標准輸出設備)
PRN
列印機
COMl
1#串列通信口
COM2
2#串列通信口
COM3
3#串列通信口
COM4
4#串列通信口
LPTl
1#並行通信口
LPT2
2#並行通信口
LPT3
3#並行通信口
LPT4
4#並行通信口
NUL
空(NLTLL)設備。放棄輸出,不包含任何輸入
AUX
1#串列通信口
LINE1
1#串列通信口
USER1
標准輸出
ERRl
標准錯誤
CONOUT$
標准輸出
CONIN$
標准輸入
你可以逐一試一下
用open(unit=4, file='COM1')等諸如此類的語句打開物理設備

Ⅳ c語言中的continue在fortran中用什麼表示

c語言中的continue在fortran就是「繼續向下進行的意思」;
編譯起來continue沒有任何意義,它不參與程序進行。

但是在編寫程序的時候,有利於程序分段和模塊化,最常於Do等一起使用。

CYCLE和EXIT,cycle在DO循環內時執行時,當前循環執行被停止,返回到當前循環頂部,繼續執行。

do 100

100 continue
這里continue雖然不參與運算,但是它和do配合起來就把一段代碼給分割成了一塊了。

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

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

Ⅶ C語言的程序 換成FORTRAN和Lisp 寫出來!

(defun c:aa()
(setq m (getint "\n請輸入m:>"))
(setq n (fac m))
(princ (strcat "\nm=" (rtos m 2 0) " n=" (rtos n 2 0)))
(prin1)
)

(defun fac(a)
(if (or (= a 0) (= a 1))
(setq c 1)
(setq c (* a (fac (- a 1))))
)
)

我只會lisp,經我測試,這個階乘的程序可用。希望能給我分。如用不了可以找我

Ⅷ c語言如何將全局變數傳遞給fortran

基本要求1.具有計算機的基礎知識。2.了解操作系統的基本概念,掌握常用操作系統的使用。3.掌握基本數據結構和常用演算法,熟悉演算法描述工具――流程圖的使用。4.能熟練地使用一種高級語言或資料庫語言編寫程序、調試程序。考試內容一、基礎知識與基本操作(一)基礎知識1.計算機系統的主要技術指標與系統配置。2.計算機系統、硬體、軟體及其相互關系。3.微機硬體系統的基本組成。包括:中央處理器(運算器與控制器),內存儲器(RAM與ROM),外存儲器(硬碟、軟盤與光碟),輸入設備(鍵盤與滑鼠)輸出設備(顯示器與列印機)。4.軟體系統的綴成,系統軟體與應用軟體;軟體舶蒸豐概念,文檔;程序設計語言與語言處理程序(匯編程序、編譯程序、解釋程序)。5.計算機的常用數制(二進制、十六進制及其與十進制之間的轉換);數據基本單位(位、位元組、字)。6.計算機的安全操作;計算機病毒的防治。7.計算機網路的一般知識。8.多媒體技術的一般知識。(二)DOS的基本操作l.操作系統的基本功能與分類。2.DOS操作系統的基本組成。3.文件、目錄、路徑的基本概念。4.常用DOS操作,包括:初始化與啟動:文件操作(TYPE,COPY,DEL,REN,XCOPY,ATTRⅠB);目錄操作(DⅠR,MD,CD,RD,TREE,PATH);磁碟操作(FORMAT,DⅠSKCOPY,CHKDSK);功能操作(ⅤER,DATE,TⅠME,CLS,PROMPT,HELp);批處理(批處理文件的建立與執行,自動批處理文件);輸入輸出改向。(三)Windows的基本操作1.Windows的特點、基本構成及其運行環境。2.Windows用戶界面的基本元素。包括:窗口、圖標、菜單、對話框、按鈕、游標等。3.Windowo基本操作。包括:啟動與退出,滑鼠操作,窗口操作,圖標操作、菜單操作,對話框操作。二、程序設計1.能運用結構化程序設計方法編寫程序。2.掌握基本數據結構和常用演算法。3.能熟練使用一種高級語言或一種資料庫語言(共有QBASIC、FORTRAN、C以及FoxBASE+等四種語言,考生任選其中一種。各種語言的考試內容附後)。三、上機操作在指定的時間內使用微機完成下述操作:1.完成指定的計算機基本操作(包括機器啟動和操作命令的使用)。2.按給定要求編寫和運行程序。3.調試程序,包括對給出的不完善的程序進行修改和補充,使之能得到正確的結果。C語言程序設計(一)C語言的結構1.程序的構成,main函數和其它函數。2.頭文件、數據說明、函數的開始和結束標志。3.源程序的書寫格式。4.C語言的風格。(二)數據類型及其運算1.C的數據類型(基本類型、構造類型、指針類型、空類型)及其定義方法2.C運算符的種類、運算優先順序、結合性。3.不同類型數據間的轉換與運算。4.C表達式類型(賦值表達式、算術表達式、關系表達式、邏輯表達式、條件表達式、逗號表達式)和求值規則。(三)基本語句1.表達式語句,空語句,復合語句2.數據的輸入與輸出,輸入輸出函數的調用。3.復合語句。4.go to 語句和語句標號的使用。(四)選擇結構程序設計1.有if語句實現選擇結構。2.用switch語句實現多分支選擇結構。3.選擇結構的嵌套。(五)循環結構程序設計1.for 循環結構。2.while和do while循環結構。3.continue語句、break語句。4.循環的嵌套。(六)數組的定義和引用1.一維數組和多維數組的定義、初始化和引用。2.字元串與字元數組。(七)函數1.庫函數的正確調用。2.函數的定義方法。3.函數的類型和返回值。4.形式參數與實在參數,參數值的傳遞。5.函數的正確調用,嵌套調用,遞歸調用。6.局部變數和全局變數。7.變數的存儲類別(自動、靜態、寄存器、外部),變數的作用域和生存期。8.內部函數與外部函數。(八)編譯預處理1.宏定義:不帶參數的宏定義;帶參數的宏定義。2.「文件包含」處理。(九)指針1.指針與指針變數的概念,指針與地址運算符。2.變數、數組、字元串、函數、結構體的指針以及指向變數、數組、字元串、函數、結構體的指針變數。通過指針引用以上各類型數據。3.用指針作函數參數。4.返回指針值的指針函數。5.指針數組,指向指針的指針,main函數的命令行參數。(十)結構體(即「結構」)與共用體(即「聯合」)1.結構體和共用體類型數據的定義方法和引用方法。2.用指針和結構體構成鏈表,單向鏈表的建立、輸出、刪除與插入。(十一)位運算1.位運算符的含義及使用。2.簡單的位運算。(十二)文件操作只要求緩沖文件系統(即高級磁碟I/O系統),對非標准緩沖文件系統(即低級磁碟I/O系統)不要求。1.文件類型指針(FILE類型指針)。2.文件的打開與關閉(fopen,fclose)。

Ⅸ C語言調用Fortran

將fortran代碼封裝成靜態鏈接庫(lib),然後調用約定改為 大寫(編譯器不同配置也不同),在C中包含這個庫,然後生命外部函數 就可以調用了

Ⅹ FORTRAN編程語言與C語言

fortran語言中可通過定義子程序從而返回一系列變數值,而c語言的函數一般只能返回一個變數值。

Fortran語言的最大特性是接近數學公式的自然描述,在計算機里具有很高的執行效率。易學,語法嚴謹。可以直接對矩陣和復數進行運算,這一點類似MATLAB。自誕生以來廣泛地應用於數值計算領域,積累了大量高效而可靠的源程序。很多專用的大型數值運算計算機針對Fortran做了優化。廣泛地應用於並行計算和高性能計算領域。

C語言是一個有結構化程序設計、具有變數作用域(variable scope)以及遞歸功能的過程式語言。C語言傳遞參數均是以值傳遞(pass by value),另外也可以傳遞指針(a pointer passed by value)。不同的變數類型可以用結構體(struct)組合在一起。只有32個保留字(reserved keywords),使變數、函數命名有更多彈性。部份的變數類型可以轉換,例如整型和字元型變數。通過指針(pointer),C語言可以容易的對存儲器進行低級控制。預編譯處理(preprocessor)讓C語言的編譯更具有彈性。

熱點內容
億速雲北京三區伺服器雲主機 發布:2025-01-16 18:52:01 瀏覽:359
我的世界網易伺服器做家園 發布:2025-01-16 18:50:33 瀏覽:553
虛擬存儲安全教程 發布:2025-01-16 18:49:48 瀏覽:574
vps配置ftp 發布:2025-01-16 18:49:02 瀏覽:157
qtc比python好用 發布:2025-01-16 18:39:48 瀏覽:488
電腦有免費伺服器嗎 發布:2025-01-16 18:35:28 瀏覽:220
sql生成唯一 發布:2025-01-16 18:35:25 瀏覽:223
圖片滾動源碼 發布:2025-01-16 18:35:18 瀏覽:300
運維和php 發布:2025-01-16 18:21:46 瀏覽:877
舊電腦改web伺服器 發布:2025-01-16 18:20:49 瀏覽:49