




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第八章 函 數(shù), 8-5特殊參數(shù)的使用方法,Fortran 90 中:可設(shè)置某些參數(shù)的屬性:為只讀或可寫等 參數(shù)個數(shù)可以不定 傳遞參數(shù)的順序可變,8-5-1 參數(shù)的屬性,FORTRAN 90用INTENT設(shè)置虛參的屬性: 類型,INTENT(IN): 參數(shù)變量名 !參數(shù)為只讀,不能改變數(shù)值,否則編譯會出現(xiàn)錯誤信息 類型,INTENT(OUT): 參數(shù)變量名 !參數(shù)在程序中重新設(shè)置數(shù)值,否則編譯會出現(xiàn)警告 類型,INTENT(INOUT): 參數(shù)變量名 !參數(shù)可讀可寫,和沒指定一樣 Fortran 中,變量作為實參傳遞出去之后,在調(diào)用函數(shù)后有可能被改變,以此來限制或提醒。,8-5-2 函數(shù)的使用
2、接口(INTERFACE),INTERFACE是一段程序模塊,說明所要調(diào)用的函數(shù)的參數(shù)類型及返回值的類型等。,例:,結(jié)構(gòu):,Interface !interface定義開始 Function func_name(n1, n2nm) !開始定義函數(shù) func_name Implicit none Integer !聲明n1nm及返回值func_name Real !的數(shù)值類型 End function func_name !定義函數(shù)func_name結(jié)束 Subroutine sun_name !定義子程序sub_name Implicit none Integer . Real . End s
3、ubroutine sub_name . End interface !interface 結(jié)束,8-5-2 函數(shù)的使用接口(INTERFACE),必須要使用的情況: 函數(shù)返回值為數(shù)組 指定參數(shù)位置來傳遞參數(shù)時 所調(diào)用的函數(shù)的參數(shù)數(shù)目不固定 輸入指針參數(shù)時 函數(shù)返回值為指針時,8-5-3 不定個數(shù)的參數(shù)的傳遞,Fortran 90 中采用optional 命令來聲明可省略參數(shù),要用interface作函數(shù)的參數(shù)定義,或用Module來定義,8-5-4 改變參數(shù)的傳遞位置,Fortran 90中,可以改變參數(shù)傳遞位置,要用interface聲明 subroutine sub(a, b,c) Ca
4、ll sub(b=2, c=3, a=1) 直接代入函數(shù)變量名來傳遞 子程序接受到的是a=1, b=2, c=3 對于有多個可省略參數(shù)的函數(shù),調(diào)用時可使用這個辦法只傳遞其中的部分參數(shù),例:,Subroutine sub(a, b, c, d, e, f) implicit none integer, optional: a, b, c, d, e, f end subroutine sub Call sub(b=3, f=5) !只輸入b和f的值,其他省略,例:要計算A*X*2+B*X+C, 對于A, B,C沒有的情況默認為0來計算,8-6 特殊的函數(shù)類型,Fortran 90中的函數(shù)可以特別
5、指定成 RECURSIVE 遞歸 PURE ELEMENTAL 這三種特殊類型,并行及數(shù)組設(shè)置時使用,8-6-1 遞歸(RECURSIVE),遞歸函數(shù)除了被其他程序塊調(diào)用外,可以自己調(diào)用自己來執(zhí)行程序 必要條件: 每次被調(diào)用時,遞歸函數(shù)中的局部變量(那些不是傳遞的參數(shù)和SAVE的變量)獨立存在,每次被調(diào)用會使用不同的內(nèi)存地址。 用result來設(shè)置另一個儲存返回值的變量 程序中要設(shè)置調(diào)用終點,以免無限循環(huán)調(diào)用,格式 : Recursive 類型 function func_name( parameters) result (ans),Result可以用來在程序代碼中使用另外一個名字來設(shè)置函數(shù)的
6、返回值,根據(jù)fortran 90標(biāo)準(zhǔn),最開始加上recursive才能遞歸調(diào)用,Recursive subroutine ( parameters ),例題, 計算N!,執(zhí)行: 【ans = n * fact(n-1) 】 n=4 第一次調(diào)用:ans=4*fact(3) , 調(diào)用fact(n-1) 第二次調(diào)用:n=3, ans=3*fact(2), 調(diào)用fact(n-1) 第三次調(diào)用:n=2, ans=2*fact(1), 調(diào)用fact(n-1) 第四次調(diào)用:n=1, ans=1, 返回,返回值 Fact(1)=Ans=1 Fact(2)=ans=2*fact(1)=2! Fact(3)=an
7、s=3*fact(2)=3! Fact(4)=ans=4*fact(3)=4!,每次被調(diào)用時,遞歸函數(shù)中的局部變量獨立存在,每次被調(diào)用會使用不同的內(nèi)存地址。,執(zhí)行: n=4 第一次調(diào)用:ans=4*fact(3) , count=1, localcount=1, count=2 第二次調(diào)用:n=3, ans=3*fact(2), localcount=2, count=3 第三次調(diào)用:n=2, ans=2*fact(1), localcount=3, count=4 第四次調(diào)用:n=1, ans=1, localcount=4, count=5返回,返回后 N=2, Fact(1)=Ans=1
8、, count=5, localcount=3; N=3, Fact(2)=ans=2*fact(1)=2! Count5,localcount=2; N=4, Fact(3)=ans=3*fact(2)=3! Count=5, localcount=1 主程序: Fact(4)=ans=4*fact(3)=4!,write(6,(I2,th enter, n=,I2) localcount, nans = n * fact(temp) write(6,(I2,th exit, n=,I2, ans=,I5, count=, i3) localcount, n, ans, count,特別注意改變傳遞參數(shù)帶來的問題,非遞歸函數(shù)的局部變量可能每次調(diào)用放在相同的內(nèi)存位置,WRITE(6, 100) localcount, n FORMAT(I2,th enter, n=,I2) . Temp=n-1 fact = n * ifact(temp) WRITE(6, 200) localcount, n, fact,從第2次調(diào)用開始temp和虛參的n
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家庭健康檔案與疾病預(yù)防計劃表
- 股份制改革流程操作指南
- 養(yǎng)殖產(chǎn)業(yè)合作與獸醫(yī)服務(wù)協(xié)議
- 專業(yè)寫作培訓(xùn)資源共享協(xié)議
- 公司內(nèi)部人事調(diào)整規(guī)章制度
- 智能交通系統(tǒng)建設(shè)及交通管理優(yōu)化方案設(shè)計
- 工作流程表格-任務(wù)清單
- 電子會議系統(tǒng)使用記錄表格
- 數(shù)學(xué)故事征文探索數(shù)學(xué)之美與實際應(yīng)用價值
- 歷史古代文明發(fā)展脈絡(luò)閱讀題
- 雨水管道水力計算表
- (完整版)《西游記》競賽題目100題
- 困境兒童走訪調(diào)查表、致困原因確定參考標(biāo)準(zhǔn)、困境兒童評估報告
- 電機學(xué)同步電機-全套課件
- 農(nóng)產(chǎn)品電商營銷與運營PPT完整全套教學(xué)課件
- 2023年福建省中考英語真題及參考答案
- 新譯林牛津版英語八年級上冊Unit1-Friends復(fù)習(xí)優(yōu)質(zhì)課公開課課件
- 麻醉科醫(yī)師晉升副主任(主任)醫(yī)師高級職稱病例分析專題報告(全麻期間心跳驟停)
- 房室旁道及AVRT的消融
- 數(shù)據(jù)要素市場化配置探索:理論與實踐
- 護理員崗前培訓(xùn)
評論
0/150
提交評論