Subroutine / Function Guna : Bentuk : FORTRAN urutan perintah-perintah terorganisir dalam kelompok-kelompok tugas dapat digunakan / dipanggil jika diperlukan, dapat lebih dari satu kali menghemat penulisan program Bentuk : FORTRAN SUBROUTINE NamaSub(variabel yang ditransfer = passing arguments) Deklarasi variabel Perintah-perintah RETURN END BASIC SUB NamaSub() Deklarasi variabel Perintah-perintah END
Subroutine / Function FORTRAN FUNCTION NamaFunc(variabel yang ditransfer = passing arguments) Deklarasi variabel Perintah-perintah RETURN END BASIC FUNCTION NamaFunc() Deklarasi variabel Perintah-perintah END
Subroutine / Function Pemanggilan : Subroutine: CALL NamaSub(variabel yang ditransfer = passing arguments) Function : Variabel = NamaFunc(variabel yang ditransfer = passing arguments)
Subroutine / Function PROGRAM JUMLAH Contoh : Program menjumlah data PARAMETER(NI=100) INTEGER*2 UI,UO,NN REAL*4 DATA(NI), SUM UI = 1 UO = 2 DO 10 I=1,3 CALL INPUT(UI,NI,NN,DATA) SUM = JUMLAH(NI,NN,DATA) CALL OUTPUT(UO,SUM) 10 ENDDO STOP END
Subroutine / Function SUBROUTINE INPUT(UI,NI,NN,DATA) INTEGER*2 UI, NN,I REAL*4 DATA(NI) CHARACTER*20 FNAME WRITE(*,*) ‘ Nama file input : ‘ READ(*,20) FNAME OPEN(UNIT=UI, FILE=FNAME) READ(UI,*) NN DO 10 I=1,NN READ(UI,*) DATA(I) 10 CONTINUE 20 FORMAT(A) RETURN END
Subroutine / Function FUNCTION JUMLAH(NI,NN,DATA) INTEGER*2 NN,I REAL*4 DATA(NI), JML JML = 0.0 DO 10 I=1,NN JML = JML + DATA(I) 10 CONTINUE JUMLAH = JML RETURN END SUBROUTINE OUTPUT(UO, JUML) INTEGER*2 UO REAL*4 JUML CHARACTER*20 FNAME WRITE(*,*) ‘ Nama file output : ‘ READ(*,10) FNAME OPEN(UNIT=UO, FILE=FNAME) WRITE(UO,*) ‘ Jumlah = ‘, JUML 10 FORMAT(A) RETURN END
Common Block COMMON Guna: membuat variabel yang dapat digunakan bersama oleh dua atau lebih subroutine maupun program utama. Penulisan / bentuk : COMMON [ / nama blok / ] list variabel Contoh : COMMON / VECTOR / A, B, C COMMON / BASE / D, E, F, / ETA/ G, H COMMON IN, IM, IL dalam pemakaian : PROGRAM MYPROG COMMON I, J, X, K(10) COMMON /MYCOM/ A(3) … END SUBOUTINE MYSUB COMMON PE, MN, Z IDUM(10) COMMON /MYCOM/ A(3) …. ….. RETURN END