Fortran語言全套課件_第1頁
Fortran語言全套課件_第2頁
Fortran語言全套課件_第3頁
Fortran語言全套課件_第4頁
Fortran語言全套課件_第5頁
已閱讀5頁,還剩402頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

Fortran概述作為一門誕生於上個世紀(jì)50年代後半期的高級電腦語言,F(xiàn)ortran在這個C/C++、Java等新興語言大行其道的時代仍然活躍在人們的視野之中。Fortran語言的長項在於數(shù)值計算,在科學(xué)研究和工程設(shè)計領(lǐng)域有著廣泛的用途。在描述數(shù)學(xué)語言的自然性方面,F(xiàn)ortran同現(xiàn)存的其他高級語言相比有著明顯的優(yōu)勢。對於科研工作者和工程技術(shù)人員而言,F(xiàn)ortran語言的易學(xué)性和易用性是公認(rèn)的。1.1Fortran起源Fortran是英語中“公式(Formula)”和“翻譯(Translation)”兩個單詞取前幾個字母的縮寫形式,意即“公式翻譯”。Fortran主要面向科學(xué)研究、工程設(shè)計或企事業(yè)管理中經(jīng)常遇到的能夠用數(shù)學(xué)公式表達(dá)的數(shù)值計算問題。因為可以像抄寫教科書裏的公式一樣書寫數(shù)學(xué)運算式,它比用英文書寫的自然語言更接近數(shù)學(xué)語言。這使得Fortran在科研工作者和工程技術(shù)人員中擁有龐大的使用人群。Fortran語言是第一個被正式推廣的高級電腦語言。在四十多年的發(fā)展歷程中,它始終是數(shù)值計算領(lǐng)域所使用的主要語言。本小節(jié)主要介紹Fortran的起源。第一代Fortran語言是在1954年提出來的,稱為FortranI。它於1957年在IBM704電腦上得以實現(xiàn)。其開發(fā)者巴科斯的目標(biāo)是開發(fā)一種容易理解、簡單易學(xué)又幾乎能像組合語言一樣高效運行的電腦語言,他和他的團(tuán)隊在這一點上取得了極大的成功。但是這一計畫在最初階段並不被人們看好,這其中包括巴克斯的上司馮·諾依曼。1.2Windows下Fortran編譯器使用由於Windows操作系統(tǒng)有著龐大的用戶群體,因此Windows系統(tǒng)下的編譯器開發(fā)非?;钴S。目前市場上常見的Fortran編譯器包括VisualFortran系列、Salford的FTN系列、G95/gFortran的Windows版本、Absoft公司的AbsoftFortran,Macrovision公司的PGIVisualFortran等。這其中,影響較大、功能較全、性能較好、應(yīng)用最廣泛的Fortran編譯器提供了集成開發(fā)環(huán)境的VisualFortran系列。VisualFortran系列編譯器起源於微軟公司開發(fā)的FortranPowerStation4.0編譯系統(tǒng)。該系統(tǒng)結(jié)合了當(dāng)時微軟最新開發(fā)的DevelopStudio集成開發(fā)環(huán)境(IDE),使得Fortran程式的開發(fā)方式跟上了時代的潮流。但是該編譯系統(tǒng)在實際使用中出現(xiàn)的問題較多,例如沒有嚴(yán)格的數(shù)組越界檢查功能等。這套工具隨後被賣給了數(shù)字設(shè)備(DEC)公司繼續(xù)開發(fā),隨後產(chǎn)生了一個曾經(jīng)非常流行的Fortran編譯器系統(tǒng)。1.2.1安裝CompaqVisualFortranCompaqVisualFortran的安裝過程比較簡單。用戶將安裝光碟放入CD-ROM後,電腦會自動運行光碟中的安裝程式?!維electFolder】對話框安裝歡迎介面1.2.2創(chuàng)建第一個Fortran工程CompaqVisualFortran的圖形用戶介面直接使用了微軟公司的DevelopStudio6.0集成開發(fā)環(huán)境,極大地方便了程式的編寫、調(diào)試和修改。在圖形介面下,編寫、調(diào)試一個Fortran程式首先需要創(chuàng)建一個DeveloperStudio工程。1.2.3在Fortran工程中添加源代碼完成工程的基本設(shè)置之後,就可以向Fortran工程添加用戶編寫的源代碼了。向Fortran工程中添加源代碼可以參照下麵的步驟來進(jìn)行操作。1.2.4在Fortran工程中新建原始檔案除了添加已有的源代碼來對工程進(jìn)行填充外,還可以在工程中創(chuàng)建新的源代碼檔。在工程中創(chuàng)建新的源代碼檔有兩種方式可供選擇。下麵的圖示演示了第一種操作方法。1.2.5在CompaqVisualFortran中編譯原始檔案在CompaqVisualFortran中有兩種編譯模式可供選擇:一種是Debug模式(編譯出來的程式姑且稱作調(diào)試版本);另一種是Release模式(編譯出來的程式姑且稱作發(fā)行版本)。同一個源代碼經(jīng)過這兩種編譯模式編譯出來的程式在執(zhí)行效率和文件大小上都有很大區(qū)別:編譯程序在Debug模式下會向生成的可執(zhí)行檔寫入很多調(diào)試資訊和控制語句,因此編譯出來的可執(zhí)行檔“個頭大”、“跑得慢”。在Release模式下,編譯程序只會將源代碼中的有效語句編譯成可執(zhí)行檔,因此編譯出來的可執(zhí)行檔“個頭小”、“跑得快”。1.3Linux下常見Fortran編譯器作為開源的操作系統(tǒng),Linux因其較好的安全特性也擁有較多的使用人群,特別是一些資質(zhì)較深的電腦愛好者。在Linux系統(tǒng)下,常見的Fortran編譯器包括GNU的Fortran77編譯器G77、GNU的Fortran95編譯器gFortran和G95、Intel公司開發(fā)的IntelFortranCompiler等。這裏主要介紹gFortran和G95的基本用法。在Linux系統(tǒng)下安裝Fortran編譯器需要在控制臺窗口中進(jìn)行。以G95編譯器的安裝為例,首先打開一個控制臺窗口,並進(jìn)入到想要安裝G95編譯器的檔夾中。接下來運行如下命令即可:wget-O-/g95-x86-linux.tgz|tarxvfz-ln-s$PWD/g95-install/bin/i686-pc-linux-gnu-g95/usr/bin/g951.4常見編譯器性能比較各個編譯器由於實現(xiàn)的方式有所區(qū)別,因此實際編譯出的執(zhí)行程式也有區(qū)別。這種區(qū)別主要體現(xiàn)在可執(zhí)行程式的大小、程式的運行速度、編譯所花費的時間等方面。本節(jié)主要給出Windows操作系統(tǒng)下,一些常見編譯器的性能比較。程式員可以以此為參考,在軟體開發(fā)時選擇合適的編譯器版本。編譯器名稱和版本號廠商或組織編譯器名稱版本號AbsoftAbsoftProFortran95,簡稱APF958.0CompaqCompaqVisualFortran,簡稱CVF6.6CSalfordSalfordFTN77,簡稱FTN774.02SalfordSalfordFTN95,簡稱FTN953.4.1605GNUG773.220020907IntelIntelFortranCompiler,簡稱IFC10.1LaheyLahey/FujitsuLF95,簡稱LF957.2N.A.SoftwareN.A.SoftwareFortranPlus,簡稱NAS2.21.5常用編輯器通常,編譯器廠商為了用戶更方便使用,會隨同編譯器為用戶提供簡單的編輯器來書寫源代碼。例如,CompaqVisualFortran借用了微軟的DevelopStudio6.0集成開發(fā)環(huán)境。IntelVisualFortran雖然沒有集成可視化開發(fā)環(huán)境,但它可以嵌入到DevelopStudio.NET集成開發(fā)環(huán)境中。不過對於某些用戶而言,他們更習(xí)慣使用獨立的編輯器來進(jìn)行源代碼的編輯,而在命令行模式下對源代碼進(jìn)行編譯調(diào)試。獨立的源代碼編輯器大多也能用於普通文本的編輯。很多程式設(shè)計語言的源代碼檔同普通文本檔的差別僅僅是檔的擴(kuò)展名不同而已。本文主要介艸S玫囊恍Fortran源代碼編輯器和基本的使用方法。1.5.1UltraEditUltraEdit軟體是IDMComputerSolutions公司開發(fā)的一款性能優(yōu)秀、功能強大的文本編輯器,能夠用於編寫多種進(jìn)制格式的文本檔和各種程式設(shè)計語言的源代碼(如C、C++、JAVA、HTML等)。該編輯器配合自定義的語言配置檔,可以實現(xiàn)指定程式設(shè)計語言的語法高亮、代碼折疊、自動縮進(jìn)和補位、代碼自動補全、列操作模式等功能。本小節(jié)主要介紹UltraEdit文本編輯器的基本用法。在講解UltraEdit的用法前,建議首先用保存在本書配套光碟/Tools/IDM檔夾中的wordfile.txt文本檔替換掉UltraEdit安裝目錄中的對應(yīng)檔。光碟中的wordfile.txt文本檔已經(jīng)由作者添加了Fortran語言的語法定義模組,收集了盡可能全的Fortran語句、內(nèi)部函數(shù)、運算符、關(guān)鍵字等資訊,添加了代碼折疊、縮進(jìn)和補位的定義,能夠?qū)崿F(xiàn)語法關(guān)鍵字的高亮顯示、源代碼折疊、自動縮進(jìn)和補位等功能。在完成了語法配置檔的替換之後,就可以按照下圖所示的步驟學(xué)習(xí)應(yīng)用UltraEdit軟體進(jìn)行Fortran源代碼編輯的過程。1.5.2ZionEditZionEdit是一款定位於Windows平臺下的開源源代碼編輯器。軟體作者的開發(fā)目標(biāo)就是打造一個方便易用的源代碼編輯環(huán)境。ZionEdit的體積小巧、功能完善、介面友好,是不可多得的開源源代碼編輯器。目前該軟體的最新版本為1.0.35版。這款編輯器同樣支持多種程式設(shè)計語言,能夠定制語法高亮方案。特別是列編輯模式,能夠方便的實現(xiàn)大段代碼的整體注釋。讀者可以在軟體作者的主頁中獲取相關(guān)的軟體。1.5.2gEditgEdit是Linux系統(tǒng)下常用的一款文本編輯器。該編輯器體積不大、功能較為完善,能夠支持語法自動高亮和自動保存。最主要的是該軟體的使用較為簡單,很容易上手。對於一些對功能要求不多、對操作的簡易性較高的用戶而言,是替代那些功能完善、操作複雜的專業(yè)軟體,如Emacs、Vim等的不二之選。需要注意的是,gEdit只能運行在Linux的圖形用戶介面下,在字元模式下則不能正常運行。如果想在字元模式下進(jìn)行Fortran源代碼的編輯,建議學(xué)習(xí)Emacs、Vim等不需要圖形環(huán)境的文本編輯器。1.6第一個Fortran程式——Hello!Fortran90/951.2節(jié)和1.5節(jié)分別介紹了幾種常用的Fortran編譯器和源代碼編輯器。在對軟體的介紹過程中,我們已經(jīng)開始了與Fortran源代碼的初步接觸。在光碟\Program\chap01\檔夾中也提供了一段最簡單的源代碼。本節(jié)就主要通過對一個基本程式的介紹來使大家對Fortran程式有一個初步的認(rèn)識。對於瞭解C/C++語言的程式員肯定都非常熟悉一個著名的C/C++入門程式,即Hello!World。該程式通過最簡單的幾句代碼使初學(xué)者對C/C++程式的結(jié)構(gòu)有了一個基本的瞭解。本節(jié)將借鑒這一做法,對Fortran程式的基本結(jié)構(gòu)進(jìn)行講解。用UltraEdit、ZionEdit、gEdit或是CompaqVisualFortran編輯窗,輸入如下代碼段。PROGRAMHELLOIMPLICITNONEPRINT*,“Hello!Fortran90/95”ENDPROGRAMHELLO

