Pada permasalahan pemograman geofisika, persamaan – persamaan yang digunakan, begitupun jenis – jenis syntax yang digunakan sangatlah kompleks. Maka dari itu, dari permasalahan yang kompleks tersebut seorang programmer dapat memecah - mecah beberapa permasalah dalam bentuk skrip - skrip program. Sehingga untuk pemecahan masalah geofisika lebih mudah dikerjakan dan untuk cara berpikir atau algoritma pun lebih tertata dengan rapi. Didalam pemograman terdapat sebuah metode pemecahan masalah dengan menggunakan user defined function. User defined function ini merupakan sebuah fungsi yang dibuat oleh programmer sendiri untuk memecahkan permasalahan yang begitu kompleks. Didalam MATLAB user defined function ini dikenal dengan syntax function. Pada dasarnya data – data M-files yang ada didalam skrip program semua tersimpan didalam window yang bernama Workspace. Skrip program adalah sekumpulan pernyataan – penyataan MATLAB yang mewakili alur berpikir seorang programmer untuk memecahkan sebuah masalah. Ketika skrip program dijalankan, maka segala data yang terdeklarasi melalui variabel – variabel akan tersimpan didalam workspace, dan semua varible tersebut dapat dipanggil kembali di jendela command window. Ketika skrip program dari M-file yang lain dijalankan, maka varibel tersebut akan masih tetap ada kecuali data dari variabel tersebut di hapus dengan menggunakan sytax “clear” . Jadi dapat dikatakan bahwa semua variabel yang aktif di dalam workspace dapat digunakan di skrip porgram lainnya. Untuk Funtion dalam MATLAB merupakan tipe khusus M-file dimana fungsi dari function ini adalah memproses sebuah permasalahan yang dibuat sendiri oleh programmer dalam memecahkan masalahnya. Syntax function ini terdiri dari input, output, nama fungsi, serta kalimat function itu sendiri, dengan bentuk syntax sebagai berikut:
Data – data yang ada didalam function akan tersimpan di tempat
penyimpanan yang dinamakan local memory. Local memory berfungsi untuk menyimpan variabel yang ada di function ketika function tersebut dijalankan, dan variabel – variabel ini tidak tersimpan di workspace karena penyimpanan ini bersifat sementara. Dan untuk varibel yang ada di workspace akan tersimpan di tempat penyimpanan yang dinamakan global memory. Seperti contoh diatas, syntax yang digunakan yaitu pertama yaitu “function” kemudian “(outarg1,outarg2,...)”, ini merupakan output yang dihasilkan setelah function nantinya telah selesai melakukan prosesnya, untuk output seorang programmer bisa menentukan berapa banyak output yang dibutuhkan, tergantung permasalahan yang dihadapi seorang programmer itu sendiri. Kemudian “fname”, ini merupakan fungsi yang dibuat oleh programmer yang nantinya dipanggil ke skrip program lainnya, jadi nama fungsi dapat dibuat sesuai dengan keinginan programmer, namun alangkah lebih baiknya diberikan nama yang sesuai dengan permasalahan yang dihadapi agar nanti fungsi tersebut lebih mudah untuk diingat algoritmanya. Kemudian “(inarg1,inarg2,...)”, ini merupakan input data dari function itu sendiri, dibutuhkan varibel input agar function dapat dijalankan, dan juga untuk jumlah input dapat disesuaikan dengan permasalahan yang dihadapi. Kemudian “(Excutable code)”, merupakan proses yang akan dilakukan variabel input terhadap skrip function yang kita miliki. Selanjutnya “(return)”, adalah proses pendeklarasian variabel yang telah diproses yang berbentuk variabel output yang dimana output ini akan digunakan di skrip program lainnya. Kemudian “(end)”, merupakan syntax yang menandakan proses dari function telah selesai. Dan untuk lebih jelas mengenai distribusi variabel input menjadi output di dalam function akan dijelaskan di sub bab selanjutnya.