### 6.3.1.2 Using Intrinsic Function Names

Example 6-1 shows the different ways to use intrinsic function names. In this annotated example, a single executable program uses the name SIN in four distinct ways:

- As the name of a statement function

- As the generic name of an intrinsic function

- As the specific name of an intrinsic function

- As the name of a user-defined function

Using the name in these four ways emphasizes the local and global properties of the name.

### Example 6-1 Using and Redefining an Intrinsic Function Name

       C     Compare ways of computing sine

             PROGRAM SINES

             REAL*8 X, PI

             PARAMETER (PI=3.141592653589793238D0)

             COMMON V(3)

        C    Define SIN as a statement function

             SIN(X) = COS(PI/2-X)

             DO 10 X = -PI, PI, 2*PI/100

             CALL COMPUT(X)

        C    Reference the statement function SIN

       10    WRITE (6,100) X, V, SIN(X)

       100   FORMAT (5F10.7)

             END

             SUBROUTINE COMPUT(Y)

             REAL*8 Y

        C    Use intrinsic function SIN as actual argument

             INTRINSIC SIN

             COMMON V(3)

        C    Define generic reference to double-precision sine

             V(1) = SIN(Y)

        C    Use intrinsic function SIN as actual argument

             CALL SUB(REAL(Y),SIN)

             END

             SUBROUTINE SUB(A,S)

        C    Declare SIN as name of user function

             EXTERNAL SIN

        C    Declare SIN as type REAL*8

             REAL*8 SIN

             COMMON V(3)

        C    Evaluate intrinsic function SIN

             V(2) = S(A)

        C    Evaluate user-defined SIN function

             V(3) = SIN(A)

             END

       C     Define the user SIN function

             REAL*8 FUNCTION SIN(X)

             INTEGER FACTOR

             SIN = X - X**3/FACTOR(3) + X**5/FACTOR(5)

            1      - X**7/FACTOR(7)

             END

             INTEGER FUNCTION FACTOR(N)

             FACTOR = 1

             DO 10 I=N,1,-1

       10    FACTOR = FACTOR * I

             END

A statement function named SIN is defined in terms of the generic function name COS. Because the argument of COS is double precision, the double-precision cosine function is evaluated. The statement function SIN is itself single precision.

The statement function SIN is called.

The name SIN is declared intrinsic so that the single-precision intrinsic sine function can be passed as an actual argument at 5.

The generic function name SIN is used to refer to the double-precision sine function.

The single-precision intrinsic sine function is used as an actual argument.

The name SIN is declared a user-defined function name.

The type of SIN is declared double precision.

The single-precision sine function passed at 5 is evaluated.

The user-defined SIN function is evaluated.

The user-defined SIN function is defined as a simple Taylor series using a user-defined function FACTOR to compute the factorial function.

Previous Page Next Page Table of Contents