Fortran語法基礎(chǔ)Fortran從誕生至今,已經(jīng)走過了長達(dá)50餘年的發(fā)展歷程中。在這一發(fā)展歷程中,相關(guān)的語言標(biāo)準(zhǔn)先後制定了5部。具體的語法也隨著標(biāo)準(zhǔn)的變更而變化著。在每一個新標(biāo)準(zhǔn)中,前一個標(biāo)準(zhǔn)中的一些舊語句、語法或是被廢棄、或是建議減少使用,如Fortran90標(biāo)準(zhǔn)中就建議減少使用“COMMON”語句;或者新增了一些新的語句,如Fortran95標(biāo)準(zhǔn)中的“FORALL”語句。本章將主要介紹Fortran的基本語法。2.1程式書寫格式在1.6小節(jié)中,程式HELLO已經(jīng)展示了Fortran的一種源代碼書寫格式,即自由格式(FreeFormat),這種格式是Fortran90/95標(biāo)準(zhǔn)中的一大特色。同F(xiàn)ortran77標(biāo)準(zhǔn)中的舊格式,即固定格式(FixedFormat)相比,取消了在源代碼書寫上的諸多限制,程式編制起來更為靈活。兩種格式書寫的源代碼通過檔擴(kuò)展名來進(jìn)行區(qū)別。2.1.1固定格式(FixedFormat)採用固定格式書寫的Fortran源代碼,檔擴(kuò)展名為*.F或*.FOR。在固定格式中,F(xiàn)ortran標(biāo)準(zhǔn)規(guī)定了若干個列範(fàn)圍。每一個列範(fàn)圍都有自己的用途和約定,程式必須嚴(yán)格按照這些約定進(jìn)行編寫。2.1.2自由格式(FreeFormat)採用自由格式書寫的Fortran源代碼,檔擴(kuò)展名為*.F90。自由格式是Fortran90標(biāo)準(zhǔn)中的一大特色,廢除了固定格式中的許多限制。它並不規(guī)定程式代碼中每一行第幾列字元的具體作用,在源代碼的編寫上顯得相當(dāng)自由。同固定格式相比,自由格式主要在以下幾個方面進(jìn)行了改進(jìn)。行的定義。在自由格式中每行可以書寫132個字元。程式語句的位置沒有了只能從第7列後開始書寫的固定約定,可以在任意一列開始書寫。同一行中可以順序書寫多條程式語句,語句之間用分號“;”進(jìn)行分隔。注釋行的定義。在自由格式中,驚嘆號“!”後的字元均被視為注釋。但是,字串中的“!”出外,如“PRINT*,‘Hello!Fortran90/95’”中,“Fortran90/95’”不會被認(rèn)為是注釋。續(xù)行的定義。在Fortran90/95標(biāo)準(zhǔn)中規(guī)定,當(dāng)程式代碼中的一行超過132個字元時,至多可以有39個續(xù)行。續(xù)行標(biāo)誌固定為“&”。當(dāng)一行代碼的最後一個字元為“&”時,則表示下一行與本行接續(xù);當(dāng)一行代碼的第一個字元為“&”時,則表示本行與上一行接續(xù)。行號的定義。在Fortran90/95標(biāo)準(zhǔn)中規(guī)定,行號只需寫在代碼行的最前面即可??崭竦膽?yīng)用。Fortran90/95標(biāo)準(zhǔn)中規(guī)定,語句和變數(shù)名中間不能有空格。例如,關(guān)係運算符“==”不能寫成“==”;“ABS(-2.0)”與“AB□S(-□2.0)”作用不再相同,“AB□S(-□2.0)”不能正常通過編譯。2.1.3兼顧兩種格式的代碼寫法由於現(xiàn)存大量舊的Fortran代碼(Fortran77程式)都是採用固定格式編寫的,在一些編譯器上可能會由於格式的問題而出現(xiàn)編譯錯誤。因此,有必要提供一種能夠兼顧兩種格式的代碼寫法,以便於將固定格式的代碼轉(zhuǎn)換為符合自由格式要求的代碼。能夠兼顧兩種格式的代碼在書寫時需要注意的要點有以下幾條:開始列。除注釋行外的每一行代碼只能從第7列開始編寫。這主要是由於自由格式中並沒有規(guī)定代碼編寫的起始列,因此可以套用固定格式的規(guī)定。注釋行。標(biāo)明注釋行的符號只能用感嘆號“!”,並且應(yīng)該寫在第一列。注釋行必須單獨占一行,不能出現(xiàn)其他語句的行尾。續(xù)行方式。續(xù)行標(biāo)誌只能使用符號“&”。在接續(xù)的兩行中,前一行應(yīng)該在72列後、132列前添加續(xù)行標(biāo)誌;後一行則應(yīng)該在第6列書寫續(xù)行標(biāo)誌??崭袷褂?。在Fortran90/95標(biāo)準(zhǔn)中,語句和變數(shù)中間不允許出現(xiàn)空格。因此,兼顧兩種格式的源代碼中也不允許在語句和變數(shù)中出現(xiàn)空格。2.2字元集“字元集”是指能夠用於編寫Fortran程式的所有字元及符號。不是所有的外文字母或數(shù)字符號都能被某一高級電腦語言接受,每一種高級電腦語言都會規(guī)定它所能使用的字元。Fortran中允許使用的基本字元主要分為兩大類:文字字元和特殊字元。文字字元主要包括26個英文字母、10個自然數(shù)字和下劃線。如表所示。2.3空格的使用在Fortran90/95標(biāo)準(zhǔn)中,空格不能出現(xiàn)在語句和變數(shù)名中間;除了在字串常量或是輸入輸出中外,不代表任何具體意義。其主要作用是分隔語句和變數(shù),使代碼更為易讀。在國外的一些科學(xué)研究和工程設(shè)計機構(gòu),如美國航空航天局(NASA)等,在開發(fā)科學(xué)計算程式時對空格的使用有一些很好的規(guī)定。在程式中要確保不在Fortran定義的語句或變數(shù)名中出現(xiàn)空格,不要嘗試通過空格來對變數(shù)名進(jìn)行區(qū)別;在編寫公式時,儘量通過空格來使公式的書寫和閱讀更為清晰易懂;在編寫大段代碼時,可以使用整行的空格來對代碼段進(jìn)行功能劃分。建議在編寫程式時,儘量遵守這些規(guī)定。下麵來看一段使用空格來確分四則運算的實例,先給出不使用空格進(jìn)行區(qū)分的範(fàn)例:Y=X+A*B/C-(0.5+C*D)**22.4注釋格式儘管注釋在編譯過程中是一定會被編譯器忽略的,但卻是源代碼檔中十分重要的一部分。因為注釋是保證源代碼具有可讀性的一個非常重要的手段。在不同的高級電腦語言中,表示注釋的方法各有不同,甚至在一種語言裏,也可能有幾種引入注釋的方法。不同的注釋方法各有優(yōu)缺點,在使用中應(yīng)該根據(jù)實際情況進(jìn)行選擇。在C語言程式中,需要使用“/*”和“*/”這樣的特殊標(biāo)記來界定注釋的內(nèi)容而不管行邊界。採用這種方式進(jìn)行注釋時經(jīng)常出現(xiàn)的錯誤就是漏掉結(jié)束的界定符,使得後面的語句也變成了注解;好處也很明顯,就是能夠方便的實現(xiàn)代碼的塊注釋。而Fortran95語言中的“!”,Ada語言中的“-”,或是C++語言中的“//”,注釋都是在行的任意位置開始直到行的末尾結(jié)束。這種做法更為合理、不容易出錯,但要實現(xiàn)大段代碼的整體注釋就不是特別方便了。2.5命名方式在Fortran中為對象命名有一定的要求。簡單的說,F(xiàn)ortran77的命名要求和Fortran90/95的命名要求是不同的。本節(jié)主要介紹不同標(biāo)準(zhǔn)下的命名方式。在Fortran77標(biāo)準(zhǔn)中,程式和變數(shù)等對象的名字是由不多於6個字元(包括英文字母A-Z、a-z和數(shù)字0-9)組成的字元段。同時,對象名字的第1個字元必須是字母,名字的有效使用範(fàn)圍原則上僅限於一個程式單元之中(內(nèi)部過程除外)。下麵的代碼段演示了Fortran77標(biāo)準(zhǔn)的對象命名方式。INTEGER0B !錯誤INTEGERC-10 !錯誤REALsin !正確REALtest:real !錯誤2.6程式單元和語句順序程式單元是程式中的基本組成部分,瞭解程式單元的用途可以加深對電腦程式的理解。本節(jié)主要介紹Fortran程式中的程式單元和句順序的基本概念及相關(guān)規(guī)定。Fortran中的程式單元分為兩大類:可執(zhí)行程式單元和不可執(zhí)行程式單元??蓤?zhí)行程式單元,在程式中主要用來執(zhí)行一個完整的功能??蓤?zhí)行程式單元主要包括以下三種:主程序單元、外部函數(shù)副程式單元和外部子例行副程式單元。不可執(zhí)行程式單位,在程式中主要用來為其他程式單元提供定義。不可執(zhí)行程式單元有兩種:模組程式單元和數(shù)據(jù)塊程式單元。

簡單輸入與輸出電腦程式的主要作用是對輸入的數(shù)據(jù)進(jìn)行適當(dāng)?shù)募庸ぬ幚硪缘玫饺藗冴P(guān)心的結(jié)果,並將結(jié)果輸出。在進(jìn)一步講解程式設(shè)計的基本概念前,有必要介紹簡單的輸入輸出語句。這樣,程式設(shè)計中的一些問題可以直觀的表現(xiàn)出來,便於對一些概念的理解。3.1輸入和輸出概述在Fortran語言中,數(shù)據(jù)的輸入輸出操作由相應(yīng)的輸入輸出語句來完成。輸入輸出語句負(fù)責(zé)向電腦說明程式中哪些數(shù)據(jù)要進(jìn)行輸入輸出、輸入輸出數(shù)據(jù)的格式、在何種設(shè)備上進(jìn)行輸入輸出等問題。Fortran中的輸入輸出方式主要有以下三種:按用戶指定的格式進(jìn)行輸入輸出;按系統(tǒng)隱含的標(biāo)準(zhǔn)格式輸入輸出(也稱為表控輸入輸出、直接列表輸入輸出);無格式的輸入輸出。3.2簡單輸出語句簡單輸出語句主要是指表控輸出,即表控格式(ListDirectedFormat,也叫直接列表)輸出。在用這種格式進(jìn)行輸出時,電腦系統(tǒng)會用隱含的輸出格式為每一種數(shù)據(jù)類型規(guī)定輸出的長度和表示形式。例如,實數(shù)是用小數(shù)還是指數(shù)來表達(dá),小數(shù)位數(shù)有幾位等。在Fortran中沒有專用的表控輸出語句,表控輸出格式的輸出都是輸出語句的簡化形式。具體來說,PRINT語句和WRITE語句都能夠進(jìn)行表控輸出。下麵分別對兩種語句的表控輸出用法進(jìn)行說明。3.2.1PRINT語句的表控輸出PRINT語句是Fortran中較為常用的一種輸出語句,用它來完成表控輸出的語法格式如下所示。PRINT*[,輸出項,……]在PRINT語句中不能指定輸出設(shè)備,只能向系統(tǒng)隱含指定的設(shè)備輸出數(shù)據(jù)(隱含指定的輸出設(shè)備一般是指電腦螢?zāi)唬?;語句中的星號“*”表示“表控格式輸出”,即按照電腦默認(rèn)的格式進(jìn)行數(shù)據(jù)的輸出;輸出項可以有多個,每個輸出項之間用逗號“,”分隔;當(dāng)語句中沒有輸出項時,命令將輸出一個空白行。3.2.2WRITE語句的表控輸出使用WRITE語句來完成表控輸出的語法格式如下所示。WRITE(*,*)[輸出項,……]WRITE語句中第一個星號“*”表示在系統(tǒng)隱含指定的設(shè)備上輸出;WRITE語句中的第二個星號“*”表示“表控格式輸出”;輸出項可以有多個,每個輸出項之間用逗號“,”分隔;當(dāng)語句中沒有輸出項時,命令將輸出一個空白行。3.2.3表控輸出的特點從上面兩個例子中可以發(fā)現(xiàn)表控輸出的一些特點。如果輸出的是整數(shù),系統(tǒng)會自動為每個整數(shù)分配11列,當(dāng)要輸出的數(shù)據(jù)位數(shù)不夠時,左端以空格補齊。在輸出實數(shù)時,給每個實數(shù)分配的輸出長度分為以下兩種情況。當(dāng)實數(shù)能夠用小數(shù)形式表達(dá)時,分配8列,小數(shù)點前最多7位。如果小數(shù)點後有效位數(shù)不足,則用“0”補齊。如果實數(shù)只能用指數(shù)形式表達(dá)時,則分配13列。其中,指數(shù)部分占4位,小數(shù)點後占7位。在輸出數(shù)組時,數(shù)組元素會按照它在數(shù)組中存儲的先後順序依次輸出。在輸出字串時,直接按照字串的實際長度進(jìn)行輸出。用戶也可以在同一條PRINT語句或WRITE語句中輸出整數(shù)、實數(shù)和字串。示例如下。PRINT*,1000,1.414,“TwoNumbers”3.3簡單輸入語句簡單輸入語句主要是指表控輸入格式,又稱為自由格式輸入。這種輸入操作不需要用戶指定輸入數(shù)據(jù)的具體格式,只要將數(shù)據(jù)按其合法的形式依次輸入就可以了。數(shù)據(jù)之間以逗號“,”或空格間隔。Fortran中的表控輸入語句也是特定輸入語句的簡化形式。READ語句能夠?qū)崿F(xiàn)表控輸入,其實現(xiàn)形式有兩種。下麵分別給出兩種形式的表控輸入語句。3.3.1READ語句的表控輸入形式一使用READ語句來完成表控輸入的語法形式如下所示。READ*[,輸入項,……]在這種形式中,不能指定輸入設(shè)備,只能由系統(tǒng)隱含指定的設(shè)備上輸入(系統(tǒng)隱含指定的設(shè)備一般是指鍵盤);語句中的星號“*”表示“表控輸入”,即按照數(shù)據(jù)合法的格式進(jìn)行輸入;輸入項可以有多個,每個輸出項之間用逗號“,”分隔;當(dāng)語句中沒有輸入項時,系統(tǒng)將掛起程序的運行直到用戶鍵入回車符。3.3.2READ語句的表控輸入形式二第二種形式的READ語句表控輸入的語法如下。READ(*,*)[輸入項,……]語句中的第一個星號“*”表示“系統(tǒng)默認(rèn)的輸入設(shè)備”(一般指鍵盤);第二個星號“*”表示“表控輸入”;輸入項可以有多個,每個輸出項之間用逗號“,”分隔;當(dāng)語句中沒有輸入項時,系統(tǒng)將掛起程序的運行直到用戶鍵入回車符。下麵用一個具體的代碼來演示表控輸入語句的應(yīng)用。這段代碼主要演示了第二種形式的READ語句表控輸入在程式的簡單實現(xiàn)。TEST0305.F90!這是直接列表輸入語句READ的範(fàn)例PROGRAMTEST0305IMPLICITNONE!變數(shù)定義

REAL::A,BINTEGER::I,J!表控輸入

READ(*,*)A,BREAD(*,*)I,J!表控輸出

PRINT*,"Output:"PRINT*,A,BPRINT*,I,J

ENDPROGRAMTEST03053.3.3表控輸入的特點在應(yīng)用READ語句進(jìn)行表控輸入操作時,輸入的數(shù)據(jù)應(yīng)該符合READ語句中的要求,即輸入的數(shù)據(jù)個數(shù)應(yīng)該與READ語句中的變數(shù)個數(shù)一致;輸入數(shù)據(jù)的類型應(yīng)與READ語句中相應(yīng)變數(shù)的類型一致。如果輸入的數(shù)據(jù)不夠,READ語句將會等待用戶繼續(xù)輸入,直到輸入所需的全部數(shù)據(jù)為止。如果輸入的數(shù)據(jù)過多,則多餘的數(shù)據(jù)不起作用。如果輸入的數(shù)據(jù)與READ語句中的變數(shù)類型不一致,則可能出現(xiàn)賦值錯誤。

