MC, 2025
Ilustracja do artykułu: Fortran 77 Tutorial: A Beginner's Guide to Mastering Fortran 77

Fortran 77 Tutorial: A Beginner's Guide to Mastering Fortran 77

If you are new to the world of programming or need to work with legacy systems, learning Fortran 77 could be a great starting point. While newer programming languages have taken the spotlight in recent years, Fortran 77 remains an essential language for scientific computing and high-performance applications. In this tutorial, we will walk through the basics of Fortran 77, its syntax, and provide some examples to help you get started. By the end of this guide, you’ll be ready to tackle your own Fortran 77 projects!

Fortran 77 is one of the earlier versions of Fortran, dating back to the 1970s, but it has maintained relevance due to its simplicity and powerful capabilities in numerical and scientific computing. While newer versions like Fortran 90 and Fortran 2003 have introduced significant features, Fortran 77 is still widely used today, especially in scientific disciplines that require efficient numerical calculations. Let’s dive into what makes Fortran 77 unique and how you can begin writing your own programs with this language.

What is Fortran 77?

Fortran, which stands for "Formula Translation," is a general-purpose programming language that was developed in the 1950s. Fortran 77 is a version of the language that became standardized in the late 1970s and served as the dominant version of Fortran for many years. Although many modern programming languages have evolved from its roots, Fortran 77 continues to be used, particularly for legacy codebases and systems where performance and numerical computations are critical.

Unlike many newer programming languages, Fortran 77 does not support object-oriented programming (OOP) or modern features such as dynamic memory allocation or exception handling. However, it’s still a powerful language for computational tasks, especially in fields like engineering, physics, and computational chemistry.

Fortran 77 Syntax Overview

Let’s start by understanding the basic syntax of Fortran 77. While the language may appear dated, its structure is clear and straightforward. Below are the key elements you will encounter in any Fortran 77 program:

  • Program Structure: A typical Fortran 77 program begins with the PROGRAM statement and ends with END.
  • Fixed-Form Format: Fortran 77 uses a fixed-form format, where each line of code must be aligned in a specific way. The first 6 columns are reserved for labels and continuation characters, while the actual code starts at column 7.
  • Statements: Statements in Fortran 77 include READ, WRITE, IF, DO, and many others to perform tasks such as input/output, conditional logic, and loops.

Here is an example of a simple Fortran 77 program that prints "Hello, World!" to the console:

      PROGRAM hello
      PRINT *, 'Hello, World!'
      END

This example illustrates the basic structure of a Fortran 77 program. The program starts with the PROGRAM keyword, followed by a PRINT statement to output the message, and ends with END to mark the conclusion of the program.

Variables and Data Types in Fortran 77

In Fortran 77, variables must be declared before they are used in a program. The language provides several data types, including INTEGER, REAL, COMPLEX, and CHARACTER. Here’s a look at how you can declare and use variables in Fortran 77:

      INTEGER :: num
      REAL :: x
      CHARACTER(LEN=20) :: name

In the example above:

  • INTEGER is used for integer variables.
  • REAL is used for floating-point numbers.
  • CHARACTER is used for strings. We specify the length of the string (20 characters in this case).

Now, let’s create a simple program that uses variables for input and output. This program asks the user to input a number, performs a simple calculation, and then outputs the result:

      PROGRAM calc
      INTEGER :: num
      PRINT *, 'Enter a number:'
      READ *, num
      PRINT *, 'The square of the number is: ', num**2
      END

In this program:

  • The READ statement takes user input.
  • The program calculates the square of the number and prints the result using the PRINT statement.

Control Flow: IF, DO, and Loops

Control flow in Fortran 77 is managed using IF statements for conditional execution and DO loops for repetitive tasks. Let's take a look at examples of both:

IF Statements

Conditional logic in Fortran 77 is implemented with the IF statement. Here's an example:

      PROGRAM if_example
      INTEGER :: num
      PRINT *, 'Enter a number:'
      READ *, num
      IF (num > 0) THEN
         PRINT *, 'The number is positive.'
      ELSE
         PRINT *, 'The number is non-positive.'
      END IF
      END

This program checks if the entered number is positive or non-positive and prints the appropriate message.

DO Loops

Loops are created using the DO statement. Here’s an example that sums the numbers from 1 to 10:

      PROGRAM sum_example
      INTEGER :: i, sum
      sum = 0
      DO i = 1, 10
         sum = sum + i
      END DO
      PRINT *, 'The sum of the numbers from 1 to 10 is: ', sum
      END

This program initializes a variable sum to zero, then iterates through the numbers from 1 to 10, adding each number to sum, and finally prints the result.

Fortran 77 Tutorial Examples

Now that we’ve covered the basics, let's take a look at some practical examples that demonstrate more advanced concepts in Fortran 77:

Example 1: Solving a Quadratic Equation

Let’s write a program to solve the quadratic equation ax^2 + bx + c = 0. The solution requires using the quadratic formula:

      PROGRAM quadratic
      REAL :: a, b, c, discriminant, root1, root2
      PRINT *, 'Enter coefficients a, b, and c:'
      READ *, a, b, c
      discriminant = b**2 - 4.0*a*c
      IF (discriminant .GT. 0) THEN
         root1 = (-b + SQRT(discriminant)) / (2.0*a)
         root2 = (-b - SQRT(discriminant)) / (2.0*a)
         PRINT *, 'The roots are: ', root1, root2
      ELSE
         PRINT *, 'No real roots.'
      END IF
      END

This program calculates the discriminant of the quadratic equation and finds the real roots if they exist.

Example 2: Matrix Multiplication

In this example, we'll multiply two 3x3 matrices:

      PROGRAM matrix_multiplication
      INTEGER :: i, j, k
      REAL :: A(3,3), B(3,3), C(3,3)
      PRINT *, 'Enter elements of matrix A:'
      DO i = 1, 3
         DO j = 1, 3
            READ *, A(i,j)
         END DO
      END DO
      PRINT *, 'Enter elements of matrix B:'
      DO i = 1, 3
         DO j = 1, 3
            READ *, B(i,j)
         END DO
      END DO
      DO i = 1, 3
         DO j = 1, 3
            C(i,j) = 0
            DO k = 1, 3
               C(i,j) = C(i,j) + A(i,k) * B(k,j)
            END DO
         END DO
      END DO
      PRINT *, 'Resultant matrix C:'
      DO i = 1, 3
         PRINT *, C(i,1), C(i,2), C(i,3)
      END DO
      END

This program reads two matrices and calculates their product, printing the result.

Conclusion: Why Learn Fortran 77?

While Fortran 77 may seem outdated, it remains an incredibly powerful language for scientific computing, numerical analysis, and high-performance applications. By learning Fortran 77, you gain access to a wealth of existing legacy code and an efficient tool for solving complex computational problems.

We hope this Fortran 77 tutorial has helped you understand the basics and given you the confidence to start writing your own programs. Remember, while Fortran 77 may not have all the bells and whistles of modern programming languages, its simplicity and power in computational tasks make it a valuable tool that continues to be used in many scientific fields.

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!

Imię:
Treść: