Jeofizik Fonksiyonlar ve Alt Programlar Fonksiyonlar ve Alt Programlar Farkl programlarda veya bir program n de ği ş ik yerlerinde ayn fonksiyonu veya i ş lem serisini tekrarlamak gerekebilir. Bu gibi durumlarda ayn deyim veya deyim gruplar n her seferinde yazmak yerine bu deyimleri bir fonksiyon veya yard mc bir program olarak haz rlayarak gerekti ğinde program i ç inde kullanmak daha yararl olur. Ö rne ğin:Ç ok karma ş k ve uzun programlar par ç alara ayr larak ? daha basit program gruplar haline getirilir, b ö ylelikle programlama kolayla ş r, Ayn i ş lem gruplar i ç in tekrarlar ö nlenir, ? Haf zan n daha verimli kullan m sa ğlan r, ? Programc lar aras nda i ş b ö l ü m ü sa ğlanarak, ? programlama h zland r l r ve prgramlamada verim y ü kseltilir Fonksiyonlar ve Alt programlar n S n fland r lmas ; A) Fonksiyonlar Ar ş iv Fonksiyonlar (Haz r Fonksiyonlar) ? Deyim Fonksiyonlar ? B) Alt Programlar FUNCTION alt programlar ? SUBROUTINE alt programlar ? BLOCK DATA alt programlar ?Deyim Fonksiyonlar Bir program i ç erisinde, belli bir fonksiyon veya bir atama ? komutu bir ç ok kez tekrarlan yorsa, deyim fonksiyonlar kullan l r. Bunlar, uygulanabilen komutlardan ö nce tan mlan rlar; ayn program i ç erisinde birden ç ok say da de ği ş ik arg ü manlar (ger ç ek parametreler) ile ç a ğr labilirler FA (X1,X2,X3,,,,Xn)=E ? Burada FA, deyim fonksiyonunun ad n , X1 X2,...,XN tan m parametrelerini, E aritmetik veya mant ksal bir ifadeyi g ö sterir. Deyim fonksiyonun ad se ç ilirken, de ği ş kenlere ad ? vermede dikkat edilecek ö zellikler aynen ge ç erlidir. Tan m parametreleri basit de ği ş ken olmal d r. Deyim fonksiyonlar n tan mlamak i ç in kullan lan aritmetik veya mant ksal ifadelerde, Sabitler, - Programda Kullan lan de ği ş kenler, - Ar ş iv Fonksiyonlar , - Daha ö nce tan mlanm ş ba ş ka deyim fonkiyonlar - FUNCTION alt programlar olabilir. -Deyim Fonksiyonlar n n Kullan lmas nda Dikkat Edilecek Noktalar; Deyim fonksiyonu ancak tan mland ğ program i ç erisinde ? kullan labilir. Deyim fonksiyonlar bir tek de ğer veren fonksiyonlard r. ? Bunun sonucu deyim fonksiyonu program i ç erisindeki atama komutlar nda bir de ği ş ken olarak kullan labilir. Deyim Fonksiyonlar ilk uygulanabilir komuttan ö nce ? tan mlanm ş olmal d r. Tan mlanm ş deyim fonksiyonun ad ayn programda ? ba ş ka bir de ği ş kenin ad olarak kullan lamaz. Deyim fonksiyonunda en az bir tan m parametresi ? bulunmal d r. Ayn isimde birden fazla parametre bir arg ü man listesinde bulunamaz. Dimension A(10) ...... STA(N)=X*SIN(A(N)) READ (*,25) X,Y,(A(I),I=1,10) 25 Format (F4.2,F7.4,10F7.3) DO 50 J=1,10 ZA=Y+ STA(J) ......... 50 Continue ........ LOGICAL MANTIK,T,A MANTIK(X,Y)= X.GT .(Y+2.) ........ T=A.AND. MANTIK(A,B)FUNCTION ALT PROGRAMLARI Function Alt Program , tek bir aritmetik veya mant ksal ? de ğer hesaplayan ve ana programa g ö nderen, ba ğ ms z yaz lm ş bir program par ç as d r. Bu t ü r programlar n ilk komutu ? FUNCTION FA(A1,A2,...,AN) ş eklindedir. FUNCTION alt program ad (arg ü man listesi )  ...............  ............... Fortran deyimleri  ...............  alt program ad = aritmetik ifade  RETURN  END  Bu alt program, bir ba ş ka program taraf ndan ........ ....... ...... TOTAL= EVAL(P,X)+COS(Y) Komutu ile ç a ğr labilir. FUNCTION EVAL (U,V) IF (U.LT.V) GOTO 1 EVAL=V/U RETURN 1 EVAL=U/V RETURN ENDFunction Alt Programlar n n Kullan lmas nda Dikkat Edilecek Noktalar; Function alt program bir ba ş ka alt program veya ana • program taraf ndan ç a ğr labilir, Function alt programlar nda kullan lan de ği ş ken isimleri • ç a ğ ran programdaki de ği ş ken isimlerinden tamamen ba ğ ms zd r. Function alt programlar da deyim fonksiyonlar gibi adlar • ve ger ç ek parametreleri ile ç a ğ r l rlar. Function alt programalar ba ğ ms z bir program gibi • ç al ş t klar ndan son komutlar END olmak zorundad r. Ayr ca hesaplanan de ğerleri ç a ğ ran programa geri d ö n üşü i ç in alt program i ç erisinde bir veya bir ka ç defa RETURN deyimi kullan labilir..SUBROUTINE Alt Programlar SUBROUTINE alt programlar FUNCTION alt programlar na ? g ö re daha genel ama ç l d r. FUNCTION alt programlar ana programa bir tek de ğer verebilirler, oysa SUBROUTINE alt programlar i ç in b ö yle bir s n rlama yoktur. SUBRUOTINE alt program arg ü mans z olarak ta kullan labilir. SUBROUTINE ler ba ğ ms z birer program gibi haz rlan rlar ve ilk deyim her zaman SUBROUTINE dir. SUBRUOTINE (alt program ad ) (arg ü man listesi )  ...............  ............... Fortran deyimleri  ...............  RETURN  END Ana programdan SUBROUTINE alt program na ge ç i ş , ? CALL deyimi ile sa ğlan r. Bu deyimin yap s da  ş ö yledir:  CALL alt program ad (arg ü man listesi)  CALL SA(x1,x2,...xN) ?SUBROUTINE Alt Programlar n n Kullan lmas nda Dikkat Edilecek Noktalar; SUBROUTINE alt programlar ndaki tan m ? parametreleriyle CALL listesindeki ger ç ek parametreler say ,s ra ve tip bak m ndan uyumlu olmal d r. SUBROUTINE alt programlar nda FUNCTION, BLOCK ? DATA ve SUBROUTINE deyimleri d ş ndaki t ü m FORTRAN deyimlerini kullan labilir. Son komut daima END olmal d r. Alt program i ç inde ? herhangi bir yerde en az bir RETURN deyimi olmal d r. SUBROUTINE IVME (T,V,S) G=32.172 S=G*T**2 /2 V=G*S RETURN ENDEXTERNAL Deyimi EXTERNAL deyimi bir alt program n, ismi arg ü manlar listesinde ? bulunan ba ş ka bir alt program ç a ğ rabilme  olana ğ n sa ğlar. Bunun i ç in ç a ğ r lan alt program (FUNCTION veya SUBROUTINE) isminin ç a ğ ran alt program arg ü manlar listesinde yaz lmas ve EXTERNAL deyiminde bulunmas gerekir.  EXTERNAL deyiminin yap s ş ö yledir:  EXTERNAL N1, N2, N3,......,NK   Burada N1, N2, N3,....,NK ç a ğ ran alt program arg ü manlar listesindeki alt program isimleridir. EXTERNAL deyimi ana program i ç inde, aritmetik deyim fonksiyonlar ve uygulanan deyimlerden de ö nce gelmek ü zere, en ba ş ta bulunur.  EXTERNAL SIN,EXP,SQRT .......... CALL HES (SIN,COS;EXP,A)BLOCK DATA Alt Program Programda baz de ği ş kenlere, DATA deyimi ile ba ş lang ç ? de ğeri verilebilir ancak COMMON deyimindeki listede bulunan de ği ş kenlere DATA deyimi ile ba ş lang ç de ğeri atanamaz. Bu nedenle COMMON deyimindeki de ği ş kenlere ba ş lang ç de ğeri atayabilmek BLOCK DATA alt programlar kullan lmaktad r. BLOCK DATA  COMMON / ALAN 1/ PROP ( 5 )  COMMON / ALAN 2/ I, D, HIZ  DATA PROP / 1.0035 , 0.735 , 0.782 , 1.4 , 0.02 /  DATA I, D, HIZ / 5, 0.18, 0.8 /  END Herhangi bir istasyonda ö l çü len depremin a ç sal odak uzakl ğ ve azimut a ç s Formul ü ile verilir. Burada, Olarak ifade edilir. Depremin ve istasyonun enlem ve boylamlar n g ö stermektedir.Orijinal Program SubroutineAna (main) programdaki de ğ i şkenler (dist, azim) , subroutine deki de ğ i şkenler ise delta ve theta