Ngôn ngữ lập trình Fortran 90 - Phan Văn Tân

Mục lục

Lời giới thiệu.7

Mở đầu .9

Ch-ơng 1. Những yếu tố cơ bản của ngôn ngữ FORTRAN .11

1.1 Chạy một ch-ơng trình FORTRAN.11

1.2 Cấu trúc chung của một ch-ơng trình FORTRAN .15

1.3 Cấu trúc câu lệnh .16

1.3.1 ýnghĩa của dấu cách (Blank) .16

1.3.2 Lời chú thích .17

1.3.3 Dòng nối tiếp .17

1.4 Kiểu dữ kiệu .17

1.4.1 Lớp các kiểu số (Integer, Real, Complex) .18

1.4.2 Kiểu ký tự (Character) và kiểu lôgic (Logical) .21

1.4.3 Phép toán trên các kiểu dữ liệu .23

1.5 Hằng.25

1.5.1 Hằng nguyên.25

1.5.2 Hằng thực.26

1.5.3 Hằng ký tự .26

1.6 Tên biến và tên hằng .27

1.7 Qui tắc kiểu ẩn .28

1.8 Phong cách lập trình .30

1.9 Biểu thức số .31

1.9.1 Phép chia với số nguyên .31

1.9.2 Biểu thức hỗn hợp.31

1.10 Lệnh gán. Gán hằng, gán biểu thức .32

1.11 Lệnh vào ra đơn giản .33

1.11.1 Lệnh vào dữ liệu .33

1.11.2 Đọc dữ liệu từ file TEXT.35

1.11.3 Lệnh kết xuất dữ liệu .36

1.11.4 Kết xuất ra máy in.37

1.12 Sử dụng hàm trong fortran.37

Bài tập ch-ơng 1.40

Ch-ơng 2. Các câu lệnh cơ bản của Fortran .44

2.1 Lệnh chu trình (DO Loops) .44

2.2 Lệnh rẽ nhánh với IF .48

2.2.1 Dạng 1 .48

2.2.2 Dạng 2 .48

2.2.3 Dạng 3 .49

2.2.4 Dạng 4 .50

2.2.5 Lệnh nhảy vô điều kiện GOTO .52

2.2.6 Lệnh IF số học.54

2.3 Kết hợp DO và IF .55

2.4 Rẽ nhánh với cấu trúc SELECT CASE .56

2.5 Thao tác với hằng và biến ký tự (CHARACTER).58

Bài tập ch-ơng 2.61

Ch-ơng 3. Các cấu trúc mở rộng.63

3.1 Chu trình DO tổng quát và chu trình DO lồng nhau .63

4

3.2 Cấu trúc IF tổng quát vàcấu trúc IF lồng nhau .64

3.3 Chu trình ngầm.67

3.4 Định dạng dữ liệu bằng lệnh FORMAT .67

3.5 Chu trình lặp không xác định.69

3.5.1 Cấu trúc kết hợp IF và GOTO.69

3.5.2 Cấu trúc DO và EXIT .70

3.5.3 Cấu trúc DO WHILE END DO.72

3.5.4 Lệnh CYCLE.73

3.5.5 Một số ví dụ về chu trình lặp không xác định .75

Bài tập ch-ơng 3.78

Ch-ơng 4. Ch-ơng trình con (SUBROUTINE vàFUNCTION) và modul .82

4.1 Khái niệm .82

4.2 Th-viện các hàm trong .82

4.3 Các ch-ơng trình con trong.83

4.3.1 Hàm trong (Internal FUNCTION).83

4.3.2 Thủ tục trong (Internal SUBROUTINE).84

4.4 Câu lệnh CONTAINS.85

4.5 Một số ví dụ về ch-ơng trình con trong.86

4.6 Biến toàn cục và biến địa ph-ơng.89

4.7 Định nghĩa hàm bằng câu lệnh đơn .91

4.8 Ch-ơng trình con ngoài.92

4.8.1 Câu lệnh EXTERNAL .93

4.8.2 Khai báo khối giao diện (INTERFACE BLOCK) .94

4.9 Các thuộc tính của đối số .95

4.9.1 Thuộc tính INTENT .95

4.9.2 Thuộc tính OPTIONAL .96

4.9.3 Thuộc tính SAVE .98

4.10 Modul .98

4.11 Phép đệ qui .99

