फ़ोरट्रान

फोरट्रान (अंग्रेज़ी: Fortran/पहले FORTRAN) एक प्रोग्रामन भाषा है जिसका विकास 1950 के दशक में हुआ था। तब से लेकर अबतक इस भाषा के कई संस्करण निकल चुके हैं यथा - FORRTAN66, Fortran77, Fortran90 और Fortran95। इसका विकास आईबीएम में सूत्र अनुकूटक (Formula Translater) के रूप में हुआ था। आज यह गणकीय तरल यांत्रिकी में बहुत प्रयुक्त होता है।

इसके कई कंपाइलर लिखे गए हैं, जैसे आईबीएम (मूल), एचपी, जीएनयू तथा अन्य कई। इसकी एक पंक्ति में 72 से अधिक वर्ण नहीं लिखे जा सकते हैं। पंक्ति के अंत में अर्धविराम नहीं लगता है। इस संदर्भ में इसकी तुलना C/C++ जैसी भाषाओं से की जा सकती है जिसमें अनुदेश खत्म होने के बाद एक अर्धविराम लगाना आवश्यक होता है।

फोर्ट्रान के विभिन्न संस्करण
 1956. Fortran I 

 1958. Fortran II

 1959. Fortran III 

 1962. Fortran IV 

 1964. Fortran V 

 1965। standard ECMA Fortran

 1966. Fortran 66 (USASI X3.9-1966) 

 1978. Fortran 77 (ANSI X3.9-1978)

 1991. Fortran 90 (ISO/IEC 1539:1991 फिर ANSI X3.198-1992)

 1992 IEEE 1003.9-1992, Fortran 77 of the POSIX standard.

 1994 ISO/IEC 1539-2:1994

 1997. Fortran 95 (ISO/CEI 1539-1:1997)

 1999 ISO/IEC 1539-3:1999

 2004. Fortran 2003 (ISO/CEI 1539-1:2004)

 2010. Fortran 2008 (ISO/CEI 1539-1:2010).

 अगला संस्करण « Fortran 2015 », होगा, जो मामूली परिवर्तनों के साथ होगा।.

फोरट्रान कोड के उदाहरण
निम्नलिखित प्रोग्राम, इन्टरैक्टिव रूप से इन्टर किये गये डेटा का औसत (average) निकालता है। इस प्रोग्राम में Fortran 90 के दो विशेष गुणों- डायनेमिक मेमोरी अल्लोकेशन तथा अर्रे-आधारित-संक्रियाएँ को दर्शाता है। ध्यान दीजिये कि इसमें DO लूप तथा IF/THEN का उपयोग करके अर्रे (array) को किस प्रकार परिवर्तित किया गया है। 

program average

 ! Read in some numbers and take the average
 ! As written, if there are no data points, an average of zero is returned
 ! While this may not be desired behavior, it keeps this example simple

 implicit none

 real, dimension(:), allocatable :: points
 integer             :: number_of_points
 real              :: average_points=0., positive_average=0., negative_average=0.

 write (*,*) "Input number of points to average:"
 read (*,*) number_of_points

 allocate (points(number_of_points))

 write (*,*) "Enter the points to average:"
 read (*,*) points

 ! Take the average by summing points and dividing by number_of_points
 if (number_of_points > 0) average_points = sum(points) / number_of_points

 ! Now form average over positive and negative points only
 if (count(points > 0.) > 0) then
   positive_average = sum(points, points > 0.) / count(points > 0.)
 end if

 if (count(points < 0.) > 0) then
   negative_average = sum(points, points < 0.) / count(points < 0.)
 end if

 deallocate (points)

 ! Print result to terminal
 write (*,'(a,g12.4)') 'Average = ', average_points
 write (*,'(a,g12.4)') 'Average of positive points = ', positive_average
 write (*,'(a,g12.4)') 'Average of negative points = ', negative_average

end program average

प्रोग्रामिंग भाषा