




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Fortran 95 程序設計中山大學大氣科學學院陸希 電話: 郵件: 機房上課,每次課后都有上機實習認真進行課堂學習,完成課外作業 充分利用上機時間,按時完成程序設計 期中和期終考核均為上機考試需要利用氣象數據通過程序設計完成一篇小論文 總評成績為平時分(考勤、課堂表現、作業,小論文)與期終成績的加權平均本課程學習和考核本課程主要內容和參考書目FORTRAN程序設計基礎 順序結構程序設計 選擇結構程序設計 循環結構程序設計 數組 函數 文件 指針* MODULE及面向對象*彭國倫,Fortran 95程序設計,中國電力出版社,2002Fortran 95/2003程序設計(第三版)(或者其英
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袁駟等譯,Fortran 90編程指南(第3版),高等教育出版社,2000,ISBN 7-04-007937參考書目:學習方法:強化實踐,重視上機操作 程序設計是高強度的腦力勞動,不是聽會的,看會的,而是練會的!“自學,動手,應用,上網” 只有在編寫大量程序后才能運用自如。 重點放在思路、算法、編程構思和程序實現上。 2. 養成良好的編程習慣 強調可讀性 變量要加注釋 程序構思要有說明 學會如何調試程序 盡可能優化 對運行結果要做正確與否的分析本節課主要內容概述編譯器的使用FORTRAN程序設計基礎一. 概述為什么要學習FORTRAN語言程序設計?FORTRAN語言的發展
4、歷史為什么學習Fortran程序設計?首先什么是程序設計?計算機在“程序”的控制下進行自動工作:計算機解決任何問題都依賴于解決問題的程序程序設計是計算機應用人員的一項基本功,也是對學習者的一項基本思維方式訓練 計算機語言:1. 機器語言(Machine Language): 二進制編碼組成計算機可以直接識別 2. 匯編語言(Assemble Language): 20世紀50年代初用比較容易識別、記憶的助記符替代特定的二進制串 3. 高級語言(High-level language): 1954年,第一個高級語言FORTRAN問世 面向用戶的語言 FORTRAN語言的特點?被認為是科學計算的專
5、用語言,計算是科學的基石之一為什么選擇FORTRAN ? 什么是科學計算問題?科學計算問題三個涵義:1 問題本身以及問題的解答都能夠使用數學語言予以精確描述; 2 如果要使用通常的數學方法來給出我們所需要的數值答案,會很麻煩或者根本無法給出; 3 問題以一定的科學與技術知識作為背景 一個科學計算問題總是要以一個數學計算問題的形式出現,因此描述科學計算問題的語言應該能夠自然地描述數學問題 一個科學計算問題之所以需要使用計算機,肯定是因為這個問題具有一定的計算量,因此程序的運行效率往往是選擇語言時最重要的考量因素1. 描述數學語言的自然性Fortran語法簡明且嚴謹,易學,最大特性是接近數學公式的
6、自然描述,可以直接對矩陣和復數進行運算,特別適合做矩陣數組運算.FORTRAN是現在眾多語言當中的絕對勝出者!=FORmula TRANslator2. 執行代碼速度大多數Fortran編譯器產生的可執行代碼在效率上甚至會超過以高效著稱的C或C+語言。 而且,長久一來,fortran聚集了一大批高效,嚴格的,經過考驗的成熟的函數庫,軟件包,這是一筆巨大的財富,這些巨大的成熟的函數庫沒必要用C或C+再寫一遍。3.并行計算領域,獨領風騷為了在高性能的并行處理系統(如IBM的“深藍”和我國的“曙光”)上獲得更出色的執行效率,Fortran 95還特意吸收了HPF語言的優點,為Fortran語言增添了
7、若干支持并行計算的語法特征 。 Fortran語言最常出現的地方也是科技創新最活躍、知識密集度最大的地方:在中科院大氣物理研究所里,研究人員們正使用Fortran語言編寫大氣數據分析軟件;在國家高性能計算中心里,Fortran語言正在新安裝的曙光并行計算機上執行著各種科學計算任務;在一個又一個分子生物學、高能物理學、應用數學的國家重點實驗室里,Fortran是研究者們最為倚重的工具之一;FORTRAN語言的發展歷史1954年,IBM公司,嘗試將接近數學語言的文本翻譯成機械語言1957:第一個Fortran程序在IBM704上運行1958和1962年先后推出Fortran 和Fortran 19
8、66:ANSI公布Fortran 661978:ANSI公布Fortran 77 添加了邏輯判斷和輸入輸出方面的功能1992:ISO公布Fortran 90 面向對象的概念及工具、指針、加強了數組的功能、改良舊式語法中的編寫格式1997:ISO公布Fortran 95 是90的修正版,加強了在并行運算方面的支持 現在,Fortran 2003LINUX操作系統下PGI FortranIntel Fortran,英特爾公司的開發的Linux平臺Fortran編譯器。G77,GNU的Fortran77編譯器,集成在GCC中。GFORTRAN,GNU的最新的Fortran編譯器,集成在GCC 4.0
9、中,目的是支持Fortran 95和一部分Fortran 2003的功能,以替代G77。G95,跟GFortran同為開放源代碼的Fortran95編譯器。二、編譯器的使用編譯器 Visual Fortran的使用(windows 下安裝)新建Project,編譯FORTRAN程序本課程選用的是Windows平臺下的Compaq Visual Fortran 6.6整個安裝過程簡單,但是針對64位機器,需要安裝更高版本(課后可以自己安裝,有很多網絡資源),切記關掉迅雷以及各種防火墻!安裝過程編譯程序的過程雙擊在圖形界面下,編寫、調試一個Fortran程序首先需要建立一個Developer St
10、udio 工程。 Fortran console Application3. 生成一個新的程序文件(File/New, 選擇File項)4. 在Fortran工程中添加源代碼 Program main write(*,*) Hello World!end program main5. 用Build菜單下的 Execute選項來編譯和執行程序,或者只單擊 Build項來做編譯不運行程序。6.要寫新的程序可以建立一個新的project, 或者是直接更換project中的文件,千萬不要把兩個獨立的程序文件放入同一個project中,否則導致編譯過程出現錯誤。7. 下次要修改程序時,可以直接打開*.d
11、sw的project 工程文件。 練習:執行一個簡單的打印語句三、FORTRAN程序設計基礎 Fortran程序的基本組成字符集源碼格式程序組成程序簡例 編程實例程序的特點Fortran程序的基本組成 字符集編寫Fortran程序時,能使用的所有字符和符號英文26個字母字母大小寫不分10個數字0922個特殊符號: = + - * / ( ) , . ! “ % & ; ? $ _ 以及空格符對于基本字符有如下幾個問題需要予以注意: 一.文字字符的用處: 主要是命名的作用,可以用來命名語言中的一切對象,這三種符號可以混合使用; 數字還具有它本來的含義,就是表示數目。 二.特殊字符的用處: 特殊字
12、符主要具有功能的意義,如編輯功能,運算功能,語法功能等。 FORTRAN 95標準原則上接受小寫字母。因此除了以下位置,大小寫是等價的: 三.大小寫必須區分的位置: 作為字符常量的字符串里面; 輸入輸出的紀錄里面; 作為編輯描述符的引號或撇號里面。 四.數字的涵義: 除了以下情形,數字總是表示十進位數字 屬于二進制,八進制,十六進制的字面常量; 帶有 B,O,Z 編輯描述符的輸入輸出紀錄。 【例】 以下語句當中的數字不是屬于十進位數字: DATA I, J, K / O1001, 23.54, Z5CA2 / 其中第一個為八進制數,第二個為十進制數,第三個為十六進制數。 五.下劃線的涵義: 下
13、劃線的主要作用就是置于單詞之間代替空格,使得我們在命名時使用清楚的英語詞匯。 下劃線不能置于任意名稱的前面,但是可以置于名稱的最后。 下劃線也用于在字面常量中區隔常量的值和種別參數。 源碼書面格式兩種,Free Format / Fixed Format Fixed Format :第1個字符如果是C 、c 或星號 *,表示該句為批注 15標號區。數字,則為行代號,否則空 6續行位。非空非0表示續行(77不超過19)固定格式的幾個規則: 語句只能書寫在一行的第 7 到第72 個格子上。 空格除了在字符常量里以外,都是沒有意義的。 在某行第一格為字符 C,或*,就表示該行整行都是注釋。注釋總是被
14、忽略。 字符!只要不是出現在第 6 格,也不是屬于字符文本,則從它開始一直到該行的行末,都屬于注釋。 一行如果只包含空格字符,或者根本不包含任何字符(這兩者表現一樣),那么編譯器總是把該行視為注釋行,予以忽略。 一行中的多條語句用一個或多個分號分隔;分號可以出現在行末,但沒有更多的意義;分號不能是一行的第 7 到第72個格子上第一個非空格字符。 除了空格和 0 之外的任意字符,只要出現在某行第 6 格上,則表示該行為連續行。一行后面最多只能有 19個連續行,第一行稱為初始行。 標識符只能出現在第 1 到第 5 格上,被連續的語句只有第一行可以使用標識符,這樣下面所有的連續行的第 1 到第5格上
15、只能是空格。 END語句不能被連續,它也不能被視為初始行Free Format : 符號 !后都是注釋 每行可以編寫132個字符 行號放在每行程序的最前面 續行號 & 在一行程序代碼的最后或者開頭 在FORTRAN里,一個語句所跟隨的連續行不能超過39行。 在一行之內可以不止包含一條語句,語句之間必須用 ;加以分隔例:自由源程序格式的一般規則如下: 對于 FORTRAN的基本字符集而言,一行至多能容納 132 個字符,如果出現非基本字符集當中的字符,則具體的平臺會有相應的規定,這時,可能能夠容納的字符數目就會少于 132。 【例 4-12】 假如下面的語句剛好包含 132 個字符,但是其中含有
16、中文字符: TEXT = CHINESE_SENTENCEthis line has exactly 132 characters and contains人 這時,一個具體的實現平臺會有相應的規定,一般來說它會認為上面語句的字符太 多了,因此為保險起見,盡量使用續行符。 只要字符!不是作為字符文本當中的一個字符,那么在該行內它后面的所有字符都是屬于注釋的內容。而 FORTRAN 對于注釋內容沒有任何限制,可以是任意形式,因為反正任何編譯器對于注釋部分都是忽略掉的。一行內可以在語句后面接注釋內容,也可以整行就以!開頭,這時該行就是完全的注釋行。 只要字符&不是作為字符文本當中的一個字符,那么在
17、該行內它后面只能接空格以及注釋,在緊接著的行內只要存在非注釋部分,那就是和該&前面的部分是連續的,被稱為連續行。 一行如果只包含空格字符,或者根本不包含任何字符(這兩者表現一樣),那么編譯器總是把該行視為注釋行,予以忽略。 一行之內可以不止包含一條語句,語句之間必須用(;)加以分隔。 任何輔助字符集當中的字符都可以在字符字面常量和字符串編輯符當中使用。 標簽被放置于語句之前,任何情形下都必須避免標簽被認為是屬于一條語句內部的字符。 程序組成程序總體構造 Fortran程序是一種分塊形式的程序,由若干個程序模塊組成。其中主程序起整體控制作用,各輔程序模塊各自完成問題中的一個算法。主程序依次調用各
18、輔程序模塊,控制各子算法的實施,通過主程序對子程序的調用,形成程序的整體運行,完成問題的解。若某一子程序算法仍復雜,可再把它分解為若干更小的算法,分別編寫為更低一層次的輔程序,由其他輔程序分別去調用。這種情況可以類推到其它子程序或更低一層次。按現代要求,即使功能比較簡單的問題,也最好寫成主程序調用輔程序的形式,以便于維護。程序單位 主程序 PROGRAM 程序名 語句可省略.END PROGRAM 程序名 END必須有輔程序(過程)SUBROUTINE 子程序FUNCTION 函數BLOCK DATA 塊數據MODULE 模塊 (F90) 內部過程 CONTAINS (F90)Fortran程序簡例: 例3.1 輸入兩個數,求算數平均和幾何平均值 計算例 1.0 2.0 鍵盤輸入(a,b)值 1.500000 1.414214 計算結果輸出至屏幕例3.2 輸入圓錐底面半徑r和高h,求體積和表面積 計算例Input radius r and height h ? 提示待輸入數據的物理含義 3.0 5.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業園區電力設施規劃與管理
- 8勞務派遣管理制度
- 標書制作資料管理制度
- 樹木防凍養護管理制度
- 校區安全設備管理制度
- 校園衛生工作管理制度
- 校園外包人員管理制度
- 校園快遞驛站管理制度
- 校園欺凌案件管理制度
- 校園班級安全管理制度
- uni-app移動應用開發課件 7-智慧環保項目
- 2025年廈門大學嘉庚學院圖書館員招考高頻重點提升(共500題)附帶答案詳解
- 《oracle性能優化》課件
- 小學生手工剪紙課件
- 化工設備機械基礎習題及參考答案
- 《課件旅游法培訓》課件
- 高中生物(部編版)選擇性必修3知識清單(問答版)
- 山東師范大學《高級英語(二)》2021-2022學年第一學期期末試卷
- 2024年熔化焊接與熱切割理論考試1000題(附答案)
- 潔凈室施工培訓
- 2024年10月自考14540藥理學本試題及答案含評分參考
評論
0/150
提交評論