Bài tập ch-ơng 4.101

Ch-ơng 5. Mảng .103

5.1 Khái niệm về mảng trong FORTRAN.103

5.2 Khai báo mảng .103

5.3 L-u trữ mảng trong bộ nhớ và truycập đến các phần tử mảng .106

5.3.1 Sử dụng lệnh DATA để khởi tạo mảng .108

5.3.2 Biểu thức mảng.109

5.3.3 Cấu trúc WHERE. ELSEWHERE . END WHERE.109

5.4 Mảng động (Dynamical Array) .110

5.5 Kiểu con trỏ .113

5.5.1 Trạng thái con trỏ .114

5.5.2 Cấp phát và giải phóng biến con trỏ .114

5.6 Hàm trả về nhiều giá trị .115

Bài tập ch-ơng 5.117

Ch-ơng 6. Biến ký tự .121

6.1 Khai báo biến ký tự.121

6.2 Các xâu con (substring).121

6.3 Xử lý biến ký tự .122

6.4 Phép toán gộp xâu ký tự .127

6.5 Tạo định dạng FORMAT bằng xâu ký tự.127

5

6.6 Mảng xâu ký tự .128

Bài tập ch-ơng 6.130

Ch-ơng 7. Kiểu file.132

7.1 Khái niệm .132

7.2 Phân loại file .134

7.2.1 File có định dạng (Formatted Files) .134

7.2.2 File không định dạng (Unformatted Files).134

7.2.3 File dạng nhị phân (Binary Files).135

7.2.4 File truy cập tuần tự (Sequential-Access Files) .135

7.2.5 File truy cập trực tiếp (Direct-Access Files) .136

7.3 Tổ chức dữ liệu trong file .136

7.3.1 File truy cập tuần tự có định dạng .136

7.3.2 File truy cập trực tiếp có định dạng.137

7.3.3 File truy cập tuần tự không định dạng.138

7.3.4 File truy cập trực tiếp không định dạng.139

7.3.5 File truy cập tuần tự dạng nhị phân .140

7.3.6 File truy cập trực tiếp dạng nhị phân.141

7.4 Lệnh mở (OPEN) và đóng (CLOSE) file.141

7.4.1 Lệnh mở file .141

7.4.2 Lệnh đóng file .145

7.5 Các lệnh vào ra dữ liệu với file .145

7.5.1 Lệnh đọc dữ liệu từ file (READ) .145

7.5.2 Lệnh ghi dữ liệu ra file (WRITE) .147

7.5.3 Vào ra dữ liệu với NAMELIST.148

7.5.4 Một số ví dụ thao tác với file .151

Bài tập ch-ơng 7.155

Ch-ơng 8. Một số kiến thức mở rộng.157

8.1 Khai báo dùng chung bộ nhớ .157

8.1.1 Lệnh COMMON.157

8.1.2 Lệnh EQUIVALENT .158

8.2 Ch-ơng trình con BLOCK DATA .159

8.3 Câu lệnh INCLUDE.159

8.4 Lệnh INQUIRE .160

8.5 Điều khiển con trỏ file.162

8.5.1 Lệnh REWIND.162

8.5.2 Lệnh BACKSPACE.162

8.5.3 Lệnh ENDFILE .162

8.6 Cấu trúc dữ liệu do ng-ời dùng định nghĩa .163

Bài tập ch-ơng 8.168

Ch-ơng 9. Một số bài toán thông dụng .169

9.1 các bài toán thống kê cơ bản.169

9.1.1 Tính trung bìnhsố học của một chuỗi số liệu.169

9.1.2 Tính độ lệch chuẩn của một chuỗi số liệu.170

9.1.3 Sắp xếp chuỗi theo thứ tự tăng dần và xác định giá trị lớn nhất, nhỏ nhất

của chuỗi .170

9.1.4 Xác định các phân vị của chuỗi .171

9.1.5 Tính các mômen phân bố.173

9.1.6 Tính một số đặc tr-ng thống kê khác .175

9.1.7 Tính mômen t-ơng quan và hệ số t-ơng quan.176

9.2 Một số bài toán về ma trận .181

9.2.1. Tích hai ma trận .181

6

9.2.2. Định thức của ma trận .182

9.2.3. Phần phụ đại số .185

9.2.4. Ma trận nghịch đảo.186

