توابع خارجی External Functions در فرترن
شما می توانید خودتان توابع را بنویسید. معمولاً بعد از پایان برنامه می توانید توابع خودتان را اضافه کنید. ساختار تابع به شکل زیر است:
type FUNCTION name ({dummy arguments})
local variable declaration
body of function…
name = expression
body of function continued if needed
END FUNCTION name
type نوع تابع (نوع حاصل تابع) را مشخص می کند. حاصل تابع مقداری است که توسط تابع بازگردانده می شود. اگر به ساختار بالا توجه کنید دقیقاً جایی که نام تابع برابر یک عبارت قرار گرفته، حاصل تابع است. تابع باید حداقل یک مقدار خروجی داشته باشد. یعنی در جایی از تابع، مقداری به "نام" تابع اختصاص داده شود.
متغیرهای ظاهری dummy arguments، شامل همة ثابت ها، متغیرها و حتی روالهای1 قابل دسترسی در بدنه تابع است. (منظور از روالها، توابع و زیربرنامه ها هستند). وقتی تابع فراخوانی می گردد باید لیستی از این متغیرها به آن فرستاده شود. نوع این متغیرهای واقعی باید با متغیرهای ظاهری موجود در تعریف تابع یکسان باشد، اما نام آنها مهم نیست. نوع متغیرها در هنگام ارسال به توابع توسط مترجم برنامه کنترل نمی گردد و اگر نوع متغیرهای یکسان نباشد با اشکالات عجیبی روبرو خواهید شد!
بعنوان مثال برای محاسبه نیروی جاذبه بین دو جسم با استفاده از فرمول نیوتن، تابع نیوتن را به شکل زیر تعریف می کنیم.
REAL FUNCTION Newton (m1, m2, r)
REAL:: gamma = 6.672E-11, m1, m2, r
Newton = -gamma*m1*m2/r**2
END Newton