3 基本 Fortran
3.1 Data Types + Algorithms = Programs
資料型式(Data Types)
- INTEGER
- REAL or single precision
- DOUBLE precision
- COMPLEX
- CHARACTER
- LOGICAL
假如名稱的資料型式未定,則
名稱的第一個字母為 IJKLMN 之一,則為INTEGER,否則為REAL。
3.2 程式格式
每一敘述(statement)至少佔一列。 FORTRAN 77 的程式格式如下:
111111111122222222223333333333444444444455555555556666666666777
123456789012345678901234567890123456789012345678901234567890123456789012
- 第一格是 C 或 *, 表示該敘述是註解(comment)。
- 1 到 5 格是敘述標記(label)。
- 敘述使用 7-72 格。
- 第 6 格不是空白或 0, 表示該列延續前一列。
- 第 73 格以後不用。
PROGRAM DECAY
**********************************************************************
* Purpose: This program calculates the amount of a radioactive *
* substance that remains after a specified time, given an *
* initial amount and its half-life. *
**********************************************************************
REAL INIT, HFLIFE, TIME, RESID
PRINT *, 'ENTER INITIAL AMOUNT, HALF-LIFE, AND TIME'
READ *, INIT, HFLIFE, TIME
RESID = INIT * .5 ** (TIME / HFLIFE)
PRINT *, 'AMOUNT REMAINING =', RESID
END
注意 -- FORTRAN 90 起已改用自由格式:
- 註解用 ! 號與敘述隔開,例如
READ *, INIT, HFLIFE, TIME ! input data
- 敘述的延續在列尾(!號之前)用&號表示,該列延續到後一列。 例如
READ *, INIT, HFLIFE,& ! input data
TIME
- 一列可有幾個敘述, 但每一敘述用 ; 號隔開。
3.3 常數和變數
- Constants
- integers
- reals
- double precision
- 3.1415926535898D0
- 1D-15
- 2.32658D10
- character strings
Named Constants: The PARAMETER Statement
PARAMETER (PI = 3.14159, TWOPI = 2.0 * PI)
- Identifiers
- Reserved words
- Variables
Variable Initialization: The DATA Statement
INTEGER A, B, C
DATA A /123/, B, C /345, 78/
3.4 算術(Arithmetic)運算和函數
- 運算子(Operators)
+ - * / **
- 運算優先次序(Precedence)
()
* / %
+ -
- Mixed-mode Expressions
- Functions
REAL X
X = SQRT(39.0)
3.5 指定(Assignment)敘述
3.6 輸入/輸出
Output 敘述
List-directed Output
PRINT *, list
WRITE(*, *) list
例題:
PROJEC -- Projectile with output
Input 敘述
List-directed Input
READ *, list
例題:
-
PROJEC -- Projectile with i/o
-
PROJEC -- Projectile with i/o & prompt
3.8 例題: Acidity of a Diluted Mixture
DILUTE
3.9 數值方法(Numerical Methods)
Arithmetic Errors
- Overflow/Underflow Errors
- Roundoff Errors
- Truncation Errors
Program Editing, Compiling and Running
Editing
>edit xmp1.f
Compiling
>g77 xmp1.f -o xmp1
Running
>xmp1
djgpp fortran77 compiler