9.2.5. Giải hệ ph-ơng trình đại số tuyến tính .188

9.3 T-ơng quan và hồi qui tuyến tính.191

9.3.1. Xây dựng ph-ơng trình hồi qui tuyến tính.191

9.3.2. Tính hệ số t-ơng quan riêng .194

9.3.3. Tính hệ số t-ơng quan bội .196

9.4 Ph-ơng pháp số .196

9.4.1. Tìm nghiệm ph-ơng trình .196

9.4.2. Tính tích phân xác định .198

9.4.3. Sai phân hữu hạn và đạo hàm .200

9.4.4. Toán tử Laplaxian .203

9.4.5. Giải ph-ơng trình truyền nhiệt .205

9.4.6. Xây dựng cơ sở dữ liệu .210

Bài tập ch-ơng 9.216

Tài liệu tham khảo .218

Phụ lục .219

1. Trình tự các câu lệnh trong một đơn vị ch-ơng trình Fortran .219

2. Tóm tắt các câu lệnh của Fortran .219

3. Một số hàm và thủ thục của Fortran .221

pdf223 trang | Chuyên mục: Fortran | Chia sẻ: dkS00TYs | Lượt xem: 2771 | Lượt tải: 1download
Tóm tắt nội dung Ngôn ngữ lập trình Fortran 90 - Phan Văn Tân, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
 đặc biệt dùng để khởi tạo dữ liệu 
CALL Lời gọi ch−ơng trình con SUBROUTINE 
CASE Chỉ định tập giá trị đ−ợc chọn trong câu lệnh SELECT CASE 
CHARACTER Lệnh khai báo biến, hằng kiểu ký tự 
CLOSE Lệnh đóng file 
COMMON Lệnh khai báo dùng chung bộ nhớ 
COMPLEX Lệnh khai báo biến, hằng kiểu số phức 
CONTAINS Lệnh phân tách giữa phần thân đơn vị ch−ơng trình và khối các 
ch−ơng trình con trong 
CONTINUE Lệnh không thực hiện, th−ờng dùng để kết thúc chu trình hoặc 
chuyển tiếp giữa các đoạn trong ch−ơng trình 
 220 
Tên câu lệnh Mô tả 
CYCLE Chuyển điều khiển đến câu lệnh kết thúc chu trình (END DO) 
DATA Lệnh khởi tạo dữ liệu cho biến 
DEALLOCATE Giải phóng bộ nhớ cho biến mảng động hoặc con trỏ động 
DIMENSION Chỉ định thuộc tính mảng cho biến, có thể dùng nh− lệnh khai báo 
mảng 
DO Lệnh mở đầu cho một chu trình lặp 
DO WHILE Lệnh mở đầu cho một chu trình lặp có điều kiện 
DOUBLE PRECISION Lệnh khai báo biến, hằng thực có độ chính xác gấp đôi 
END Lệnh kết thúc đơn vị ch−ơng trình hoặc ch−ơng trình con 
ENDFILE Ghi vào file tuần tự bản ghi kết thúc file tại vị trí con trỏ file hiện 
thời 
ENTRY Khi chèn lệnh này kèm theo tên mới và danh sách đối số của ch−ơng 
trình con vào một vị trí nào đó trong ch−ơng trình con, nó có thể làm 
thay đổi vị trí bắt đầu của ch−ơng trình con khi dùng lời gọi với tên 
mới 
EQUIVALENCE Lệnh khai báo dùng chung bộ nhớ 
EXIT Lệnh thoát khỏi chu trình có điều kiện 
EXTERNAL Khai báo tên của ch−ơng trình con ngoài 
FORMAT Khai báo định dạng vào/ra dữ liệu 
FUNCTION Từ khóa khai báo đó là ch−ơng trình con dạng hàm 
GOTO Lệnh nhảy vô điều kiện 
IF Lệnh rẽ nhánh 
IMPLICIT Khai báo danh sách các biến, hằng có ký tự ký tự đầu đ−ợc chỉ ra là 
những biến, hằng có thuộc tính khai báo ẩn 
INCLUDE Chỉ ra tên file (cả đ−ờng dẫn) chứa đoạn ch−ơng trình sẽ chèn vào vị 
trị của lệnh 
INQUIRE Lệnh truy vấn về trạng thái và thuộc tính của file hoặc kích th−ớc bộ 
nhớ chiếm giữ của biến/bản ghi 
INTEGER Lệnh khai báo biến, hằng có kiểu dữ liệu số nguyên 
INTENT Lệnh khai báo thuộc tính dự định cho các đối số hình thức của 
ch−ơng trình con 
INTERFACE Từ khóa mở đầu khai báo khối giao diện 
LOGICAL Lệnh khai báo kiểu dữ liệu lôgic 
MODULE Từ khóa chỉ đơn vị ch−ơng trình là loại modul 
NAMELIST Lệnh khai báo danh sách các khối và biến trong namelist 
NULLIFY Đ−a biến con trỏ về trạng thái không trỏ vào đâu cả 
OPEN Lệnh mở file 
OPTIONAL Lệnh chỉ ra các đối số có thuộc tính tùy chọn trong ch−ơng trình con 
PARAMETER Khai báo chỉ định thuộc tính hằng 
PAUSE Lệnh tạm dừng ch−ơng trình 
POINTER Khai báo chỉ định biến có thuộc tính con trỏ 
PRINT Lệnh kết xuất thông tin ra thiết bị chuẩn (th−ờng là màn hình) 
 221