常量和變數(shù)常量和變數(shù)都是程式中預(yù)留的用於保存數(shù)據(jù)的記憶體空間。常量的值在程式運行過程中始終不會發(fā)生變化。而變數(shù)的值在程式的運行過程中是可以變化的。在Fortran語言中,有五種基本的數(shù)據(jù)類型可供使用。他們分別是整型(INTEGER)、實型(REAL)、複型(COMPLEX)、字元型(CHARACTER)和邏輯型(LOGICAL)。按用途,又可以分?jǐn)?shù)值型、字元型和邏輯型三種。相應(yīng)的常量和變數(shù)也可以分為這三種。本章將按照用途介紹常量和變數(shù)的基本概念。4.1數(shù)值型常量及其類型數(shù)值型常量的值在程式運行過程中不會發(fā)生改變,它們通常也被稱為常數(shù)。數(shù)值型常量包括整型常量、實型常量和複型常量。本節(jié)主要介紹數(shù)值型常量的類型和基本概念。4.1.1整型常量整型常量也稱為整型常數(shù)或整數(shù)。按照所需存儲空間的大小,又分為長整型和短整型兩種。長整型佔用4位元組的存儲空間,短整型則佔用2位元組的存儲空間。默認(rèn)情況下為長整型。有些編譯器還提供額外的擴(kuò)展整型常量,如CompaqVisualFortran在x86及其相容機上額外提供佔用1位元組空間的整型常量;在OpenVMS、Tru64UNIX和Linux系統(tǒng)中還提供佔用8位元組空間的整型常量。由於存儲整型常量的記憶體單元容量是一定的,因此整數(shù)所能表達(dá)的範(fàn)圍是有限的。長整型能夠存儲的數(shù)值範(fàn)圍為-231到231-1,即-2,147,483,648到2,147,483,647之間;短整型能夠存儲的數(shù)值範(fàn)圍為-215到215-1,即-32,768到32,767之間。整型常量可以包含正負(fù)號,也可以不包含(此時默認(rèn)為正,即+2與2等價)。在Fortran77標(biāo)準(zhǔn)中,常量內(nèi)部的空格不起任何作用,如“123”與“1□2□3”等價;但Fortran90/95標(biāo)準(zhǔn)中則不允許出現(xiàn)這種表達(dá)方式。4.1.2實型常量實型常量也稱為實型常數(shù)或?qū)崝?shù)。按照所需存儲空間的大小,實數(shù)分為單精確度和雙精度兩種。在實數(shù)的表達(dá)方式上,可以分為小數(shù)形式和指數(shù)形式兩種。下麵分別進(jìn)行說明。1.實數(shù)的精度:單精確度實數(shù)佔用4位元組的存儲空間,有效位數(shù)6到7位;雙精度實數(shù)佔用8位元組的存儲空間,有效位數(shù)15到16位。2.實數(shù)的表達(dá)形式:當(dāng)以小數(shù)形式來表達(dá)實數(shù)時,小數(shù)點的前面或後面可以不出現(xiàn)數(shù)字,但不允許小數(shù)點前後都不出現(xiàn)數(shù)字。例如,+10.4、-0.8、34.、.01等都是合法的。4.1.3複型常量複型常量也稱為複型常數(shù)或複數(shù)。按所需存儲空間的大小分為單精確度和雙精度兩種。複型常數(shù)是Fortran語言中特有的一種數(shù)據(jù)結(jié)構(gòu),能夠同時存儲複數(shù)的實部和虛部。在程式中,複型常數(shù)用一個括弧中的兩個實數(shù)來表示。第一個實數(shù)表示複數(shù)的實部,第二個實數(shù)表示複數(shù)的虛部。比如:(3.0,6.3)和(1.0E2,2.0E3)。在存儲的時候,複型常數(shù)會佔據(jù)兩個實數(shù)的存儲單元。因此,單精確度的複型常數(shù)佔用8位元組的存儲空間;雙精度的複型常數(shù)則需要佔用16位元組的存儲空間。CompaqVisualFortran在OpenVMS、Tru64UNIX和Linux系統(tǒng)中還提供佔用32位元組存儲空間的複型常量。複型常量中實部和虛部所表達(dá)的數(shù)的範(fàn)圍與同精度的實數(shù)是一致的。即單精確度時的數(shù)值範(fàn)圍為1.17549435E-38到3.40282347E38;雙精度時的數(shù)值範(fàn)圍為2.2250738585072013D-308到1.7976931348623158D308。4.1.4常量的存儲形式電腦在存儲上述三種不同類型的常數(shù)時,並不區(qū)分?jǐn)?shù)據(jù)的具體形式,而是統(tǒng)一將數(shù)據(jù)轉(zhuǎn)化為二進(jìn)位的形式進(jìn)行存儲。在轉(zhuǎn)化的過程中,由於存儲空間是一定的,因此存儲實型常數(shù)時會產(chǎn)生存儲誤差的問題,即電腦的截斷問題。在CompaqVisualFortran安裝目錄的\DF98\BIN檔夾中有一個BITVIEWER程式可以查看各種數(shù)據(jù)在電腦中存儲的二進(jìn)位數(shù)據(jù)形式。通過它可以直觀的瞭解電腦中數(shù)據(jù)的存儲方式。軟體的圖形用戶介面如圖4.1所示,圖中最下麵一排的方框表示數(shù)據(jù)在電腦中的存儲空間;每一個方框只有兩個數(shù)值,即0和1;右側(cè)有多個選項可供選擇,用於表示數(shù)據(jù)所佔用的存儲空間。如4表示4位元組、2表示2位元組等。4.1.5符號常量在程式中有時會經(jīng)常用到同一個常數(shù)。如一些數(shù)學(xué)常數(shù)、物理常數(shù)等。如果每次都在程式中重複書寫使用這些常數(shù)值,會顯得很繁瑣。Fortran允許用一個名字來對常量進(jìn)行命名。比如常見的用PI來代表圓周率3.1415926535。此時稱PI為“符號常量”或“符號常數(shù)”,即用符號來表示常量。在Fortran中,可以使用PARAMETER語句將一個符號聲明為常量。比如將PI聲明為常數(shù)3.1415926535,可以用如下的語句實現(xiàn):PARAMETER(PI=3.1415926535)4.2數(shù)值型變數(shù)及其類型數(shù)值型變數(shù)主要是指整型、實型、複型三種變數(shù)。系統(tǒng)會為程式中的每一個變數(shù)按照其類型開闢一塊存儲單元,用於存儲變數(shù)的值。每一個變數(shù)都需要用一個名字(變數(shù)名)來識別,並且同一個程式單元內(nèi)不能用同一個變數(shù)名來命名不同的變數(shù)。本節(jié)主要介紹數(shù)值型變數(shù)的類型和基本概念。4.2.1數(shù)值型變數(shù)概述數(shù)值型變數(shù)的分類同數(shù)值型常量一樣。整型變數(shù)用來存儲整型常量,實型變數(shù)用來存儲實型常量,複型變數(shù)用來存儲複型常量。在存儲空間的分配上,同類型的變數(shù)與常量佔據(jù)相同的存儲空間。變數(shù)名的作用是識別程式中的變數(shù)。Fortran中的變數(shù)名命名有一定的規(guī)則,主要有以下幾條。變數(shù)名中只能包含26個英文字母和0~9十個數(shù)字;在Fortran90/95標(biāo)準(zhǔn)中,還允許使用下劃線“_”。變數(shù)名的第一個字元必須是字母,不能是下劃線“_”或數(shù)字。在Fortran77標(biāo)準(zhǔn)中,變數(shù)名不允許超過6個字元;在Fortran90/95標(biāo)準(zhǔn)中,變數(shù)名不允許超過31個字元。4.2.2使用系統(tǒng)默認(rèn)的隱含約定Fortran中約定:在沒有強制規(guī)定變數(shù)類型的情況下,如果變數(shù)名的首字母為I、J、K、L、M、N六個字母中的一個時,即認(rèn)為該變數(shù)為整型變數(shù),而以其他字母開頭的變數(shù)則默認(rèn)為實型變數(shù)。這就是所謂的“I-N規(guī)則”?!癐-N規(guī)則”的使用有利有弊。好處就是不管在程式的什麼位置,如果想要臨時添加一個變數(shù),只要按照“I-N規(guī)則”的約定取好變數(shù)名就可以使用了;缺點也是明顯的,就是眾多隨意添加的變數(shù)使得程式閱讀起來不是很方便,更有可能造成人為錯誤。比如下麵的代碼段就是一個典型的錯誤範(fàn)例。TEST0401.F90!這是一個錯誤的變數(shù)定義範(fàn)例PROGRAMTEST0401I=3000*3WRITE(*,*)lENDPROGRAMTEST04014.2.3使用類型說明語句聲明如果不想受“I-N規(guī)則”的約束,或是防止出現(xiàn)“I-N”規(guī)則下的常見錯誤,可以使用類型說明語句對變數(shù)的類型進(jìn)行約定。在Fortran中,基本的類型說明語句主要有六種。即INTEGER語句、REAL語句、DOUBLPRECISION語句、COMPLEX語句、LOGICAL語句和CHARACTER語句。數(shù)值型變數(shù)主要涉及到前四種語句。即INTEGER語句(整型說明語句)、REAL語句(實型說明語句)、DOUBLPRECISION語句(雙精度說明語句)和COMPLEX語句(複型說明語句)。類型聲明語句的語法形式如下:類型說明語句[([KIND=]數(shù)字)][::]變數(shù)名[,變數(shù)名……]4.2.4用隱含說明語句聲明除了上面提到的兩種變數(shù)類型說明方法外,還可以用隱含說明語句(IMPLICIT語句)將以某一字母開頭的所有變數(shù)都聲明為同一種類型。該語句的語法形式如下:IMPLICIT類型說明語句(字母列表)其中字母列表中的字母用逗號進(jìn)行間隔。如果是連續(xù)的一串字母,可以用首尾字母間加符號“-”的方式來進(jìn)行縮寫。比如“C-H”。下麵的聲明代碼將以字母A-G和N開頭的變數(shù)都聲明為整型:IMPLICITINTEGER::(A-G,N)4.2.5數(shù)值型變數(shù)聲明及其應(yīng)用在編寫程式的過程中,顯式的聲明所有用到的變數(shù)是一種良好的編程習(xí)慣,建議在編寫實際的應(yīng)用程式時使用“IMPLICITNONE”來進(jìn)行強制的變數(shù)類型檢查。凡是沒有進(jìn)行類型說明的變數(shù),在編譯過程中都會被編譯器找出來。在三種類型規(guī)定方法中,以類型說明語句的優(yōu)先順序最高,IMPLICIT語句次之,“I-N規(guī)則”的級別最低;類型說明語句和IMPLICIT語句都是不可執(zhí)行語句,必須出現(xiàn)在本程式單元中所有可執(zhí)行語句之前;類型說明語句只能在本程式單元內(nèi)有效;DOUBLEPRECISION語句在Fortran90/95標(biāo)準(zhǔn)完全可以用REAL(8)語句代替,目前已很少使用。4.3字元型常量及變數(shù)文字處理能力是Fortran語言的另一特色。早期Fortran77中的文字處理能力較弱,在Fortran90/95標(biāo)準(zhǔn)中的文字處理能力已經(jīng)大大加強。本節(jié)將介紹字元型常量和變數(shù)的基本概念。4.3.1字元型變數(shù)概述字元型常量也稱為字串,它是用引號(單引號或雙引號,F(xiàn)ortran77中只允許用單引號)括起來的若干個字元。字串中的字元可以是電腦系統(tǒng)中允許使用的任意字元,通常會大於Fortran字元集。比如字元型常量‘BEIJING’,”PLANE”,”#$@%&”,”北京”都是合法的。在電腦中,一個字元通常會佔據(jù)一個位元組的存儲空間;但某些語言的字元在計算中需要多個位元組的空間來存儲。比如,一個漢字在電腦上會佔據(jù)4位元組的存儲空間。字元型變數(shù)是用來存儲字元型常量的變數(shù),在程式中必須事先定義字元型變數(shù)才能使用。定義字元型常量可以使用CHARACTER語句,有四種定義字元型變數(shù)的語法形式,這些語法定義會在隨後的小節(jié)進(jìn)行介紹。4.3.2定義形式一聲明字元型變數(shù)的第一種語法形式如下。CHARACTER[::]變數(shù)名在這種形式的定義中,類型聲明語句CHARACTER說明其後變數(shù)名所代表的變數(shù)為字元型變數(shù)。Fortran77和Fortran90/95中都可以採用這種形式進(jìn)行聲明。但需要注意,在Fortran77下不能出現(xiàn)分隔符號“:”。採用這種形式進(jìn)行聲明時,允許對變數(shù)的長度進(jìn)行說明,說明的方式有兩種:變數(shù)名*len或變數(shù)名(len)4.3.3定義形式二第二種聲明字元型變數(shù)的語法形式如下。CHARACTER([KIND=]n)[::]變數(shù)名在這種形式的聲明中,關(guān)鍵字KIND用於指出賦值號“=”後所跟的數(shù)字n為變數(shù)的種別參數(shù)(有關(guān)種別參數(shù)的內(nèi)容會在後面的小節(jié)進(jìn)行講解)。這個數(shù)字實際上就是說明聲明語句中變數(shù)名所代表的變數(shù)的長度的,意義同定義形式一中的len。採用這種形式也可以定義字元型數(shù)組。在實際的編程實踐中,也可以採用如下替代形式:CHARACTER([LEN=]n)[::]變數(shù)名4.3.4定義形式三第三種形式的字元型變數(shù)聲明的語法形式如下。CHARACTER*len[::]變數(shù)名在這種形式的聲明中,類型聲明語句後的星號“*”用於指明其後所跟的數(shù)字表示變數(shù)的長度,意義和前面兩種定義形式中的差不多。這種形式的定義也可用於聲明字元型數(shù)組,形式如下:CHARACTER*len[::]變數(shù)名(dim)其中的dim用於說明字元數(shù)組中的緯度的長,即長度。下麵給出幾個實例。CHARACTER*20::StringCHARACTER*10::Array_string(20)4.3.5定義形式四在這種形式中,通過IMPLICIT語句來強迫使以某些字母開頭的變數(shù)被默認(rèn)處理成字元型。語法形式如下:IMPLICITCHARACTER[*數(shù)字]字母表IMPLICITCHARACTER[(數(shù)字)]字母表Fortran77標(biāo)準(zhǔn)中通常採用前一種形式,F(xiàn)ortran90/95標(biāo)準(zhǔn)中通常採用後一種形式。定義中的數(shù)字表示字元型變數(shù)的長度,即能夠存儲多少個字元。當(dāng)數(shù)字緊跟CHARACTER語句之後時,表示統(tǒng)一指定字元長度;當(dāng)數(shù)字緊跟變數(shù)名之後時,表示單獨指定字元的長度。如果統(tǒng)一指定的字元長度與變數(shù)個別指定的長度不一致時,以個別指定優(yōu)先於統(tǒng)一指定。定義中括弧內(nèi)的部分可有可無。比如:IMPLICITCHARACTER(5)(G-N),CHARACTERX4.3.6字元型變數(shù)聲明及其應(yīng)用實際上,只要字元變數(shù)的長度不為1,則可以將其看作數(shù)組來進(jìn)行理解。正因為如此,在對字元型變數(shù)進(jìn)行操作時,允許對字元型變數(shù)中的某一個或某幾個存儲位置上的數(shù)據(jù)進(jìn)行單獨操作。這在接下來的子字串的相關(guān)內(nèi)容中進(jìn)行講解。用PARAMETER語句配合CHARACTER語句還可以定義有名字元型常量,比如:CHARACTER(9)::NamePARAMETER(Name=‘PeterPan’)或CHARACTER(9),PARAMETER::Name=‘PeterPan’4.3.7子字串的概念在字元型數(shù)據(jù)的應(yīng)用上,還有一個子字串(Substring)的概念需要瞭解。所謂子字串是指字串的一部分。比如有一字串為“Beijing”,則“Bei”、“jing”、“ei”等都是該字串的子字串??梢杂孟曼I的形式來引用子字串:字串變數(shù)名([star]:[end])其中,star和end都是整型運算式。他們指定了要引用的子字串在字串中的起始和終止位置。4.4邏輯型常量及變數(shù)邏輯量通常用於程式中的流程控制。在Fortran中,邏輯量主要有三種:邏輯常量、邏輯變數(shù)和關(guān)係運算式。本小節(jié)主要介紹Fortran中邏輯常量和邏輯變數(shù)的基本概念和應(yīng)用。Fortran中的邏輯常量只有兩個:TRUE,表示“真”,即滿足邏輯條件;FALSE,表示“假”,即不滿足邏輯條件。例如,當(dāng)A=0時,此時“A<1”的值就為TRUE(真),而“A<-1”的值就為FALSE(假)。邏輯常量又稱為邏輯常數(shù),在程式中,它們通常被賦給一個邏輯變數(shù)。邏輯變數(shù)被用來存放邏輯常量,它的值只能是TRUE或FALSE中的一個。在程式中使用邏輯變數(shù)必須事先加以定義說明。在Fortran中,邏輯變數(shù)的定義是通過LOGICAL語句來實現(xiàn)的。該語句的一般形式為:LOGICAL[([KIND=]數(shù)字)][::]變數(shù)名[,變數(shù)名]4.5變數(shù)的初始化變數(shù)在定義之後,通常會由系統(tǒng)按照自身設(shè)置為變數(shù)賦給一個初值。這一過程稱為變數(shù)的初始化。但是有些系統(tǒng)並不提供這種功能。如果貿(mào)然使用沒有經(jīng)過初始化的變數(shù),很可能導(dǎo)致程式運行出錯。在Fortran中,允許在聲明變數(shù)的同時設(shè)置變數(shù)的初置。在Fortran90/95中要設(shè)置變數(shù)的初置,可以將想要設(shè)置的初值直接寫在聲明的變數(shù)之後。使用這種方法進(jìn)行初值的設(shè)置時,聲明中的兩個冒號不能省略。4.6賦值語句變數(shù)在聲明後就可以使用了,在使用過程中,變數(shù)需要保存不同的數(shù)據(jù)。將數(shù)據(jù)的值寫進(jìn)變數(shù)的過程就是賦值的過程。在Fortran語言中,除了一些專用的特殊語句外,最常用的賦值手段就是賦值語句。賦值語句就是等號“=”,在Fortran中有著廣泛的用途。本節(jié)就將介紹賦值的概念和賦值語句的作用。4.6.1何為賦值所謂賦值,就是將一個常量的值傳輸給一個相應(yīng)的變數(shù)。在Fortran中,賦值除了通過DATA語句之外,還可以使用賦值語句來實現(xiàn),並且賦值語句具有比DATA語句更廣泛的用途。賦值語句的作用就是將一個確定的值賦給一個變數(shù),語句的一般格式為:V=P其中,運算式中的等號“=”就是賦值符;V代表一個變數(shù)名,P代表一個運算式。Fortran的賦值語句有三種類型:算術(shù)賦值語句、邏輯賦值語句和字元賦值語句。算術(shù)賦值語句的作用是將一個算術(shù)量賦予一個算術(shù)型變數(shù);邏輯賦值語句的作用是將一個邏輯量賦給一個邏輯性變數(shù);字元賦值語句的作用就是將一個字元型數(shù)據(jù)賦給一個字元型變數(shù)。儘管用途不一樣,但是三種賦值語句採用的都是同樣的運算符號,即賦值符“=”。賦值語句中的“=”號是賦值符,而不是等號。賦值符的作用是將賦值符右邊運算式的值傳遞給賦值符左邊的變數(shù)。例如,賦值語句“X=3.0”的作用是將數(shù)值3.0傳遞到變數(shù)X中。因此,在閱讀程式代碼時對賦值符的理解應(yīng)是帶方向的,即將什麼數(shù)據(jù)賦值給什麼變數(shù)。4.6.2賦值過程的類型轉(zhuǎn)換在一個算術(shù)賦值語句V=e中,賦值變數(shù)(V)和運算式(e)的類型既可以相同,也可以不相同。Fortran中對於賦值時的類型轉(zhuǎn)換問題作了如下規(guī)定。如果變數(shù)V與運算式e的類型相同,則直接進(jìn)行賦值,不需進(jìn)行類型轉(zhuǎn)換。如果變數(shù)V與運算式e的類型不同,則首先進(jìn)行運算式的求值,然後求值的結(jié)果轉(zhuǎn)換為賦值變數(shù)的類型。在不同的類型之間進(jìn)行轉(zhuǎn)換是有限制條件的:數(shù)值型以及邏輯型數(shù)據(jù)之間允許相互賦值轉(zhuǎn)換;數(shù)值型數(shù)據(jù)與字元型數(shù)據(jù)之間則不允許進(jìn)行直接賦值轉(zhuǎn)換,需要使用專用的字元函數(shù);邏輯型數(shù)據(jù)不允許與字元型數(shù)據(jù)之間進(jìn)行直接或間接的轉(zhuǎn)換。整型數(shù)據(jù)與實型數(shù)據(jù)的相互轉(zhuǎn)換遵循如下規(guī)則:整形向?qū)嵭娃D(zhuǎn)換時,保持?jǐn)?shù)值的大小不變;實型向整型轉(zhuǎn)換時,直接將實型的小數(shù)部分截去。在由整型數(shù)據(jù)向邏輯型數(shù)據(jù)轉(zhuǎn)換時,邏輯型數(shù)據(jù)的值由整型數(shù)據(jù)的奇偶來決定:當(dāng)整型數(shù)據(jù)為奇數(shù)時,轉(zhuǎn)換成的邏輯型數(shù)據(jù)的值為TRUE;當(dāng)整型數(shù)據(jù)為偶數(shù)(包括0)時,轉(zhuǎn)換成的邏輯型數(shù)據(jù)的值為FALSE。在由實型數(shù)據(jù)向邏輯型數(shù)據(jù)轉(zhuǎn)換時,實型數(shù)據(jù)會首先轉(zhuǎn)換成整型,然後再由整型向邏輯型轉(zhuǎn)換。

