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:

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