FORTRAN Select case statement | TUTORIAL 9

Select Case statement is another tool for logical decision in FORTRAN.

We have used if statement to control decisions in FORTRAN in the previous lessons. But Select Case statement gives more control over the if statement.

In the previous lessons, we used a logical operator with if statement to completer our task. The code became difficult to understand and as well as the length became messy. However, with the use of the Select Case statement, we can solve those problems. The code with the use of Select Case statement becomes easy to understand and can do complex tasks as well.

I suggest you go through all previous lessons before proceeding here. The previous lessons give you more insight to continue this lesson. Also, you can watch the video on the FORTRAN playlist.

Fortran Select Case Statement Syntax

The syntax for select case statement is:

select case (expression OR variable name)
    case (value)
       statement........
    case (value)
       statement........

    .....
    case default
         statement.......
end select

The use of select case statement is also in decision control like if statement. So the syntax might look somehow similar to that of if statement.

We can write many case () inside select case like we write many else if inside if statement. And case default for the final condition like as else in if statement.

Now let’s see the select case statement in code.

Use of Select Case Statement in FORTRAN code

a) With Variable

When we write a variable name inside the parenthesis of select case syntax, we have to use the value in the case statement. When the variable value matches with case value, then the statement inside that case will execute.

Let’s see one example.

program select_ex
 implicit none
  integer :: age = 15
   select case (age)
    case (5)
     print*, "You're a kid."
    case (6,7,8,9)
     print*, "You are still a kid."
    case (10:20)
     print*, "you are young."
    case default
     print*, "Age Value ERROR!"
end select

The output is:

You are young.

As you see in case (10 : 20) we give a range of values. This couldn’t be done in the if statement. And also we can give many values like shown above in case (6,7,8,9) in select case statement in FORTRAN

In if statement that line should be written like this:

if (age >= 10 .and. age <20) then
  print*, "You are young."
end if

As you see, the code with if statement becomes long which is not a good way to write a program.

Now try yourself changing the value of age variable and see the output.

When any case value doesn’t match with the age variable value, then case default statement will execute.

Let’s have a look at one more example:

program select_ex
 implicit none
  character(len=2) :: grade = 'E'
   select case (grade)
    case ('A')
     print*, "Excellent"
    case ('B': 'D')
     print*, "Good"
    case default
     print*, "Bad"
end select

Output is:

Bad

This time, I used character data type. Now play with the code with different examples.

And there is one thing to remember while using select case statement in FORTRAN. The value should not be overlapped with other case value.

for e.g. Look at this code below:

select case (age)
 case (4,5,6,7)
   ...
 case (7: 10)
  ....
end select

The above code gives ERROR as the values used in both case has some similar value. So we should avoid such an error of overlapping of values.

b) With expressions

We can also give expression inside select case parenthesis, as discussed in the syntax above.

Let’s see one example:

program select_ex
 implicit none
  integer :: age = 15
   select case (age == 15)
    case (.true.)
     print*, "You're a kid."
    case (.false.)
     print*, "you are young."
end select

The output is:

You're a kid.

Why is that?

Well, We use expression inside the parenthesis. And we know that expression gives either .true. or .false. value. Hence, We have only two choices in case value i.e. either .true. or .false.

Let’s look at the expression used inside the parenthesis. The expression age == 15 gives True value and hence the statement inside first case is printed out.

Conclusion

Fortran select case statement is easy to use and more versatile than regular if statement. The use of select case statement not only makes our code easier to read but also helps in complex calculations.

Select case statement is mostly used for decision control requiring many conditions to satisfy. In most of the physics complex problems, I have seen the use of a select case statement.

Enjoy coding……..

If you want to learn through a video, then I have that covered for you as well. CLICK HERE TO WATCH VIDEO.

Share this post:

Leave a Comment

Your email address will not be published. Required fields are marked *