fortran95程序設(shè)計(jì)-第一章_第1頁(yè)
fortran95程序設(shè)計(jì)-第一章_第2頁(yè)
fortran95程序設(shè)計(jì)-第一章_第3頁(yè)
fortran95程序設(shè)計(jì)-第一章_第4頁(yè)
fortran95程序設(shè)計(jì)-第一章_第5頁(yè)
已閱讀5頁(yè),還剩40頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Fortran 95 程序設(shè)計(jì)中山大學(xué)大氣科學(xué)學(xué)院陸希 電話: 郵件: 機(jī)房上課,每次課后都有上機(jī)實(shí)習(xí)認(rèn)真進(jìn)行課堂學(xué)習(xí),完成課外作業(yè) 充分利用上機(jī)時(shí)間,按時(shí)完成程序設(shè)計(jì) 期中和期終考核均為上機(jī)考試需要利用氣象數(shù)據(jù)通過(guò)程序設(shè)計(jì)完成一篇小論文 總評(píng)成績(jī)?yōu)槠綍r(shí)分(考勤、課堂表現(xiàn)、作業(yè),小論文)與期終成績(jī)的加權(quán)平均本課程學(xué)習(xí)和考核本課程主要內(nèi)容和參考書(shū)目FORTRAN程序設(shè)計(jì)基礎(chǔ) 順序結(jié)構(gòu)程序設(shè)計(jì) 選擇結(jié)構(gòu)程序設(shè)計(jì) 循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 數(shù)組 函數(shù) 文件 指針* MODULE及面向?qū)ο?彭國(guó)倫,F(xiàn)ortran 95程序設(shè)計(jì),中國(guó)電力出版社,2002Fortran 95/2003程序設(shè)計(jì)(第三版)(或者其英

2、文原版)Adams, Brainerd, Martin, Smith, Wagener. Fortran 95 Handbook, MIT Press, 1997. ISBN 0-262-51096-0Brainerd, W., Goldberg, and Adams. Programmers guide to Fortran 90, 3rd edition, The Fortran Company, 1996. ISBN 0-07-000248-7 Chamberland, Luc. Fortran 90 : A Reference Guide, Prentice Hall. ISBN 0-

3、13-397332-8袁駟等譯,F(xiàn)ortran 90編程指南(第3版),高等教育出版社,2000,ISBN 7-04-007937參考書(shū)目:學(xué)習(xí)方法:強(qiáng)化實(shí)踐,重視上機(jī)操作 程序設(shè)計(jì)是高強(qiáng)度的腦力勞動(dòng),不是聽(tīng)會(huì)的,看會(huì)的,而是練會(huì)的!“自學(xué),動(dòng)手,應(yīng)用,上網(wǎng)” 只有在編寫(xiě)大量程序后才能運(yùn)用自如。 重點(diǎn)放在思路、算法、編程構(gòu)思和程序?qū)崿F(xiàn)上。 2. 養(yǎng)成良好的編程習(xí)慣 強(qiáng)調(diào)可讀性 變量要加注釋 程序構(gòu)思要有說(shuō)明 學(xué)會(huì)如何調(diào)試程序 盡可能優(yōu)化 對(duì)運(yùn)行結(jié)果要做正確與否的分析本節(jié)課主要內(nèi)容概述編譯器的使用FORTRAN程序設(shè)計(jì)基礎(chǔ)一. 概述為什么要學(xué)習(xí)FORTRAN語(yǔ)言程序設(shè)計(jì)?FORTRAN語(yǔ)言的發(fā)展

