常數(shù)的申明方式
程序中所有處理的數(shù)據(jù)檀夹,有些事固定不變的常數(shù),如圓周率$\pi$和重力加速度$G$等策橘。
此時(shí)炸渡,程序員可以利用parameter來定義常量。
program main
implicit none
real pi
parameter(pi=3.1415926)
write(*,"(F4.2)") sin(pi/6)
end program main
在申明變量的時(shí)候丽已,parameter相當(dāng)于一個(gè)形容詞蚌堵,如果將形容詞和變量申明寫在一起時(shí),冒號(hào)不能省略沛婴。如:
real*8,parameter::pi=3.1425926 ! 此處冒號(hào)不能省略
除了parameter吼畏,F(xiàn)ortran90還有其他的形容詞。
變量初始化
Fortran90中要設(shè)置變量初值時(shí)嘁灯,直接把數(shù)值寫在變量的后面就可以了(當(dāng)然要用賦值語句P何谩!3笮觥)性雄。
program main
implicit none
integer::a=5
real(kind=8)::pi=3.14
complex::c=(12.6,8.01)
character(len=80)::string="good good study,day day up!"
write(*,*)a,pi,c,string(1:76)
end program main
Fortran77則要用Data命令來賦初值。data的語法是其后接所要設(shè)置的變量羹奉,并將變量用兩個(gè)斜杠封裝毅贮。
PROGRAM MAIN !Fortran77的程序
IMPLICIT NONE
INTEGER A
REAL B
COMPLEX C
CHARACTER*(80) string
DATA A,B,C,STRING/1,2.0,(1.0,2.0),'GOOD GOOD STUDY,DAY DAY UP!'/
WRITE(*,*)A,B,C,STRING(1:76)
END PROGRAM MAIN
等價(jià)申明EQUIALENCE
把兩個(gè)以上變量尘奏,聲明他們使用同一個(gè)內(nèi)存地址滩褥,就是“等價(jià)聲明”。使用等價(jià)聲明就是給同一個(gè)房間取幾個(gè)不同的名字炫加,當(dāng)其中一個(gè)變量的值發(fā)生變化時(shí)瑰煎,與它等價(jià)的變量的值也相應(yīng)的發(fā)生變化铺然。
integer a,b
equivalence(a,b) !聲明a,b使用同一塊內(nèi)存
類型轉(zhuǎn)化
在同一個(gè)表達(dá)式中,數(shù)據(jù)類型不同酒甸,會(huì)出現(xiàn)什么現(xiàn)象魄健?答案是,編譯器會(huì)自動(dòng)把數(shù)據(jù)類型轉(zhuǎn)化插勤,形成統(tǒng)一的數(shù)據(jù)類型在進(jìn)行計(jì)算沽瘦。但是并不能保證自動(dòng)轉(zhuǎn)化完全正確。所以最好使用強(qiáng)制類型轉(zhuǎn)換农尖。
INT(A) ! 將A轉(zhuǎn)換成整型
real(a) ! 將A轉(zhuǎn)換成浮點(diǎn)型
自定義類型
先看一個(gè)例子:
type::book ! 定義一個(gè)名叫book的新變量類型
character(len=80)::name 析恋!記錄輸?shù)拿?character(len=80)::author !記錄作者
integer::totalpage 盛卡!記錄全書的頁碼數(shù)
end type book 助隧!結(jié)束類型自定義
type::book中的冒號(hào)可以省略。在定義了新類型之后就可以使用它定義該類型的變量滑沧。
program main
implicit none
type::book ! 定義一個(gè)名叫book的新變量類型
character(len=80)::name 并村!記錄輸?shù)拿?character(len=80)::author !記錄作者
integer::totalpage 滓技!記錄全書的頁碼數(shù)
end type book 哩牍!結(jié)束類型自定義
type(book)::a
a=book("Gone with the wind","Margaret Munnerlyn Mitchell",1608)
write(*,*)a
end program main
KIND用法
kind主要用來聲明變量所占內(nèi)存的大小。變量占用內(nèi)存大小令漂,主要取決于變量的范圍和他的有效位數(shù)的要求膝昆。