




已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Fortran 95 變量名稱的取名策略:變量的名字中可以使用的字符集包括英文的26個字母、09這10個數(shù)字以及下劃線“_”,不過前綴必須是英文字母。變量名稱的長度限制隨著各家編譯器的不同而不同,F(xiàn)ortran 標(biāo)準(zhǔn)規(guī)定最少要支持到6個字符,F(xiàn)ortran90則最少要支持到31個字符 ImplicitFortran 標(biāo)準(zhǔn)中有一項不太好的功能,它的變量不一定要經(jīng)過程序聲明才能使用,編譯器會根據(jù)變量的第一個字母來自東決定這個變量的類型。第一個字母為I、J、K、L、M、N的變量會被視為整數(shù)類型,其他的變量則會被當(dāng)成浮點(diǎn)數(shù)來使用。Implicit命令的功能是用來設(shè)置“默認(rèn)類型”。所謂的默認(rèn)類型,是指Fortran不經(jīng)過聲明,由第一個字母來決定變量類型。可以經(jīng)過Implicit描述來決定哪些字母開頭的變量會自動使用某種類型Implicit integer (A,B,C) !A、B、C開頭的都被視為整型數(shù)Implicit integer(A-F,I,K) !A到F及I、K開頭的變量都視為整型數(shù)Implicit real(M-P) !M到P開頭的變量都視為浮點(diǎn)數(shù)Implicit none !關(guān)閉默認(rèn)類型功能,所有變量都要事先聲明 常數(shù)的聲明方法(Parameter)Program exImplicit noneReal :piParameter(pi = 3.14129)Write(*,”(F4.2)”) sin(pi/6)end 在Fortran90里,Parameter可以作為形容詞,和變量的聲明同時寫在一起Real, parameter :pi=3.14159 !這里pi前面的冒號不能省,和上面代碼不同(上面的可以省略)設(shè)置變量的初值變量內(nèi)容并不一定要在程序執(zhí)行時才設(shè)置,可以在聲明時同時給予初值。在Fortran90偶那個,在設(shè)置變量初值時,直接把數(shù)值寫在聲明的變量后面就行了。使用這個方法來設(shè)置初值是,不能省略聲明中間的那兩個冒號(Fortran90)在fortran77中則要使用Data命令設(shè)置初值Fortran 90 Fortran 77 program ex90implicit noneinteger :a=1real :b=2.0complex :c=(1.0,2.0)character (len=20) :str=Hello Acuzio!write (*,*) a,b,c,strend program ex77implicit noneinteger areal bcomplex ccharacter (len=20) strdata a,b,c,str/1,2.0,(1.0,2.0),Hello /write (*,*) a,b,c,strend 等價聲明(equivalence)把兩個以上的變量,聲明它們使用同一個內(nèi)存地址,就是“等價聲明”。使用同一個內(nèi)存位置的變量,只要改變其中一個變量,就會同時改變其他變量的數(shù)值Integer a,bEquivalence(a,b) Fortran 90 的自定義數(shù)據(jù)類型使用關(guān)鍵字:typeType :person Character(len=30) :name Integer :age Integer :length Integer :weightEnd type person Type(person) :a !聲明一個person類型的變量a%name !引用person中的name Kind的使用Kind描述如果搭配上一些Fortran90的庫函數(shù),可以增加程序代碼的“跨平臺”能力Fortran 90提供庫函數(shù)來判斷所要記錄的數(shù)值值域范圍所需要的kind值Selected_int_kind(n) : 返回如果想要記錄n位整數(shù)時,所應(yīng)聲明的kind.返回-1時,表示無法提供所想要的值域范圍Selected_real_kind(n,e) : 返回如果想要能夠記錄具有N位有效位數(shù)、指數(shù)達(dá)到e位的浮點(diǎn)數(shù)所需要的kind值。返回-1表示無法滿足所要求的有效位數(shù)、返回-2表示無法滿足所要求的指數(shù)范圍、返回-3表示兩者都無法滿足IF基本用法If(邏輯判斷式) thenEnd if If(邏輯判斷式) thenElseEnd if 邏輯運(yùn)算符:Fortran 90 Fortran 77 = 判斷是否“相等” .eq. 判斷是否“等于” /= 判斷是否“不相等” .ne. 判斷是否“不等于” 判斷是否“大于” .gt. 判斷是否“大于” = 判斷是否“大于或等于” .ge. 判斷是否“大于或等于” 判斷是否“小于” .lt. 判斷是否“小于” e)Write(*,*) “Weight”Read(*,*) guessEnd do 循環(huán)控制:Cycle和exitCycle 命令可以略過循環(huán)的程序模塊中,在cycle命令后面的所有程序代碼,直接跳回循環(huán)的開頭來進(jìn)行下一次循環(huán)Exit 功能:可以直接“跳出”一個正在運(yùn)行的循環(huán)署名循環(huán)循環(huán)還可以取“名字”,這個用途是可以在編寫循環(huán)是能明白地直到End do這個描述的位置是否正確,尤其是在多層循環(huán)當(dāng)中。署名的循環(huán)也可以配合Cycle、exit來使用。數(shù)組(Array)數(shù)組的聲明方法:Datatype name(size)賦初值:integer A(5)Data a /1,2,3,4,5/ Integer a(5)Data a /5*3/ !5個3 Integer A(5)Integer iData(A(i),i=2,4) /2,3,4/!這是一個隱含式循環(huán),I會從2增加到4,依照順序到后面取數(shù)字。初值設(shè)定結(jié)果為A(2)=2、A(3)=3、A(4)=4,A(1)和A(5)沒有設(shè)定 Fortran 90隱含式循環(huán)的功能可以更強(qiáng)大Integer :a(5)=(/(I,I=1,5)/) !設(shè)置結(jié)果:a(1)=1,a(2)=2,a(3)=3,a(4)=4,a(5)=5 WhereWhere是Fortran95添加的功能,它也是用來取出部分?jǐn)?shù)組內(nèi)容進(jìn)行設(shè)置ForallForall是fortran95添加的功能。間斷地說,它也可以看出是一種使用隱含循環(huán)來使用數(shù)組的方法,不過它的功能可以做得更強(qiáng)大。Integer iInteger :a(5)Forall(i=1:5)A(1)=5End forall Forall詳細(xì)語法為Forall(triplet1,triplet2,triplet3,mask)End forall其中mask用來做條件判斷Fortran90 可以聲明可變大小數(shù)組Integer,allocatable :a(:) !聲明一個可變大小的一位數(shù)組Integer :studentsRead(*,*) studentsAllocate(a(students) !配置內(nèi)存空間 計算機(jī)的內(nèi)存是有限的,當(dāng)然也就不能無限制地去要求空間來使用。所以allocate命令在內(nèi)存滿載是,有可能會要求不到使用空間。Allocate命令中可以加上stat的文本框得知內(nèi)存配置是否成功Allocate(a(100),stat=err) !err是事先聲明號的整型變量,做allocate這個動作時會經(jīng)有stat這個敘述傳給err一個數(shù)值,如果err等于0則表示allocate數(shù)組成功,而如果err不等于0則表示allocate數(shù)組失敗Deallocate(a) 表示刪除分配的內(nèi)存跟allocate相關(guān)的函數(shù)還有allocated,它用來檢查一個可變大小的矩陣是否已經(jīng)配置內(nèi)存使用,他會返回一個邏輯值 If(.not. allocated(a)thenAllocate(a(5)End if 函數(shù)子程序(subroutine)的使用子程序代碼以subroutine開頭,它同樣要取一個名字,以end或end subroutine來結(jié)束。嚴(yán)格地講,end subroutine后還可以再接上這個子程序的名字program eximplicit noneinteger :a=1integer :b=2call add(a,b)end subroutine add(first,second)implicit noneinteger :first,secondwrite(*,*) first+secondreturnend 函數(shù)的調(diào)用program eximplicit nonereal :a=5,b=4real,external :add !聲明add是函數(shù)而不是變量!調(diào)用函數(shù)add,調(diào)用函數(shù)不必使用call命令write(*,*) add(a,b)end function add(a,b)implicit nonereal :a,breal :addadd =a+breturn end 全局變量Common是fortran77使用“全局變量”的方法,它用來定義一塊共享的內(nèi)存空間program eximplicit noneinteger :a,bcommon a,b !定義a,b是全局變量中的第1及第2個變量a=1b=2call showCommon()end subroutine showCommon()implicit noneinteger :num1,num2common num1,num2 !定義num1,num2是全局變量中的第1及第2個變量write(*,*) num1,num2return end Block data關(guān)于common還有最后要介紹的就是設(shè)置初值的方法,common變量不能直接在子程序或主程序中使用data來設(shè)置初值,要在block data程序模塊中使用data命令來設(shè)置初值program eximplicit noneinteger :a,bcommon a,b !a,b放在不署名的全局變量空間中integer :c,dcommon /group1/c,d !c,d放在group1的全局變量空間中integer :e,fcommon /group2/e,f !e,f放在group2的全局變量空間中 write (*,(6I4) a,b,c,d,e,fend block dataimplicit noneinteger a,bcommon a,b !a,b放在不署名的全局變量空間中data a,b /1,2/ !設(shè)置a,b的初值integer c,dcommon /group1/c,d !c,d放在group1的全局變量空間中data c,d /3,4/ !設(shè)置c,d的初值integer e,fcommon /group2/e,f !e,f放在group2的全局變量空間中data e,f /5,6/ !設(shè)置e,f的初值end block data 變量的生命周期在聲明中加入save 可以拯救這些變量、增加變量的生命周期、保留住所保存的數(shù)據(jù)。這些變量可以在程序執(zhí)行中永久記憶住上一次函數(shù)調(diào)用時所被設(shè)置的數(shù)值program eximplicit nonecall sub()call sub()call sub()end subroutine sub()implicit noneinteger :count = 1save count !賦值count變量會永遠(yuǎn)活著,不會忘記它的內(nèi)容write(*,*) countcount = count + 1return end 在Fortran 90 中,可以把save跟聲明寫作同一行Integer ,save :count=1傳遞函數(shù)傳遞參數(shù)時,除了傳遞數(shù)字、字符等等數(shù)據(jù)之外,還可以把一個函數(shù)名稱當(dāng)成參數(shù)傳送出去program eximplicit nonereal,external :func !聲明func是個自定義函數(shù)real,intrinsic :sin !聲明sin是庫函數(shù) call ExecFunc(f
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 神經(jīng)介入考試題及答案
- 云程發(fā)軔 踵事增華-明德小學(xué)新學(xué)期數(shù)學(xué)學(xué)科業(yè)務(wù)培訓(xùn)
- 中風(fēng)后遺癥中醫(yī)護(hù)理方案
- 綜合部辦公室管理制度培訓(xùn)
- 急重癥護(hù)理學(xué)
- 幼兒園安全培訓(xùn)
- 體育培訓(xùn)課程介紹
- 旋轉(zhuǎn)噴泉科學(xué)課件
- 2025年中國摩托車頭盔面罩和遮陽板行業(yè)市場全景分析及前景機(jī)遇研判報告
- 愛己愛人健康成長
- 60Si2Mn汽車板簧熱處理工藝設(shè)計
- 2021年石家莊交通投資發(fā)展集團(tuán)有限責(zé)任公司招聘筆試試題及答案解析
- 彭氏五千年簡明族譜
- 壓延薄膜成型故障的成因及對策
- 河長制培訓(xùn)課件
- 醫(yī)院感染管理組織架構(gòu)圖
- 5-電氣綠色專篇
- 外國城建史(復(fù)習(xí)整理)
- 高考語文必備古詩文(含翻譯及賞析)
- 食品中日文加工用語
- 小班化教育課堂教學(xué).ppt
評論
0/150
提交評論