Tên câu lệnh Mô tả 
PRIVATE Khai báo biến, hằng có thuộc tính riêng chỉ trong nội bộ của modul 
PROGRAM Từ khóa chỉ đơn vị ch−ơng trình là ch−ơng trình chính 
PUBLIC Khai báo biến, hằng có thuộc tính công cộng, có thể truy cập đ−ợc 
từ các đơn vị ch−ơng trình khác có sử dụng modul 
READ Lệnh đọc dữ liệu vào từ thiết bị 
REAL Lệnh khai báo biến, hằng có kiểu dữ liệu số thực 
RECURSIVE Chỉ định thủ tục đệ qui cho ch−ơng trình con 
RETURN Lệnh chuyển điều khiển về ch−ơng trình gọi từ ch−ơng trình con 
REWIND Đ−a con trỏ file trở về đầu file của file tuần tự 
SAVE Khai báo thuộc tính bảo l−u giá trị của các biến trong ch−ơng trình 
con 
SELECT CASE Lệnh chỉ định cấu trúc rẽ nhánh 
SEQUENCE Chỉ định thuộc tính l−u trữ theo trình tự xuất hiện của kiểu dữ liệu 
do ng−ời dùng định nghĩa 
STOP Lệnh dừng hẳn ch−ơng trình tại một thời điểm nào đó khi ch−ơng 
trình ch−a kết thúc 
SUBROUTINE Từ khóa khai báo đó là một ch−ơng trình con dạng thủ tục 
TARGET Chỉ định thuộc tính đích cho biến mà nó là đích của con trỏ 
TYPE Từ khóa định nghĩa kiểu dữ liệu của ng−ời dùng tự thiết lập 
USE Từ khóa khai báo tên modul sẽ đ−ợc sử dụng trong ch−ơng trình 
WHERE Câu lệnh thực hiện việc tìm kiếm trong mảng 
WRITE Lệnh kết xuất thông tin ra thiết bị 
3. Một số hàm và thủ thục của Fortran 
Tên hàm, thủ tục Chức năng 
ABS(A) Giá trị tuyệt đối của số nguyên, số thực hoặc số phức A 
ACOS(X) Arccosine (hàm ng−ợc của cosine) của X 
AIMAG(Z) Phần ảo của số phức Z 
AINT(A [,KIND]) Phần nguyên (là số thực) lớn nhất không v−ợt quá A 
ANINT(A [,KIND]) Phần nguyên (là số thực) gần nhất của A 
ASIN(X) Arcsine (hàm ng−ợc của sine) của X 
ATAN(X) Arctang (hàm ng−ợc của tang) của X, trong phạm vi −π/2 đến π/2 
CEILING(A) Số nguyên nhỏ nhất không nhỏ hơn A 
CMPLX(X[,Y][,KIND]) Đổi số X hoặc (X, Y) ra số phức 
CONJG(Z) Liên hợp phức của Z 
COS(X) Cosine của X 
COSH(X) Cosine hyperbol của X 
DIM(X, Y) max(X−Y, 0) 
EXP(X) xe 
Tên hàm, thủ tục Chức năng 
 222 
