1、Chapter 3 輸出入及宣告,1 write, print輸出敘述,1 write, print輸出敘述,程式說明write (*,*) hello, world!,填入數字或*:輸出的位置6或*表示輸出的位置使用內定值(也就是螢幕),填入數字或*:輸出的格式*表示不特別設定輸出的格式,1 write, print輸出敘述,完整寫法write (unit = *, FMT = *) hello, worldprint寫法(只印在螢幕上)print *, hello, world,填入數字或*:輸出的格式*表示不特別設定輸出的格式,2 宣告(Declaration),在程式當中,程式設計師要
2、問電腦的作業系統,要求電腦的記憶體中,預留一個存放程式進行所需要資料的空間,2 宣告(Declaration),不同資料型態的宣告integerinteger : A 宣告一個叫做A的整數變數,2 宣告(Declaration),integer : A,B,C 宣告A,B,C皆為整數變數integer (kind=2) : A使用兩個位元組來記錄一個整數integer (kind=4) : A使用四個位元組來記錄一個整數,2 宣告(Declaration),realreal : a 宣告一個叫做a的單精確度浮點數變數real (kind=4) : a 宣告一個叫做a的單精確度浮點數變數real
3、 (kind=8) : a 宣告一個叫做a的雙精確度浮點數變數,2 宣告(Declaration),2 宣告(Declaration),complexcomplex : a宣告一個叫做a的單精確度複數變數complex (kind=4) : a 宣告一個叫做a的單精確度複數變數complex (kind=8) : a 宣告一個叫做a的雙精確度複數變數,2 宣告(Declaration),charactercharacter (len = 1) : acharacter (1) : acharacter*1 : acharacter (len = 80) : acharacter (80) :
4、a character*80 : a,2 宣告(Declaration),logicallogical : a宣告一個叫做a的邏輯變數,2 宣告(Declaration),使用變數名稱之原則變數的名稱以英文字母為原則,可以內含下底線(_)及數字,但不能以數字來起頭。變數名字的長度,只有前31個字元有效。變數的名稱不能和Fortran的執行指令同名。程式中辨認變數時,不會區分它的大小寫。變數名稱最好具有意義,可提高程式可讀性。,3 read 輸入敘述,3 read 輸入敘述,程式說明read (*,*) A,填入數字或*:輸入的位置5或*表示輸入的位置使用內定值(也就是鍵盤),填入數字或*:輸入
5、的格式*表示不特別設定輸入的格式,3 read 輸入敘述,完整寫法read (unit = *, FMT = *) A多變數輸入在變數間以空格( )或逗號(,)隔開,4 格式化輸出入 (Format),4 格式化輸出入 (Format),重要格式控制敘述Ap以p個字元寬來輸出字串。Dp.q以p個字元的寬度來輸出指數型態的浮點數,小數部分佔q個字元寬 。(pq+7),4 格式化輸出入 (Format),重要格式控制敘述Ep.q 以p個字元的寬度來輸出指數型態的浮點數,小數部分佔q個字元寬。 (pq+7)Fp.q以p個字元的寬度來輸出浮點數,小數部分佔q個字元寬。,4 格式化輸出入 (Format
6、),重要格式控制敘述Ip以p個字元的寬度來輸出整數。Lp以p個字元的寬度來輸出T或F的真假值。 pX把輸出的位置向下跳過p個位置,配合其他格式使用。,4 格式化輸出入 (Format),格式化輸出入其他注意事項欄位不足,會輸出*。格式化輸出入可混合使用,也可以插入字串。簡略寫法 write(*,( 3(2X, F5.2) ) A, B, C write(*,( 2X, F5.2, 2X, F5.2, 2X, F5.2 ) A, B, C合併寫法,5 宣告的其它補述,implicit內定型態implict第一個字母為I,J,K,L,M,N的變數內定成整數型態,其它的變數則被當成浮點數來使用。im
7、plict integer (A-F, I, K)把A到F開頭及I, K開頭的變數都當成整數。implict integer (A-F, I, K)把F到K開頭的變數都當成浮點數。implict integer (A-F, I, K)把“內定型態“的功能關閉。,5 宣告的其它補述,parameter常數宣告,5 宣告的其它補述,parameter常數宣告real, parameter : pi = 3.14159,常數必須給予初始值否則沒有功用,加入parameter表示pi是常數,不佔記憶體,因為不是變數,程式執行中不能改變其值。,5 宣告的其它補述,設定變數的初值,5 宣告的其它補述,宣告
8、在程式中的結構,5 宣告的其它補述,自訂資料型態,5 宣告的其它補述,自訂資料型態type : person character(len=30) : name end type persontype(person) : aread(*,*) a% name,自訂資料型態結束,使用自訂資料型態的變數,5 宣告的其它補述,自訂資料型態初始化a = person(Tom, 15, 170, 60, Taipei),5 宣告的其它補述,module模組,5 宣告的其它補述,module模組module constants implicit none end module constantsprogra
9、m ex0311 use constants ,5 宣告的其它補述,module模組,5 宣告的其它補述,module模組,5 宣告的其它補述,kind 的使用在PC上資料型態宣告變數可儲存值的範圍integer(kind=1) -127127integer(kind=2) -3276732767integer(kind=4) -21474836472147483647real(kind=4) real(kind=8) ,5 宣告的其它補述,kind 的使用selected_int_kind(p)傳回記錄p位整數時,所應宣告的kind值。selected_real_kind(p,q)傳回記錄p位有效位數,指數達到q的浮點數所需的kind值。,5 宣告的其它補述,kind 的使用,5 宣告的其它補述,kind 的使用,