種別和屬性在前面的章節(jié)中,談到過數(shù)值型常量的存儲空間問題。不同精度的數(shù)值所需的存儲空間是不同的,相應(yīng)的變數(shù)也應(yīng)該與常量的存儲空間一致。如果變數(shù)的存儲空間不夠,則會造成常量在存儲時的精度丟失。在Fortran中,可以通過種別參數(shù)來指定變數(shù)的儲存空間,從而達(dá)到優(yōu)化使用存儲空間、防止精度丟失的目的。本節(jié)主要介紹種別和屬性的基本概念。5.1種別概述種別是一個全新的程式設(shè)計概念。通過它,程式員可以更靈活的控制程式所佔用的存儲空間。本節(jié)將對種別的一些基本概念進(jìn)行介紹。5.1.1種別的概念種別是Fortran90/95標(biāo)準(zhǔn)中才開始引入的一種表示數(shù)據(jù)大小和精度的概念。引入種別的概念後,F(xiàn)ortran中的數(shù)據(jù),不僅僅有一個類型所屬,並且同一類型下還可進(jìn)一步分出若干個種別。種別數(shù)值的大小確定了該類型數(shù)據(jù)實際的大小範(fàn)圍和存儲精度。這就好比動物學(xué)中的分類,在貓科動物這一大的類型之下,還有老虎、獵豹、家貓等的進(jìn)一步劃分,它們的個頭會有很大差異。有了種別說明之後,電腦程式會更容易在不同硬體和軟體平臺間進(jìn)行移植。由於目前的電腦系統(tǒng)並不統(tǒng)一,多種體系平臺的現(xiàn)象依然客觀存在。在不同的平臺上,同種類型的變數(shù)可能規(guī)定了不同的精度範(fàn)圍。因此,在某種電腦上正確運行的程式在另一種電腦上運行時就有可能出現(xiàn)溢出等現(xiàn)象。有了數(shù)據(jù)的種別屬性之後,就可以有效避免這種情況的發(fā)生。5.1.2種別的使用在變數(shù)聲明中,種別由種別說明符進(jìn)行說明。帶種別說明符的類型說明語句的基本語法形式如下:類型說明([KIND=]種別值)[::]變數(shù)名列表種別說明符寫在類型說明語句後的括弧內(nèi),由關(guān)鍵字KIND,賦值號“=”以及種別值組成。其中,關(guān)鍵字KIND和賦值號“=”可以省略。例如程式中要說明一個實型變數(shù)A,種別值為4;一個字元型變數(shù)C,種別值為10;一個整型變數(shù)K,種別值為8。那麼可以用下麵的代碼來進(jìn)行聲明:REAL(KIND=4)::ACHARACTER(KIND=10)::CINTEGER(KIND=8)::K5.2種別值和種別函數(shù)前面已經(jīng)提到過了,由於Fortran國際標(biāo)準(zhǔn)中只是提出了數(shù)據(jù)的種別概念和定義,但並沒有規(guī)定統(tǒng)一的種別分類和相關(guān)的數(shù)值定義。這一現(xiàn)象是由於當(dāng)前電腦體系並不統(tǒng)一的現(xiàn)實造成的。因此,具體的種別值是由各個編譯器廠商自行確定的。本節(jié)主要介紹CompaqVisualFortran編譯系統(tǒng)中提供的幾類種別值。5.2.1整型數(shù)據(jù)的種別整型數(shù)據(jù)在CompaqVisualFortran中被劃分為4種種別,種別值即表示整型數(shù)據(jù)所占記憶體空間的位元組數(shù)n。表所示是CompaqVisualFortran中定義的幾種整型數(shù)據(jù)種別。整型數(shù)據(jù)的種別種別值n取值範(fàn)圍(-28n-1—28n-1-1)備註INTEGER([KIND=]1)或INTEGER*1-128到127

