Giới thiệu về Fortran 90 - Bùi Hoàng Hải pot

19 360 3
Giới thiệu về Fortran 90 - Bùi Hoàng Hải pot

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Giới thiệu về Fortran 90 Giới thiệu về Fortran 90 Bùi Hoàng Hải Bùi Hoàng Hải Yêu cầu & Nội dung Yêu cầu & Nội dung • Yêu cầu – đã nắm được fortran 77 (Nếu không thì tự đọc bài giảng của PGS Phan Văn Tân) • Nội dung o Free form vs fixed form Free form vs fixed form o Biến và khai báo biến Biến và khai báo biến o Cấu trúc điều khiển Cấu trúc điều khiển o Module Module o Kiểu biến người dùng định nghĩa Kiểu biến người dùng định nghĩa Free form (f90) vs Fixed form (f77) Free form (f90) vs Fixed form (f77) • Phần mở rộng file: .for vs .f90 • Dòng lệnh không bị giới hạn về độ dài, không cần thụt đầu dòng • Comment bắt đầu từ dấu ! Đến hết dòng • Dấu & nối dòng o Write(*,*), 'This is a long output line', Write(*,*), 'This is a long output line', & & ' this is the second part' ' this is the second part' • Nhiều lệnh trên một dòng o A = 0.0 ; B = 1.0 ; C = 2.0 A = 0.0 ; B = 1.0 ; C = 2.0 Cấu trúc một chương trình Cấu trúc một chương trình PROGRAM program-name IMPLICIT NONE ! Nên có phần này [Phần khai báo] [Phần thực thi] [Các chương trình con] END PROGRAM program-name Phần khai báo Phần khai báo • [Kiểu Biến], [Các thuộc tính] :: [Danh sách các biến] • Khai báo biến đơn: o Integer :: i, j, number_Tcs Integer :: i, j, number_Tcs o Real :: Radius, Rmax, Vmax Real :: Radius, Rmax, Vmax • Khai báo hằng số o Real, Parameter :: Pi=3.14156, g=9.81 Real, Parameter :: Pi=3.14156, g=9.81 • Khai báo chuỗi ký tự o Character (Len=11) :: Str1 Character (Len=11) :: Str1 o Character (Len=*), Parameter:: Str2 = “Hello" Character (Len=*), Parameter:: Str2 = “Hello" Phần khai báo Phần khai báo • Khai báo mảng o Integer, Parameter :: Nx=101, Ny=101 Integer, Parameter :: Nx=101, Ny=101 o Real, Dimension(Nx) :: Rx Real, Dimension(Nx) :: Rx o Real, Dimension(Ny) :: Ry Real, Dimension(Ny) :: Ry o Real, Dimension(Nx,Ny) :: U, V, W, SLp Real, Dimension(Nx,Ny) :: U, V, W, SLp • Khai báo mảng động o Real, Dimension(:,:), Allocatable :: Var1, Real, Dimension(:,:), Allocatable :: Var1, Var2 Var2 o o Allocate(Var1(100,100)) Allocate(Var1(100,100)) o o DeAllocate(Var1) DeAllocate(Var1) Phép gán với mảng Phép gán với mảng o Integer, Parameter :: Nx=121, Ny=101 Integer, Parameter :: Nx=121, Ny=101 o Real, Dimension(Nx) :: Rx Real, Dimension(Nx) :: Rx o Real, Dimension(Ny) :: Ry Real, Dimension(Ny) :: Ry o Real, Dimension(Nx,Ny) :: A, B, C Real, Dimension(Nx,Ny) :: A, B, C o A = B A = B o A(1,:) = Ry A(1,:) = Ry o B(Ny,:) = Rx B(Ny,:) = Rx Dịch 1 file f90 trong Cygwin Dịch 1 file f90 trong Cygwin • File nguồn: test.f90 Integer :: i Integer :: i Do i=1,10 Do i=1,10 Write(*,*)i Write(*,*)i Enddo Enddo End End • Dịch o g95 test.f90 g95 test.f90 • Hoặc o g95 test.f90 –o test.out g95 test.f90 –o test.out • Chạy chương trình o ./test.out ./test.out Module Module • FORTRAN định nghĩa 3 khái niệm đơn vị chương trình là: Chương trình chính, Chương trình con ngoài, và module. • Modul khác với các chương trình con ở 2 điểm quan trọng: o Module có thể chứa trong đó nhiều hơn một chương trình con (được gọi là các chương trình con module); o Modul có thể chứa những câu lệnh khai báo và đặc tả mà chúng có thể tham chiếu được đối với tất cả các đơn vị chương trình có sử dụng modul • Các module cũng có thể được biên dịch một cách độc lập • Để sử dụng module hãy dùng câu lệnh khai báo USE ngay đầu chương trình: • USE Tên_Các_Modul_được_sử_dụng • Một module này có thể sử dụng module khác VD về module VD về module • Module_mydata.f90 Module mydata Module mydata Implict none Implict none Integer, Parameter :: Nx=10 Integer, Parameter :: Nx=10 Real, Dimension(Nx) :: dat Real, Dimension(Nx) :: dat Contains Contains Subroutine init_data Subroutine init_data integer :: i integer :: i Do i=1,10 Do i=1,10 dat(i)=i dat(i)=i Enddo Enddo End Subroutine init_data End Subroutine init_data End Module mydata End Module mydata [...]...VD về module • main.f90 Program main Implicit none Use mydata Call init_data ! Gọi ct con từ module Do i=1,Nx ! Sử dụng dữ liệu của module write(*,*)dat(i) Enddo End Program main • Biên dịch (sẽ báo lỗi) o G95 main.f90 module_mydata.f90 Quan hÖ gi÷a c¸c ®¬n vị ch¬ng tr×nh Kiểu người dùng định nghĩa • Để nhóm các kiểu... space) • Sử dụng comment khi cần • Tên biến: sensible, không quá ngắn hoặc quá dài • Hạn chế sử dụng lệnh goto và nhãn Bài tập – (viết trên ngôn ngữ f90) • • BT1 – Nhập từ bàn phím ba số a, b, c, giải và biện luận phương trình bậc 2 với các hệ số nói trên BT2 - Ký hiệu X là mảng một chiều gồm 100 phần tử Viết chương trình: o a) Gán 100 số nguyên dương đầu tiên cho các phần tử tương ứng của X, từ phần tử... tiên chia hết cho 3 lần lượt cho các phần tử của X o o Mỗi một trường hợp như vậy, hãy in kết quả lên màn hình thành 10 dòng, mỗi dòng 10 số sao cho thẳng hàng thẳng cột Bài tập – (viết trên ngôn ngữ f90) • BT2 – Tạo một module định nghĩa kiểu dữ liệu thời gian: module_datetime, o o o o trong đó định nghĩa kiểu dữ liệu mới là datetime có chứa các biến thành viên: year, month, day, hour Viết chương trình... trình con module kiểm tra tính đúng đắn của một biến datetime Viết chương trình con module để cộng một số giờ ( . Giới thiệu về Fortran 90 Giới thiệu về Fortran 90 Bùi Hoàng Hải Bùi Hoàng Hải Yêu cầu & Nội dung Yêu cầu & Nội dung • Yêu cầu – đã nắm được fortran 77 (Nếu không. người dùng định nghĩa Free form (f90) vs Fixed form (f77) Free form (f90) vs Fixed form (f77) • Phần mở rộng file: .for vs .f90 • Dòng lệnh không bị giới hạn về độ dài, không cần thụt đầu dòng • Comment. f90 trong Cygwin Dịch 1 file f90 trong Cygwin • File nguồn: test.f90 Integer :: i Integer :: i Do i=1,10 Do i=1,10 Write(*,*)i Write(*,*)i Enddo Enddo End End • Dịch o g95 test.f90 g95 test.f90 • Hoặc o g95

Ngày đăng: 03/07/2014, 01:20

Từ khóa liên quan

Mục lục

  • Giới thiệu về Fortran 90

  • Yêu cầu & Nội dung

  • Free form (f90) vs Fixed form (f77)

  • Cấu trúc một chương trình

  • Phần khai báo

  • Slide 6

  • Phép gán với mảng

  • Dịch 1 file f90 trong Cygwin

  • Module

  • VD về module

  • Slide 11

  • Slide 12

  • Kiểu người dùng định nghĩa

  • VD Kiểu người dùng định nghĩa

  • Slide 15

  • Để viết chương trình sáng sủa và ít lỗi

  • Bài tập – (viết trên ngôn ngữ f90)

  • Slide 18

  • Buổi sau

Tài liệu cùng người dùng

Tài liệu liên quan