FLOOR(A) Số nguyên lớn nhất không v−ợt quá A 
INT(A [,KIND]) Đổi số A thành số nguyên và chặt cụt phần thập phân 
LOG(X) Lôgarit cơ số tự nhiên của X 
LOG10(X) Lôgarit cơ số 10 của X 
MAX(A1,A2[,A3,...]) Giá trị lớn nhất của các số A1, A2, A3,… 
MIN(A1,A2[,A3,...]) Giá trị nhỏ nhất của các số A1, A2, A3,… 
MOD(A, P) Số d− của phép chia A cho P, bằng A-INT(A/P)*P 
NINT(A [,KIND]) Số nguyên gần nhất với A 
REAL(A [,KIND]) Đổi số A thành số thực 
SIGN(A, B) Trị tuyệt đối của A nhân với dấu của B 
SIN(A) Sine của A 
SINH(A) Sine hyberbol của A 
SQRT(A) Căn bậc hai của A 
TAN(A) Tang của A 
TANH(A) Tang hyberbol của A 
ACHAR(I) Ký tự có mã ASCII là I với I trong khoảng 0−127 
ADJUSTL(STR) Trả về xâu STR có cùng độ dài nh−ng đã căn lề trái 
ADJUSTR(STR) Trả về xâu STR có cùng độ dài nh−ng đã căn lề phải 
CHAR(I [,KIND]) Ký tự có vị trí là I của hệ thống sắp xếp thứ tự đ−ợc cho bởi KIND 
IACHAR(C) Mã ASCII của ký tự C 
ICHAR(C) Vị trí của ký tự C trong hệ thống sắp xếp thứ tự 
INDEX(STR, SUBSTR 
[BACK]) 
Vị trí bắt gặp đầu tiên của SUBSTR trong STR, tính từ bên trái 
(nếu BACK=FALSE−ngầm định) hoặc bên phải (nếu 
BACK=TRUE), bằng 0 nếu không tìm thấy 
LEN_TRIM(STR) Độ dài của xâu STR khi đã cắt bỏ các dấu cách bên phải 
LGE(STR_A, STR_B) Bằng TRUE nếu STR_A tiếp sau STR_B theo thứ tự ASCII hoặc 
bằng nhau (về mặt từ vựng), bằng FALSE nếu ng−ợc lại 
LGT(STR_A, STR_B) Bằng TRUE nếu STR_A tiếp sau STR_B theo thứ tự ASCII, bằng 
FALSE nếu ng−ợc lại 
LLE(STR_A, STR_B) Bằng TRUE nếu STR_A đứng tr−ớc STR_B theo thứ tự ASCII hoặc 
bằng nhau (về mặt từ vựng), bằng FALSE nếu ng−ợc lại 
LLT(STR_A, STR_B) Bằng TRUE nếu STR_A đứng tr−ớcc STR_B theo thứ tự ASCII, 
bằng FALSE nếu ng−ợc lại 
LEN(STR) Số ký tự của STR nếu là biến vô h−ớng, hoặc số phần tử của STR 
nếu nó là biến mảng 
REPEAT(STR,NCOPIES) Gộp NCOPIES lần xâu STR 
TRIM(STR) Trả về xâu STR đã cắt bỏ các dấu cách bên phải nhất 
EPSILON(X) Số mà hầu nh− có thể bỏ qua so với 1 (số vô cùng bé 21− p ) 
HUGE(X) Giá trị lớn nhất của biến X có kiểu thực hoặc nguyên 
PRECISION(X) Độ chính xác thập phân (số chữ số thập phân biểu diễn chính xác) 
của số thực hoặc số phức 
TINY(X) Số d−ơng nhỏ nhất của số thực 
 223
