Print

Print


Unless I misunderstood your question, you shouldn't need the EXTERNAL.  The following
should work:

MODULE whatever

INTERFACE
   FUNCTION Func1d(x)
     USE Num_const
     REAL(RS), INTENT(IN) :: x
     REAL(RS) :: Func1d
   END FUNCTION Func1d
END INTERFACE

CONTAINS

SUBROUTINE sub1
USE Num_const
REAL(RS) :: a,b
a = Func1d(b)
END SUBROUTINE sub1

SUBROUTINE sub2
[etc, etc]

END MODULE whatever

Here all the subroutines know the interface for Func1d by "host association", and
hence do not need to declare Func1d.

Bill

Goeran Klose wrote:
> 
> Hello  Mr. Mitchell,
> 
> Thanks for your advise. However, your second alternative
> works only if is following line is additionally placed in
> each subroutine of the module.
> 
> REAL(RS), EXTERNAL :: Func1d
> 
> Regards,
> 
> Göran Klose
> On 18-Aug-00 William F Mitchell wrote:
> > 1) include, or
> > 2) put all the routines in a module, and the interface in the specification
> > part
> > of the module
> >
> > Goeran Klose wrote:
> >>
> >> Hello,
> >>
> >> I am trying to compile a module of different mathematical
> >> Fortran 90 routines. All routines are supposed to
> >> evaluate the same type of function. The interface of this
> >> function is given below.
> >>
> >>     INTERFACE
> >>        FUNCTION Func1d(x)
> >>          USE Num_const
> >>          REAL(RS), INTENT(IN) :: x
> >>          REAL(RS) :: Func1d
> >>        END FUNCTION Func1d
> >>     END INTERFACE
> >>
> >> To reduce redundant Fortran coding, I am looking for a way to
> >> avoid the interface statement in each routine.
> >> Does anyone know an elegant way to solve this problem ?
> >>
> >> Thanks,
> >>
> >> Göran
> >
> > --
> > William F. Mitchell
> > Mathematical and Computational Sciences Division
> > National Institute of Standards and Technology
> > [log in to unmask]     http://math.nist.gov/~mitchell

-- 
William F. Mitchell
Mathematical and Computational Sciences Division
National Institute of Standards and Technology
[log in to unmask]     http://math.nist.gov/~mitchell


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%