4、歷史為什么學(xué)習(xí)Fortran程序設(shè)計(jì)?首先什么是程序設(shè)計(jì)?計(jì)算機(jī)在“程序”的控制下進(jìn)行自動(dòng)工作:計(jì)算機(jī)解決任何問(wèn)題都依賴(lài)于解決問(wèn)題的程序程序設(shè)計(jì)是計(jì)算機(jī)應(yīng)用人員的一項(xiàng)基本功,也是對(duì)學(xué)習(xí)者的一項(xiàng)基本思維方式訓(xùn)練 計(jì)算機(jī)語(yǔ)言:1. 機(jī)器語(yǔ)言(Machine Language): 二進(jìn)制編碼組成計(jì)算機(jī)可以直接識(shí)別 2. 匯編語(yǔ)言(Assemble Language): 20世紀(jì)50年代初用比較容易識(shí)別、記憶的助記符替代特定的二進(jìn)制串 3. 高級(jí)語(yǔ)言(High-level language): 1954年,第一個(gè)高級(jí)語(yǔ)言FORTRAN問(wèn)世 面向用戶的語(yǔ)言 FORTRAN語(yǔ)言的特點(diǎn)?被認(rèn)為是科學(xué)計(jì)算的專(zhuān)

5、用語(yǔ)言,計(jì)算是科學(xué)的基石之一為什么選擇FORTRAN ? 什么是科學(xué)計(jì)算問(wèn)題?科學(xué)計(jì)算問(wèn)題三個(gè)涵義:1 問(wèn)題本身以及問(wèn)題的解答都能夠使用數(shù)學(xué)語(yǔ)言予以精確描述; 2 如果要使用通常的數(shù)學(xué)方法來(lái)給出我們所需要的數(shù)值答案,會(huì)很麻煩或者根本無(wú)法給出; 3 問(wèn)題以一定的科學(xué)與技術(shù)知識(shí)作為背景 一個(gè)科學(xué)計(jì)算問(wèn)題總是要以一個(gè)數(shù)學(xué)計(jì)算問(wèn)題的形式出現(xiàn),因此描述科學(xué)計(jì)算問(wèn)題的語(yǔ)言應(yīng)該能夠自然地描述數(shù)學(xué)問(wèn)題 一個(gè)科學(xué)計(jì)算問(wèn)題之所以需要使用計(jì)算機(jī),肯定是因?yàn)檫@個(gè)問(wèn)題具有一定的計(jì)算量,因此程序的運(yùn)行效率往往是選擇語(yǔ)言時(shí)最重要的考量因素1. 描述數(shù)學(xué)語(yǔ)言的自然性Fortran語(yǔ)法簡(jiǎn)明且嚴(yán)謹(jǐn),易學(xué),最大特性是接近數(shù)學(xué)公式的

6、自然描述,可以直接對(duì)矩陣和復(fù)數(shù)進(jìn)行運(yùn)算,特別適合做矩陣數(shù)組運(yùn)算.FORTRAN是現(xiàn)在眾多語(yǔ)言當(dāng)中的絕對(duì)勝出者!=FORmula TRANslator2. 執(zhí)行代碼速度大多數(shù)Fortran編譯器產(chǎn)生的可執(zhí)行代碼在效率上甚至?xí)^(guò)以高效著稱(chēng)的C或C+語(yǔ)言。 而且,長(zhǎng)久一來(lái),fortran聚集了一大批高效,嚴(yán)格的,經(jīng)過(guò)考驗(yàn)的成熟的函數(shù)庫(kù),軟件包,這是一筆巨大的財(cái)富,這些巨大的成熟的函數(shù)庫(kù)沒(méi)必要用C或C+再寫(xiě)一遍。3.并行計(jì)算領(lǐng)域,獨(dú)領(lǐng)風(fēng)騷為了在高性能的并行處理系統(tǒng)(如IBM的“深藍(lán)”和我國(guó)的“曙光”)上獲得更出色的執(zhí)行效率,F(xiàn)ortran 95還特意吸收了HPF語(yǔ)言的優(yōu)點(diǎn),為Fortran語(yǔ)言增添了

7、若干支持并行計(jì)算的語(yǔ)法特征 。 Fortran語(yǔ)言最常出現(xiàn)的地方也是科技創(chuàng)新最活躍、知識(shí)密集度最大的地方:在中科院大氣物理研究所里,研究人員們正使用Fortran語(yǔ)言編寫(xiě)大氣數(shù)據(jù)分析軟件;在國(guó)家高性能計(jì)算中心里,F(xiàn)ortran語(yǔ)言正在新安裝的曙光并行計(jì)算機(jī)上執(zhí)行著各種科學(xué)計(jì)算任務(wù);在一個(gè)又一個(gè)分子生物學(xué)、高能物理學(xué)、應(yīng)用數(shù)學(xué)的國(guó)家重點(diǎn)實(shí)驗(yàn)室里,F(xiàn)ortran是研究者們最為倚重的工具之一;FORTRAN語(yǔ)言的發(fā)展歷史1954年,IBM公司,嘗試將接近數(shù)學(xué)語(yǔ)言的文本翻譯成機(jī)械語(yǔ)言1957:第一個(gè)Fortran程序在IBM704上運(yùn)行1958和1962年先后推出Fortran 和Fortran 19

8、66:ANSI公布Fortran 661978:ANSI公布Fortran 77 添加了邏輯判斷和輸入輸出方面的功能1992:ISO公布Fortran 90 面向?qū)ο蟮母拍罴肮ぞ?、指針、加?qiáng)了數(shù)組的功能、改良舊式語(yǔ)法中的編寫(xiě)格式1997:ISO公布Fortran 95 是90的修正版,加強(qiáng)了在并行運(yùn)算方面的支持 現(xiàn)在,F(xiàn)ortran 2003LINUX操作系統(tǒng)下PGI FortranIntel Fortran,英特爾公司的開(kāi)發(fā)的Linux平臺(tái)Fortran編譯器。G77,GNU的Fortran77編譯器,集成在GCC中。GFORTRAN,GNU的最新的Fortran編譯器,集成在GCC 4.0

9、中,目的是支持Fortran 95和一部分Fortran 2003的功能,以替代G77。G95,跟GFortran同為開(kāi)放源代碼的Fortran95編譯器。二、編譯器的使用編譯器 Visual Fortran的使用(windows 下安裝)新建Project,編譯FORTRAN程序本課程選用的是Windows平臺(tái)下的Compaq Visual Fortran 6.6整個(gè)安裝過(guò)程簡(jiǎn)單,但是針對(duì)64位機(jī)器,需要安裝更高版本(課后可以自己安裝,有很多網(wǎng)絡(luò)資源),切記關(guān)掉迅雷以及各種防火墻!安裝過(guò)程編譯程序的過(guò)程雙擊在圖形界面下,編寫(xiě)、調(diào)試一個(gè)Fortran程序首先需要建立一個(gè)Developer St

10、udio 工程。 Fortran console Application3. 生成一個(gè)新的程序文件(File/New, 選擇File項(xiàng))4. 在Fortran工程中添加源代碼 Program main write(*,*) Hello World!end program main5. 用Build菜單下的 Execute選項(xiàng)來(lái)編譯和執(zhí)行程序,或者只單擊 Build項(xiàng)來(lái)做編譯不運(yùn)行程序。6.要寫(xiě)新的程序可以建立一個(gè)新的project, 或者是直接更換project中的文件,千萬(wàn)不要把兩個(gè)獨(dú)立的程序文件放入同一個(gè)project中,否則導(dǎo)致編譯過(guò)程出現(xiàn)錯(cuò)誤。7. 下次要修改程序時(shí),可以直接打開(kāi)*.d

11、sw的project 工程文件。 練習(xí):執(zhí)行一個(gè)簡(jiǎn)單的打印語(yǔ)句三、FORTRAN程序設(shè)計(jì)基礎(chǔ) Fortran程序的基本組成字符集源碼格式程序組成程序簡(jiǎn)例 編程實(shí)例程序的特點(diǎn)Fortran程序的基本組成 字符集編寫(xiě)Fortran程序時(shí),能使用的所有字符和符號(hào)英文26個(gè)字母字母大小寫(xiě)不分10個(gè)數(shù)字0922個(gè)特殊符號(hào): = + - * / ( ) , . ! “ % & ; ? $ _ 以及空格符對(duì)于基本字符有如下幾個(gè)問(wèn)題需要予以注意: 一.文字字符的用處: 主要是命名的作用,可以用來(lái)命名語(yǔ)言中的一切對(duì)象,這三種符號(hào)可以混合使用; 數(shù)字還具有它本來(lái)的含義,就是表示數(shù)目。 二.特殊字符的用處: 特殊字

