[CENTER]Fortranın Tarihcesi Programlam Dilleri Programlama dilleri iki ana bolumde toplanabilira)Makinaya yonelmis diller ya da makina dilleri,(b)probleme yonelmis diller ve bunlara iliskin programlama sistemleri. Makine Dili ile Kodlama Problem once,bilgisayarin ozellikleri ve mevcut komutlarla yapabilecegi islemler dizisi biciminde ifade edilir;sonra programci tarafindan bu, bilgisayarin makina dilinde yazilir.Elde edilen makina dilindeki program gerekli veri ile birlikte,bilgisayarca dogrudan dogruya icra edilebilir ve aranan sonuclar bulunur.Ancak makina dili ile programlamada bazi onemli guclukler ortaya cikar.Butun komutlarin makina dili ile kodlanmasi; komutlarin makina tarafindan icra olunacak sirada yazilmasi ve yanlislikla ya da baska bir nedenle bazi komutlar atlanmissa, bundan sonraki butun komutlarin araya eklenenler icin otelenmesi ve adreslemenin yenilenmesi zorunlulugu;butun lojik ve program duzenlemenin programci tarafindan yapilmasi;programcinin kullandigi bilgisayari cok iyi anlamis olma geregi bu gucluklere orneklerdir. Programala Sistemleri Programala sistemleri genel olarak bir dil ve bir birlestirici ya da derleyici programdan olusur.Programlama dili,programci tarafindan kolayca ogrenilebilecek ve yazilabilcek,bilgi islem sisteminin yapim ozellikleri ve yapilacak islemler arasinda uzlasma saglayabilecek bir bicimde olmalidir.Bu dilin,diger herhangi bir dildeki gibi, dilbilgisi,noktalama ve yazma kurallari olacagi aciktir. Bir bilgisayarda programlama sistemlerinin bulunmasi makina dilinde programlamanin gucluklerini onemli olcude azaltir.Birlestirici program ve derleyiciler,programlarin makina dili disinda probleme yonelmis bir dilde hazirlanabilmesi olanagini saglar.Programlama dilinde makina diline ceviriyi,birlestirici ya da derleyici araciligi ile,bilgisayarin kendisi yapar. Programlama sisteminin dili makinaya ya da programa yonelmis olabilir. Sembolik Programalama Sistemleri Sembolik programlama sistemleri,programciyi makina dili ile kodlamanin gucluklerinden buyuk olcude kurtarir;fakat belli bir bilgisayara gore hazirlandiklarindan ve sistemin programlama dilinin kismen makinaya yonelik olmasindan dolayi makina dili duzeyinde calisan ,ogrenilmeleri oldukca uzun suren sistemlerdir ve her bilgisayar icin farklidir,diger bir deyisle makinaya baglidir;her bilgisayarda ayni dil kullanilamaz. Probleme Yonelmis Diller ve Derleyiciler FORTRAN,COBOL,ALGOL, vb. bu tur programalama sistemlerine bazi orneklerdir.Bu tur programlama sistemleri ile calismada,temel programin derleyici program araciligi ile bilgisayarca,belli kurallara uyarak makima dili programina cevrilmesine derleme denir.Derleme sirasinda rastlanan dil kurallarina aykiri olan hatalar ozel hata mesajlari ile bilgisayarca programciya bildirilir. Probleme yonelmis dillerin en onemlilerinden biri,bilimsel ve muhendislik arastirma ve uygulamalari icin gelistirilen ve en yaygin olarak kullanilan FORTRAN dilidir.FORTRAN adi,formul cevirisi anlamindaki, ingilizce "FORmula TRANslation" kelimelerinin ilk hecelerinden olusur.FORTRAN dili sayisal hesapla ilgili herhangi bir problemin kolaylikla ifade edilebilmesini saglayacak bicimde dusunulmustur.Komutlar ya da deyimler herhangi bir gucluk olmaksizin anlasilabilir ve yorumlanabilir.Bazi deyimler problemin matematiksel bagintilarina cok benzer. FORTRAN programlama sistemi 1954 yilinda J.W Backus tarafindan onerilmis ve ilk kez 1957 yili baslarinda IBM 704 Bilgi Islem Sisteminde kullanilmistir.1960 yilinda BURROUGHS kendi bilgisayarlari icin bir FORTRAN derleyicisi hazirlamistir.Gunumuze kadar cesitli FORTRAN programlama sistemleri gelistirilmis ve kullanilmistir.FORTRANII,FORTRANII-D,FORTRANIV bunlarin en onemlilerine orneklerdir.Genel olarak,bir sonraki islemin bir oncekine gore daha gelismis oldugu ve programlamada daha genis olanaklar sagladigi soylenebilir. FORTRANA GİRİŞ GİRİŞ Program bir komutlar ( deyimler ) dizisidir ve erhangi bir problemin cozumu icin kullanılan hesap duzeninitanımıdır . Cozumde bir bilgisayardan yararlanılacaksa , programın bilgisayar ozellikerine uygun ibr programlama dili ile yazılması gerekir . Bilgisayar , programdaki komutları aksi belirtilmedikce , yazıldığı sırada yerine getirir . Gereğinde program bir komutlar kumesinin belli duzende tekrarlanmasını yada duruma gore belirlidallanmaları sağlayacak ozel komutlarda icerebilir ; boylece programı kısaltmak mumkun olur . FORTRAN programlama dili oldukca basittir ve normal matematik diline cok yakındır. FPRTRAN sistemi , FORTRAN dili ve FORTRAN derleyicisinden oluşur . Sayılar Bİlimsel , muhendislik araştırmaları ve uygulamada yapılan hesapların coğunda değişik buyuklukte sayılarla calışılır . Guvenilir sonuclar elde edilmesi icin bu hesaplarda mumkun olduğu kadar cok anlamlı rakamı olan sayılarla calışılması gerekir. Sabit kelime uzunluklu ve değişken kelime uzunluklu bilgisayarda bir sayının gosterilmesi icin bellekte sabit sayıda pozisyon ayrılır . Bu sabit pozisyon sayısına incelik ( prezisyon ) denir. Sayılar ikiye ayrılır : tam sayılar , gercel sayılar . Tam sayılar desimal noktası olmayan sayılardır . Bunlarn buyukluk sınırlarıbilgisayar ozelliklerine bağlıdır. Gercel sayılar desimal noktalı ondalık sayılardır . Gercel sayıların bilgisayar belleğinde saklanmasından once bilgisayarca sayı duzenlenir . Diğer bir deyişle desimal nokta sayının sıfırdan farklı en onemli rakamın soluna kaydırılır ve gerekli duzeltme 10 un usleri şeklinde sayının yanına yazılır . Duzenlenmiş sayının kesirli kısmımantis , desimal noktanın kaydırıldığı hane sayısına us denir . Gercel sayıların buyukluk sınırları da bilgisayar ozelliklerine bağlıdır. Fortran Aritmetiği Bilgisayarla yapılan hesaplarda işleme giren buyukluklerin tamsayı yada gercel sayı olması , işlemlerin yapılışı ve sonuclar yonunden buyuk farklılıklar gosterir . Tamsayı aritmetiği , tamsayılarla yapılan işlemler anlamındadır ; her işlemin sonucu da tamsayı olacak bicimde kesilir , yuvarlatma yapılmaz . Kesme işlemi oncelik sırasına gore yapılan butun işlemler icin soz konusudur . Bu nedenle bu tur aritmetik işlemlerin yapılış sırası ve parantezler cok onemlidir . Tamsayılar programlarda eleman numarası , indis, vb. amaclar icin kullanılır . Aritmetik işlemler coğunlukla gercel sayılarla yapıldığından tamsayı artimetiğinin bu ozelliği bir sakınca değildir. Gercel sayı aritmetiği , gercel sayılarla yapılan işlemler anlamındadır . Burada kesirler prezisyon hanesi kadar rakamla gosterilir ; diğer hanerler bilgisayar ozellikerline gore ya kesilir , ya da yuvarlatılır . Kesme hataları ve diğer sayısal hesap yontemleri konusudur. Fortran Alfabesi FORTRAN alfabesi 10 numerik , 26 alfabetik ve 13 ozel karakterden oluşur . KARAKTERLER SİMGE / ANLAM Numerik 0 1 2 3 4 5 6 7 8 9 Alfabetik A B C D E F G H I J K L M N O P R S T U V W Y Z Ozel boşluk boşluk bırakma = yerine koyma + artı - eksi * carpı / bolu ( ac parantez ) kapa parantez . nokta , virgul ' apatrof " tırnak & ve işareti Fortran deyimleri Bir FORTRAN temel programı bir takım deyimlerden oluşur . Deyimle programın hesap duzeni ile ilgili olarak , bilgisayara bilgi verilmesini , işlemlerin yapılmasını ve icrasını , gerekli kararların verilmesini , sonucların dış ortama alınmasını sağlar Deyimerle bağlantı kurabilmek icin , deyimler numaralanabilir . İcra sırası yonunden deyim numaralarının sırasının bir onemi yoktur . Deyi numaraları sadece hesap duzeninin gereği olarak bu deyimlerle dallanabilme olanağı sağlar ; iki deyime aynı numara verilemez . Fortran İsimleri Fortran dilinde dilinde indissiz ve indisli değişkenlere , FORTRAN arşiv fonksiyonların , aritmetik deyim fonksiyonlarına , FUNCTİON altprogramlama isimle verilir FORTRAN isimerl birincisi numerik olmayan 1 - 6 alfabetik ya da numerik karakterden oluşur ; ozelkarakterler kullanılamaz . Aynı isim birkac elemana verilemez . Komutlar icin ayrılan ozel kelimeler FORTRAN ozel ismi olarak kullanılamaz DEYİMLER VE SAYISI GOREVİ ADLARI Aritmetik deyimler yapılacak işlemleri denetler değişken = ifade Giriş Cıkış deyimleri Dış ortamla bilgisayararasında bilgi alışverişi sağlar READ WRITE FIND FORMAT REWİND BACKSPACE ENDFILE REDREAD NAMELIST Yonetim deyimleri Programdaki deyimlerin icra sırasını yonetir Şartsız GO Hesaplanmış GO TO Atanmış GO TO Aritmetik IF Mantıksal IF DO CONTINUE pause STOP END Bildiri deyimleri Derleyiciye bilgi verir DIMMENSION COMMON EQUIVALANCE IMPLICIT Tip deyimi EXTERNAL DATA Altprogram deyimleri Alt programları tanımlamaya ve kullanmaya yarar FUNCTİON SUBROUTİNE CALL RETURN ENTRY EXTERNAL BLOCK DATA Giriş Cıkış Deyimleri Giriş Giriş cıkış deyşmleri bilgisayarlarla dış ortam arasındaki bilgi alışverişini ve cevre bellekte bilgi saklanması yaada cevre bellekten bilgi alınması olnağını sağlar giriş cıkış unitesini ve ortamını , bilginin giriş ortamında yerleşme ve cıkış ortamında yerleştirilme bicimini , bellekte bilgi alışverişi yapacak data alanlarını belirtir . Giriş cıkş deyimleriile ilgili yardımcı deyiler şunlardır : READ deyimi WRITE deyimi FORMAT deyimi REWİND deyimi BACKSPACE deyimi ENDFILE deyimi REDREAD deyimi NAMELIST deyimi Bu deyimler aşağıda sırasıyla incelenecektir READ deyimi READ deyim dış ortamdan ve cevre belleklerden bilgisayara bilgi aktarılması olnağını sağlar . Bu deyim bilgisayara bağlı giriş unitesinden bilgi okunması durumunda READ ( i, n, l,) liste ve doğrudan ( rastgele ) erişimli disk kutuğunden bilgi okunması durumunda ise READ ( i = r, n, l) liste genel biciminde yazılır . i, r, n, l, ve liste simgelreinin anlamlarısırası ile şoyledir : i giriş cıkış unitesinumarasını belirten bir tam say sabit , yada kutuk belrtici birtamsayı sabit yada tamsatı değişkendir . B3700 sisteminde , i = 1,2...7 değerleri icin giriş cıkış ortamı şu uniteleri gosterir i UNİTE 1- Magnetik şerit unitesi 1 2- Magnetik şerit unitesi 2 2- Magnetik şerit unitesi 2 2- Magnetik şerit unitesi 2 5- Kart okuyucusu 6- Baskı makinası 7- Kart delici r bir doğrudan erişimli tutanak ( random record ) numarasıdır . Bir işaretsiz tamsayı değişken ya da pozitif tamsayı ifade olabilir " = " yerine " ' " işareti kullanılabilir n veri tipini ve dış ortamda yerleşme bicimini belirten iligili FORMAT deyimimin numarasıdır . Gİriş değiişken uzunluklu bir şerit kutuğunden ya da birdisk kutuğunden olursa n yazılmayabilir . bu durumda giriş blgilerinin okunacağı şerit yada disk kutuğu bir formatsız cıkış deyimi ile oluşturulmuş buşşunmalıdır . formatsız READ deyimi , girişin bir sıralı disk kutuğunden olması durumunda READ ( i, l) liste ve girişin bir doğrudan ( rastgele ) erişimli disk kutuğunden olması durumunda ise READ ( i = r, L) liste şeklinde yazılır. B3700 sisteminde doğrudan erşimli disk kutuğunden veri okuma durumunda bir FILE kartı kullanılmalıdır . l giriş cıkışsırasında uygunluk hatası ( parity error ), yada kutuk sonu ( End-of-Fıle )durumu ile karşılaşırsa yapılacak eylemi ve dallanılacak değimi belirtir ;n1 , n2 deyim numaraları olmak uzere ERR = n1 END = n2 ERR = n1 , END = n2 END =n2 , ERR =n1 bicimlerinde yazılır . Veri okuma sırasında , sistemin bulup duzeltemediği bir uygunluk hatası ortaya cıkarsa kontrol n1 numaralı deyime ; kutuk sonu durumu ile karşılaşırsa kontrol n2 numaralı deyime dallanır . Kutuk sonu durumu ile , ( a ) 1. kolonda bir gecersiz karakter bulunan bir kart okuma ; ( b ) şerit yada diskte yazılı son kayıttan daha otesini okuma cabası ; ( c ) diskin yazılı olmıyan alanından bir kayıt okuma sırasında sırasındakarşılaşılır . READ deyiminin yazılışında l kısmı bulunmayabilir . Bu durumda deyim READ ( i, n,) liste yada READ ( i = r, n,) liste biciminde yazılır . Bu deyimlerin icrası uygunluk hatası ve kutun sonu durumları ile karşılaşıldığında icra durur. Liste indissiz yada indisli değşken ve dizi isimlerinden oluşur bunlar d1, d2, ... , dn şeklinde araları virgulle ayrılmış olarak sıra ile yazılır . Listedekideğişkenlere dış ortamdan okunan değerler atanır. Bu nedenle listedeki değişkenlerle dış ortamdan okunan değerler sıra , sayı ve mod bakımından uyuşmalıdır . Listedeki dizi imi indissiz yazılmışsa , bu dizinin tumu kolon duzeninde okunur . WRİTE deyimi WRITE deyimi bilgisayar belleğinden dış ortama ve yardımcı bellek unitelerine bilgi aktarma olanağı sağlar . Bu deyim bilgisaya bağlı bir cıkış aygıtından bilgi alınması durumunda WRITE ( i, n, liste ) genel biciminde yazılır . Deyiminyazılışında n bulunoayabilir Formatsız Write deyimi , bir şerit ya da sıralı disk kutuğu cıkışında WRITE ( i) liste ve doğrudan ( rastgele ) erişimli disk kutuğu cıkışında ise WRITE ( i = r) liste biciminde yazılır . Buradaki i , r , n ve liste simgelerinin anlamlar ve ozellikleri READ deyiminde ayrıntıları ile acıklandığı gibidir . FORMAT deyimi Format deyimi bilgisayara bilgi giriş cıkışlarında data ozelliklerini , yani verinin ne tipte ve ve ne uzunlukta olduğunu belirtir . Bir yadadaha cok giriş cıkış deyimi ilr ilişkili olan bu deyim n FORMAT ( f1 , f1 , ..f1) şeklinde yazılır . Buradan n giriş cıkış deyimlerinde belirtilen deyim numarası ve f1 , f2, .. , fn ise FORMAT deyimin bağlı olduğu giriş cıkış listesindeki değişkenlerin değerlerinin hangi formda donuşturuleceğini gosteren alan bildirileridirler . Alan bildirileri ve giriş cıkış listesindeki değişkenle sayı , sıra ve mod bakımından uyuşmalıdırlar . Format deyimi icra edilemez turde bir deyimdir ; fonksiyonu amac programda bilgiiletimini istenen duzeydegercekleştirmekti . Bu nedenle Temel Programın icinde herhangi bir yerdebulunabilir ; yalnız DO cevrimi kapsamının son deyimi olamaz . FORMAT deyimindeki alan bildrilerinin gosterdiği karakterlerin toplamı , bir satır icin en cok bir kayıt birimi kadar olabilir . Kayıt birimi IBM kartı icin 80 , daktilo kağıt şerit icin 87 , B9247 baskı makinası icin ise 132 karakter olarak sınırlandırılmıştır . Ceşitli alan bildirilerinin yazılışları , giriş ve cıkış icin kullanıldıklarındda donğşturme ozellikleri ve FORMAT deyimine ilişkin ayrıntılar aşağıda acıklanacaktır . I tipi alan bildirisi Tamsayı buyukluklerin giriş cıkışında kullanılır ; W alan uzunluğunu gostermek uzere Iw şeklinde yazılır GİRİŞ . Veri tamsayı sabit olmalıdır ve sayı ala icinde sağdan hizalanmalıdır . Sayının işateti de w icindedir . Tamsayı buyukluğu alan uzunluğunu aşmamalıdır . CIKIŞ . Cıkış listesindeki bu alan bildirisine ilişkin tamsayı değişkeninin değeri , dış ortamda belirtilen kayıt ortamındaki alan icine sağdan hizalanarak yazılır . Artı işareti basılmaz , eksi işareti ise basılır . Tamsayı buyukluğunun değeri ( işareti ile birlikte ) w den buyuk bir sayı ise basılmaz , alan * işareti ile doldurulur . F tipi alan bildirisi Gercel sayıların giriş cıkışı icin kullanılır . w alan uzunluğu , d sağdan itibaren desimal noktanın yerini gostermek uzere Fw.d şeklinde yazılır . w alan uzunluğu secilirken işaret ve desimal nokta icin de birer yer duşunulmelidir ;bu nedenle w >= d + 2 olmalıdır . Giriş . veri gercelsayı olmalı ve sayı alan icinde sağdan hizalanmalıdır . Alan bildirisinde desimalsayını yeri belirtildiğinden , verilerde desimal nokta yazılmayabilir . Verideki desimal noktanın yeri alan bildirisinde gosterilene gore onceliklidir . Buna gore F10.0 alan bildirisi , herhangi bir ussuz gercel sayının bilgisayara aktarılması olanağını sağlar . E tipi alan bildirisi Uslu gercel sayıların giriş cıkışı icin kullanılır : Ew.d şeklinde yazılır . w alan uzunluğunu , d bu alanda E den itibaren desimal noktanın yerini belirtir GİRİŞ . Alan icinde desimal noktanın yeri bildirildiğinden veride desimal nokta yazılmayabilir . Verideki desimal noktanın yeri alan bildirisinde gosterilene gore onceliklidir . Buna gore E10.0 alan bildirisi , herhangi bir uslu gercel sayının bilgisayara aktarılabilmesi olanağını sağlar . Uslu gosterim durumunda verinin alan icinde sağdan hizalanması gerekir . CIKIŞ . Dış ortamda w sayıda yer ayrılır ; bunun icinde işaretve desimal nokta icin birere yer ve us icin dort yer olmak uzere toplam 6 yer vardır . w - d >= 6 olmalıdır ; bu kurala uyulmazsa cıkış alanı * işaretleri ile doldurulur . Gercel sqayı prezisyonu f olduğuna gore , dıl ortamda işaret ( pozitif ise basılmaz ) , desimal nokta ve ussu belirtmek icin gerekli 6 karakterden başka , f > ( w - 6 ) ise f anlamlı hane , f >= ( w - 6 ) ise ( w - 6 ) anlamlı hane gorunecektir . Alan bildirisinde bir n olcek katsayısı kullanıldığında , bu sayı ile ile us kısmı arasında bir desimal duzenleme yapma olanağı verir . n = 1 olmalıdır ; başta boşluklar olabilir . Giriş alanındaki ilk karakter TRUE ( doğru ) icin T ve FALSE ( yanlış ) icin F olmalıdır . Bunları izleyen karakter goz onune alınmaz . Giriş ALanında T ya da F yoksa bu bilgisayar belleğine FALSE olarak aktarılır . G tipi alan bildirisi Tamsayı , gercel cift incelikli , kompleks ve mantıksalbuyukluklerin giriş cıkışında kullanılabilecek bir genel alan bildirisidir : GW.d şeklinde yazılır . w alan uzunluğunu d desimal noktanın yerini belirler . GİRİŞ . Giriş verisiI ya da L tipinde ise , Gw.dalan bildirisi Iw ya da Lw olarak calışır .d kısmı goz onune alınmaz ; F , E ya da D tipinde ise Fw.d , Ew.d ya da Dw.d biciminde calışır . Giriş değişkeni kompleks ise gercek ve sanal kısımlar icin iki ayarı G alan bildirisi gereklidir CIKIŞ . I yada L tipi buyuklerin cıkışında Iw olarak calışır gercel sayılar durumunda cıkış bicimi sayıların buyukluğune bağlı olarak aşağıdaki gibi calışır Değişkenin buyukluğu Eşdeğer donuşturme 0,1 b değişken uzunluğu ( byte cinsinden ) ise , alfanumerik karakter dizisi cıkış ortamına soldan hizalanarak konulur ve sağdan b - w karakter kesilir . H tipi cıkış bildirisi Bir karakter dizisini giriş cıkışı icin kullanılır : wHs şeklinde yazılır . w alan uzunluğunu , s karakter kumesini gosterir . Aynı işlem karakter dizisinin alan uzunluğunu belirtmeden 's' "s" şeklinde yazarak da gercekleştrilebilir . GİRİŞ . w sayıda karakter yerine s karakter kumesi gecer ; boşluk karakterleri de bunun icindedir . CIKIŞ . Bildiriden sonra gelen w sayıda karakter , ya da bir giriş işlemi sonucu onun yerine gecirilmiş karakterler dış ortamda gorunur . X tipi alan bildirisi Giriş cıkışta boşlukları gostermek icin kullanılır : wX şeklinde yazılır . w alan uzunluğunu gosterir . Girişte w karakterlik yerin atlanmasını , cıkışta ise w sayıda karakterlik boşluk bırakılmasını sağlanır . T tipi alan bildirisi Giriş cııl listelerindeki verilerin ilk karakterlerinin bulunduğğu yeri belirlemekte kullanılır , n bu yeri gostermek uzere : Tn şeklinde yazılır . Baskı makinası ile cıkışta kullanıldığında veri gercekte ( n - 1 ) karakter konumundan başlar ; cunku kayıdın ilk karakteri şaryo kontrolu icin kullanılır . Olcek katsayısı F , E ve D tipi alan bildirileri ile birlikte , giriş cıkışta sayıları duzenlemekte kullanılır . Orneğin F tipi alan bildirisi ile , n olcek katsayısı olduğuna gore , nPFW.d şeklinde yazılır . Bu yazılım cıkışta kullanılmışsa dış ortamdaki sayı = bellekteki değeri X 10n olur . Olcek katsayısı pozitif ya da negatif olabilir . Duşunce geneldir ; giriş ve cıkışta gecerlidir . Ancak coğunlukla cıkışta kullanılır . Olcek katsayısı E tipi alan bildirisi ile kullanılırsa , girişte herhangi bir etkisi olmaz ; cıkışta mantis^n ile carpılır , us n kadar azaltılır Alan bildirilerinin ve grupların tekrarı Herhangi bir kayıt icindde n sayıda alanı aynı tipte yazmak icin ilgilialan bildirisinin onune n sayısına yazmak gerekir . n işaretsiz bir tamsayıdır . Eğer bir olcek katsayısıda kullanılıyorsa , bu tekrar sayısınında onunde bulunur . Alan bildiri gruplarının tekrarı ise bunu parantezler icine alarak onune n tekrar sayısı yazmaklar sağlanır. Grup tekrar sayısı belirtilmemişse bu grup giriş cıkış lises bitinceye kadar tekrarlanır . Parantezler icine alarak gruplama dokuz duzeyde olabilir alan tekrarı durumunun dışında FORMAT deyimi soldan sağa doğru yorumlanır . Giriş cıkış listesi bitmeden FORMAT deyiminin en sağındaki paranteze gelinmişse , diğer bir deyişle FORMAT deyimi bitmişse , denetim en son rastlana sol paranteze geri doner ; giriş cıkış listesi tamamlanıncaya kadar bu işlem tekrarlanır . Giriş cıkış listesi bitmesine rağmen FORMAT deyiminin en sağ parantezine , sonuna gelinmemiş olsa bile giriş cıkış deyiminin icrası tamamlanmış olur . Cok kayıtlı alan bildirileri FORMAT deyimi icindeki bir / işareti bir kayıtın bitip ikinci bir kayıta gecildiğini gosterir . Girişte / işaretinsen sonraki karakterler goz onune alınmaz . Cıkışta ise / işaretine rastlandığında kayıt bitirilir ve kalan cıkışbilgileri bir sonraki kayıta konulur . Girişte kayıt atlamak vecıkışta boş satır bırakmak icin ardışık / işaretleri kullanılabilir . Genel olarak n+1 sayıdaki / işareti n sayıda boş satır bırakılmasını sağlar İcra zamanında verilen format deyimi Herhangi bir formatlı giriş cıkış deyiminde numarası bulunan ilgili format deyimi A tipi alan bildirisi ile yazılır ; boylece alan bildirilerini icra zamanında veri gibi okuma mumkun olur . FIND Deyimi Bu deyim FIND ( F = r ) şeklinde yazılır . Okuma zamanından once bir tutanağın yuklenmesini sağlar . Tutanak tampon bellekte ( buffer ) değilse , Kullanılabilecek bir tampon bellek varsa , tutanağı iceren blokta okuma başlatılır ; yoksa FIND gozonune alınmaz . Bir READ deyimi icra edildiğinde , okunacak bir tutanak olup olmadığını anlamak icin tampon bellek kontrol edilir ; tutanak yoksa tutanağı iceren bloktaki READ başlatılır . REWİND deyimi Şerit ya da disk kutuphanelerinde kullanılan bir deyimdir; REWIND şeklinde yazılır . Bu deyimin icrası ikutuğunun başlangıc konumuna getirilmesini sağlar . i kutuğunun son referansı bir WRİTE deyimi ise , başlangıc konumuna donulmeden once , kutuk kapatılır . REWIND deyimi şerit ya da disk kutuklerinden başka yerde tanımsızdır . BACKSPACE Deyimi i kutuğunden gosterge m kaydında bulunuyorsa BACKSPACE deyiminin icrası kutuk gostergesinin bir onceki ( m - 1 ) . kayıda gelmesini sağlar . Bu deyim BACKSPACE i şeklinde yazılır ; yalnız magnetik şerit . disk yada kağıt şerit giriş kutukleri icin tanımlanmıştır . i kutuğu başlangıc konumunda ise , bu deyimin icrasının hicbir etkisi olmaz . ENDFILE Deyimi Bu deyim kutuğun kapatılmasını sağlar ve ENDFILE i genel biciminde yazılır . Yalnız şerit kutukleri icin tanımlanmıştır . Bir i kutuğunde WRITE deyimini izleyen bir ENDFILE deyimi varsa , bir kutuk sonu ( END - OF - FILE ) kayıdı yazılır ve şerit bir sonra yazılacak kayıt , kutuk sonu kaydını izleyecek bicimde konumlandırılır . i kutuğunde ENDFILE deyimi bir READ deyimini izlaerse , bitiş etiketlerine rastlanmışsa , şerit bir sonraki kutuk başlangıcına konumlandırılır ; bitiş etiketine raslanmamışsa geri sarılır . Kapatılmış bir kutukte BACKSPACE , ENDFILE , REWIND deyilerinden birinin icrası ile karşılaşırsa , bu deyim goz onune alınmaz . REREAD Deyimi Bu deyim herhangi bir kurukte okunan en son kayıda yeniden erişilmesini sağlar ; REREAD genel biciminde yazılır . İcra edilecek bir sonraki READ deyimi ile ilişkilidir ; son kayıdın kutukten okunmasını sağlar . REREAD deyiminden once gelmelidir . NAMELIST Deyimi NAMELIST deyimi değişken yada diziisimlarikumesinin bir tek isimle belirlenmesini ve giriş cıkışta READ ya da WRTİTE deyimi listesine gerek kalmaksızın giriş cıkış yapılabilmesini sağlar . Bu deyim NAMELIST / ad /i1 ,i2..../ ad2/in genel şeklinde yazılır . Burada her ad bir isim listeris tanıtıcısı , her i bri değişken ve dizi isimlerinden oluşan bir listedir . Bir değişken ya da dizi ismi , birden cok adi ile ilişkili oalbilir . GİRİŞ . NAMELİST deyimini izleyen bir READ deyimiyazarak sağlanır . Veri kutuğunun her kayıtının ilk karakteri goz onune alınmaz ; ilk kayıtın ikinci karakteri ise & işareti olmalıdır . READ deyimini izleyen tanıtıcı ad , & işaretinden sonra gelir . Veri kutuğunde ikinci bir & işaretine rastlandığında ( bunu bir end deyimi izler ) okuma durur . CIKIŞ. f yerine daha once bildirilmiş bir NAMELIST adı bulunan bir formatlı cıkış deyimi icra ederek cıkış yapılır . Cıkışta liste belirtilmez . KONTROL DEYiMLERİ *CALL DEYIMI Kontrolu bir subroutine altprogramina aktarir, Gercek argumanlarin ifadelerini degerlendirir, Gercek argumanlarla yapay argumanlari belirler. Genel formati: CALL ad [([arg1[,arg2][,arg3]....])] Burada ad,bir subroutine altprograminin veya bir ENTRY(giris) noktasinin adidir.Bu ad,FUNCTION,SUBROUTINE ve ENTRY deyimindeki yapma bir argumanin adi olabilir.arg, subroutine altprogrami tarafindan istenen gercek bir argumanin adidir.Bu arguman bir degisken,bir sabite,dizi elemani,dizi adi,aritmetik,lojik veya karakter ifade olabilir.Ayrica bir FUNCTION, SUBROUTINE adi olabilir veya CALL deyiminin bulundugu program biriminde bulunan ifa edilebilir bir deyimin deyim numarasinin basina (* ) gelerek bir arguman olusturulabilir. Eger gercek arguman yoksa parantez kullanilmaz.CALL deyimi kontrolu subroutine altprogramina aktarir ve CALL deyiminde bulunan gercek argumanlarin degerleri yerine yapay degiskenleri getirir. *CONTINUE DEYIMI Continue deyimi ifa edilebilir bir kontrol deyimidir,fakat ifanin sirasina etki etmez.Bu deyim DO dongusunun sonunu belirlemek amaciyla veya programda bir etiket gorevi icin kullanilir. Genel formati: CONTINUE Continue deyimi ifanin sirasina etki etmediginden kaynak programin herhangi bir yerinde kullanilabilir. Genellikle DO dongusunun son deyimi,kosulsuz veya assign'e bagli GO TO,blok IF, ELSE IF, ELSE , END IF, STOP, RETURN , END, aritmetik IF,baska bir DO deyimi veya lojik IF deyimi olamaz.Bundan kacinmak icin CONTINUE deyimi kullanilir. Ornek:Asagidaki program parcasindaki ilk CONTINUE deyimi etiket amaciyla ,ikinci CONTINUE deyimi ise DO dongusunun sonunu belirtmek icin kullanilmistir IF (A-B)15,20,15 15 X=A+B**2 20 CONTINUE . . DO 40 I=1,K KN(I)=X+I 40 CONTINUE . . *DO DEYIMI DO deyimi kendisinden sonra gelen ve belirlenen bir deyime kadar olan tum deyimleri tekrar tekrar ifa edilmesini saglar.Bu deyimler olarak adlandirilir. Genel formati: Araligin sonu DO degiskeni Baslangic degeri Son deger Artis DO d1[,]i=m1,m2 [,m3] Burada d1,DO deyiminin bulundugu programda ve DO deyiminden sonra gelen ifa edilebilen bir deyimin numarasidir.d1'den sonra gelen virgul secimliktir.i, DO degiskeni olarak adlandirilan bu degisken ,bir tamsayi,gercel veya cift duyarlikli bir degiskendir(dizi elemani olamaz) m1,m2,m3 bir tamsayi,gercel veya cift duyarlikli aritmetik ifadedir.m1 ,m2 ve m3 ifadelerinin degerleri ,eger gerekirse ,DO degiskeni i'nin tipine donusturulur. m3 secimliktir ve hicbir zaman sifir olamaz.Eger m3 belirtilmezse degeri 1 olarak alinir ve m3'den sonra virgul konmaz. Asagidaki kurallarin gecerli olmasi halinde DO dongusu icindeki deyimler ifa edilir m1,m2'den kucuk veya esit ve m3 sifirdan buyukse m1,m2'den buyuk veya esit ve m3 sifirdan kucukse Eger m1,m2 ve m3 arasindaki iliskilerden biri dogruysa ,ilk once DO dongusu icindeki ilk deyim ifa edilir.Bu anda i'nin baslangic degeri m1' dir.Her bir ardisik iterasyonda i'nin degeri m3 kadar artirilir.Iterasyon sayisi MAX(INT((m2-m1+m3)/m3),0) oluncaya kadar dongu devam eder. DO 5 IX=1,12,4 deyimi ile dongu m2-m1+m3)/m3=(12-1+4)/4=15/4=3,75 INT(3,75)=3 MAX(3,0)=3 kez tekrarlanir. Eger ilk anda i'nin degeri m2'yi gecerse iterasyon durur ve kontrol d1'den sonraki deyime gecer.DO'nun tamamlanmasindan sonra DO degiskeni i'nin son degeri m2'yi gecer. Eger (a) ve (b)'deki iliskilerden biri dogru degilse kontrol dogrudan d1'den sonraki deyime gecer. DO degiskeni DO dongusu icinde yeniden tanimlanamaz.Bununla birlikte , m1,m2 veya m3'un DO dongusu icindeki degerleri ,iterasyon sayisini degistirmeksizin yeniden tanimlanabilir. Dogru DO deyimleri DO 50,INT=1,5,2 DO 60X=BAS,BIT,ART DO 3,A=20,3,-3 DATA deyiminde ustu kapali belirtilen DO: Bir data deyimindeki ustu kapali belirtilen DO listesinin genel formati: (dliste,i=m1,m2[,m3]) Burada dliste, dizi eleman adlarinin ve ustu kapali belirtilen DO'larin listesidir.i,bir tamsayi degisken adi olup ustu kapali belirtilen DO degiskeni olarak adlandirilir. m1,m2 ve m3 degerlerinin herbiri bir tamsayi sabite veya bir tamsayi sabitenin adidir.Ayrica tamsayi sabite adlari veya tamsayi sabitelerden olusan bir ifade olabilir. m3 secimliktir,eger kullanilmazsa 1 olarak kabul edilir ve m3'den onceki virgul kullanilmaz. Ustu kapali belirtilen DO dongusunun tamamlanmasindan sonra DO degiskeni tanimsizdur ve bir DATA deyiminde ,atama deyiminde veya READ deyiminde degeri belirtilinceye kadar kullanilmaz. Ornek:15 boyutlu bir matrisin olusturulmasi DIMENSION A(15,15) DATA ((A(I,J),J=1,15), I=1,15)/225*0. DATA (A(I,I),I=1,15)/15*1. Bir Giris Cikis deyimindeki ustu kapali belirtilen DO: Bir giris cikis deyimindeki listede ustu kapali belirtilen DO dongusu kullaniliyorsa, bu dongu ile belirlenen degerler bir dis ortamdan bellege veya bellekten bir dis ortama aktarilacaktir.Giris/cikis deyimindeki ustu kapali belirtilen DO deyiminin genel formati: (dliste,i=m1,m2[,m3]) Burada dliste, bir giris/cikis listesidir. i, tamsayi,gercel veya cift duyarlikli degisken adi olup DO degiskeni olarak adlandirilir. m1,m2 ve m3 tamsayi, gercel veya cift duyarlikli aritmetik ifadedir. m1,m2 ve m3 ifadelerinin degerleri DO degiskeni i'nin tipine donusturulur. m3 secimliktir ve sifir degerini alamaz,kullanilmazsa 1 olarak kabul edilir ve m3'den onceki virgul de yazilmaz. Ornek: Farzedelimki A bir degisken, B,C ve D ise tek boyutlu diziler olsun. B,C ve D'nin 20 elemanli oldugunu kabul edersek, READ(UNIT=5)A,B,(C(I),I=1,4),D(4) deyimi ile ilk deger A'ya,sonraki 20 deger B'ye ,daha sonraki dort deger C'nin ilk dort degeri olarak C'ye ve son deger de D'nin 4'uncu elemanina okunur veya WRITE(UNIT=9)A,B,(C(I),I=1,4),D(4) deyimi ile once A'nin degeri,sonra B'nin 20 degeri,daha sonra C'nin ilk dort degeri ve son olarak da D'nin 4'uncu degeri yazilir. Eger gerekiyorsa ustu kapali belirtilen DO'lar bir arada kullanilabilir.Mesela 10*20'lik bir A dizisi ile 10 boyutlu bir B dizisini goz onune alalim. A'nin herbir satiri okunduktan sonra ,B'nin bir elemanini okutmak istiyorsak,asagidaki deyimi kullanabiliriz: READ(UNIT=5) ((A(I,J), J=1,20), B(I), I=1,10) Benzer sekilde A'nin herbir satirini yazdiktan sonra B'nin bir elemanini yazdirmak icin asagidaki deyimi kullaniriz: WRITE(UNIT=9) ((A(I,J), J=1,20), B(I), I=1,10) DO DEYIMINE ILISKIN KURALLAR: DO dongusu icinde herhangi bir fortran deyimi kullanilabilir.Fakat dongunun son deyimi kosulsuz veya assign'e bagli GO TO, blok IF, ELSE IF, ELSE, END IF, STOP,RETURN ,END ,aritmetik IF,lojik IF veya bir baska DO deyimi olamaz.Bundan kacinmak icin genelde DO dongusunun son deyimi olarak CONTINUE deyimi kullanilir Bir DO alani icinde baska DO donguleri olabilir.Ancak icteki DO alaninin tamami distaki DO alaninin icinde kalmalidir. Icteki DO ile distaki DO alanlarinin bitisi ayni deyime rastlayabilir DO 10I = 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 dogru oldugu halde ............... yanlistir. DO alani icinde DO nun indisleyici parametreleri olan i , m1 , m2 ve m3 u degistiren, yeniden tanimlayan bir deyim kullanilamaz.Mesela asagidaki program birimindeki M = I + 1 deyimi hatalidir ........ ......... M = 2 DO 5. I = M,5 M = I + 1 X = A(I)*B(M) 5 CONTINUE ........ ............ DO alani icinden bu alanin disina atlamak mumkundur. Sapma aninda DO degiskeninin degeri son aldigi degerde kalir.Fakat DO alani icine bu alanin disindan girmek mumkun degildir.Cunku bu durumda DO degiskeninin degeri belirlenemez. *END DEYIMI Bir programin sonunu tanimlayan END deyimi anaprogramin veya function, subroutine veya blok data altprogramlarinin ifasini durdurur. Genel formati: END END deyimine numara verilebilir.Bu deyim bir program biriminin son deyimi olup, programdaki herhangi bir deyimden once gelemez.Eger anaprogramda ise, anaprogramin ifasini durdurur, altprogramda ise RETURN deyimi gibi islem gorur END deyimi ifa edildigi anda ,altprogramdaki yapma argumanlar ile gercek argumanlar arasindakibaglanti kesilir.Altprogramdaki tum birimler asagidakiler haric olmak uzere tanimsiz olur. -SAVE deyiminde tanimlanan birimler Etiketsiz COMMON'daki birimler, Baslangicta tanimlanan birimlerden yeniden deger almamis veya tanimsiz olmamis olanlar, Hic olmazsa baska bir program biriminde de gorunen bir altprogramdaki etiketli COMMON bloklar. Function altprogramindaki END deyimi: Tum function altprogramlari END deyimi ile bitmelidir.Ayrica bu altprogramlarda RETURN deyimi de bulunabilir.END deyimi fiziksel olarak altprogramin sonunu belirler. Subroutine altprogramindaki END deyimi: Tum subroutine altprogramlari END deyimi ile bitmelidir.Ayrica RETURN deyimleri de ulunabilir(altprogramin farkli yerlerinde).END deyimi altprogramin fiziksel olarak bittigini belirler.Eger bir subroutine altprogramin ifasi esnasinda END deyimine ulasilirsa ,bu deyim RETURN deyimi gibi ifa edilir. *GO TO DEYIMLERI GO TO deyimleri kontrolu programdaki ifa edilebilen bir deyime aktarir.Uc tur GO TO deyimi vardir: Assign'a bagli GO TO deyimi, Hesaplanmis GO TO deyimi, Kosulsuz GO TO deyimi. Assign'a bagli GO TO deyimini gormeden , bir atama deyimi olan ASSIGN deyimini inceleyelim Assign deyimi: ASSIGN deyimi tamsayi bir degiskene bir sayi atar. Genel formati: ASSIGN d TO i Burada d, ASSIGN deyimini icinde bulunduran bir program birimindeki ifa edilebilen bir deyimin veya bir FORMAT deyiminin numarasidir. i, 4 bayt uzunlugunda olan bir tamsayi degiskenin (bir dizi elemani olamaz) adidir. Bu degisken deyim numarasi d'ye atanmaktadir. Deyim numarasi ASSIGN deyiminin bulundugu program birimindeki bir deyimin numarasi olmalidir.ASSIGN deyiminin ifasi , bir degiskenin bir deyim numarasi tarafindan tanimlanmasi ile olur.Bu degisken ,Assign'a bagli GO TO deyiminde veya bir giris/cikis deyiminde belirlenen bir format deyiminde verilen deyim numarasi ile tanimlanabilmelidir.Bir deyim numarasi ile tanimlanan bu tamsayi degisken ,ayni veya farkli deyim numaralari ile veya bir tamsayi deger ile yeniden tanimlanabilmelidir. Eger d ifa edilebilen bir deyim numarasi ise i degiskeni Assign'a bagli bir GO TO deyiminde kullanilabilir. Eger d bir FORMAT deyiminin numarasi ise i degiskeni format kontrolu bir, READ, WRITE veya PRINT deyimindeki format tanimlayicisi olarak kullanilmalidir. Assign'a bagli GO TO deyimi Assign'a bagli GO TO deyimi , i nin o andaki degerine bagli olarak kontrolu d1 , d2 , d3 ,..... ile numaralandirilmis deyime saptirir.Ornegin i nin degeri d2 ise GO TO ... deyimi ile d2 nolu deyime sapilir. Genel formati: GO TO i [ [, ](d1 [ , d2][ , d3 ]...) ] Burada i , bir ASSIGN deyimi ile bir deyim numarasi atanan 4 bayt uzunlugundaki bir tamsayi degiskendir(bir dizi lemani olamaz). d assign'a bagli GO TO deyimini icinde bulunduran program birimindeki ifa edilebilen bir deyimin numarasidir. ddd( d1 , d2 , ....) ile gosterilen numaralari listesini kullanmak zorunlu degildir.Eger bu liste kullanilmazsa i den sonra gelen virgul de kullanilmaz. Ayrica bu liste kullanilsa da i den sonraki virgul kullanilmayabilir.Assign'a bagli GO TO deyiminin kullanildigi program biriminde bulunan ve i degiskenine atanan deyim numarasi listedeki deyim numaralarindan biri olmalidir.Deyim numarasi listede birden cok gorulebilir.Yani , d1 = dj = .... olabilir. Mesela, GO TO I , (10,25,50) deyiminde :Eger tamsayi degisken I'ya o anda t atanan deger deyim numarasi 50 ise GO TO.... deyiminden sonra 50 nolu deyime sapilir; Eger I'ya atanan deger deyim numarasi 10 ise bir sonraki adimda 10 nolu deyime sapilir.Mesela, ASSIGN 10 TO KOD GO TO KOD , (10 , 20 ,30) ............. 10.. A = B ............ 20.. A = C ........... 30.. A = D ............. program biriminde GO TO deyiminden sonra 10 nolu deyime sapilir ve B' nin degeri A' ya tasinir. Hesaplanmis ( Computed ) GO TO deyimi : Hesaplanmis GO TO deyimi , m nin o andaki degeri 1,2,3,.... degerlerine bagli olarak kontrolu d1 , d2 , d3 ,.... numarali deyimlerden birine aktarir. Genel formati: GO TO ( d1 , [ , d2] [ ,d3 ]...) [ , ] m Burada d , hesaplanmis GO TO deyiminin icinde bulundugu programdaki ifa edilebilen bir deyimin numarasidir. Ayni deyim numarasi parantez icinde birden fazla kullanilabilir. m , tamsayi bir ifadedir. m den onceki virgul secimliktir.Eger m nin degeri , n parantez icindeki deyim numaralarinin sayisi olmak uzere , 1 < m < n araliginin disinda ise hesaplanmis GO TO deyiminden sonraki deyim ifa edilir. Ornek : 5 .GO TO ( 1,2,3,2 ) , IX 1. A = A + 1.0 ...GO TO 3 2 .A = A + 2.0 3 .CONTINUE Kosulsuz GO TO deyimi : Kosulsuz GO TO deyimi kontrolu deyim numarasi belirlenen deyime aktarir. Bu GO TO deyiminin her ifa edilisinde kontrol ayni deyime aktarilir.Genel formati: GO TO d Burada d , kosulsuz GO TO deyiminin icinde bulundugu programdaki ifa edilebilen bir deyimin numarasidir.Bu deyimden sonra gelen ifa edilebilir herhangi bir deyimin , bir deyim numarasi olmasi gerekir, aksi halde bu deyim isleme konmaz veya ifa edilemez. Ornek : ....GO TO 1 2. B = A * 200.0 .......... 1. A = B + 10.0 ........... * IF DEYIMLERI IF deyimleri verilen kosula bagli olarak ortaya cikan farkli durumlarda yapilacak islemi belirler.Uc tur IF deyimi vardir : Aritmetik IF Blok IF ; END IF , ELSE , ELSE IF Lojik IF Aritmetik IF deyimi : Aritmetik IF deyimi , aritmetik ifade ( m ) nin degeri sifirdan kucuk, sifira esit veya sifirdan buyuk oldugu zaman kontrolu d1 , d2 veya d3 numarali deyimlere aktarir. Ayni IF deyiminde bir deyim numarasi birden cok kullanilabilir. Genel formati: IF ( m ) d1, d2 , d3 Burada m, kompleks tipte olmayan herhangi bir aritmetik ifadedir. d1 , d2 ve d3 ; IF deyiminin de icinde bulundugu programdaki ifa edilebilen bir deyimin numarasidir.Bu deyimden sonra gelen ifa edilebilir herhangi bir deyimin bir deyim numarasi olmasi gerekir; aksi halde bu deyim asla isleme konmaz veya ifa edilemez. Blok IF deyimi : Blok IF deyimi END IF deyimi ile birlikte kullanilir ve gerektiginde ELSE IF ve ELSE deyimleri ile de kullanilabilir. Genel formati: IF ( m ) THEN Burada m, herhangi bir lojik ifadedir. Blok IF deyimi ile ilgili olan iki terim vardir .Bunlar IF-level ve IF-block terimleridir. IF-Level : Bir programdaki IF-level'larin sayisi blok IF deyimi ile END IF'den olusan deyimlerin sayisi ile hesaplanir. IF-Block : Bir IF-block, blok IF deyiminden sonraki ilk deyim ile baslar son ELSE IF, ELSE veya END IF deyiminden onceki deyimde biter.Eger IF-block'un icinde ifa edilebilen bir de yim yok ise IF block bostur denir. Kontrol bir IF blokunun icinden baska bir IF blokunun icine aktarilamaz.Bir blok IF deyiminin ifasinda once m ifadesi degerlendirilir. Eger m nin degeri dogru(true) ise IF-block'undaki ilk deyimden baslayarak sirasiyla deyimler ifa edilir.Eger m nin dogru ve IF-block bos ise kontrol bir sonraki END IF deyimine(ayni IF-level'inda olan) aktarilir.Eger m nin degeri yanlis(false) ise kontrol ayni IF-level'inda olan bir sonraki ELSE IF, ELSE veya END IF deyimlerine aktarilir.Bir blok IF deyimi DO dongusu ile kesilemez, yani icice giremez. END IF deyimi : END IF deyimi bir IF-block'unu bitirir .Ifa sirasini degistirmez. Genel formati: END IF Her bir blok IF deyimi icin ayni programda bir END IF deyimi bulunmalidir. Bu END IF deyimi blok IF deyiminin son deyimidir ve ifa sirasinaetki etmez.END IF deyimi DO dongusu icinde olmamalidir. Ornek: IF ( A . GT . B ) THEN ........... END IF ELSE deyimi : Eger bir onceki blok IF veya ELSE IF kosulu yanlis olarak degerlendirildi ise ELSE deyimi ifa edilir.Normal ifa sirasini degistirmez. Genel formati: ELSE Bir ELSE-block ayni IF-level'indaki son END IF deyimi ile ELSE deyimi arsindaki ifa edilebilir deyimlerden olusur.Burada ELSE deyimi ile END IF deyimi ELSE-block'a dahil degildir.Bir ELSE-block bos olabilir.Bir IF-block'unda yalniz bir ELSE olabilir. Bir ELSE block'unun icinden bir baska ELSE block'unun icine gecilemez.ELSE deyimi DO dongusu icinde kullanilamaz Ornek: IF ( A . EQ . B ) THEN ........... ELSE ........... END IF ELSE IF deyimi : EEger bir onceki bllok IF kosulu yanlis olarak degerlendiriliyor ise ELSE IF deyimi ifa edilir. Genel formati: ELSE IF ( m ) THEN Burada m, herhangi bir lojik ifadedir. Bir ELSE IF-block ayni IF-level'indaki son ELSE IF , ELSE veya END IF deyimi ile ELSE IF deyimi arasindaki ifa edilebilir deyimlerden olusur. Burada ELSE IF deyimi deyimi block'a dahil degildir.ELSE IF-block'u bos olabilir. Eger lojik ifade m nin degeri dogru ise ELSE IF-block'unun ilk deyimi ile normal ifa iskemleri gerceklestirilir. Eger lojik ifade m dogru ve ELSE IF-block bos ise kontrol ayni IF-level'indaki son END IF deyimine aktarilir. Eger lojik ifade m yanlis ise kontrol ayni IF-lvel'indaki son ELSE IF, ELSE veya END IF deyimine aktarilir. Kontrol bir ELSE IF-block'undan baska ELSE IF-block'una aktarilamaz. ELSE IF deyiminin deyim numarasi ile bir baska deyime gecilemez. Bir END IF deyimi DO dongusu icinde kullanilamaz. Ornek 1 IF ( I . LT . J ) THEN ........ ELSE IF ( I . GT . J ) THEN .......... END IF Ornek 2 : IF ( I . LT . J ) THEN .......... ELSE IF ( I . GT . J ) THEN ........... ELSE END IF Ornek 3 : Asagidaki program sayisal notlari alfabetik notlara donusturmek icin hazirlanmis basit bir uygulamadir. Blok IF deyimi kullanilarak hazirlanan bu program baska sekillerde de yazilabilir. CHARACTER*1 N1/'A' / , N2/'B' /, N3/ 'C'/ ,N4/ 'D' 1.. READ ( 5,5,END = 90 ) NO, NOT 5.. FORMAT ( I5,35X,I3 ) .....IF ( NOT.LE.25 ) THEN .....WRITE ( 6,30 )NO , N4 .....ELSE IF ( NOT . LE .50 ) THEN .....WRITE ( 6,30 )NO , N3 ......ELSE IF ( NOT.LE.75 ) THEN ......WRITE ( 6,30 )NO , N2 ......ELSE ......WRITE ( 6,30 )NO , N1 .....END IF 30 .FORMAT ( 5X,I5, 'NOT = ' , A1) ......GO TO 1 90 . STOP ...... END Lojik IF Deyimi : Lojik IF deyimi bir lojik ifadeyi degerlendirir ve ifadenin degerinin dogru veya yanlis olmasina gore ya bir deyimi ifa eder veya lojik IF deyiminin altindaki ifadeyi gerceklestirir.Genel formati: IF ( m ) d Burada m , herhangi bir lojik ifadedir. d , ifa edilebilir herhangi bir deyimdir. Bu deyim DO deyimi , baska bir lojik IF deyimi, END deyimi , blok IF , ELSE IF , ELSE veya END IF deyimi ve ayrica TRACE ON, TRACE OFF, INCLUDE veya DISPLAY deyimi olamaz. d bir deyim numarasi olamaz , ama icinde deyim numarasi bulundurulabilir( GO TO 50 gibi ). Ornek: : IF ( A . LE .0 .) GO TO 50 ............X = Y + Z ............IF ( A . EQ . B ) X = 2.0*Y/Z ............A = B/C ...50.....T = U**2 ........................... *PAUSE DEYIMI PAUSE deyimi amac programin ifasini gecici olarak keser ve bir mesajin gorunmesini saglar.Genel formati: PAUSE [ n ] , ........................PAUSE [ 'mesaj ' ] Burada n , 1-5 basamakli bir sayi , 'mesaj' , tirnaklarla kapanan bir karakter sabitedir.Bu sabite alfanumerik veya ozel karakterlerden olusur. Bu literal sabite icinde tirnak kullanilacaksa bu cift tirnakla belirtilmelidir. Eger n veya ' mesaj ' kullaniliyorsa kesilme aninda operatore gerekli talimat verilir.Bu duraklama esnasinda operator gerekli islemleri yaparak kontrolu programa gecirir ve PAUSE deyiminden sonra gelen deyim veya DO dongusunun son iterasyonu ifa edilir. RETURN DEYIMI RETURN deyimi kontrolu cagiran programa aktarir. Eger RETURN deyimi anaprogramda kullaniliyorsa STOP deyiminin yaptigi isi yapar. Bu deyim ya bir function veya subroutine altprograminda kullanilmalidir. Function altprogramindaki RETURN deyimi : Function altprogramlari RETURN deyimini bulundurmalidir.Bu RETURN deyimi lojik olarak hesaplama sonucunu belirler ve hesaplanan fonksiyon degerinin cagrilan programa geri donmesini saglar.Genel formati: RETURN RETURN deyiminin ifasi ile altprogramdaki yapma argumanlar ile gercek argumanlar arasindaki iliski kesilir.Altprograma giren argumanlarin tumu , asagidakiler haric tanimsiz olur. SAVE deyiminde belirlenen argumanlar, DATA ve acik tip bildirme deyiminde kullanilan argumanlar, Etiketsiz COMMON deyimindeki argumanlar Subroutine altprogramindaki RETURN deyimi Subroutine altprogramlari da RETURN deyimi bulundurmalidir. Bu RETURN deyimi lojik olarak hesaplama sonucunu belirler ve kontrolu cagiran programa aktarir. Genel formati: RETURN ( m ) Burada m , bir tamsayi ifadedir. RETURN deyiminde m kullanilmazsa veya m nin degeri birden kucuk ise veya SUBROUTINE deyiminde belirlenen ( * ) asterisklerin sayisindan fazla ise kontrol CALL deyiminden sonraki deyime aktarilir. Boylece CALL deyiminin ifasi tamamlanir.Eger , n SUBROUTINE deyimindeki asterisklerin sayisi olmak uzere 1