next up previous contents
Next: Modules - Procedure Declaration Up: Modules - Interface Declaration Previous: Modules - Interface Declaration

 

Modules Interface Declaration Example

Consider the following module containing procedure interfaces:

    MODULE my_interfaces
     IMPLICIT NONE
     INTERFACE
      SUBROUTINE sub1(A,B,C)
       REAL, INTENT(IN), DIMENSION(:) :: A
       INTEGER, INTENT(IN)            :: B
       CHARACTER(LEN=*), INTENT(IN)   :: C
      END SUBROUTINE sub1
      SUBROUTINE sub2(time,dist)
       ... ! etc
      END SUBROUTINE sub2
     END INTERFACE
    END MODULE my_interfaces

this can be used in the main program and will make the interfaces for sub1 and sub2 visible,

    PROGRAM use_of_module
     USE my_interfaces
     IMPLICIT NONE
      CALL sub1((/1.0,3.141,0.57112/),2,'Yobot')
      CALL sub2(t,d)
    END PROGRAM use_of_module
    SUBROUTINE sub1(A,B,C)
      ...
    END SUBROUTINE sub1
    SUBROUTINE sub2(time,dist)
      ...
    END SUBROUTINE sub2

Even though the module contains all possible interfaces and can simply be USE d to make the interfaces visible this is not the best way to use modules; we should use encapsulation.

Return to corresponding overview page gif


next up previous contents
Next: Modules - Procedure Declaration Up: Modules - Interface Declaration Previous: Modules - Interface Declaration

©University of Liverpool, 1997
Wed May 28 20:20:27 BST 1997
Not for commercial use.