Jeofizik Format Deyimleri ( örnekler ) Kontrol Komutları Bildiri Komutları Fonksiyonlar ve Alt Programlar Format Deyimleri Ö rnekleri; I tipi (Tamsay lar i ç in kullan l r ve (Iw) olarak g ö sterilir, ? Bellek De ğeri Format Tan m Ç k ş Alan +23 I4 bb23 -371 I5 b-371 +12345 I5 12345 -12345 I5 ****** 0 I3 bb0F Tipi (Ger ç el Say lar i ç in kullan l r Fw.d ş eklinde g ö sterilir) Bellek De ğeri Format Tan m Ç k ş Alan +12.3456 F7.3 b12.124 +25.6789 F10.3 bbbb25.679 -0.0123 F6.3 -0.012 00 F6.2 bb0.00 -135.642 F6.2 ****** +35.12 F4.2 **** w ;toplam karakter say s n , d ondal k hanerlerin say s d r. Say lar tan mlanan alan i ç inde sa ğdan hizalan rlar, pozitif say lar i ç in w >= d+1 negatif say lar i ç in w >= d+2 olmal d r. Giri ş te say lar noktas z yaz lm ş ise, sa ğdan itibaren d ondal k k sm , w-d tamsay k sm olarak bilgisayara aktar l r. Ondal kl say lar ç k ş ta her zaman noktal , d ondal k haneli ve sa ğa yana ş k yaz l r. Say n n bellek de ğerinde ondal k hane say s d ’ den b ü y ü kse k üçü k haneler kesilir ve son hane yuvarlat l r, d ’ den k üçü kse eksik haneler s f r ile doldurulur. Ondal kl k s m tan mlanm ş alana yaz lam yorsa alan * i ş areti ile doldurulur. E Tipi ( Ü sl ü Ger ç el Say lar i ç in kullan l r Ew.d ş eklinde g ö sterilir) Bellek De ğeri Format Tan m Ç k ş Alan +13.5628 E11.5 b.13563Eb02 -13.5628 E11.5 -.13562Eb02 +0.005246 E8.3 .525E-02Kontrol Deyimleri; Program ak ı ş ı n ı göstermek için kullan ı lan ? deyimlerdir. Bilgisayar, Fortran deyimlerini normal olarak kaynak programda yaz ı ld ığı s ı rada gerçekle ş tirir. Ancak çözümü istenilen baz ı problemler, programda zaman zaman atlama, geriye dönme, baz ı i ş lemleri tekrarlama, aritmetik veya mant ı ksal bir kar ş ı la ş t ı rman ı n sonucuna göre dallanma gerektirebilirler. Bu kontrol komutlar ı ş unlard ı r;Ko ş ulsuz GO TO ? Hesaplanm ı ş (Computed) GO TO ? Atanm ı ş (Assign ’ a ba ğ l ı ) GO TO ? Aritmetik IF ? Mant ı ksal IF ? DO ? CONTINUE ? RETURN ? CALL ? PAUSE ? STOP ? END ?Ko ş ulsuz GO TO Deyimi Bu deyim program i ç ince herhangi bir ko ş ula ba ğl kalmaks z n istenilen komuta ge ç ilmeyi sa ğlar; Genel G ö sterimi; GO TO N ( N ayn program i ç erisinde bulunan herhangi bir deyim numaras d r) Program n uygulan ş nda bir ş arts z GO TO deyimine gelinmi ş ise bir sonraki deyim yerine N numaral deyimdeki i ş lem ger ç ekle ş tirilir. N numaral deyim ş arts z GO TO deyiminden ö nce veya sonra tan mlanm ş olabilir. Ö rnek: GO TO 33 .......... 23 X= (A** +B**) ............ 33 Y=A/5. ............Hesaplanm ş GO TO Deyimi Ko ş ulsuz GO TO komutu ile bir tek deyime atlama ? olanag m z vard r , ancak, belirli ko ş ullar n ger ç ekle ş mesi durumuna ba ğl olarak birden fazla deyimden herhangi birine y ö nelmemiz gerekebilir, bu durumda Hesaplanm ş GO TO deyimi kullan l r. Genel Format : GO TO (N1,N2,N3,.......NI), K Burada N1,N2,N3,... NI, ayn program i ç erisindeki deyim numaralar , ve K bir tam say de ği ş kenidir. (1<= K <=I) K tam say de ği ş kenin ald ğ de ğer NJ ise kontrol NJ numaral deyime ge ç er. N1,N2,N3,...NI numaral deyimlerin ayn program i ç erisinde bulunmas zorunludur.Ö rnek : ? ..... K= 4 GO TO (11,25,33,34,50),K 11 ....... ...... 25 ....... ........ 33 ....... ....... 34 ....... ......... 50 ........ Deyiminin uygulanmas sonucu 34 numaral deyime atlanacakt r E ğer K de ği ş kenin de ğeri 1 den k üçü k veya listede yer alan deyim numaralar ndan b ü y ü k ise hi ç bir komuta y ö nelinmez kontrol bir sonraki deyime ge ç er.Atanm ş (Assign ’ a ba ğl ) GO TO Atanm ş GO TO deyimi ile yine bir ç ok deyimden herhangi birine y ö nlenme olana ğ sa ğlan r. Genel g ö sterimi GO TO K, (N1,N2,N3,...NI) ASSIGN deyimi tamsay bir de ği ş kene say atamas yapar. Genel Format ASSIGN d TO i ş eklindedir. Burada d Assign deyimini i ç ende bulunduran programda ger ç ekle ş tirilecek olan bir deyim numaras veya format numaras , i ise bir tam say de ği ş keninin ad d r.ASSIGN deyimi ile K de ği ş kenine atanan de ğer ne ise, o numaral deyimdeki i ş lem yap l r. ................. ASSIGN 10 TO K .............. GO TO K, (5,10,15,34) ............... 5 X=Y ................ 10 X=Z ................ 15 X=W ................ ** ASSIGN deyimi ve Atanm ş GO TO deyimi aras nda K tamsay de ği ş keninin de ğeri de ği ş tirilemez...Aritmetik IF Deyimi Bir aritmetik ifadenin de ğerinin S f r, Negatif veya Pozitif olmas durumunda herhangi 3 deyim numaras ndan birine y ö nlenmeyi sa ğlamak i ç in kullan l r. Genel G ö sterimi; IF ( aritmetik ifade ) N1,N2,N3 N1,N2 ve N3 ayn program i ç erisinde bulunan deyim numaralar d r. Aritmetik ifade de ğeri Negatif ise N1, S f r ise N2, Pozitif ise N3 numarali deyime gidilir...N1, N2, N3 deyim numaralar ndan herhangi ikisi ayn olabilir........ IF (X-Y) 1, 2, 3 ........ 1 ........ 2 ........ 3 ........ IF (X – D*10) 23,56,32 23 ...... 56 ..... 32 ..... IF (X) 5,5,14 5 ......... 14 .......LOGICAL (Mant ksal) IF Mant ksal bir ifadenin do ğru veya olu ş una g ö re ba ş ka bir deyime y ö nlenmeyi veya y ö nlenmemeyi sa ğlar. Mant ksal ifadelerin sonu ç lar .TRUE. (do ğru) veya .FALSE. (yanl ş ) olabilece ğinden bu deyim yard m ile ancak iki y ö nl ü bir y ö nlenme yap labilir. Genel G ö sterimi: IF (mant ksal ifade) FK ş eklindedir, burada FK uygulanabilir bir Fortran Deyimidir. IF deyimindeki FK bir DO deyimi veya bir ba ş ka IF deyimi olamaz. Mant ksal ifadenin sonucu .TRUE. ise FK deyimi uygulan r aksi durumda yani mant ksal ifadenin sonucu .FALSE. ise FK komutu atlan r ve bir sonraki deyim uygulan r.......... IF (X.EQ.Y) A=4.2 ......... ......... IF (X.LE.Y) GO TO 5 .......... 5 A=A+3IF-THEN-ELSE-END IF (Block IF) Blok IF deyimi END IF deyimi ile birlikte kullan ı lan bir deyimdir gerekti ğ inde ELSE IF ve ELSE deyimleri ilede kullan ı labilir. Genel Gösterimi IF (m) THEN Burada m herhangi bir mant ı ksal (logical) ifadedir. Blok IF deyimi, deyimden sonraki ilk deyim ile ba ş lar son ELSE IF, ELSE veya END IF deyiminden önceki deyimde biter. Bir IF blo ğ unun içinden bir ba ş ka IF blo ğ una atlanamaz. E ğ er m nin de ğ eri do ğ ru ise IF blokundaki ilk deyimden ba ş layarak s ı rayla deyimler uygulan ı r, E ğ er m nin de ğ eri yanl ı ş ise bir sonraki ELSE IF, ELSE veya END IF deyimlerine geçilir, asla bir DO döngüsü ile kesilemez. END IF deyimi de IF Blo ğ unu bitirmek için kullan ı l ı r.....Ö rnek (1) IF (A.GT.B) THEN .......... END IF Ö rnek (2) INTEGER :: SAYI READ(*,*) SAYI IF (MOD(SAYI ,2) .EQ.0) THEN WRITE (*,*) SAYI, “ Sayisi Cift Sayidir” ELSE WRITE (*,*) SAYI , “ Sayisi Tek Sayidir” END IFDO Deyimi Program m z n belirli bir k sm n , istenilen say da tekrarlamak ve bir d ö ng ü ( ç evrim) olu ş turmam z gerekti ğinde DO deyimi kullan l r. Ç o ğunlukla indisli de ği ş kenler le olan i ş lemlerde b ü y ü k kolayl k sa ğlar, DO Genel G ö sterimi; DO K I=N1,N2,N3 ş eklindedir. Burada K bir deyim numaras n , I bir tam say de ği ş keni ve N1,N2,N3 ise tamsay veya ger ç elsay de ği ş kenleri g ö sterir.DO K I=N1,N2,N3 I: DO D ö ng ü s ü n ü n kontrol de ği ş kenidir. N1 : Kontrol de ği ş keninin ilk pozitif tamsay de ğeridir, N2 : Kontrol de ği ş keninin son tam say de ğeridir, N3 : Kontrol de ği ş keninin her ad mdaki art ş miktar n g ö sterir. (E ğer art ş de ğer 1 ise kullan lmayabilir.) DO 10 I =1,20,2 10 PRINT *, I,I**2 END DO De ğ i ş ken ilk ö nce N1 de ğerini al r, ilk d ö ng ü yap l r, ikinci d ö ng ü i ç in de ği ş ken N3 kadar art r l r ve yeni de ğer N2 ile kar ş la ş t r l r e ğer yeni de ğer N2 den b ü y ü kse i ş lem sona erer ve bir sonraki komuta ge ç ilir, e ğer de ği ş kenin de ğeri N2 den k üçü k ise i ş lemler devam eder. DO Deyimi Kullan l rken Uyulmas Gereken Kurallar 1. N1, N2 ’ den b ü y ü k olsa bile d ö ng ü bir kez I=N1 i ç in uygulan r 2. Kontrol De ği ş keni (I) DO deyimi i ç inde de ği ş tirilemez ancak indis olarak kullan labilinir. ........ M = 2 DO 5, I = M,5 M = I + 1 X = A(I)*B(M) 5 CONTINUE ........ ............ 3. DO d ö ng ü s ü i ç inde bir ba ş ka DO d ö ng ü s ü kullan labilir, Bu durumda ö nce i ç erideki DO d ö ng ü s ü tamamlan r, sonra d ş ar daki d ö ng ü ger ç ekle ş tirilir. İ ç teki d ö ng ü ile d ş taki d ö ng ü n ü n biti ş deyimleri ayn olabilir. Etki alanlar birbirini kesen DO d ö ng ü leri kullan lmaz. DO 10 I = 1,N DO 100 K = 1,N,2 DO 15 J = 1,M DO 105 L = 1,M,3 ....... ...... ........... ......... ....... ...... ........... .......... 15 CONTINUE 100 CONTINUE 10 CONTINUE 105 CONTINUE 4. DO d ö ng ü s ü bittikten sonra kontrol de ği ş keni ba ş ka bir ama ç la tekrar kullan labilir. 5. N1,N2 ve N3 de ği ş kenleri tamsay de ği ş keni olabilir ancak herhangi bir aritmetik ifade olamaz, Tamsay de ği ş keni olmalar durumunda DO d ö ng ü s ü nden ö nce tan mlanm ş olmalar gerekir ve de ğerleri d ö ng ü i ç erisinde de ği ş tirilemez 6. DO d ö ng ü s ü i ç inde herhangi bir fortran deyimi kullan labilir.Fakat d ö ng ü n ü n son deyimi ko ş ulsuz veya assign'e ba ğl GO TO, blok IF, ELSE IF, ELSE, END IF,STOP,RETURN ,END , aritmetik IF,l ojik IF veya bir ba ş ka DO deyimi olamaz.Bundan ka ç nmak i ç in genelde DO d ö ng ü s ü n ü n son deyimi olarak CONTINUE deyimi kullan l r. CONTINUE Deyimi Continue deyimi, Fortran Programlar nda her zaman gerekli de ğildir. Genellikle DO d ö ng ü lerinin son komutu olarak g ö r ü l ü , program n ç al ş mas nda etkili br rol ü yoktur. Genel G ö sterimi M CONTINUE ş eklindedir Burada M; DO d ö ng ü s ü n ü n son deyim numaras d r. Kontrol bu deyime geldi ğinde hi ç bir i ş lem yap lmaks z n DO d ö ng ü n ü n ba ş na gidilir.DO 30 J=2,N B(J) = NM(J-1) + NM(J+1) INC = INC+1 IF (NPAR(J).LT.MAX) GO TO 30 K=J-1 30 CONTINUERETURN Deyimi Bu deyim ile alt programdan ( SUBROUT İ NE ) ana programa dönü ş sa ğ lan ı r. Genel Gösterimi; RETURN ş eklindedir. Her alt programda mutlaka bir RETURN deyimi olmal ı d ı r. (Bir alt programda birden fazla RETURN deyimi bulunabilir.)CALL Deyimi Bu deyim SUBROUTINE dedi ğimiz alt programlar ç a ğ rmak i ç in kullan l r. Genel G ö sterimi; CALL a CALL a(A1,A2,.....AN) dir... Burada a SUBROUTINE alt program n n ad n , A1,A2,...AN ise ger ç ek parametreleri (arg ü manlar ) g ö sterir.Arg ü manlar ana program ile alt program aras nda bilgi ak ş n sa ğlayan parametreler olup, basit veya indisli bir de ği ş ken, bir sabit veya bir ifade olabilir. CALL ORTALAMA (X,Y,Z) CALL GUNORT ((A(I+3,2),B)PAUSE Deyimi Program ı geçici olarak durdurmak için kullan ı l ı r. Geçici olarak durdurarak ara sonuçlar ı görülebilir, yanl ı ş lar incelenebilir. Genel Gösterimi; 1)PAUSE 2)PAUSE K 3)PAUSE “Mesaj ” Ş eklindedir. K, en çok 6 rakaml ı bir tam say ı sabiti, Mesaj da herhangi bir alfabetik ifadeyi gösterir. Bir program ı n de ğ i ş ik yerlerinde birden falz PAUSE deyimi kullan ı labilir. PAUSE 987456 PAUSE “Hata Var!!!!!! ” gibi STOP Komutu Bir program n uygulamas n tamamen durduran bir deyimdir. Her FORTRAN Program nda mutlaka bir STOP deyimi olmal d r. Ayn program i ç erisinde birden fazla STOP deyimi kullan labilir. Genel G ö sterimi: 1) STOP 2) STOP K 3) STOP “Mesaj” M; en fazla 6 rakaml bir tamsay sabitini, “Mesaj”;herhangi bir alfabetik ifadeyi g ö sterir. STOP deyimi program n uygulanacak son deyimidir. END deyiminden ö nce kullan l r. E ğer STOP M komutu kullan lm ş ise gecici olarak M saniye kadar durduktan sonra bir sonraki komuttan ba ş layarak uygulamaya devam eder.END Deyimi Bu komut kaynak program ı n en son komutudur. Derleyiciye program ı n bitti ğ ini bildirir. Her Programda mutlaka bir END deyimi olmal ı d ı r ve program ı n en sonunda olmal ı d ı r.