版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Fortran95/2003第九章過(guò)程的附加特性1精選課件ppt本章學(xué)習(xí)目標(biāo):
學(xué)習(xí)在Fortran過(guò)程中如何使用多維數(shù)紐?理解何時(shí)、如何使用SAVE屬性或者SAVE語(yǔ)句?理解可分配數(shù)組和自動(dòng)數(shù)組之間的區(qū)別以及何時(shí)在過(guò)程中分別使用它們?理解純過(guò)程和逐元過(guò)程?學(xué)習(xí)怎樣聲明和使用內(nèi)部子程序及函數(shù)2精選課件ppt9.1給子程序和函數(shù)傳遞多維數(shù)組9.1.1顯式結(jié)構(gòu)的形參數(shù)組9.1.2不定結(jié)構(gòu)的形參數(shù)組(assumed-shapedummyarrays)3精選課件ppt在聲明不定結(jié)構(gòu)的數(shù)組時(shí),數(shù)組中的下標(biāo)都用冒號(hào)來(lái)代替。只有子程序或者函數(shù)有顯式接口,才能使用這種數(shù)組,調(diào)用程序不知道子程序接口的所有信息。通常采用的方式是將子程序放在模塊中,然后在調(diào)用程序中use該模塊。例9-1使用不定結(jié)構(gòu)的形參數(shù)組4精選課件ppt9.2SAVE屬性和語(yǔ)句當(dāng)離開(kāi)過(guò)程后,過(guò)程中的所有局部變量和數(shù)組的值都成為未定義的值。Fortran提供了一種方式來(lái)保存在調(diào)用過(guò)程之間的局部變量和數(shù)組。例如定義局部變量:任意在類(lèi)型聲明語(yǔ)句中初始化的局部變量都會(huì)被自動(dòng)保存,例如:5精選課件pptFortran也提供了SAVE語(yǔ)句,任何列在SAVE語(yǔ)句中的局部變量都會(huì)在調(diào)用過(guò)程中保存;如果SAVE語(yǔ)句中沒(méi)有變量,那么所有的局部變量都會(huì)被被保存起來(lái)。任何共享數(shù)據(jù)的模塊都應(yīng)該使用SAVE語(yǔ)句保存數(shù)據(jù),并通過(guò)USE語(yǔ)句使用該模塊數(shù)據(jù)。例9-2計(jì)算均值注意,使用save僅在子程序中保留變量值,其值如果沒(méi)有返回,則調(diào)用程序仍不可見(jiàn)該值。6精選課件ppt9.3過(guò)程中的動(dòng)態(tài)數(shù)組如果用SAVE屬性來(lái)聲明可分配數(shù)組,或者數(shù)組出現(xiàn)在一個(gè)SAVE語(yǔ)句中,那么數(shù)組只會(huì)在該過(guò)程第一次被調(diào)用的時(shí)候利用ALLOCATE語(yǔ)句分配一次內(nèi)存。如果沒(méi)有用SAVE屬性來(lái)聲明可分配數(shù)組,那么在每次調(diào)用過(guò)程的時(shí)候都必須用ALLOCATE語(yǔ)句給數(shù)組分配空間,當(dāng)返回到調(diào)用程序的時(shí)候,數(shù)組的內(nèi)容會(huì)被自動(dòng)地釋放掉。7精選課件ppt9.4過(guò)程中的自動(dòng)數(shù)組Fortran95/2003提供了另外一種簡(jiǎn)單的方式在過(guò)程執(zhí)行的時(shí)候自動(dòng)創(chuàng)建臨時(shí)數(shù)組,在過(guò)程執(zhí)行到返回之后自動(dòng)釋放掉數(shù)組。這種數(shù)組被稱(chēng)為自動(dòng)數(shù)組(automaticarrays)。自動(dòng)數(shù)組是局部的顯式結(jié)構(gòu)數(shù)組,它的下標(biāo)由形式參數(shù)或者來(lái)自于模塊的數(shù)據(jù)指定。8精選課件ppt回顧一下不同的數(shù)組類(lèi)型:1.帶有常數(shù)下標(biāo)的顯式結(jié)構(gòu)數(shù)組2.形參數(shù)組(1)顯式結(jié)構(gòu)形參數(shù)組。9精選課件ppt(2)不定結(jié)構(gòu)形參數(shù)組。(3)不定大小的形參數(shù)組。3.自動(dòng)數(shù)組4.預(yù)定義結(jié)構(gòu)數(shù)組10精選課件ppt9.5在Fortran2003過(guò)程中的可分配數(shù)組在Fortran2003的兩點(diǎn)改變:(1)可以使用可分配形式參數(shù)(2)函數(shù)可以返回可分配的值9.5.1可分配形式參數(shù)如果Fortran2003子程序有顯式接口,那么對(duì)于子程序來(lái)說(shuō),它的形式參數(shù)可以是可分配的。如果聲明形式參數(shù)為可分配的,那么用于調(diào)用子程序的相應(yīng)實(shí)際參數(shù)也必須是可分配的。11精選課件ppt形式參數(shù)可以有INTENT屬性。INTENT屬性可能影響到子程序的操作:(1)如果可分配參數(shù)具有INTENT(IN)屬性,那么不允許在子程序中對(duì)這個(gè)數(shù)組分配或者釋放空間,數(shù)組中的值也不能被修改。(2)如果可分配參數(shù)具有INTENT(INOUT)屬性,那么當(dāng)調(diào)用子程序的時(shí)候,將會(huì)傳遞給它相應(yīng)的實(shí)際參數(shù)的狀態(tài)(是否可分配)和數(shù)據(jù)。數(shù)組可以在子程序的任何位置被釋放、重分配或者修改。形式參數(shù)的最終狀態(tài)(是否可分配)和數(shù)據(jù)將會(huì)返回給實(shí)際參數(shù)所在的調(diào)用程序。12精選課件ppt(3)如果可分配參數(shù)具有INTENT(OUT)屬性,那么調(diào)用程序中的實(shí)際參數(shù)將會(huì)在入口處被自動(dòng)地釋放掉,實(shí)際數(shù)組中的所有數(shù)據(jù)都會(huì)丟失。子程序可以以任何方式來(lái)使用沒(méi)有分配的參數(shù),形式參數(shù)的最終狀態(tài)(是否可分配)和數(shù)據(jù)將會(huì)返回給實(shí)際參數(shù)所在的調(diào)用程序。例9-3:說(shuō)明可分配數(shù)組形式參數(shù)用法的程序9.5.2可分配函數(shù)(AllocatableFunctions)Fortran2003函數(shù)的返回值允許有ALLOCATABLE屬性。在函數(shù)的入口不會(huì)分配返回變量。在函數(shù)內(nèi)部每當(dāng)需要的時(shí)候,可以分配和釋放變量。但是返回之前必須分配和賦值。13精選課件ppt例9-4:說(shuō)明可分配函數(shù)用法的程序。9.6純過(guò)程(pureprocedures)和逐元過(guò)程(elementalprocedures)9.6.1純過(guò)程純函數(shù)是沒(méi)有任何副作用的函數(shù)。即,它們不會(huì)修改輸入?yún)?shù),不會(huì)修改任何在函數(shù)外部可見(jiàn)的其他數(shù)據(jù)(如模塊中的數(shù)據(jù)),它的局部變量沒(méi)有SAVE屬性,不能在類(lèi)型聲明語(yǔ)句中初始化局部變量(因?yàn)檫@一初始化隱含有SAVE屬性)。任何被純函數(shù)調(diào)用的過(guò)程也必須是純過(guò)程。在純函數(shù)中每個(gè)參數(shù)都必須定義為INTENT(IN),不能有任何外部文件I/O操作,不能包含STOP語(yǔ)句。14精選課件ppt在函數(shù)語(yǔ)句中增加一個(gè)PURE前綴就可以定義純函數(shù)。純子程序(puresubroutine)是沒(méi)有任何副作用的子程序。除了允許它們修改用INTENT(OUT)或者INTENT(INOUT)聲明的參數(shù)外,它們的限制和純函數(shù)是相同的。在SUBROUTINE語(yǔ)句中增加PURE前綴可以聲明純子程序。15精選課件ppt9.6.2逐元過(guò)程逐元函數(shù)(elementalfunctions)是為標(biāo)量參數(shù)指定的函數(shù)。它也適用于數(shù)組參數(shù)。如果一個(gè)逐元函數(shù)的參數(shù)是標(biāo)量,那么這個(gè)函數(shù)的返回值也是標(biāo)量。如果函數(shù)的參數(shù)是數(shù)組,那么函數(shù)的返回值也是和輸入?yún)?shù)相同結(jié)構(gòu)的數(shù)組。用戶(hù)自定義的逐元函數(shù)必須是PURE函數(shù),且滿(mǎn)足:16精選課件ppt1.所有的形式參數(shù)都必須是標(biāo)量,不能帶有POINTER屬性。2.函數(shù)的返回值也必須是標(biāo)量,不能帶有POINTER屬性。3.除了作為某種內(nèi)置函數(shù)的參數(shù),形式參數(shù)不能用在類(lèi)型聲明語(yǔ)句中。在函數(shù)語(yǔ)句中增加一個(gè)ELEMENTAL前綴可以聲明用戶(hù)自定義逐元函數(shù)。17精選課件ppt18精選課件ppt9.7內(nèi)部過(guò)程除了外部過(guò)程(externalprocedures)和模塊過(guò)程(moduleprocedures)。還有第三種過(guò)程--內(nèi)部過(guò)程(intemalprocedures)。內(nèi)部過(guò)程是完全包含在另一個(gè)被稱(chēng)為宿主程序單元(hostprogramunit,host)的過(guò)程中。內(nèi)部過(guò)程和宿主一起編譯,且只能從宿主程序單元中調(diào)用它。像模塊過(guò)程一樣,內(nèi)部過(guò)程用CONTAINS語(yǔ)句來(lái)引入。內(nèi)部過(guò)程必須跟在宿主過(guò)程的所有執(zhí)行語(yǔ)句之后,而且必須用CONTAINS語(yǔ)句引入。19精選課件ppt為什么要使用內(nèi)部過(guò)程呢?在某些問(wèn)題中,作為解決方案的一部分,有一些低級(jí)操作可能要重復(fù)執(zhí)行。經(jīng)定義內(nèi)部過(guò)程未完成這些操作,可以簡(jiǎn)化這些低級(jí)操作。例9-5:內(nèi)部過(guò)程示例。20精選課件ppt內(nèi)部過(guò)程函數(shù)和外部過(guò)程有以下三方面的區(qū)別:(1)內(nèi)部過(guò)程只能被宿主過(guò)程調(diào)用,程序中的其他過(guò)程不能訪(fǎng)問(wèn)它。(2)內(nèi)部過(guò)程的名字不能作為命令行參數(shù)傳遞給其他的過(guò)程。(3)內(nèi)部過(guò)程通過(guò)宿主關(guān)聯(lián)(hostassociat
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年新版承攬加工合同書(shū)范文
- 2025法人向公司借款合同
- 2025年度溫室大棚租賃與現(xiàn)代農(nóng)業(yè)技術(shù)合作合同3篇
- 2025年度農(nóng)村出租房租賃與農(nóng)村環(huán)保產(chǎn)業(yè)合作合同
- 二零二五年度電影宣傳推廣與營(yíng)銷(xiāo)合同2篇
- 二零二五年度股權(quán)代持服務(wù)協(xié)議:涉及企業(yè)并購(gòu)的綜合性協(xié)議3篇
- 二零二五年度農(nóng)村宅基地房屋租賃與農(nóng)村文化傳承合同
- 二零二五年度展臺(tái)搭建與展覽展示合同3篇
- 二零二五年度法人代表變更與股權(quán)收購(gòu)協(xié)議3篇
- 2025年度液壓設(shè)備維修保養(yǎng)及安全檢測(cè)合同3篇
- 藍(lán)色糧倉(cāng)-水產(chǎn)學(xué)專(zhuān)業(yè)導(dǎo)論智慧樹(shù)知到期末考試答案章節(jié)答案2024年中國(guó)海洋大學(xué)、山東大學(xué)、中國(guó)科學(xué)院海洋研究所、上海海洋大學(xué)、華中農(nóng)業(yè)大學(xué)、大連海洋大學(xué)、集美大學(xué)
- (高清版)JTGT D31-06-2017 季節(jié)性?xún)鐾恋貐^(qū)公路設(shè)計(jì)與施工技術(shù)規(guī)范
- 幼兒園健康體檢活動(dòng)方案及流程
- 冰箱結(jié)構(gòu)原理與維修
- 2024年交管12123學(xué)法減分考試題庫(kù)及答案大全
- 湖南省長(zhǎng)沙市2022-2023學(xué)年二年級(jí)上學(xué)期期末數(shù)學(xué)試題
- 湖南省印刷業(yè)揮發(fā)性有機(jī)物排放標(biāo)準(zhǔn)2017
- 齊魯針灸智慧樹(shù)知到期末考試答案2024年
- 2024年蘇州市軌道交通集團(tuán)有限公司招聘筆試參考題庫(kù)附帶答案詳解
- 2024年1月電大國(guó)家開(kāi)放大學(xué)期末試題及答案:農(nóng)村政策法規(guī)
- (高清版)DZT 0261-2014 滑坡崩塌泥石流災(zāi)害調(diào)查規(guī)范(1:50000)
評(píng)論
0/150
提交評(píng)論