fortran90程序設(shè)計(jì)chapter13

fortran90程序設(shè)計(jì)chapter13

ID:2262436

大?。?63.50 KB

頁(yè)數(shù):16頁(yè)

時(shí)間:2017-11-15

fortran90程序設(shè)計(jì)chapter13_第1頁(yè)
fortran90程序設(shè)計(jì)chapter13_第2頁(yè)
fortran90程序設(shè)計(jì)chapter13_第3頁(yè)
fortran90程序設(shè)計(jì)chapter13_第4頁(yè)
fortran90程序設(shè)計(jì)chapter13_第5頁(yè)
資源描述:

《fortran90程序設(shè)計(jì)chapter13》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)

1、13.1接口界面塊第十三章接口與模塊13.1接口界面塊在調(diào)用執(zhí)行外部子程序時(shí),一般要用EXTERNAL語(yǔ)句對(duì)調(diào)用的外部子程序進(jìn)行聲明,但這種聲明只給出外部子程序名,并沒(méi)有給出外部函數(shù)子程序名和參數(shù)的類(lèi)型。由于主調(diào)程序單元與外部子程序獨(dú)立編寫(xiě),分別編譯,所以?xún)H聲明子程序名有時(shí)系統(tǒng)難以獲得外部子程序詳細(xì)、準(zhǔn)確的調(diào)用信息,從而無(wú)法正確編譯,導(dǎo)致程序調(diào)用失敗。FORTRAN90新增接口界面塊功能可有效解決這些問(wèn)題,同時(shí)還能提高程序的可讀性。接口界面塊可用在主程序單元、模塊單元、外部子程序單元中,以指明主調(diào)程序與被調(diào)用外部子程序之間的接口信息,以便保證外部子程序的正確使用。例如,

2、使用接口界面塊求三個(gè)整數(shù)最大值的示例程序如下:!主程序單元PROGRAMmainIMPLICITNONEINTERFACEFUNCTIONmax3(a,b,c)IMPLICITNONEINTEGERmax3,a,b,cENDFUNCTIONENDINTERFACEINTEGERx,y,zREAD*,x,y,zWRITE(*,"(1X,'三個(gè)數(shù)的最大值為:',I4)")max3(x,y,z)END!求三個(gè)整數(shù)最大值的外部函數(shù)子程序FUNCTIONmax3(a,b,c)INTEGERmax3,a,b,c,maxmax=aIF(B>max)max=BIF(C>max)max=

3、Cmax3=maxENDFUNCTION36513.1接口界面塊接口界面塊如同EXTERNAL語(yǔ)句一樣,在一般情況下可缺省。對(duì)于一些常規(guī)函數(shù)和子例行程序,使用時(shí)不需要用INTERFACE接口聲明它們的接口信息,但遇到以下情況必須在主調(diào)程序中使用接口界面塊:l外部函數(shù)返回結(jié)果是一個(gè)數(shù)組,即外部函數(shù)名類(lèi)型為數(shù)組。l外部函數(shù)返回結(jié)果是一個(gè)字符串,且長(zhǎng)度不是常數(shù),也不是假定長(zhǎng)度(*)。l外部函數(shù)返回結(jié)果是一個(gè)指針。l外部子程序形式參數(shù)(啞元)是一個(gè)數(shù)組片段。l外部子程序?qū)嵲趨?shù)是關(guān)鍵字變?cè)蚴侨笔〉目蛇x變?cè)?。l外部子程序擴(kuò)展了賦值號(hào)的使用范圍。l外部子程序參數(shù)個(gè)數(shù)不確定。l外部

4、子程序改變參數(shù)傳遞位置。接口界面塊的一般格式:<接口界面塊>→INTERFACE<接口界面體>ENDINTERFACE<接口界面體>→{<函數(shù)接口界面定義>∣<子例行程序接口界面定義>}<函數(shù)接口界面定義>→[<類(lèi)型>]FUNCTION<函數(shù)名>(<形式參數(shù)表>)<函數(shù)名形式參數(shù)類(lèi)型說(shuō)明>ENDFUNCTION<子例行程序接口界面定義>→SUBROUTINE<子例行程序名>(<形式參數(shù)表>)<形式參數(shù)類(lèi)型說(shuō)明>ENDSUBROUTINE說(shuō)明:①接口界面塊可出現(xiàn)在除BLOCKDATA數(shù)據(jù)塊單元以外的其它三個(gè)程序單元(主程序單元、外部子程序單元、模塊單元)中,放置在程序單元

5、說(shuō)明部分前面。②接口接體可以并列包含若干個(gè)函數(shù)或子例行程序接口界面定義。③每個(gè)函數(shù)或子例行程序接口定義只給出子程序的FUNCTION語(yǔ)句、SUBROUTINE語(yǔ)句、函數(shù)名與形式參數(shù)類(lèi)型說(shuō)明部分、ENDFUNCTION語(yǔ)句、ENDSUBROUTINE語(yǔ)句,不允許出現(xiàn)可執(zhí)行語(yǔ)句。④接口界面體中的函數(shù)名、子例行程序名、形式參數(shù)個(gè)數(shù)和形式參數(shù)類(lèi)型必須與被調(diào)用的函數(shù)名、子例行程序名、形參個(gè)數(shù)和形參類(lèi)型相同,但形參名稱(chēng)可以不同。⑤接口界面體中不允許出現(xiàn)ENTRY、DATA、FORMAT、語(yǔ)句函數(shù)語(yǔ)句。例如,定義一個(gè)接口界面塊,聲明了2個(gè)子例行程序接口界面和2個(gè)函數(shù)接口界面。INTE

6、RFACE!定義矩陣相乘子例行程序P1接口界面SUBROUTINEP1(A,B,C)INTEGER,DIMENSION(50,50)::A,B,CENDSUBROUTINE!定義矩陣轉(zhuǎn)置子例行程序P2接口界面36513.1接口界面塊SUBROUTINEP2(A1,A2)INTEGER,DIMENSION(40,50)::A1,A2ENDSUBROUTINE!定義矩陣相乘函數(shù)F1接口界面FUNCTIONF1(X,Y)INTEGER,DIMENSION(50,50)::F1,X,YENDFUNCTION!定義計(jì)算向量X和Y內(nèi)積的函數(shù)F2接口界面FUNCTIONF2(X,Y)

7、REALF2,X(10),Y(10)ENDFUNCTIONENDINTERFACE接口界面塊定義后,在調(diào)用其定義的外部子程序時(shí)可使用關(guān)鍵詞指定實(shí)在參數(shù),允許改變實(shí)在參數(shù)傳遞位置,如:CALLP1(matrix1,matrix2,matrix3)!按形參定義次序依次傳遞CALLP1(A=matrix1,C=matrix3,B=matrix2)!按指定形參關(guān)鍵字傳遞CALLP1(A=matrix1,C=matrix3)!B數(shù)組內(nèi)容區(qū)默認(rèn)值13.2模塊外部子程序?yàn)槿藗兲峁┝艘环N并行設(shè)計(jì)、共享使用子程序的有效機(jī)制,對(duì)提高程序設(shè)計(jì)質(zhì)量和效率有很大幫

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。