




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1、文件名的擴展名: 固定格式:.for或.ffixed.for 自由格式:.f90free.f90 2、程序單位: 主程序(PROGRAM) 輔程序:可以是函數(shù)輔程序(FUNCTION)和子程序輔程序(SUBROUTINE) 塊數(shù)據(jù)(BLOCK DATA):用來對有名公用塊的數(shù)據(jù)對象規(guī)定初始值用于定義全局常數(shù)和進行全局初始化。內(nèi)部過程:在主程序中定義的內(nèi)部過程必須跟在CONTAINS語句之后,主程序是它的內(nèi)部程序的宿主。模塊(MODULE):在主程序中通過USE語句與之相聯(lián)系,模塊用于組裝若干功能(如:過程,類型定義,語義擴展等)為一個集團。3、程序單位單位起始語句程序體單位結(jié)束語句。程序體
2、說明部分執(zhí)行部分。4、整個程序中只能有一個PROGRAM,一個BLOCK DATA,可以有多個各自命名的FUNCTION和SUBROUTINE輔程序。5、變量名和程序名的命名規(guī)則:F77中:變量名和程序名等使用的英文名最長是由6個字符(包含英文字母A-Z、數(shù)字0-9構(gòu)成,且第一個字符必須是字母。其英文名的有效使用范圍原則上限于一個程序單位之內(nèi)(內(nèi)部過程除外)。F90中:變量名和程序名等使用的英文名最長是由31個字符(包含英文字母A-Z、數(shù)字0-9構(gòu)成和下劃線“”)且第一個字符必須是字母。其英文名的有效使用范圍原則上限于一個程序單位之內(nèi)(內(nèi)部過程除外)。6、fortran中的標號和標簽: (1)
3、 標號:1-5位的十進制數(shù)。且至少一位不為零,前導(dǎo)零不起作用。f90中不可以對空語句加上標號語句。 (2)標簽:英文名,后面接冒號(F90) (3)不能使用整型變量來指定轉(zhuǎn)向語句的標號。如下是錯誤的。n = 10GOTO n (4)例: (F90)DO k = 1,100loop2: DO.END DO loop2 !已有標簽名時不能省略標簽名。END DO7、在程序中規(guī)定變量的類型可以用以下幾種方法。1隱含約定(“IN規(guī)則”):Fortran規(guī)定,凡以字母I,J,K,L,M,N六個字母開頭的變量名,如無另外說明則為整型變量。以其它字母開頭的變量為實型變量。 表示用I到N之間的字母開頭的變量為
4、整型。例如:I,J,IMAX,NUMBER,LINE,JOB,Kl為整型變量,而A,Bl,COUNT,AMOUNT,TOTAL,BOOK為實型變量。2類型指定:如果想改變“IN規(guī)則”對變量類型的約束,可以用類型說明語句專門指定某些變量的類型。Fortran中有六個類型說明語句:(1)INTEGER語句(整型說明語句)(2)REAL語句(實型說明語句)(3)DOUBLE PRECISION語句(雙精度說明語句)(4)COMPLEX語句(復(fù)型說明語句)(5)LOGICAL語句(邏輯型說明語句)(6)CHARACTER語句(字符型說明語句)IMPLICIT語句(隱含說明語句)指定:可以用IMPLIC
5、IT語句將某一字母開頭的全部變量指定為所需的類型,還可以用一個IMPLICIT語句同時指定幾種類型。例如:IMPLICIT INTEGER (A,C,T-V)IMPLICIT REAL (I,J)IMPLICIT INTEGER (A,B),REAL(I,K),INTEGER (X-Z)注:(1) 以上三種方法中,以類型說明語句最優(yōu)先,IMPLICIT語句次之,“IN規(guī)則”的隱含約定級別最低。如下程序中IMAX變量為整型,而其它以I、J開頭的變量為實型:IMPLICIT REAL(I,J)INTEGER IMAX(2) 類型說明語句和IMPLICIT語句是非執(zhí)行語句。(3) 類型說明只在本程序
6、單位內(nèi)有效。(4) IMPLICIT語句和類型說明語句應(yīng)該出現(xiàn)在本程序單位中的所有執(zhí)行語句之前,其中IMPLICIT語句又應(yīng)在所有的類型說明語句之前。8、Fortran語言中表達式的注意事項:(1)由于用“/”號作為除號,因此在寫除法運算式子時應(yīng)加上必要的括號。(2)乘號不能省略,如 ,必須寫成A*SIN(X),而不能寫成ASIN(X)。(3)Fortran中無大、中、小括號之分,一律用小括號。(4)乘方按“先右后左”原則處理。(5)對單項運算符(如-A中的符號)相當于在它前面有一個運算量“0”,如:A*2相當于0-A*2而非(-A)*2。Fortran算術(shù)表達式的求值運算的優(yōu)先次序為: 括號
7、 函數(shù) * * / ,即括號內(nèi)的運算級別最高,加減最低。9、數(shù)值類型的級別:整型(低)實型(高)10、賦值過程中的類型轉(zhuǎn)換:一個算術(shù)賦值語句中的被賦值的變量(V)和表達式(e)的類型可以相同,也可以不相同。F77作如下規(guī)定: (1)如果變量V與表達式e的類型相同,則直接進行賦值。 (2)如果類型不同,則應(yīng)先進行表達式的求值,然后將該表達式的值轉(zhuǎn)換為被賦值變量的類型。如:I3.5*2.1表達式3.5*2.1的值為7.35,實型。而變量I為整型,因此I的值等于7。又如:T3*5/7表達式的值為2,整型。由于T為實型,故系統(tǒng)先將整數(shù)2轉(zhuǎn)換成實數(shù)2.0,再賦給變量T,T的值為2.0。 (3)當賦值號兩
8、側(cè)的類型不同時,往往會產(chǎn)生程序設(shè)計者事先預(yù)想不到的結(jié)果。所以在編寫程序時,應(yīng)盡可能使賊值號兩側(cè)保持同類型。11、關(guān)系表達式.GT. greater to.GE. greater than or equal to.LT. less to.LE. less than or equal to.EQ. equal to.NE. not equal to11、case表達式是整型、字符型或邏輯型表達式,不能是實型和復(fù)型表達式。SELECT CASE是入口語句,END SELECT是出口語句。12、主程序名并不是必要的,是可有可無的,但是如果要寫PROGRAM語句的話,就必須是主程序的第一個語句,而且要起
9、一個名字。其形式為:program name(類型說明)13、(F77)類型說明語句應(yīng)該置于程序單位第一個可執(zhí)行語句之前,類型語句所列變量只在該類型語句所在的程序單位有效。而且,在一個程序單位中,一個名字用顯式說明其類型不得多于一次。14、(F77)隱式說明:IMPLICIT INTEGER(R-T),REAL(I-N)表示出類型語句中被顯式說明的符號名外,凡是以R,S,T開頭的符號名都是整型的,凡是以I,J,K,L,M,N開頭的符號名都是實型的IMPLICIT語句值適用予其所在的程序單位,一個程序單位的可以包含若干個IMPLICIT語句,implicit語句必須置于除parameter語句外
10、的所有其他說明語句的前面。無論是顯式說明還是隱式說明,均為非執(zhí)行語句。關(guān)于PPARAMETER:15、PARAMETER語句用于給常數(shù)一個符號名,語句的形式為PARAMETER(P=e),如:PARAMETER(PI=3.1415926)16、PARAMETER語句和賦值語句不同,它是非執(zhí)行語句。在同一個程序單位中,一個常數(shù)符號名只能定義一次,即在一個程序中定義一個常數(shù)符號名后不能再改寫它的值。17、PARAMETER語句一次可以定義幾個常數(shù)符號名,如:parameter(I=300,PI=3.1415926,X=-9.2)(相當予C語言中的宏定義)18、符合先定義后使用的原則,常數(shù)符號名不得
11、用來定義常數(shù)的另外一部分,如:形成一個復(fù)常數(shù)的任一部分。常數(shù)符號名不能作為語句標號,也不能出現(xiàn)在FORMAT語句中代替常數(shù)。關(guān)于輸入語句:19、read*,a,b,c 這條語句中的“*”表示使用表控格式讀入數(shù)據(jù)。對數(shù)組輸入數(shù)據(jù)的時候按照左對齊原則,不足的用空格填滿。20、一下輸入值正確的:read*,i,j,k在鍵盤上輸入:3*2這里采用的是r*c的輸入方法,其中c是常數(shù),r為無符號非零整數(shù)。相當于常數(shù)c連續(xù)出現(xiàn)r次。因此上例中相當于輸入中是連續(xù)的3個2,即i,j,k分別都被賦值為2.21、read*,i,j,k在鍵盤上輸入:“5.5/” /為終止執(zhí)行符,在“/”出現(xiàn)后,還未被賦值的變量則保持
12、原來的變量值不變。22、一條輸入語句,如過輸入的時候沒有出現(xiàn)輸入終止符“/”,則必須等輸入語句變量列表中的所有變量都被賦值后,這條語句才能執(zhí)行完畢。否則程序?qū)⒃谶@里暫停執(zhí)行。這時,一條輸入語句便可讀入多組的輸入數(shù)據(jù),知道所有變量都被賦值為止。如:read*,x,y,x輸入為:32.228.950.1Print語句和write語句23、輸出數(shù)據(jù)的排放格式為右對齊,不足則左端填補空格。24、每條print語句的輸出總是在新的一行開始,如果print語句中無輸出數(shù)據(jù),則表示輸出一空行,即print*表示輸出一個空行。25、編輯描述符:I型:rIW,整型編輯描述符F型:rFW.d,實型編輯描述符E型:
13、rWE.d,實數(shù)的指數(shù)型編輯描述符A型:rAW,字符型編輯描述符X型:nX,空格編輯描述符H型:nHh1h2hn,文字型編輯描述符,其中的n表示要輸出的字符寬度,h1h2hn表示要輸出的具體字符,H前的n和其后的字符實際長度要一直,否則F77以出錯對待。說明:r:為非零無符號整常數(shù),稱為重復(fù)說明,表示一個描述符連續(xù)重復(fù)出現(xiàn)的次數(shù)。W:非零無符號整常數(shù),表示字段寬度d:無符號整常數(shù),表示實數(shù)中小數(shù)部分的字段寬度write(6,*)其中的6指的是6號部件。在6號部件輸出其后的數(shù)據(jù)。程序中斷:Ctral+C分支結(jié)構(gòu):26、計算GOTO語句:GOTO(S1,S2),ISi是與計算GOTO語句在同一程序
14、單位中的可執(zhí)行語句的語句標號。同一個語句標號可以在同一個GOTO語句中出現(xiàn)多次。例如:寫程序完成下面的計算Y=2x2+3x 1x2x2-3x+2 2x3x+5 3x4x 4x5程序為:10 Read*,xI=int(x)GOTO(20,30,40,50),IGOTO 1020Y=(2*X+3)*XGOTO 6030U=(X-3)*X+2GOTO 6040Y=X+5GOTO 6050Y=X60PRINT*,YEND28、賦值GOTO語句和語句標號賦值語句(ASSIGN)賦值GOTO語句的形式為:GOTO I,(S,S)其中I為整型變量名(注意這里的I為整型變量名,而計算GOTO語句中的I為整型表
15、達式),S是與GOTO語句在同一個程序單位的一個語句標號。29、算術(shù)IF語句:if(e)S1,S2,S3S1,S2,S3為語句標號e0時轉(zhuǎn)向S3語句30、邏輯IF語句:If(e)S其中:e為邏輯表達式,S為語句標號若邏輯表達式e為真則執(zhí)行S,若為假,則執(zhí)行if語句的下一條語句。循環(huán)結(jié)構(gòu)31、Loop-while型循環(huán):該類循環(huán)的特點是先判斷后執(zhí)行。Loop-until型循環(huán):該類循環(huán)的特點是先執(zhí)行后判斷。以上兩種循環(huán)結(jié)構(gòu)都可以用IF結(jié)構(gòu)和GOTO語句實現(xiàn),GOTO語句在這兩種結(jié)構(gòu)中的地位很重要,但是要注意GOTO語句的使用,濫用會使得源程序的可讀性降低。32、數(shù)組的說明:DIMENSION A
16、(5,3),B(-3:3)A是二維數(shù)組,5行,3列。行標是從1到5,列標是從1到3。B是一維數(shù)組,下標的范圍為-3到3,共七個數(shù)組元素,A(0)是有效的。33、數(shù)組格式說明:Real A(-2:3),N(2,3)等價于:DIMENSION A(-2:3),N(2,3) REAL N(2,3)32、數(shù)組的存儲:如果要將數(shù)組:1 2 34 5 67 8 9存入數(shù)組:A(3,3)A(3,3)在計算機中的排列是:A(1,1)A(2,1)A(3,1)A(1,2)A(2,2)A(3,2)A(1,3)A(2,3)A(3,3)(是以列優(yōu)先的方式排列的)所以數(shù)據(jù)的輸入順序是:1 4 7,2 5 8, 3 6 9
17、33、數(shù)組的賦值:DIMENSION A(10,20)DATA A/200*0.0/該例中的所有元素都被賦值為0.0DIMENSION X(3,5)DATA X(1,1),X(2,1),X(3,1)/3*1.0/該例中,將數(shù)組的第一列的所有元素都賦值為1.034、DO循環(huán):DO S,I=e1,e2,e3其中:S為一條可執(zhí)行語句的標號,該語句一般是循環(huán)體的最后一條語句。這條語句經(jīng)常是繼續(xù)語句,格式如下:CONTINUEI為以整型,實型或是雙精度型變量名,稱為DO變量(也稱為循環(huán)控制變量),e1,e2,e3均為整型,實型或雙精度型的表達式。其中:e1的值(M1)稱之為初值,即循環(huán)開始時,DO變量所
18、具有的值。e2的值(M2)稱之為終值,即循環(huán)要結(jié)束是DO變量應(yīng)具有的值。e3的值(M3)稱之為步長,即循環(huán)一次DO變量的增值。M3=1的時候,e3可以省略。(和C語言中的for循環(huán)是相似的)注意:DO循環(huán)的終止語句不得為無條件GOTO、賦值GOTO、算術(shù)IF、塊IF、ELESEIF、ELSE、ENDIF RETURN、STOP、END以及DO語句。34、DO WHILE語句:DO S WHILE(e)其中:S為循環(huán)終止語句標號。通常為CONTINUE語句。DO WHILE語句的執(zhí)行是這樣的:先判定邏輯表達式e的值,為真則執(zhí)行循環(huán)體,為假則表示循環(huán)結(jié)束,跳出循環(huán),執(zhí)行S語句后的語句。35、隱DO
19、循環(huán):dlist,I=e1,e2,e3READ*,(A(I),I=1,3)相當于給A(1),A(2),A(3)通過鍵盤輸入數(shù)據(jù)。36、當dlist中的變量名和數(shù)組元素同時出現(xiàn)的時候,應(yīng)將它們視作每次循環(huán)的一個整體,如:READ*,(X,A(I),I=1,3)這時的輸入順序是:X,A(1),X,A(2),X,A(3)關(guān)于過程:37、語句函數(shù):FUN(x,y,z)=ex,y,z代表語句函數(shù)的自變量,稱為語句函數(shù)的虛元。虛元表只用來指出函數(shù)變元的個數(shù)、次序和類型。e代表語句函數(shù)所代表的表達式。例如:ROOT(A,B,C)=(-B+SQRT(B*B-4.0*A*C)/(2.0*A)語句函數(shù)的注意事項:
20、1) 語句函數(shù)語句屬于非執(zhí)行語句,它在程序單位中的為止必須位于該程序單位中的說明之后,且位于第一條可執(zhí)行語句之前。2) 在引用時虛元和實元是按照為止一一對應(yīng)結(jié)合的。因而實元的個數(shù)、類型、次序應(yīng)與虛元對應(yīng)一致。38、外部函數(shù)的定義是以FUNCTION開始的。外部函數(shù)的引用和C語言中的函數(shù)引用是一樣的。39、FORTRAN沒有保留字,在適用內(nèi)部函數(shù)的時候,要用INTRINSIC來加以聲明,INTRINSIC語句的作用是聲明函數(shù)是內(nèi)部函數(shù)。40、實元是外部過程名的時候,必須在調(diào)用程序中用外部語句EXTERNAL來指明用作實元的外部函數(shù)名program simpsoncalculatorexterna
21、l f1,f2print*,entera,b,n=read(*,*)a,b,ncall simpson(a,b,n,f1,s1)write(*,10)s110format(1x,s1=,f10.5)call simpson(a,b,n,f2,s2)write(*,20)s220format(1x,s2=,f10.5)endsubroutine simpson(a,b,n,f,s)h=(b-a)/(2*n)s=f(a)-f(b)do 30 i=1,2*n-1,2x1=a+i*hx2=x1+hs=s+4*f(x1)+2*f(x2)30continues=s*h/3.0endfunction f1(x)intrinsic sinf1=sin(x)/(1+x)endfunction f2(x)intrinsic cos,expf2=cos
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZGXK 024-2024 青儲玉米品種試驗規(guī)范
- 二零二五年度企業(yè)代為管理員工社保繳費及報銷流程合同
- 二零二五年度購房按揭貸款利率調(diào)整合同
- 2025年度酒店入住智能家居體驗合同
- 2025年度汽車零部件訂車合同違約賠償標準及責(zé)任界定
- 二零二五年度公寓樓出租合同樣本(含精裝修、家具家電及物業(yè)費)
- 二零二五年度醫(yī)院藥劑科藥品配送與勞務(wù)合作合同
- 二零二五年度臨時項目經(jīng)理聘用與項目風(fēng)險預(yù)警協(xié)議
- 二零二五年度租賃型住房委托管理服務(wù)合同
- 二零二五年度旅游產(chǎn)業(yè)投資合作框架協(xié)議
- 引領(lǐng)學(xué)生了解物理科學(xué)的前沿與進展
- 初中八年級下學(xué)期班主任工作計劃樣文
- 智慧物流方案設(shè)計與實施賽題答案
- 雙重血漿置換
- 全面深化改革體會研討發(fā)言
- 產(chǎn)品質(zhì)量檢驗確認單
- 數(shù)控機床故障診斷與維護實驗指導(dǎo)書-實驗報告
- T-CHAS 20-2-11-2022 醫(yī)療機構(gòu)藥事管理與藥學(xué)服務(wù) 第2-11部分:臨床藥學(xué)服務(wù) 治療藥物監(jiān)測
- 廣州退休申請表范本
- 2023年中國海關(guān)科學(xué)技術(shù)研究中心招聘應(yīng)屆畢業(yè)生7人筆試模擬試題及答案解析
- 皮帶機安全-課件
評論
0/150
提交評論