subroutine surface(v,rij)
!-----------------------------------------------------------------------
!     This routine supplies the potential energy surface for the
!     reactive scattering codes.
!     
!     On entering: The arrary rij contains the internuclear distances
!     in units of bohr (NOT mass scaled).
!     
!     On Exit:     The variable v is the value of the potential energy
!     surface in Hartree atomic units.
!     
!     
!-----------------------------------------------------------------------
USE PES_Module
implicit none
real*8 rij, v
external psurfac

dimension rij(3)
character(LEN=25) potname
!-----------------------------------------------------------------------
!     The character string potname must contain a string that uniquely
!     specifies the potential energy surface to be used.
!-----------------------------------------------------------------------
data potname/'h-pos'/
!-----------------------------------------------------------------------
!     Check for correct potential energy surface specification.
!-----------------------------------------------------------------------
if(PES_Name.ne.potname)then
   write(6,*)'The potential energy surface name does not match',' the name in the potential energy surface routine.'
   write(6,*)'***ERROR***: Execution stopped in routine surface'
   write(6,*)'pesname=',PES_Name,' potname=',potname
   stop 'surface'
end if
!-----------------------------------------------------------------------
!     This call to surfac supplies the potential energy surface
!     for the particular system of interest.
!-----------------------------------------------------------------------
call psurfac(v,rij)
return
end