Upload
dick
View
74
Download
0
Embed Size (px)
DESCRIPTION
Program Deyimlerinin Yazılması. Program deyimleri 80 karakterlik bir alana belirli bir düzen içerisinde yazılır, - PowerPoint PPT Presentation
Citation preview
Program Deyimlerinin YazılmasıProgram deyimleri 80 karakterlik bir alana belirli bir düzen içerisinde
yazılır,1.~5. kolon; İlk 5 kolona varsa deyim numarası yazılır. Deyim
numaraları en çok 5 rakamlı işaretsiz tamsayılardan oluşur, eğer deyim numarası yoksa bu alan boş bırakılır. 1.kolona C harfi yazıldıktan sonra bunu takip eden 2.~72. kolonlara istenilen açıklayıcı bilgiler yazılır
6.Kolon; devam satırıdır. 6.kolona geçerli bir karakter yazarak deyimin devamını bir alt satıra yazabiliriz.
7.~ 72. Kolon; Bu alana FORTRAN deyimleri yazılır. Deyimi yazmaya alan içerisinde istenilen herhangi bir yereden başlanabilir.
73.~80. Kolon; Bu alan bilgi alanıdır, bu alandaki bilgiler derlenmez ama program listesinde görünür. Bazı tanımlayıcı bilgiler bu alana kaydedilir veya bu alan boş bırakılır.
Yardımcı Bellek (Dosya(FILE)) Kullanımı • Giriş – Çıkış deyimleri, bilgisayarın merkez işlem birimi ile
“dış ortam”, ve/veya “yardımcı bellek birimleri” arasında bilgi alışverişini sağlayan deyimlerdir.
Genel Gösterimi;READ(k,n) (Değişkenler)WRITE (k,n) (Değişkenler) şeklindedir.
k: giriş/çıkış biriminin veya dosyanın(FILE) numarasını gösteren tamsayıdır.
n: Okunacak veya yazılacak değişkenlerin türünü ve dış ortamda yerleşme biçimini gösteren ilgili FORMAT deyiminin numarası
Değişkenler: Okunacak veya yazılacak basit veya indislideğişkenlerin listesidir
Dosya (FILE) AçmaFortranda yardımcı bellek (Dosya/FILE) yaratma yada
yaratılmış olan bir dosyayı açma işlemi için OPEN deyimi kullanılır.
Genel Gösterimi:
OPEN (UNIT=nof, FILE=‘fname’, STATUS=‘st’, ACCESS=‘ac’, FORM= ‘ft’, RECL=rl) şeklindedir......
nof : Yaratılacak ya da açılacak dosyanın (FILE) numarasıdır. Bulunması zorunludur.
fname: Yaratılacak ya da açılacak dosya (FILE) adıdır. st : Herhangi bir dosya (FILE) daha önce yaratılmış ya da ilk defa
yaratılacak olabilir. OPEN deyiminde st yerine NEW yazılırsa dosyanın(FILE) yeni yaratılmakta olduğu, OLD yazılırsa daha önce yaratılmış olan bir dosyanın (FILE) açılmakta olduğu anlaşılır.
ac : FILE’a (Dosyaya) erişim sıralı ya da doğrudan olabilir. Belirtilmezse sıralı erişim vardır.
ft : Dosya (File) ile ilgili yapılacak okuma ya da yazma işlemlerinde format kullanılıp kullanılmayacağı belirtilir. Belirtilmezse formatsız olarak yapılır.
rl : Kayıtların uzunluklarını tanımlamakta kullanılır. En uzun kayıt uzunluğu alınır.
OPEN(5,FILE=‘D:GEO1.DAT') OPEN(13, STATUS='NEW', ACCESS='SEQUENTIAL',
FORM='FORMATTED', RECL=15)
OPEN (UNIT=nof, FILE=‘fname’, STATUS=‘st’, ACCESS=‘ac’, FORM= ‘ft’, RECL=rl)
Dosya (FILE) Kapama• Açılmış olan dosyaların (FILE) kapanması işlemi CLOSE
deyimi kullanılarak gerçekleştirilir.
Genel Gösterimi
CLOSE (Unit=nof) şeklindedir,
CLOSE (Unit=nof, STATUS=‘st’) şeklinde de yazılabilir, burada st Dosya kapatma türünü gösterir. (DELETE ve/veya KEEP durumları söz konusu olabilir. Dosyayı silmek için DELETE, saklamak için KEEP yazılır.
CLOSE (11) veya CLOSE (11, STATUS=‘KEEP’)
DOSYA (FILE)’dan OkumaDosya (FILE) dan okuma yapılması işlemi READ deyimi ile
olur. Genel Gösterimi;READ (UNIT =nof, fno, END =sst, ERR =hst, REC =m)
Değişken Listesi şeklindedir. nof : Okuma yapılacak dosyanın numarasınıfno: Okuma için kullanılan formatın deyim numarasınısst : Okuma işlemi bittiğinde ya da dosya sonunda devam edilecek
deyim numarasınıhst : Okuma sırasında ortaya çıkabilecek hatalar durumunda
devam edilecek deyim numarasınım : Dosyada okuma yapılan kaydın numarasınıDeğişkenler Listesi: Birbirinden virgülle ayrılmış değerleri
okutulacak değişkenleri gösterir.
READ (1,10,END = 20)GR,LR,NRM10 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)
Dosya’ya (FILE) yazmaHerhangi bir dosyaya veri girilmek ya da yazılmak
istendiğinde WRITE değimi kullanılır. Genel yazılışı: WRITE(UNIT=nof, fn, ERR=sst,REC=m) Değişkenler listesi
biçimindedir. nof: Yazılacak dosya numarasıFn : Format deyim numarasısst : Yazma hataları durumunda devam edilecek deyim numarasını
gösterir m : Dosyada yazılacak kaydın numarasını gösterirWRITE(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 routinec 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)Cc CLOSE(10)c CLOSE(11) STOP END
Bildiri deyimleri, değişkenleri tanımlamak, değişkenlere başlangıç değeri vermek, programda kullanılan indisli değişkenler için bellekte ayrılacak alanları belirlemek ve ortak kullanılacak alanlar hakkında derleyiciye bilgi vermek için kullanılan deyimlerdir.
İndisli değişkenlerin kullanıldığı programlarda, boyut sayısı, maksimum eleman sayısı programın başında bir bildiri deyimi ile verilmelidir.
Bildiri deyimleri, programın başında ve uygulanabilir diğer deyimlerden önce yazılmalıdır.
Fortran Dilinde kullanılan temel bildiri deyimleri şunlardır;DIMENSIONCOMMONEQUIVALENCE
Tip (Tür) Bildiri Deyimleri;DATAIMPLICITEXTERNAL
DIMENSION Deyimi• Bu deyim indisli değişkenlerin boyutlarını ve her boyuttaki
maksimum eleman sayılarını tanımlamak için kullanılır• Genel Gösterimi: • DIMENSION X(K1), Y(K2),Z(K3)• X,Y,Z indisli değişkenlerin adları, K1,K2, K3 ise bunların
boyutlarını ve maksimum boyut sayısını belirleyen ve birbirlerinden virgüller ile ayrılan bir veya daha fazla tamsayı sabitleridir.
DIMENSION deyimi kullanılırken dikkat edilmesi gereken hususlar• Bir indisli değişken bir programda sadece 1 kez kullanılmalıdır.• Bir programda birden fazla DIMENSION komutu bulunabilir• DIMENSION deyimi ile aynı türden olmayan indisli
değişkenlerde tanımlanabilir.• DIMENSION deyiminde tanımlanan indisli değişkenin tüm
elemanları aynı türden olmalıdır.• Dizinin her bir elemanı belleğe aynı türden bir değişken olarak
atanır.
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 programlarında
veya çeşitli alt programlarda bulunan basit veya indisli değişkenlerin bellekte aynı yeri paylaşmaları istenilen durumlarda kullanılır.
• COMMON deyimleri isimli veya isimsiz olarak kullanılabilir.
• Genel Gösterimi: COMMON A1,A2,.....COMMON /LK1/BLK,F,Scommon /blk5/DJ(101,101,60,3),DH(41,41,3)
COMMON deyimi kullanılırken dikkat edilmesi gereken hususlar• COMMON Deyimi, aynı alanı paylaşması istenilen
değişkenlerin bulunduğu bütün ana ve alt programlarda yazılmalıdır.
• Ana program ve alt programda görülen COMMON deyimi listelerinin sayı, sıra ve tür bakımından uyumlu olmaları gerekir.
• İndisli değişkenler için kullanılan COMMON deyiminde boyutlar belirtilmiş ise ayrıca DIMENSION deyimi kullanılmaz......
C PROGRAM OF THE MAGNETIC ANOMALYC *********************************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 DeyimiBu deyim yardımıyla aynı değişken alanına birden çok
değişken yerleştirebilmemizi sağlar.
Genel Gösterimi;
EQUIVALENCE (X1),(X2),(X3),,,,, X(N)
Her X, aynı yeri paylaşmaları istenilen ve virgüllerle ayrılmış olan iki veya daha fazla değişkenlerin listesidir.
EQUIVALENCE deyimi kullanılırken dikkat edilmesi gereken hususlar
EQUIVALENCE deyimi yardımı ile dizinin tüm elemanları diğer bir veya birkaç dizinin elemenları ile özdeşlenebilir. Bu durumda dizinin sadece ilk elemanlarının özdeşlenmesi 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 özdeşlenebilir, böylelikle çok boyutlu diziler tek boyutlu dizi haline dönüştürülebilir.
DIMENSION A(5), B(5,5)
EQUIVALENCE ( A(1), B(1,1))Aynı yeri paylaşmaları istenilen indisli değişkenlerin türü
aynı olmalıdır.
• Aynı yeri paylaşmaları istenilen indisli değişkenlerin birden çok elemanı EQUIVALENCE deyimindeki listede bulunamaz.
• Aynı yeri paylaşmaları istenilen indisli değişkenlerin boyut ve eleman sayıları EQUIVALENCE deyiminde belirtilmeksizin sadece adları kullanılmış ise birinci elemanlar özdeşlenir.
• EQUIVALENCE deyiminde çok boyutlu dizi elemanları yerine bunların tek boyutlu karşılıkları kullanılabilir.
DIMENSION H(19), D(15,12)
EQUIVALENCE (H(3), D(3,4))
Yerine
DIMENSION H(19), D(15,12)
EQUIVALENCE (H(3), D(8)) kullanılabilir.
PROGRAM EQUIV
COMPLEX*16 CMPLX(2)
REAL*8 TAMPON(4)
CHARACTER*8 STR
CHARACTER*1 TC(8)
EQUIVALENCE (TAMPON(1), CMPLX(1))
EQUIVALENCE (STR, TC(1))
STR = 'ABCDEFGH'
DO 10 I=1,4
TAMPON(I)=I
10 CONTINUE
PRINT *, 'TC(3)=', TC(3), ' TC(4)=', TC(4)
PRINT *, 'CMPLX(1)=', CMPLX(1), ' CMPLX(2)=', CMPLX(2)
END
8 karakterden oluşan STR değişkeni hafızada yine 8 karakterden oluşan TC dizini ile aynı yeri paylaşacaktır
8 gerçel sayıdan oluşan TAMPON değişkeninin 4 elemanı CMPLX dizininin 2 elemanı ile eşleşmiştir. CMPLX (1)‘in Gerçel ve Sanal kısımları TAMPON(1) ve TAMPON(2) ile aynı yeri paylaşmaktadır
< CMPLX(1) >< CMPLX(2) > Memory ..==><===========><===========><==========><===========><==... < TAMPON(1) >< TAMPON(2) >< TAMPON(3) >< TAMPON(4) >
Çıktı: TC(3)=C TC(4)=D CMPLX(1)=(1.0,2.0) CMPLX(2)=(3.0,4.0)
TİP (TÜR) Bildiri Komutları;• Tip bildiri komutları, değişkenlerin, dizilerin ve
fonksiyonların türlerini tanımlamak için kullanılırlar. • Değişkenler tamsayı veya ondalıklı sayı türde iseler
bunları programın başında tanımlama zorunluluğu yoktur, ancak I,J,K,L,M,N karakterlerinden herhangi birisiyle başladığı halde bir değişkeni program içerisnde ondalıklı sayı değişkeni olarak tanımlamak veya I,J,K,L,M,N dışındaki herhangi bir karakter ile başladığı halde bir değişkeni tamsayı değişkeni olarak tanımlamak gerekirse bu durum mutlaka program başında belirtilmelidir.
• Ayrıca, programda kullanılan çift duyarlıklı, mantıksal (Logical), karmaşık (complex), ve alfabetik değişkenler de mutlaka programın başında tip bildiri deyimleri ile tanımlanması gerekir.
• Genel Gösterimi;1. INTEGER Değişken Listesi2. REAL Değişken Listesi3. COMPLEX Değişken Listesi4. LOGICAL Değişken Listesi5. CHARACTER Değişken Listesi
6. DOUBLE PRECISON Değişken Listesi
Değişken Listesi; virgüller ile ayrılmış değişken adları, deyim fonsiyonları veya dizi adları olabilir
Bir değişken adının mutlaka program başında ve DATA deyiminden veya uygulanabilir deyimlerden önce tanımlanması 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; Ondalık hane sayısı çok fazla olan sayılar için kullanılan bir deyimdir. Sayısal işlemler sonucu sayının ondalık kısmı normal hane sayısından fazla rakamlardan oluşmuşsa sayı yuvarlatılır ve bu nedenle bir yuvarlatma hatası meydana gelir. Böyle durumlarda sayı programın başında çift duyarlıklı (double precision) olarak tanımlanırsa bellekte ayrılan yer iki katına çıkartılmış olur. Bu tip sabitlerin kullanılması durumunda üs E harfi yerine D kullanılır, 13D-1, -5.36D+30, .745D-17 gibi....]
DATA Deyimi• Data deyimi, program içerisinde kullanılan basit veya indisli
değişkenlere başlangıç değe vermek için kullanılır.
Genel Gösterimi:
DATA Liste1/D1,D2,D3,....DN/,Liste2/D2,..Dm/..
Burada, liste1 ve liste2 başlangıç değerleri verilmesi istenilen indisli veya indissiz değişkenler listesi olup birbirlerinden virgül ile ayrılmış olarak yazılırlar. D1,D2,... Sabitleri gösterir,
c X AND Y AXIS LENGTHS DATA XAX/8.0/, YAX/4.8/CC... NUMBER OF DATA POINTS DATA N1/ 8/CC... 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/CC... 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 kullanılırken dikkat edilmesi gereken kurallar;Değişkenler ve sabitler arasında sayı ve tür yönünden
birebir uyum olmalıdırBir COMMON deyiminde kullanılan değişken DATA
deyiminde gösterilemez
DATA I,J,H/35,46,5.9/X,Y/6.8,89.56/
Fonksiyonlar ve Alt Programlar