! IBM libmassv compatibility library
! 

#ifndef NATIVE_MASSV

      subroutine  vdiv (docs)  (z,x,y,n)
      real*8 x(*),y(*),z(*)
      do 10 j=1,n
      z(j)=x(j)/y(j)
   10 continue
      return
      end


      subroutine  vsdiv (docs)  (z,x,y,n)
      real*4 x(*),y(*),z(*)
      do 10 j=1,n
      z(j)=x(j)/y(j)
   10 continue
      return
      end


      subroutine  vexp (docs)  (y,x,n)
      real*8 x(*),y(*)
      do 10 j=1,n
      y(j)=exp(x(j))
   10 continue
      return
      end


      subroutine  vsexp (docs)  (y,x,n)
      real*4 x(*),y(*)
      do 10 j=1,n
      y(j)=exp(x(j))
   10 continue
      return
      end


      subroutine  vlog (docs)  (y,x,n)
      real*8 x(*),y(*)
      do 10 j=1,n
      y(j)=log(x(j))
   10 continue
      return
      end


      subroutine  vslog (docs)  (y,x,n)
      real*4 x(*),y(*)
      do 10 j=1,n
      y(j)=log(x(j))
   10 continue
      return
      end


      subroutine  vrec (docs)  (y,x,n) 5
      real*8 x(*),y(*)
      do 10 j=1,n
      y(j)=1.d0/x(j)
   10 continue
      return
      end


      subroutine  vsrec (docs)  (y,x,n)
      real*4 x(*),y(*)
      do 10 j=1,n
      y(j)=1.e0/x(j)
   10 continue
      return
      end


      subroutine  vrsqrt (docs)  (y,x,n)
      real*8 x(*),y(*)
      do 10 j=1,n
      y(j)=1.d0/sqrt(x(j))
   10 continue
      return
      end


      subroutine  vsrsqrt (docs)  (y,x,n)
      real*4 x(*),y(*)
      do 10 j=1,n
      y(j)=1.e0/sqrt(x(j))
   10 continue
      return
      end


      subroutine  vsincos (docs)  (x,y,z,n)
      real*8 x(*),y(*),z(*)
      do 10 j=1,n
      x(j)=sin(z(j))
      y(j)=cos(z(j))
   10 continue
      return
      end


      subroutine  vssincos (docs)  (x,y,z,n)
      real*4 x(*),y(*),z(*)
      do 10 j=1,n
      x(j)=sin(z(j))
      y(j)=cos(z(j))
   10 continue
      return
      end


      subroutine  vsqrt (docs)  (y,x,n) 5
      real*8 x(*),y(*)
      do 10 j=1,n
      y(j)=sqrt(x(j))
   10 continue
      return
      end


      subroutine  vssqrt (docs)  (y,x,n)
      real*4 x(*),y(*)
      do 10 j=1,n
      y(j)=sqrt(x(j))
   10 continue
      return
      end


      subroutine  vtan (docs)  (y,x,n)
      real*8 x(*),y(*)
      do 10 j=1,n
      y(j)=tan(x(j))
   10 continue
      return
      end


      subroutine  vstan (docs)  (y,x,n)
      real*4 x(*),y(*)
      do 10 j=1,n
      y(j)=tan(x(j))
   10 continue
      return
      end


      subroutine  vatan2 (docs)  (z,y,x,n)
      real*8 x(*),y(*),z(*)
      do 10 j=1,n
      z(j)=atan2(y(j),x(j))
   10 continue
      return
      end


      subroutine  vsatan2 (docs)  (z,y,x,n)
      real*4 x(*),y(*),z(*)
      do 10 j=1,n
      z(j)=atan2(y(j),x(j))
   10 continue
      return
      end


      subroutine  vasin (docs)  (y,x,n)
      real*8 x(*),y(*)
      do 10 j=1,n
      y(j)=asin(x(j))
   10 continue
      return
      end


      subroutine  vsin (docs)  (y,x,n)
      real*8 x(*),y(*)
      do 10 j=1,n
      y(j)=sin(x(j))
   10 continue
      return
      end


      subroutine  vssin (docs)  (y,x,n)
      real*4 x(*),y(*)
      do 10 j=1,n
      y(j)=sin(x(j))
   10 continue
      return
      end


      subroutine  vacos (docs)  (y,x,n)
      real*8 x(*),y(*)
      do 10 j=1,n
      y(j)=acos(x(j))
   10 continue
      return
      end


      subroutine  vcos (docs)  (y,x,n)
      real*8 x(*),y(*)
      do 10 j=1,n
      y(j)=cos(x(j))
   10 continue
      return
      end


      subroutine  vscos (docs)  (y,x,n)
      real*4 x(*),y(*)
      do 10 j=1,n
      y(j)=cos(x(j))
   10 continue
      return
      end


      subroutine  vcosisin (docs)  (y,x,n)
      complex*16 y(*)
      real*8 x(*)
      do 10 j=1,n
      y(j)=dcmplx(cos(x(j)),sin(x(j)))
   10 continue
      return
      end


      subroutine  vscosisin (docs)  (y,x,n)
      complex*8 y(*)
      real*4 x(*)
      do 10 j=1,n
      y(j)= cmplx(cos(x(j)),sin(x(j)))
   10 continue
      return
      end


      subroutine  vdint (docs)  (y,x,n)
      real*8 x(*),y(*)
      do 10 j=1,n
