Jeofizik Program Deyimlerinin Yazılması 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 indisli de ği ş kenlerin listesidirDosya (FILE) A ç ma Fortranda 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 Okuma Dosya (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,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)Dosya ’ ya (FILE) yazma Herhangi 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 ö sterir 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 ENDBildiri 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; DIMENSION ? COMMON ? EQUIVALENCE ? Tip (T ü r) Bildiri Deyimleri; DATA ? IMPLICIT ? EXTERNAL ?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,S common /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 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 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 Listesi 2. REAL De ği ş ken Listesi 3. COMPLEX De ğ i ş ken Listesi 4. LOGICAL De ği ş ken Listesi 5. 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/ 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 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 r Bir 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