INTEGER([KIND=]2)或INTEGER*2-32768到32767

INTEGER([KIND=]4)或INTEGER*4-2147483648到2147483647缺省值INTEGER([KIND=]8)或INTEGER*8-9223372036854775808到9223372036854775807僅適用於Alpha晶片機型5.2.2實型數(shù)據(jù)的種別實型數(shù)據(jù)在CompaqVisualFortran中被劃分為3種種別。在Fortran90/95標(biāo)準(zhǔn)中並沒有明確規(guī)定實型數(shù)據(jù)中指數(shù)的允許範(fàn)圍和有效位數(shù),表中的數(shù)據(jù)僅適用於CompaqVisualFortran。實型數(shù)據(jù)的種別種別值取值範(fàn)圍備註REAL([KIND=]4)或REAL*410-38

到1038,7位有效數(shù)字缺省值REAL([KIND=]8)或REAL*810-308

到10308,15位有效數(shù)字等價於雙精度型DOUBLEPRECISIONREAL([KIND=]16)或REAL*16

僅用於OpenVMS、Tru64UNIX、Linux操作系統(tǒng)5.2.3複型數(shù)據(jù)的種別複型數(shù)據(jù)在CompaqVisualFortran中被劃分為3種種別,如表所示。每種表示實型數(shù)據(jù)的方法都可以用來表示複型數(shù)據(jù)的實部和虛部,數(shù)據(jù)的取值範(fàn)圍可以參考前一小節(jié)。需要注意的是簡寫寫法與完整寫法之間的差別。複型數(shù)據(jù)的種別種別值備註COMPLEX([KIND=]4)或COMPLEX*8缺省值COMPLEX([KIND=]8)或COMPLEX*16等價於雙精度複型DOUBLECOMPLEXCOMPLEX([KIND=]16)或COMPLEX*32僅用於OpenVMS、Tru64UNIX、Linux操作系統(tǒng)5.2.4邏輯型數(shù)據(jù)的種別邏輯型數(shù)據(jù)在CompaqVisualFortran中被劃分為4種種別,如表所示。由於邏輯型數(shù)據(jù)只有兩種,即TRUE(真)和FALSE(假),因此不管具體是何種種別,使用上並無太大區(qū)別。筆者的習(xí)慣是,使用邏輯型數(shù)據(jù)時採用其默認(rèn)的種別值即可,如果想進(jìn)一步節(jié)省記憶體,還可以使用種別值為1的邏輯型數(shù)據(jù)。邏輯型數(shù)據(jù)的種別種別值備註LOGICAL([KIND=]1)orLOGICAL*1

LOGICAL([KIND=]2)orLOGICAL*2

