Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP Fortran 90 Programmer's Reference: HP Fortran 90 Programmer's Reference > Chapter 10 HP Fortran 90 statements

FUNCTION

» 

Technical documentation

Complete book in PDF
» Feedback
Content starts here

 » Table of Contents

 » Glossary

Introduces a function subprogram.

Syntax

[RECURSIVE] [type-spec] FUNCTION
      function-name ([dummy-arg-name-list])
      [RESULT (result-name)]
RECURSIVE

is a keyword that must be specified in the FUNCTION statement if the function is either directly or indirectly recursive. The RECURSIVE clause can appear at most once, either before or after type-spec. It is not an error to specify RECURSIVE for a nonrecursive function.

A recursive function that calls itself directly must also have the RESULT clause specified (see below).

type-spec

is a valid type specification (INTEGER, REAL, LOGICAL, CHARACTER, TYPE (name), etc.). The type and type parameters of the function result can be specified by type-spec or by declaring the result variable within the function subprogram, but not by both. The implicit typing rules apply if the function is not typed explicitly.

If the function result is array-valued or a pointer, the appropriate attributes for the result variable (which is function-name, or result-name if specified) must be specified within the function subprogram.

function-name

is the name of the function subprogram being defined.

dummy-arg-name-list

is a comma-separated list of dummy argument names for the function.

result-name

is the result variable. If the RESULT clause is not specified, function-name becomes the result variable. If result-name is given, it must differ from function-name, and function-name must not then be declared within the function subprogram.

As noted above, a recursive function that calls itself directly must have the RESULT clause specified. For other functions, the RESULT clause is optional.

Description

A FUNCTION statement introduces an external, module, or internal function subprogram.

Examples

PROGRAM main
...
CONTAINS
! f is an internal function
FUNCTION f(x)
f = 2*x + 3
END FUNCTION f
! recursive function, which must specify RESULT clause
RECURSIVE INTEGER FUNCTION factorial (n) &
RESULT (factorial_value)
IMPLICIT INTEGER (a-z)
IF (n <= 0) THEN
factorial_value = 1
ELSE
factorial_value = n * factorial (n-1)
END IF
END FUNCTION factorial
END PROGRAM main

Related statements

CONTAINS, END, INTENT, INTERFACE, OPTIONAL, and the type declaration statements

Related concepts

For related information, see the following:

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© Hewlett-Packard Development Company, L.P.