12、符主要具有功能的意義,如編輯功能,運(yùn)算功能,語(yǔ)法功能等。 FORTRAN 95標(biāo)準(zhǔn)原則上接受小寫(xiě)字母。因此除了以下位置,大小寫(xiě)是等價(jià)的: 三.大小寫(xiě)必須區(qū)分的位置: 作為字符常量的字符串里面; 輸入輸出的紀(jì)錄里面; 作為編輯描述符的引號(hào)或撇號(hào)里面。 四.數(shù)字的涵義: 除了以下情形,數(shù)字總是表示十進(jìn)位數(shù)字 屬于二進(jìn)制,八進(jìn)制,十六進(jìn)制的字面常量; 帶有 B,O,Z 編輯描述符的輸入輸出紀(jì)錄。 【例】 以下語(yǔ)句當(dāng)中的數(shù)字不是屬于十進(jìn)位數(shù)字: DATA I, J, K / O1001, 23.54, Z5CA2 / 其中第一個(gè)為八進(jìn)制數(shù),第二個(gè)為十進(jìn)制數(shù),第三個(gè)為十六進(jìn)制數(shù)。 五.下劃線的涵義: 下

13、劃線的主要作用就是置于單詞之間代替空格,使得我們?cè)诿麜r(shí)使用清楚的英語(yǔ)詞匯。 下劃線不能置于任意名稱(chēng)的前面,但是可以置于名稱(chēng)的最后。 下劃線也用于在字面常量中區(qū)隔常量的值和種別參數(shù)。 源碼書(shū)面格式兩種,F(xiàn)ree Format / Fixed Format Fixed Format :第1個(gè)字符如果是C 、c 或星號(hào) *,表示該句為批注 15標(biāo)號(hào)區(qū)。數(shù)字,則為行代號(hào),否則空 6續(xù)行位。非空非0表示續(xù)行(77不超過(guò)19)固定格式的幾個(gè)規(guī)則: 語(yǔ)句只能書(shū)寫(xiě)在一行的第 7 到第72 個(gè)格子上。 空格除了在字符常量里以外,都是沒(méi)有意義的。 在某行第一格為字符 C,或*,就表示該行整行都是注釋。注釋總是被

14、忽略。 字符!只要不是出現(xiàn)在第 6 格,也不是屬于字符文本,則從它開(kāi)始一直到該行的行末,都屬于注釋。 一行如果只包含空格字符,或者根本不包含任何字符(這兩者表現(xiàn)一樣),那么編譯器總是把該行視為注釋行,予以忽略。 一行中的多條語(yǔ)句用一個(gè)或多個(gè)分號(hào)分隔;分號(hào)可以出現(xiàn)在行末,但沒(méi)有更多的意義;分號(hào)不能是一行的第 7 到第72個(gè)格子上第一個(gè)非空格字符。 除了空格和 0 之外的任意字符,只要出現(xiàn)在某行第 6 格上,則表示該行為連續(xù)行。一行后面最多只能有 19個(gè)連續(xù)行,第一行稱(chēng)為初始行。 標(biāo)識(shí)符只能出現(xiàn)在第 1 到第 5 格上,被連續(xù)的語(yǔ)句只有第一行可以使用標(biāo)識(shí)符,這樣下面所有的連續(xù)行的第 1 到第5格上

15、只能是空格。 END語(yǔ)句不能被連續(xù),它也不能被視為初始行Free Format : 符號(hào) !后都是注釋 每行可以編寫(xiě)132個(gè)字符 行號(hào)放在每行程序的最前面 續(xù)行號(hào) & 在一行程序代碼的最后或者開(kāi)頭 在FORTRAN里,一個(gè)語(yǔ)句所跟隨的連續(xù)行不能超過(guò)39行。 在一行之內(nèi)可以不止包含一條語(yǔ)句,語(yǔ)句之間必須用 ;加以分隔例:自由源程序格式的一般規(guī)則如下: 對(duì)于 FORTRAN的基本字符集而言,一行至多能容納 132 個(gè)字符,如果出現(xiàn)非基本字符集當(dāng)中的字符,則具體的平臺(tái)會(huì)有相應(yīng)的規(guī)定,這時(shí),可能能夠容納的字符數(shù)目就會(huì)少于 132。 【例 4-12】 假如下面的語(yǔ)句剛好包含 132 個(gè)字符,但是其中含有

