內容簡介
《FORTRAN程式設計權威指南》編輯推薦:fortran語言作為一門專門用於科學計算的程式設計語言,始終在科學計算領域中占據著舉足輕重的位置。《FORTRAN程式設計權威指南》以fortran2003標準作為編寫依據,同時對fortran2008標準中的新特性也進行了相應的介紹。
圖書目錄
前言
第1章 fortran語言簡介1
1.1 fortran的發展歷史1
1.2 fortran的新發展3
1.3 fortran語言的特點4
第2章 fortran編譯器的安裝及使用5
2.1 編譯器簡介5
2.1.1 compaq visual fortran編譯器5
2.1.2 intel visual fortran編譯器6
2.2 visual fortran的安裝7
2.2.1 visual studio 2010安裝7
2.2.2 intel visual fortran xe 2011安裝10
2.3 visual fortran的使用11
2.3.1 初次使用配置11
2.3.2 用visual fortran編寫、編譯運行程式12
2.3.3 用visual fortran調試程式15
2.3.4 利用intel visual fortran移植compaq visual fortran的工程18
2.4 本章小結19
第3章 程式設計方法及程式算法20
3.1 程式設計方法簡介20
3.2 算法的概念及特性21
3.2.1 算法的概念21
3.2.2 簡單算法舉例22
3.2.3 算法的特性26
3.3 算法的表示方法27
3.3.1 用自然語言表示算法27
3.3.2 用流程圖表示算法28
3.3.3 三種基本結構31
3.3.4 用n—s流程圖表示算法34
3.3.5 用偽代碼表示算法36
3.3.6 用計算機語言表示算法38
3.4 本章小結39
第4章 二進制及fortran 程式設計基礎40
4.1 計算機中數據的表示方法40
4.1.1 計算機中的進位數制40
4.1.2 機器數和碼制42
4.2 fortran字元集44
4.2.1 英文字母45
4.2.2 數字45
4.2.3 下劃線45
4.2.4 特殊字元45
4.2.5 fortran中的關鍵字45
4.3 fortran書寫格式46
4.3.1 固定格式46
4.3.2 自由格式48
4.3.3 兼容源程式格式49
4.4 fortran程式結構50
4.4.1 fortran程式單元50
4.4.2 fortran語句順序52
4.4.3 空格的使用53
4.4.4 注釋的書寫54
4.5 fortran數值型常量及其類型55
4.5.1 整型常量55
4.5.2 實型常量55
4.5.3 復型常量56
4.5.4 字元型常量56
4.5.5 符號常量56
4.6 fortran變數57
4.6.1 變數的命名規則57
4.6.2 變數的聲明58
4.6.3 整型變數59
4.6.4 實型變數61
4.6.5 復型變數63
4.6.6 字元及字元串64
4.6.7 邏輯型變數66
4.6.8 變數的初始化67
4.7 運算符及表達式68
4.7.1 算術運算符及表達式69
4.7.2 關係運算符及表達式71
4.7.3 邏輯運算符及表達式73
4.8 運算符優先權76
4.9 語句76
4.9.1 賦值語句77
4.9.2 include語句79
4.9.3 程式控制語句80
4.10 本章小結81
第5章 輸入輸出及聲明82
5.1 輸入輸出概述82
5.2 簡單輸入語句82
5.2.1 read語句輸入形式一83
5.2.2 read語句輸入形式二84
5.2.3 read語句使用注意事項84
5.3 簡單輸出語句86
5.3.1 print輸出語句86
5.3.2 write輸出語句87
5.3.3 表控輸出語句注意事項88
5.4 格式化輸入輸出命令89
5.4.1 格式化輸入輸出語句概述89
5.4.2 數據格式編輯符92
5.4.3 控制格式編輯符103
5.4.4 字元串編輯符108
5.5 有名i/o列表108
5.5.1 namelist語句108
5.5.2 namelist語句示例109
5.5.3 i/o實體110
5.6 程式舉例110
5.7 本章小結112
第6章 選擇結構程式設計113
6.1 if語句114
6.1.1 單分支if語句114
6.1.2 雙分支if語句115
6.1.3 多分支if語句117
6.1.4 邏輯if語句119
6.2 select case控制語句120
6.3 選擇語句的嵌套122
6.4 其他程式流程控制語句123
6.4.1 goto語句*124
6.4.2 pause、continue、stop語句125
6.5 程式舉例126
6.6 本章小結131
第7章 循環結構程式設計132
7.1 循環結構控制程式設計概述132
7.2 帶循環變數的do語句133
7.2.1 do語句循環簡介133
7.2.2 帶循環變數的do循環結構133
7.2.3 帶循環變數的do循環細節說明135
7.2.4 do循環的執行過程138
7.2.5 帶循環變數的do語句程式舉例138
7.3 do while語句141
7.3.1 do while語句基本格式141
7.3.2 do while語句的執行過程141
7.3.3 do while語句使用舉例142
7.4 循環流程控制語句143
7.4.1 exit語句143
7.4.2 cycle語句145
7.5 無循環變數的do語句146
7.6 使用goto語句進行循環設計147
7.7 循環語句的嵌套148
7.7.1 循環嵌套的語法結構148
7.7.2 循環嵌套的執行過程149
7.7.3 循環嵌套的使用說明150
7.8 不同循環語句的區別與聯繫153
7.9 程式舉例154
7.10 本章小結159
第8章 數組161
8.1 數組概述161
8.2 數組的定義163
8.2.1 用類型說明語句定義數組163
8.2.2 用dimension語句定義數組164
8.2.3 用類型說明語句和dimension語句定義數組165
8.3 數組的引用165
8.3.1 數組整體引用166
8.3.2 單個元素的引用166
8.3.3 片段法引用多個數組元素167
8.4 數組元素的存儲結構169
8.4.1 數組元素的存儲結構169
8.4.2 數組存儲結構的套用171
8.5 數組的賦值172
8.5.1 數組賦值語句172
8.5.2 data語句*173
8.5.3 數組構造器176
8.6 數組的輸入輸出178
8.6.1 一維數組的輸入輸出178
8.6.2 二維數組的輸入輸出180
8.6.3 多維數組的輸入輸出183
8.7 動態數組183
8.7.1 動態數組的定義184
8.7.2 動態數組空間的分配及釋放184
8.7.3 動態數組的套用舉例185
8.8 數組的運算187
8.8.1 數組的算術運算188
8.8.2 數組的邏輯運算190
8.9 數組的常用內在函式192
8.9.1 矩陣相乘函式192
8.9.2 向量點乘函式193
8.9.3 元素求積函式193
8.9.4 元素求和函式194
8.9.5 數組大小查詢函式194
8.9.6 數組形狀查詢函式194
8.9.7 數組合併函式195
8.9.8 數組壓縮函式195
8.9.9 數組轉置函式195
8.9.10 數組最大值最小值函式196
8.9.11 數組最大值最小值定位函式196
8.10 數組操作語句197
8.10.1 where語句198
8.10.2 forall語句200
8.11 數組套用舉例201
8.12 本章小結204
第9章 fortran過程205
9.1 fortran程式單元概述205
9.2 語句函式*206
9.2.1 語句函式的定義及引用206
9.2.2 語句函式使用注意事項208
9.3 函式子程式(function)209
9.3.1 函式子程式的定義209
9.3.2 函式子程式的調用210
9.4 子例行子程式(subroutine)211
9.4.1 子例行子程式的定義212
9.4.2 子例行子程式的調用212
9.5 實參和形參之間的數據傳遞方式214
9.5.1 變數作為形參215
9.5.2 數組作為形參217
9.5.3 子程式名作為形參221
9.5.4 星號(*)作為形參224
9.6 特殊的參數屬性225
9.6.1 intent屬性225
9.6.2 接口(interface)227
9.6.3 可選參數optional229
9.6.4 改變參數位置的方法231
9.7 局部變數與save屬性233
9.7.1 變數的作用範圍233
9.7.2 變數的save屬性234
9.8 公用存儲單元與數據塊程式單元*236
9.8.1 公用語句(common)236
9.8.2 數據塊子程式 (block data)239
9.9 特殊數組及可分配數組做子程式參數240
9.9.1 自動數組(automatic arrays)241
9.9.2 可分配數組做形參241
9.9.3 可分配函式子程式243
9.9.4 自動數組和可分配數組的比較244
9.10 特殊的過程類型244
9.10.1 遞歸過程(recursive)244
9.10.2 純過程(pure procedures)247
9.10.3 逐元過程(elemental procedures)248
9.11 內部過程249
9.12 過程中的其他功能*251
9.12.1 entry語句251
9.12.2 另一個子程式的返回點253
9.12.3 內在函式做參數254
9.13 本章小結255
第10章 檔案及高級i/o套用256
10.1 檔案基本概念256
10.1.1 設備號257
10.1.2 檔案分類257
10.1.3 檔案的構成——記錄258
10.1.4 檔案的存取方式258
10.1.5 檔案的結構258
10.1.6 檔案的定位259
10.2 檔案基本操作語句260
10.2.1 open語句260
10.2.2 close語句264
10.2.3 read語句265
10.2.4 write語句267
10.2.5 inquire語句267
10.2.6 rewind語句269
10.2.7 backspace語句270
10.2.8 endfile語句270
10.2.9 flush語句270
10.2.10 wait語句270
10.2.11 eof函式270
10.3 檔案的使用271
10.3.1 有格式順序存取檔案271
10.3.2 有格式直接存取檔案275
10.3.3 無格式順序存取檔案277
10.3.4 無格式直接存取檔案279
10.3.5 二進制順序存取檔案281
10.3.6 二進制直接存取檔案285
10.4 流訪問模式286
10.5 異步輸入輸出286
10.6 與作業系統相關的i/o信息287
10.7 本章小結287
第11章 結構體及指針288
11.1 派生類數據類型概述288
11.2 結構體的定義和引用290
11.2.1 結構體變數和結構體數組的定義290
11.2.2 結構體成員的引用293
11.3 結構體的初始化和使用294
11.3.1 在結構體聲明中進行初始化294
11.3.2 使用賦值語句進行初始化295
11.3.3 使用輸入語句進行初始化295
11.3.4 使用data語句進行初始化296
11.3.5 結構體數據輸入與輸出298
11.3.6 結構體數組的使用舉例299
11.4 指針的概念和指針變數的定義304
11.4.1 指針的概念304
11.4.2 指針變數的定義305
11.4.3 指針變數的引用*305
11.4.4 懸空指針和無法訪問的記憶體310
11.5 指針與數組310
11.5.1 指向數組的指針310
11.5.2 指針數組312
11.6 指針與鍊表313
11.6.1 鍊表的概念314
11.6.2 建立鍊表314
11.6.3 插入結點316
11.6.4 刪除結點317
11.7 本章小結318
第12章 fortran模組及面向對象程式設計320
12.1 模組概述320
12.2 模組的組成和使用322
12.2.1 模組的組成322
12.2.2 模組中的變數322
12.2.3 模組的公有屬性和私有屬性324
12.2.4 模組的使用326
12.3 面向對象的程式設計概述328
12.3.1 對象簡述328
12.3.2 面向對象程式設計的特點329
12.4 模組的重載性套用329
12.4.1 子程式重載330
12.4.2 操作符重載331
12.4.3 賦值號重載333
12.5 繼承性和多態性334
12.5.1 繼承性334
12.5.2 多態性337
12.6 本章小結337
第13章 fortran數據結構及算法338
13.1 概述338
13.1.1 什麼是數據結構338
13.1.2 基本概念和術語340
13.1.3 邏輯結構和物理結構341
13.1.4 抽象數據類型343
13.1.5 fortran算法和算法特性344
13.2 排序347
13.2.1 冒泡排序348
13.2.2 選擇排序350
13.2.3 插入排序351
13.2.4 希爾排序353
13.2.5 快速排序354
13.3 查找356
13.3.1 查找概述357
13.3.2 順序表查找358
13.3.3 有序表查找360
13.4 本章小結366
第14章 矩陣分解及特殊函式367
14.1 矩陣分解367
14.1.1 crout分解367
14.1.2 doolittle分解370
14.1.3 cholesky分解372
14.2 矩陣的特徵值與特徵向量374
14.2.1 乘冪法計算主特徵值及其特徵向量374
14.2.2 乘冪法2範數單位化方法376
14.2.3 rayleigh加速方法378
14.2.4 修正的rayleigh加速方法380
14.2.5 qr分解法383
14.3 bessel函式、beta函式和gamma函式385
14.3.1 第一類整數階bessel函式385
14.3.2 第二類整數階bessel函式391
14.3.3 gamma函式397
14.3.4 不完全gamma函式399
14.3.5 beta函式與χ2分布函式402
14.4 fortran 2008新增的內部函式406
14.4.1 bessel函式406
14.4.2 誤差函式406
14.4.3 距離函式406
14.4.4 gamma函式406
14.4.5 歐式向量範數407
14.5 本章小結407
第15章 解方程及方程組408
15.1 解線性方程組408
15.1.1 gauss消元法408
15.1.2 選主元消元法410
15.1.3 lu分解法413
15.1.4 追趕法415
15.1.5 jacobi疊代法418
15.1.6 gauss—seidel疊代法420
15.1.7 逐次超鬆弛疊代法423
15.1.8 最速下降法425
15.1.9 共軛梯度法428
15.2 非線性方程求根431
15.3 非線性方程組的數值解法433
15.4 本章小結437
第16章 數值分析438
16.1 最小二乘與數據擬合438
16.1.1 cholesky分解法計算最小二乘438
16.1.2 householder鏡像變換之qr分解442
16.1.3 qr分解法計算最小二乘問題445
16.1.4 最小二乘曲線擬合448
16.2 多項式插值452
16.2.1 多項式插值之
lagrange插值452
16.2.2 多項式插值之newton插值454
16.2.3 多項式插值之hermite插值456
16.2.4 多項式插值之反插值458
16.3 數值微分460
16.3.1 中點公式460
16.3.2 richardson外推法463
16.4 數值積分465
16.4.1 復化梯形公式465
16.4.2 復化simpson公式467
16.4.3 romberg積分468
16.5 三次樣條插值470
16.5.1 三次樣條插值之第一邊界條件471
16.5.2 三次樣條插值之第二邊界條件476
16.5.3 三次樣條插值之第三邊界條件480
16.6 本章小結486
第17章 常微分方程及方程組487
17.1 四階runge—kutta法487
17.2 gill方法492
17.3 runge—kutta法計算微分方程組494
17.4 adams—bashforth三步三階法499
17.5 adams—bashforth四步四階法505
17.6 三階預測校正方法510
17.7 四階預測校正方法517
17.8 本章小結523
第18章 coarray與並行計算524
18.1 什麼是並行計算524
18.1.1 並行計算機524
18.1.2 並行編程模式525
18.1.3 並行語言526
18.2 coarray的歷史527
18.3 coarray簡介527
18.4 支持spmd編程風格的coarray530
18.4.1 程式鏡像530
18.4.2 coarray數據聲明與訪問530
18.4.3 固有過程531
18.5 coarray fortran簡單實例532
18.5.1 一個實例532
18.5.2 設定鏡像數目533
18.6 coarray fortran高級實例535
18.6.1 基礎知識535
18.6.2 鏡像的引用536
18.6.3 高級實例——矩陣相乘539
18.7 本章小結541
附錄 fortran內置函式542
參考文獻548