LOGICAL([KIND=]4)orLOGICAL*4缺省值LOGICAL([KIND=]8)orLOGICAL*8僅用於Alpha晶片機型5.2.5字元型數(shù)據(jù)的種別字元型數(shù)據(jù)在CompaqVisualFortran中只有1種種別,種別值的大小為1。除了上述5種基本數(shù)據(jù)類型外,CompaqVisualFortran中還提供了一種位元組型數(shù)據(jù)BYTE。該類型的數(shù)據(jù)只佔用一個位元組的存儲空間,等價於INTEGER([KIND=]1)。5.2.6種別函數(shù)儘管沒有統(tǒng)一的標(biāo)準(zhǔn)來規(guī)定種別的具體分類和數(shù)值,但是Fortran90/95中提供了用於查詢和選擇種別值的內(nèi)部函數(shù)。下麵分別介紹這些函數(shù)和它們的用途。1.KIND函數(shù):KIND函數(shù)用於查詢變數(shù)所屬的種別,函數(shù)的原型為:C=KIND(X)。2.SELECTED_REAL_KIND函數(shù):SELECTED_REAL_KIND函數(shù)返回與實型變數(shù)的取值範(fàn)圍和存儲精度相一致的種別參數(shù),函數(shù)的原型為:C=SELECTED_REAL_KIND([p][,r])。3.SELECTED_INT_KIND函數(shù):SELECTED_INT_KIND函數(shù)返回與整型變數(shù)的取值範(fàn)圍相一致的種別參數(shù),函數(shù)的原型為:C=SELECTED_INT_KIND([m])。其中,整型參數(shù)m用來指出所需要的取值範(fàn)圍在-10m到10m之間。5.3常數(shù)種別和進(jìn)制變數(shù)的種別可以在變數(shù)聲明的過程中通過類型說明語句進(jìn)行說明,那麼常數(shù)是否也有種別之分呢?答案是肯定的。既然變數(shù)有種別之分,那麼用於給變數(shù)賦值的常數(shù)自然也有種別之分。種別值較?。ㄒ簿褪侨≈倒?fàn)圍較小、數(shù)據(jù)精度較低)的常數(shù)在賦值給種別值較高的變數(shù)時,不會有什麼問題;但是反過來將種別值較高的常數(shù)賦值給種別值較低的變數(shù)時就會出現(xiàn)問題,如丟失數(shù)據(jù)精度等。本節(jié)主要介紹如何對程式中出現(xiàn)的常數(shù)進(jìn)行種別的表明。5.3.1非字元型常數(shù)的種別說明對於數(shù)值型或邏輯型常數(shù)這類非字元型常數(shù)來說,可以使用後輟法來表示數(shù)據(jù)所屬的種別。尾碼法在常數(shù)數(shù)值後面加上一道下劃線“_”,然後再跟上具體的種別值。對於實型常數(shù),如果數(shù)據(jù)指數(shù)部分的字母是D時,禁止使用種別值進(jìn)行說明。因為字母D表示該數(shù)據(jù)已經(jīng)是實型數(shù)據(jù)的最高種別,種別值為8,即雙精度實數(shù)。對於複型常數(shù),如果數(shù)據(jù)的實部和虛部都是用整數(shù)的形式來表示的,那麼它的精度和範(fàn)圍都會被默認(rèn)為與缺省的實型常數(shù)相同;如果實部和虛部都是用實數(shù)的形式來表示,那麼它的精度和範(fàn)圍會視具體的情況來確定:如果實部和虛部具有相同的種別說明,則複數(shù)的種別就是該種別;如果實部和虛部具有不同的種別說明,則複數(shù)的種別由較大的種別值確定。5.3.2字元型常數(shù)的種別說明如果是字元型常數(shù),則應(yīng)改用前輟法來說明數(shù)據(jù)的種別。嵌綴法將種別值寫在字元型常數(shù)的前面,其間通過下劃線“_”把數(shù)據(jù)部分和種別值連接起來。例如下麵的例子:1_’αβγ’ 2_’計算方法’字串中使用了希臘字母和漢字,是假定所使用的電腦系統(tǒng)支持希臘字母與漢字,並且規(guī)定這兩個字串的種別參數(shù)分別是1和2。理論上說,這樣進(jìn)行種別說明是可行的,因為漢字在內(nèi)存中會佔用兩個位元組,而一般的英文字元只佔用一個位元組。但是,實際情況卻不是這樣的。5.3.3數(shù)據(jù)的進(jìn)制說明除了前面兩個小節(jié)介紹的情況之外,在Fortran90/95中,還可以根據(jù)需要定義不同進(jìn)制的正整數(shù)常量,這包括二進(jìn)位、八進(jìn)制和十六進(jìn)制。二進(jìn)位常量以字母“B”開頭,後跟定界符括起來的數(shù)字串,定界符可以是單引號“'”或者雙引號“””,數(shù)字只能是0或1。例如:B’01011’B”01011”5.4屬性說明在類型說明語句中除了可以說明對象的類型和種別之外,還可以進(jìn)一步說明對象的屬性。當(dāng)一個對象在類型說明語句中被說明具有某種屬性後,該對象就具有了某種附加的特殊功能。本節(jié)主要介紹Fortran中屬性的相關(guān)概念。5.4.1對象的屬性在Fortran90/95中,一個對象可以沒有附加的屬性說明,此時它只是普通的一般變數(shù),與Fortran77中的變數(shù)完全相同。一個對象也可以有多個附加的屬性說明,之後被說明對象就具有了多個附加的特殊功能,並且確定了它在不同場合下的特定使用方式。每種屬性說明都有專門的關(guān)鍵字與之對應(yīng),各屬性關(guān)鍵字間用逗號進(jìn)行分隔,之間沒有嚴(yán)格的先後關(guān)係,但是屬性關(guān)鍵字應(yīng)該寫在類型說明語句的種別說明符之後,分隔符號“::”之前。屬性不僅僅可用於說明數(shù)據(jù),還可以用於說明過程。5.4.2常用屬性說明常用的屬性說明是在編程實踐中經(jīng)常會碰到的,這些屬性說明會為程式設(shè)計帶來某種方便。本小節(jié)將對這些常用屬性進(jìn)行簡單的介紹。1.PARAMETER屬性PARAMETER屬性也稱為常數(shù)名屬性、參數(shù)屬性,這種屬性在前面的小節(jié)中已經(jīng)遇到過,這裏作為單獨的概念進(jìn)行解釋。2.DIMENSION屬性DIMENSION屬性用於說明一個對象名是數(shù)組名,該語句的一般形式如下:類型說明語句,DIMENSION[(形狀說明符)][::]數(shù)組名[(形狀說明符)]3.EXTERNAL屬性EXTERNAL屬性用於說明一個函數(shù)為外部函數(shù),該屬性的一般使用形式為:類型說明語句,EXTERNAL::外部函數(shù)名

常用內(nèi)部過程作為一門古老而又年輕的高級電腦語言,F(xiàn)ortran提供了大量的內(nèi)部過程供程式員在編程過程中使用。並且隨著新標(biāo)準(zhǔn)的推出,F(xiàn)ortran語言的內(nèi)部過程還在繼續(xù)擴(kuò)展,能夠提供更多的常用功能,大大減輕了程式員的重複性勞動。本節(jié)主要介紹常用內(nèi)部過程的基本知識。6.1內(nèi)部過程概述在Fortran語言中,有很多常用的數(shù)學(xué)過程、字元處理過程和系統(tǒng)過程。其中,數(shù)學(xué)過程和字元處理過程通常是以函數(shù)副程式的形式存在,而系統(tǒng)過程則通常是以子例行副程式的形式存在。這些過程為應(yīng)用程式的編寫提供了非常方便的手段和豐富的功能。Fortran語言將這些功能各異、用途各異的過程分別編寫成一個個獨立的副程式,編譯後組成一個大的標(biāo)準(zhǔn)過程庫(有時也稱為標(biāo)準(zhǔn)函數(shù)庫),存放在外部存儲介質(zhì)(如電腦的硬碟)上。用戶在完成自身根源程式的編譯之後,使用LINK命令將已翻譯成二進(jìn)位指令的目標(biāo)程式與這個標(biāo)準(zhǔn)過程庫連接起來。通過這個連接,將程式中出現(xiàn)過程名的地方用標(biāo)準(zhǔn)過程庫中相應(yīng)的一組指令代替,最終形成統(tǒng)一的用戶可執(zhí)行程式。6.2常用數(shù)學(xué)函數(shù)作為一種主要面向科學(xué)、工程和事務(wù)處理中的數(shù)值計算問題的高級電腦語言,F(xiàn)ortran提供了豐富的數(shù)學(xué)函數(shù)供用戶在編程時使用。本小節(jié)主要介紹在日常編程中經(jīng)常會遇到和使用的數(shù)學(xué)函數(shù)。6.2.1絕對值函數(shù)絕對值函數(shù)用於求出數(shù)據(jù)的絕對值,函數(shù)的原型如下:C=ABS(X)其中,ABS是Fortran中絕對值函數(shù)的通用名。除了這個通用名外,絕對值函數(shù)還有4個專用名,它們是:IABS,專用於求默認(rèn)種別的整型數(shù)據(jù)的絕對值,返回值也為默認(rèn)種別的整型數(shù)據(jù)。ABS,專用於求默認(rèn)種別的實型數(shù)據(jù)的絕對值,返回值也為默認(rèn)種別的實型數(shù)據(jù)。DABS,專用於求雙精度實型數(shù)據(jù)的絕對值,返回值也為雙精度的實型數(shù)據(jù)。CABS,專用於默認(rèn)種別的複型數(shù)據(jù)的絕對值,返回值也為默認(rèn)種別的複型數(shù)據(jù)。6.2.2指數(shù)函數(shù)指數(shù)函數(shù)用於求出數(shù)據(jù)的指數(shù)值,函數(shù)的原型如下:C=EXP(X)其中,EXP是Fortran中指數(shù)函數(shù)的通用名。除了這個通用名外,指數(shù)函數(shù)還有3個專用名,它們是:EXP,專用於求默認(rèn)種別的實型數(shù)據(jù)的指數(shù)值,返回值也為默認(rèn)種別的整型數(shù)據(jù)。DEXP,專用於求雙精度的實型數(shù)據(jù)的指數(shù)值,返回值也為雙精度的實型數(shù)據(jù)。CEXP,專用於默認(rèn)種別的複型數(shù)據(jù)的指數(shù)值,返回值也為默認(rèn)種別的複型數(shù)據(jù)。6.2.3正弦函數(shù)正弦函數(shù)用於求出數(shù)據(jù)的正弦值,函數(shù)的原型如下:C=SIN(X)其中,SIN是Fortran中正弦函數(shù)的通用名。除了這個通用名外,正弦函數(shù)還有3個專用名,它們是:SIN,專用於求默認(rèn)種別的實型數(shù)據(jù)的正弦值,返回值也為默認(rèn)種別的整型數(shù)據(jù)。DSIN,專用於求雙精度的實型數(shù)據(jù)的正弦值,返回值也為雙精度的實型數(shù)據(jù)。CSIN,專用於默認(rèn)種別的複型數(shù)據(jù)的正弦值,返回值也為默認(rèn)種別的複型數(shù)據(jù)。函數(shù)在數(shù)學(xué)上等價於。函數(shù)中參數(shù)的單位是弧度而不是度,在使用時需要注意這一點。6.2.4余弦函數(shù)余弦函數(shù)用於求出數(shù)據(jù)的余弦值,函數(shù)的原型如下:C=COS(X)其中,COS是Fortran中余弦函數(shù)的通用名。除了這個通用名外,余弦函數(shù)還有3個專用名,它們是:COS,專用於求默認(rèn)種別的實型數(shù)據(jù)的余弦值,返回值也為默認(rèn)種別的整型數(shù)據(jù)。DCOS,專用於求雙精度的實型數(shù)據(jù)的余弦值,返回值也為雙精度的實型數(shù)據(jù)。CCOS,專用於默認(rèn)種別的複型數(shù)據(jù)的余弦值,返回值也為默認(rèn)種別的複型數(shù)據(jù)。6.2.5反正弦函數(shù)反正弦函數(shù)用於求出數(shù)據(jù)的反正弦值,函數(shù)的原型如下:C=ASIN(X)其中,ASIN是Fortran中反正弦函數(shù)的通用名。除了這個通用名外,反正弦函數(shù)還有2個專用名,它們是:ASIN,專用於求默認(rèn)種別的實型數(shù)據(jù)的反正弦值,返回值也為默認(rèn)種別的整型數(shù)據(jù)。DASIN,專用於求雙精度的實型數(shù)據(jù)的反正弦值,返回值也為雙精度的實型數(shù)據(jù)。6.2.6反余弦函數(shù)反余弦函數(shù)用於求出數(shù)據(jù)的反余弦值,函數(shù)的原型如下:C=ACOS(X)其中,ACOS是Fortran中反余弦函數(shù)的通用名。除了這個通用名外,反余弦函數(shù)還有2個專用名,它們是:ACOS,專用於求默認(rèn)種別的實型數(shù)據(jù)的反余弦值,返回值也為默認(rèn)種別的整型數(shù)據(jù)。DACOS,專用於求雙精度的實型數(shù)據(jù)的反余弦值,返回值也為雙精度的實型數(shù)據(jù)。6.2.7正切函數(shù)正切函數(shù)用於求出數(shù)據(jù)的正切值,函數(shù)的原型如下:C=TAN(X)其中,TAN是Fortran中正切函數(shù)的通用名。除了這個通用名外,正切函數(shù)還有2個專用名,它們是:TAN,專用於求默認(rèn)種別的實型數(shù)據(jù)的正切值,返回值也為默認(rèn)種別的整型數(shù)據(jù)。DTAN,專用於求雙精度的實型數(shù)據(jù)的正切值,返回值也為雙精度的實型數(shù)據(jù)。6.2.8反正切函數(shù)反正切函數(shù)用於求出數(shù)據(jù)的反正切值,函數(shù)的原型如下:C=ATAN(X)其中,ATAN是Fortran中反正切函數(shù)的通用名。除了這個通用名外,反正切函數(shù)還有2個專用名,它們是:ATAN,專用於求默認(rèn)種別的實型數(shù)據(jù)的反正切值,返回值也為默認(rèn)種別的整型數(shù)據(jù)。DATAN,專用於求雙精度的實型數(shù)據(jù)的反正切值,返回值也為雙精度的實型數(shù)據(jù)。6.2.9自然對數(shù)函數(shù)自然對數(shù)函數(shù)用於求數(shù)據(jù)的自然對數(shù)值,函數(shù)的原型如下:C=LOG(X)其中,LOG是Fortran中自然對數(shù)函數(shù)的通用名。除了這個通用名外,自然對數(shù)函數(shù)還有3個專用名,它們是:ALOG,專用於求默認(rèn)種別的實型數(shù)據(jù)的自然對數(shù)值,返回值也為默認(rèn)種別的整型數(shù)據(jù)。DLOG,專用於求雙精度的實型數(shù)據(jù)的自然對數(shù)值,返回值也為雙精度的實型數(shù)據(jù)。CLOG,專用於求默認(rèn)種別的複型數(shù)據(jù)的自然對數(shù)值,返回值也為默認(rèn)種別的複型數(shù)據(jù)。6.2.10常用對數(shù)函數(shù)常用對數(shù)函數(shù)用於求數(shù)據(jù)的常用對數(shù)值,函數(shù)的原型如下:C=LOG10(X)其中,LOG10是Fortran中常用對數(shù)函數(shù)的通用名。除了這個通用名外,常用對數(shù)函數(shù)還有2個專用名,它們是:ALOG10,專用於求默認(rèn)種別的實型數(shù)據(jù)的常用對數(shù)值,返回值也為默認(rèn)種別的整型數(shù)據(jù)。DLOG10,專用於求雙精度的實型數(shù)據(jù)的常用對數(shù)值,返回值也為雙精度的實型數(shù)據(jù)。6.2.11取整函數(shù)取整函數(shù)用於將數(shù)據(jù)轉(zhuǎn)換為整型,函數(shù)的原型如下:C=INT(X)其中,INT是Fortran中取整函數(shù)的通用名。除了這個通用名外,取整函數(shù)還有3個專用名,它們是:IFIX,專用於將默認(rèn)種別的實型數(shù)據(jù)轉(zhuǎn)換為整數(shù),返回值為默認(rèn)種別的整型數(shù)據(jù)。INT,專用於將默認(rèn)種別的實型數(shù)據(jù)轉(zhuǎn)換為整數(shù),返回值為默認(rèn)種別的整型數(shù)據(jù)。IDINT,專用於將雙精度的實型數(shù)據(jù)轉(zhuǎn)換為整數(shù),返回值為默認(rèn)種別的整型數(shù)據(jù)。函數(shù)的執(zhí)行結(jié)果同數(shù)學(xué)上的取整有所不同,F(xiàn)ortran中的取整函數(shù)只是將數(shù)據(jù)的小數(shù)部分截去,不使用四捨五入規(guī)則。函數(shù)的參數(shù)可以是實型、整型和複型。6.2.12求餘函數(shù)求餘函數(shù)用於求第一個變數(shù)被第二個變數(shù)所除後的餘數(shù),函數(shù)的原型如下:C=MOD(X1,X2)其中,MOD是Fortran中求餘函數(shù)的通用名。除了這個通用名外,求餘函數(shù)還有2個專用名,它們是:MOD,適用於默認(rèn)種別的整型數(shù)據(jù),返回值為默認(rèn)種別的整型數(shù)據(jù)。AMOD,適用於默認(rèn)種別的實型數(shù)據(jù),返回值為默認(rèn)種別的實型數(shù)據(jù)。6.2.13取符號函數(shù)取符號函數(shù)返回第一個參數(shù)的絕對值與第二個參數(shù)的符號的乘積,函數(shù)的原型如下:C=SIGN(X1,X2)其中,SIGN是Fortran中取符號函數(shù)的通用名。除了這個通用名外,取符號函數(shù)還有3個專用名,它們是:ISIGN,適用於默認(rèn)種別的整型數(shù)據(jù),返回值為默認(rèn)種別的整型數(shù)據(jù)。SIGN,適用於默認(rèn)種別的實型數(shù)據(jù),返回值為默認(rèn)種別的實型數(shù)據(jù)。DSIGN,適用於雙精度的實型數(shù)據(jù),返回值為雙精度的實型數(shù)據(jù)。6.2.14最大值函數(shù)最大值函數(shù)用於找出一系列數(shù)據(jù)中的最大值,函數(shù)的原型為:C=MAX(X1,X2[,X3]…)其中,MAX是Fortran中最大值函數(shù)的通用名。除了這個通用名外,最大值函數(shù)還有5個專用名,它們是:MAX0,適用於默認(rèn)種別的整型數(shù)據(jù),返回值為默認(rèn)種別的整型數(shù)據(jù)。AMAX0,適用於默認(rèn)種別的整型數(shù)據(jù),返回值為默認(rèn)種別的實型數(shù)據(jù)。MAX1,適用於默認(rèn)種別的實型數(shù)據(jù),返回值為默認(rèn)種別的整型數(shù)據(jù)。AMAX1,適用於默認(rèn)種別的實型數(shù)據(jù),返回值為默認(rèn)種別的實型數(shù)據(jù)。DMAX1,適用於雙精度的實型數(shù)據(jù),返回值為雙精度的實型數(shù)據(jù)。6.2.15最小值函數(shù)最小值函數(shù)用於找出一系列數(shù)據(jù)中的最小值,函數(shù)的原型為:C=MIN(X1,X2[,X3]…)其中,MIN是Fortran中最小值函數(shù)的通用名。除了這個通用名外,最小值函數(shù)還有5個專用名,它們是:MIN0,適用於默認(rèn)種別的整型數(shù)據(jù),返回值為默認(rèn)種別的整型數(shù)據(jù)。AMIN0,適用於默認(rèn)種別的整型數(shù)據(jù),返回值為默認(rè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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論