!
      PROGRAM P68
!
      IMPLICIT NONE
      INTEGER :: J
      REAL :: X,Y
!
      INTERFACE
      FUNCTION GAUSS(X,U,SD)
      IMPLICIT NONE
      REAL, INTENT(IN) :: X,U,SD
      REAL :: GAUSS
      END FUNCTION GAUSS
      END INTERFACE
!
      PRINT *, 'This is Program >> P68  - GAUSS Function'
!
!     Example of using a function
!     on the RHS of an assignment statement
!
      X = 0.0
L1:   DO J =1,11  ! 11 steps in the positive X direction
         Y=5.0*GAUSS(X,0.0,1.0)+2.5
!
!     The Gaussian or Normal curve has
!     been scaled and translated
!
         PRINT *,X,Y
         X = X + 0.5     ! Increase X by a step of .5
      END DO L1
      STOP
      END PROGRAM P68
!
!     Example of writing a function
!
      FUNCTION GAUSS(X,U,SD)
      IMPLICIT NONE
      REAL, INTENT(IN) :: X,U,SD      
      REAL :: C,GAUSS
      C=1.0/(SD*SQRT(2.0*3.14159))
      GAUSS=C*EXP(-(X-U)**2/(2.0*SD**2))
      RETURN
      END FUNCTION GAUSS