16、中文字符: TEXT = CHINESE_SENTENCEthis line has exactly 132 characters and contains人 這時(shí),一個(gè)具體的實(shí)現(xiàn)平臺(tái)會(huì)有相應(yīng)的規(guī)定,一般來(lái)說(shuō)它會(huì)認(rèn)為上面語(yǔ)句的字符太 多了,因此為保險(xiǎn)起見(jiàn),盡量使用續(xù)行符。 只要字符!不是作為字符文本當(dāng)中的一個(gè)字符,那么在該行內(nèi)它后面的所有字符都是屬于注釋的內(nèi)容。而 FORTRAN 對(duì)于注釋內(nèi)容沒(méi)有任何限制,可以是任意形式,因?yàn)榉凑魏尉幾g器對(duì)于注釋部分都是忽略掉的。一行內(nèi)可以在語(yǔ)句后面接注釋內(nèi)容,也可以整行就以!開(kāi)頭,這時(shí)該行就是完全的注釋行。 只要字符&不是作為字符文本當(dāng)中的一個(gè)字符,那么在

17、該行內(nèi)它后面只能接空格以及注釋?zhuān)诰o接著的行內(nèi)只要存在非注釋部分,那就是和該&前面的部分是連續(xù)的,被稱(chēng)為連續(xù)行。 一行如果只包含空格字符,或者根本不包含任何字符(這兩者表現(xiàn)一樣),那么編譯器總是把該行視為注釋行,予以忽略。 一行之內(nèi)可以不止包含一條語(yǔ)句,語(yǔ)句之間必須用(;)加以分隔。 任何輔助字符集當(dāng)中的字符都可以在字符字面常量和字符串編輯符當(dāng)中使用。 標(biāo)簽被放置于語(yǔ)句之前,任何情形下都必須避免標(biāo)簽被認(rèn)為是屬于一條語(yǔ)句內(nèi)部的字符。 程序組成程序總體構(gòu)造 Fortran程序是一種分塊形式的程序,由若干個(gè)程序模塊組成。其中主程序起整體控制作用,各輔程序模塊各自完成問(wèn)題中的一個(gè)算法。主程序依次調(diào)用各

18、輔程序模塊,控制各子算法的實(shí)施,通過(guò)主程序?qū)ψ映绦虻恼{(diào)用,形成程序的整體運(yùn)行,完成問(wèn)題的解。若某一子程序算法仍復(fù)雜,可再把它分解為若干更小的算法,分別編寫(xiě)為更低一層次的輔程序,由其他輔程序分別去調(diào)用。這種情況可以類(lèi)推到其它子程序或更低一層次。按現(xiàn)代要求,即使功能比較簡(jiǎn)單的問(wèn)題,也最好寫(xiě)成主程序調(diào)用輔程序的形式,以便于維護(hù)。程序單位 主程序 PROGRAM 程序名 語(yǔ)句可省略.END PROGRAM 程序名 END必須有輔程序(過(guò)程)SUBROUTINE 子程序FUNCTION 函數(shù)BLOCK DATA 塊數(shù)據(jù)MODULE 模塊 (F90) 內(nèi)部過(guò)程 CONTAINS (F90)Fortran程序簡(jiǎn)例: 例3.1 輸入兩個(gè)數(shù),求算數(shù)平均和幾何平均值 計(jì)算例 1.0 2.0 鍵盤(pán)輸入(a,b)值 1.500000 1.414214 計(jì)算結(jié)果輸出至屏幕例3.2 輸入圓錐底面半徑r和高h(yuǎn),求體積和表面積 計(jì)算例Input radius r and height h ? 提示待輸入數(shù)據(jù)的物理含義 3.0 5.

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論