Tên hàm, thủ tục Chức năng 
BIT_SIZE(I) Số bit lớn nhất biểu diễn số nguyên 
BTEST(I, POS) Bằng TRUE nếu bít thứ POS của số nguyên I bằng 1 (Chú ý: Số thứ 
tự bít đánh số từ 0 tính từ bên phải sang của dãy bít biểu diễn số I) 
IAND(I, J) Trả về số nguyên biểu diễn các bít của I và J t−ơng ứng bằng 1, ví 
dụ IAND(255, 128)=128, vì bít thứ 7 của hai số đều bằng 1, tức 128 
= 1.27 + 0.26 + … 0.20. 
ISHFT(I, SHIFT) Giá trị của I khi dịch chuyển tất cả các bít của I sang trái (SHIFT 
d−ơng) hoặc sang phải (SHIFT âm) SHIFT vị trí 
ALLOCATED(ARRAY) Nhận giá trị TRUE nếu ARRAY đã đ−ợc cấp phát bộ nhớ 
LBOUND(ARRAY[,DIM]) Trả về chỉ số mảng đầu tiên (nếu bỏ qua DIM) hoặc chỉ số đầu tiên 
của chiều DIM của ARRAY 
SHAPE(SOURCE) Trả về kích th−ớc các chiều của mảng SOURCE, nếu SOURCE là 
vô h−ớng thì kích th−ớc bằng không 
SIZE(ARRAY [,DIM]) Trả về kích th−ớc [chiều DIM] của mảng ARRAY 
UBOUND(ARRAY[,DIM]) T−ơng tự nh− LBOUND nh−ng là chỉ số cuối cùng 
MAXLOC(ARRAY[,MASK]) Trả về địa chỉ phần tử mảng có giá trị lớn nhất. Nếu có đối số 
MASK thì MASK là mảng các phần tử lôgic có cùng kích th−ớc với 
ARRAY; trong tr−ờng hợp này chỉ có các phần tử TRUE mới đ−ợc 
xét đến. 
MERGE(TSOURCE, 
FSOURCE, MASK) 
Trả về mảng có cùng kích th−ớc với cả ba tham số. Các phần tử của 
mảng kết quả sẽ là những giá trị lấy từ mảng TSOURCE hoặc 
FSOURCE tùy thuộc phần tử t−ơng ứng của MASK là TRUE hay 
FALSE. 
MINLOC(ARRAY[,MASK]) T−ơng tự nh− MAXLOC nh−ng là giá trị nhỏ nhất. 
TRANSPOSE(MATRIX) Trả về ma trận chuyển vị của MATRIX 
ASSOCIATED(POINTER 
[,TARGET]) 
Nếu không có TARGET, kết quả là TRUE nếu POINTER đ−ợc liên 
kết với một đích, là FALSE nếu ng−ợc lại. Trạng thái POINTER 
phải là ch−a xác định. Nếu có TARGET, kết quả là TRUE nếu 
POINTER đ−ợc liên kết với nó. Nếu TARGET cũng chính là con trỏ 
thì đích của nó đ−ợc so sánh với đích của POINTER, và sẽ trả về 
FALSE nếu hoặc POINTER hoặc TARGET ch−a đ−ợc liên kết. 
KIND(X) Trả về giá trị tham số loại dữ liệu của X 
SELECTED_INT_KIND(R) Giá trị tham số loại đối với dữ liệu kiểu số nguyên có thể biểu diễn 
tất cả các giá trị nguyên trong khoảng RR n 1010 <<− với R là 
một số nguyên. 
SELECTED_REAL_KIND([P] 
[,R]) 
Giá trị tham số loại đối với dữ liệu kiểu số thực có độ chính xác 
thập phân ít nhất là P, và phạm vi số mũ thập phân ít nhất là R. ít 
nhất một trong hai tham số P, R phải xuất hiện. 
RANDOM_NUMBER (X) Thủ tục tạo bộ số ngẫu nhiên (0 ≤ X < 1) 
RANDOM_SEED () Thủ tục khởi tạo giá trị gốc bộ số ngẫu nhiên của bộ xử lý 
 224 
Tên hàm, thủ tục Chức năng 
DATE_AND_TIME([DATE] 
[,TIME] [,ZONE] 
[,VALUES]) 
Thủ tục trả về các giá trị (là trống rỗng hoặc HUGE(0) nếu không 
có đồng hồ): 
− DATE (Character) dạng CCYYMMDD (thế kỷ−ngày) 
− TIME (Character) dạng HHMMSS.SSS (giờ−mili giây) 
− ZONE (Character) dạng Shhmm (hiệu giữa giờ địa ph−ơng và giờ 
UTC, S là dấu 
− VALUES mảng ít nhất 8 phần tử, mà giá trị của chúng t−ơng ứng 
là Năm, Tháng, Ngày, hiệu thời gian theo phút so với UTC, giờ, 
phút, giây và mili giây. 

File đính kèm:

  • pdfNgôn ngữ lập trình Fortran 90 - Phan Văn Tân.pdf