You are on page 1of 36

Program Deyimlerinin Yazlmas

Program deyimleri 80 karakterlik bir alana belirli bir dzen ierisinde


yazlr,
1.~5. kolon; lk 5 kolona varsa deyim numaras yazlr. Deyim
numaralar en ok 5 rakaml iaretsiz tamsaylardan oluur, eer
deyim numaras yoksa bu alan bo braklr. 1.kolona C harfi
yazldktan sonra bunu takip eden 2.~72. kolonlara istenilen
aklayc bilgiler yazlr
6.Kolon; devam satrdr. 6.kolona geerli bir karakter yazarak deyimin
devamn bir alt satra yazabiliriz.
7.~ 72. Kolon; Bu alana FORTRAN deyimleri yazlr. Deyimi
yazmaya alan ierisinde istenilen herhangi bir yereden balanabilir.
73.~80. Kolon; Bu alan bilgi alandr, bu alandaki bilgiler derlenmez
ama program listesinde grnr. Baz tanmlayc bilgiler bu alana
kaydedilir veya bu alan bo braklr.
Yardmc Bellek (Dosya(FILE))
Kullanm
Giri k deyimleri, bilgisayarn merkez ilem birimi ile
d ortam, ve/veya yardmc bellek birimleri arasnda bilgi
alveriini salayan deyimlerdir.
Genel Gsterimi;
READ(k,n) (Deikenler)
WRITE (k,n) (Deikenler) eklindedir.
k: giri/k biriminin veya dosyann(FILE) numarasn gsteren
tamsaydr.
n: Okunacak veya yazlacak deikenlerin trn ve d ortamda
yerleme biimini gsteren ilgili FORMAT deyiminin numaras
Deikenler: Okunacak veya yazlacak basit veya indisli
deikenlerin listesidir
Dosya (FILE) Ama
Fortranda yardmc bellek (Dosya/FILE) yaratma yada
yaratlm olan bir dosyay ama ilemi iin OPEN deyimi
kullanlr.
Genel Gsterimi:
OPEN (UNIT=nof, FILE=fname, STATUS=st,
ACCESS=ac, FORM= ft, RECL=rl) eklindedir......
OPEN (UNIT=nof, FILE=fname, STATUS=st, ACCESS=ac, FORM= ft, RECL=rl)
nof : Yaratlacak ya da alacak dosyann (FILE) numarasdr. Bulunmas
zorunludur.
fname: Yaratlacak ya da alacak dosya (FILE) addr.
st : Herhangi bir dosya (FILE) daha nce yaratlm ya da ilk defa
yaratlacak olabilir. OPEN deyiminde st yerine NEW yazlrsa
dosyann(FILE) yeni yaratlmakta olduu, OLD yazlrsa daha nce
yaratlm olan bir dosyann (FILE) almakta olduu anlalr.
ac : FILEa (Dosyaya) eriim sral ya da dorudan olabilir. Belirtilmezse
sral eriim vardr.
ft : Dosya (File) ile ilgili yaplacak okuma ya da yazma ilemlerinde
format kullanlp kullanlmayaca belirtilir. Belirtilmezse formatsz
olarak yaplr.
rl : Kaytlarn uzunluklarn tanmlamakta kullanlr. En uzun kayt
uzunluu alnr.
OPEN(5,FILE=D:GEO1.DAT')
OPEN(13, STATUS='NEW', ACCESS='SEQUENTIAL',
FORM='FORMATTED', RECL=15)
Dosya (FILE) Kapama
Alm olan dosyalarn (FILE) kapanmas ilemi CLOSE
deyimi kullanlarak gerekletirilir.
Genel Gsterimi
CLOSE (Unit=nof) eklindedir,
CLOSE (Unit=nof, STATUS=st) eklinde de yazlabilir,
burada st Dosya kapatma trn gsterir. (DELETE ve/veya
KEEP durumlar sz konusu olabilir. Dosyay silmek iin
DELETE, saklamak iin KEEP yazlr.
CLOSE (11) veya CLOSE (11, STATUS=KEEP)
DOSYA (FILE)dan Okuma
Dosya (FILE) dan okuma yaplmas ilemi READ deyimi ile olur.
Genel Gsterimi;
READ (UNIT =nof, fno, END =sst, ERR =hst, REC =m)
Deiken Listesi
eklindedir.
nof : Okuma yaplacak dosyann numarasn
fno: Okuma iin kullanlan formatn deyim numarasn
sst : Okuma ilemi bittiinde ya da dosya sonunda devam edilecek
deyim numarasn
hst : Okuma srasnda ortaya kabilecek hatalar durumunda
devam edilecek deyim numarasn
m : Dosyada okuma yaplan kaydn numarasn
Deikenler Listesi: Birbirinden virglle ayrlm deerleri
okutulacak deikenleri gsterir.
READ (1,10,END = 20)GR,LR,NRM
10 FORMAT (f4.2,I4,I5)
........
........
READ(8,*) DATE
.........
DO 101 I=1,1440
READ(8,*,end=998)HOUR,MINUTE, FDATA(I)
...........
...........
998 CALL PLOT(0.,0.,999)
...............
..............
ALAME=0.35D12
SENSI=2.0D-10
TAIGI=5.0D-3
C
PI=3.141592653589793D0
C
OPEN(15,FILE=mag1.dat',status='old')
OPEN(26,FILE='res1.dat')
C
READ(15,553) UN,R,F,P
553 FORMAT(4F10.0)
Dosyaya (FILE) yazma
Herhangi bir dosyaya veri girilmek ya da yazlmak
istendiinde WRITE deimi kullanlr. Genel yazl:

WRITE(UNIT=nof, fn, ERR=sst,REC=m) Deikenler listesi


biimindedir.
nof: Yazlacak dosya numaras
Fn : Format deyim numaras
sst : Yazma hatalar durumunda devam edilecek deyim numarasn
gsterir
m : Dosyada yazlacak kaydn numarasn gsterir
WRITE(1,10, ERR=100, REC=5)D,E,F
WRITE(*,150)
write (*,'(a\)' ) 'Enter File Name for daily average '
read (*,'(a14)' ) fnm11
WRITE(*,150)
c
150 FORMAT(1X,//)
open ( 11, file=fnm11 , status='NEW')
c -----------------------------------------------------------
c main routine
c
NDAY=0
.......
WRITE(11,350) STN,dt1,dt2,npp
write(*,350) stn,dt1,dt2,npp
c WRITE( *,350) STN,f2,HH,NN4
350 FORMAT(1X,A4,3X,2(F15.5,3X),I5)
C
c CLOSE(10)
c
CLOSE(11)
STOP
END
Bildiri deyimleri, deikenleri tanmlamak,
deikenlere balang deeri vermek, programda kullanlan
indisli deikenler iin bellekte ayrlacak alanlar belirlemek
ve ortak kullanlacak alanlar hakknda derleyiciye bilgi
vermek iin kullanlan deyimlerdir.
ndisli deikenlerin kullanld programlarda, boyut
says, maksimum eleman says programn banda bir
bildiri deyimi ile verilmelidir.
Bildiri deyimleri, programn banda ve uygulanabilir
dier deyimlerden nce yazlmaldr.
Fortran Dilinde kullanlan temel
bildiri deyimleri unlardr;
DIMENSION
COMMON
EQUIVALENCE
Tip (Tr) Bildiri Deyimleri;
DATA
IMPLICIT
EXTERNAL
DIMENSION Deyimi
Bu deyim indisli deikenlerin boyutlarn ve her boyuttaki
maksimum eleman saylarn tanmlamak iin kullanlr
Genel Gsterimi:
DIMENSION X(K1), Y(K2),Z(K3)
X,Y,Z indisli deikenlerin adlar, K1,K2, K3 ise bunlarn
boyutlarn ve maksimum boyut saysn belirleyen ve
birbirlerinden virgller ile ayrlan bir veya daha fazla
tamsay sabitleridir.
DIMENSION deyimi kullanlrken
dikkat edilmesi gereken hususlar
Bir indisli deiken bir programda sadece 1 kez kullanlmaldr.
Bir programda birden fazla DIMENSION komutu bulunabilir
DIMENSION deyimi ile ayn trden olmayan indisli
deikenlerde tanmlanabilir.
DIMENSION deyiminde tanmlanan indisli deikenin tm
elemanlar ayn trden olmaldr.
Dizinin her bir eleman bellee ayn trden bir deiken olarak
atanr.
DIMENSION N(50), F(40,10)
DIMENSION LAT(40), LON(40), SON(15,20,4)
DIMENSION GH(120),SV(120),P(66),Q(66)
DIMENSION DJ(101,101,60,3),DH(41,41,3)
DIMENSION BVJ(101,101,60)
COMMON Deyimi
COMMON deyimi, ana program ile alt programlarnda
veya eitli alt programlarda bulunan basit veya indisli
deikenlerin bellekte ayn yeri paylamalar istenilen
durumlarda kullanlr.
COMMON deyimleri isimli veya isimsiz olarak
kullanlabilir.
Genel Gsterimi:
COMMON A1,A2,.....
COMMON /LK1/BLK,F,S
common /blk5/DJ(101,101,60,3),DH(41,41,3)
COMMON deyimi kullanlrken
dikkat edilmesi gereken hususlar
COMMON Deyimi, ayn alan paylamas istenilen
deikenlerin bulunduu btn ana ve alt programlarda
yazlmaldr.
Ana program ve alt programda grlen COMMON deyimi
listelerinin say, sra ve tr bakmndan uyumlu olmalar
gerekir.
ndisli deikenler iin kullanlan COMMON deyiminde
boyutlar belirtilmi ise ayrca DIMENSION deyimi
kullanlmaz......
C PROGRAM OF THE MAGNETIC ANOMALY
C *********************************
C ****** VER. 1.0 1995.07.19 ******
C *********************************
c ****** Ver. 3.001 2001.12.20 revised ***
C ****** again to the uniform version ***
C *************************************
C *** THE NEW PROGRAM OF 3D MOGI MODEL ***
C
IMPLICIT DOUBLE PRECISION(A-H,O-Z)
DIMENSION DX(2),DY(2),DZ(2)
c DIMENSION DJ(101,101,60,3),DH(41,41,3)
c DIMENSION BVJ(101,101,60)
DIMENSION SMTRX(3,3),DVJ(3),VJ(3)
C
COMMON /BLK1/ALAME,F,S
COMMON /BLK2/UN,LM,LN,LM2
COMMON /BLK3/DMGD,DMGW,DMGL,DMGH
common /blk5/DJ(101,101,60,3),DH(41,41,3)
common /blk6/BVJ(101,101,60)
EQUIVALENCE Deyimi
Bu deyim yardmyla ayn deiken alanna birden ok
deiken yerletirebilmemizi salar.
Genel Gsterimi;
EQUIVALENCE (X1),(X2),(X3),,,,, X(N)
Her X, ayn yeri paylamalar istenilen ve virgllerle
ayrlm olan iki veya daha fazla deikenlerin listesidir.
EQUIVALENCE deyimi kullanlrken
dikkat edilmesi gereken hususlar
EQUIVALENCE deyimi yardm ile dizinin tm
elemanlar dier bir veya birka dizinin elemenlar ile
zdelenebilir. Bu durumda dizinin sadece ilk
elemanlarnn zdelenmesi yeterlidir.
DIMENSION H(10),D(10), Z(10)
EQUIVALENCE (H(1),D(1),Z(1))
Tek boyutlu dizi elemanlar, birden fazla boyutlu dizi
elemanlar ile zdelenebilir, bylelikle ok boyutlu
diziler tek boyutlu dizi haline dntrlebilir.
DIMENSION A(5), B(5,5)
EQUIVALENCE ( A(1), B(1,1))
Ayn yeri paylamalar istenilen indisli deikenlerin tr
ayn olmaldr.
Ayn yeri paylamalar istenilen indisli deikenlerin
birden ok eleman EQUIVALENCE deyimindeki listede
bulunamaz.
Ayn yeri paylamalar istenilen indisli deikenlerin
boyut ve eleman saylar EQUIVALENCE deyiminde
belirtilmeksizin sadece adlar kullanlm ise birinci
elemanlar zdelenir.
EQUIVALENCE deyiminde ok boyutlu dizi elemanlar
yerine bunlarn tek boyutlu karlklar kullanlabilir.
DIMENSION H(19), D(15,12)
EQUIVALENCE (H(3), D(3,4))
Yerine
DIMENSION H(19), D(15,12)
EQUIVALENCE (H(3), D(8)) kullanlabilir.
PROGRAM EQUIV kt:
COMPLEX*16 CMPLX(2) TC(3)=C TC(4)=D
REAL*8 TAMPON(4)
CMPLX(1)=(1.0,2.0) CMPLX(2)=(3.0,4.0)
CHARACTER*8 STR
CHARACTER*1 TC(8) 8 karakterden oluan STR deikeni
EQUIVALENCE (TAMPON(1), CMPLX(1)) hafzada yine 8 karakterden oluan TC
EQUIVALENCE (STR, TC(1))
dizini ile ayn yeri paylaacaktr
STR = 'ABCDEFGH' 8 gerel saydan oluan
DO 10 I=1,4 TAMPON deikeninin 4
TAMPON(I)=I eleman CMPLX dizininin
10 CONTINUE 2 eleman ile elemitir.
PRINT *, 'TC(3)=', TC(3), ' TC(4)=', TC(4) CMPLX (1)in Gerel ve
PRINT *, 'CMPLX(1)=', CMPLX(1), ' CMPLX(2)=', CMPLX(2) Sanal ksmlar
TAMPON(1) ve
END
TAMPON(2) ile ayn yeri
paylamaktadr
< CMPLX(1) >< CMPLX(2) >
Memory ..==><===========><===========><==========><===========><==...
< TAMPON(1) >< TAMPON(2) >< TAMPON(3) >< TAMPON(4) >
TP (TR) Bildiri Komutlar;
Tip bildiri komutlar, deikenlerin, dizilerin ve
fonksiyonlarn trlerini tanmlamak iin kullanlrlar.
Deikenler tamsay veya ondalkl say trde iseler
bunlar programn banda tanmlama zorunluluu yoktur,
ancak I,J,K,L,M,N karakterlerinden herhangi birisiyle
balad halde bir deikeni program ierisnde ondalkl
say deikeni olarak tanmlamak veya I,J,K,L,M,N
dndaki herhangi bir karakter ile balad halde bir
deikeni tamsay deikeni olarak tanmlamak gerekirse
bu durum mutlaka program banda belirtilmelidir.
Ayrca, programda kullanlan ift duyarlkl, mantksal (Logical),
karmak (complex), ve alfabetik deikenler de mutlaka programn
banda tip bildiri deyimleri ile tanmlanmas gerekir.
Genel Gsterimi;
1. INTEGER Deiken Listesi
2. REAL Deiken Listesi
3. COMPLEX Deiken Listesi
4. LOGICAL Deiken Listesi
5. CHARACTER Deiken Listesi
6. DOUBLE PRECISON Deiken Listesi

Deiken Listesi; virgller ile ayrlm deiken adlar, deyim


fonsiyonlar veya dizi adlar olabilir
Bir deiken adnn mutlaka program banda ve DATA deyiminden
veya uygulanabilir deyimlerden nce tanmlanmas gerekir.
INTEGER X,Y,Z
REAL J,K,L,M
COMPLEX C,F
LOGICAL AB, CD(20,20)
CHARACTER BETA, U, TOTAL
DOUBLE PRECISION H(4,4)
[DOUBLE PRECISION; Ondalk hane says ok fazla olan
saylar iin kullanlan bir deyimdir. Saysal ilemler sonucu saynn
ondalk ksm normal hane saysndan fazla rakamlardan olumusa
say yuvarlatlr ve bu nedenle bir yuvarlatma hatas meydana gelir.
Byle durumlarda say programn banda ift duyarlkl (double
precision) olarak tanmlanrsa bellekte ayrlan yer iki katna
kartlm olur. Bu tip sabitlerin kullanlmas durumunda s E harfi
yerine D kullanlr, 13D-1, -5.36D+30, .745D-17 gibi....]
DATA Deyimi
Data deyimi, program ierisinde kullanlan basit veya indisli
deikenlere balang dee vermek iin kullanlr.
Genel Gsterimi:
DATA Liste1/D1,D2,D3,....DN/,Liste2/D2,..Dm/..
Burada, liste1 ve liste2 balang deerleri verilmesi istenilen
indisli veya indissiz deikenler listesi olup birbirlerinden
virgl ile ayrlm olarak yazlrlar. D1,D2,... Sabitleri
gsterir,
c X AND Y AXIS LENGTHS
DATA XAX/8.0/, YAX/4.8/
C
C... NUMBER OF DATA POINTS
DATA N1/ 8/
C
C... X ORDINATE VALUES
DATA XP1/0.0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,0.0,0.0/
C
C... Y ORDINATE VALUES
DATA YP1/37.57, 18.90, 9.691, 5.310, 3.502,
1 3.036, 3.0002, 3.0000,
2 45.03, 22.57, 11.39, 5.9179, 3.381,
3 2.430, 2.420, 2.238,0.0,0.0/
c................
DATA MONTH/31,28,31,30,31,30,31,31,30,31,30,31/
DATA Deyimi kullanlrken dikkat
edilmesi gereken kurallar;
Deikenler ve sabitler arasnda say ve tr ynnden
birebir uyum olmaldr
Bir COMMON deyiminde kullanlan deiken DATA
deyiminde gsterilemez

DATA I,J,H/35,46,5.9/X,Y/6.8,89.56/
Fonksiyonlar ve Alt Programlar

You might also like