We want to write two functions, which calculate the perimeter and the area of a circle, respectively. Both functions need the value of . We define this value in a module:
module define_pi implicit none real, parameter :: pi = 3.1415926 end module define_pi
By USE-ing the module in both functions, we make sure that they see the same value of . The main program reads in the value of the radius and prints the perimeter and the area of the circle.
real function perimeter(r) use define_pi implicit none real :: r perimeter = 2.0*pi*r end function perimeter
real function area(r) use define_pi implicit none real :: r area = pi*r*r end function area
program circle implicit none real :: r real, external :: perimeter, area print*, 'radius =' read*, r print*,'area = ',area(r) print*,'perimeter = ',perimeter(r) end program circle