!     y(j)=dint(x(j))
      y(j)=int(x(j))
   10 continue
      return
      end


      subroutine  vdnint (docs)  (y,x,n)
      real*8 x(*),y(*)
      do 10 j=1,n
!     y(j)=dnint(x(j))
      y(j)=nint(x(j))
   10 continue
      return
      end


      subroutine  vlog10 (docs)  (y,x,n)
      real*8 x(*),y(*)
      do 10 j=1,n
      y(j)=log10(x(j))
   10 continue
      return
      end

!      subroutine vlog1p(y,x,n)
!      real*8 x(*),y(*)
!      interface
!        real*8 function log1p(%val(x))
!          real*8 x
!        end function log1p
!      end interface
!      do 10 j=1,n
!      y(j)=log1p(x(j))
!   10 continue
!      return
!      end


      subroutine  vcosh (docs)  (y,x,n)
      real*8 x(*),y(*)
      do 10 j=1,n
      y(j)=cosh(x(j))
   10 continue
      return
      end


      subroutine  vsinh (docs)  (y,x,n)
      real*8 x(*),y(*)
      do 10 j=1,n
      y(j)=sinh(x(j))
   10 continue
      return
      end


      subroutine  vtanh (docs)  (y,x,n)
      real*8 x(*),y(*)
      do 10 j=1,n
      y(j)=tanh(x(j))
   10 continue
      return
      end

!      subroutine vexpm1(y,x,n)
!      real*8 x(*),y(*)
!      interface
!        real*8 function expm1(%val(x))
!          real*8 x
!        end function expm1
!      end interface 
!      do 10 j=1,n
!      y(j)=expm1(x(j))
!   10 continue
!      return
!      end



      subroutine  vsasin (docs)  (y,x,n)
      real*4 x(*),y(*)
      do 10 j=1,n
      y(j)=asin(x(j))
   10 continue
      return
      end


      subroutine  vsacos (docs)  (y,x,n)
      real*4 x(*),y(*)
      do 10 j=1,n
      y(j)=acos(x(j))
   10 continue
      return
      end


      subroutine  vscosh (docs)  (y,x,n)
      real*4 x(*),y(*)
      do 10 j=1,n
      y(j)=cosh(x(j))
   10 continue
      return
      end

!      subroutine vsexpm1(y,x,n)
!      real*4 x(*),y(*)
!      interface
!        real*8 function expm1(%val(x))
!          real*8 x
!        end function expm1
!      end interface
!      do 10 j=1,n
!      y(j)=expm1(real(x(j),8))
!   10 continue
!      return
!      end


      subroutine  vslog10 (docs)  (y,x,n)
      real*4 x(*),y(*)
      do 10 j=1,n
      y(j)=log10(x(j))
   10 continue
      return
      end

!      subroutine vslog1p(y,x,n)
!      real*4 x(*),y(*)
!      interface
!        real*8 function log1p(%val(x))
!          real*8 x
!        end function log1p
!      end interface
!      do 10 j=1,n
!      y(j)=log1p(real(x(j),8))
!   10 continue
!      return
!      end



      subroutine  vssinh (docs)  (y,x,n)
      real*4 x(*),y(*)
      do 10 j=1,n
      y(j)=sinh(x(j))
   10 continue
      return
      end


      subroutine  vstanh (docs)  (y,x,n)
      real*4 x(*),y(*)
      do 10 j=1,n
      y(j)=tanh(x(j))
   10 continue
      return
      end
#endif


      subroutine  vspow (docs)  (z,y,x,n)
      real*4 x(*),y(*),z(*)
      do 10 j=1,n
      z(j)=y(j)**x(j)
   10 continue
      return
      end


      subroutine  vpow (docs)  (z,y,x,n) 1
      real*8 x(*),y(*),z(*)
      do 10 j=1,n
      z(j)=y(j)**x(j)
   10 continue
      return
      end