!dec$ attributes dllexport :: copy_r4_s
   subroutine copy_r4_s (a, b)
      real*4, intent(out) :: a
      real*4, intent(in)  :: b
      a = b
   end subroutine

   !dec$ attributes dllexport :: copy_r8_s
   subroutine copy_r8_s (a, b)
      real*8, intent(out) :: a
      real*8, intent(in)  :: b
      a = b
   end subroutine

   !dec$ attributes dllexport :: copy_i4_s
   subroutine copy_i4_s (a, b)
      integer*4, intent(out) :: a
      integer*4, intent(in)  :: b
      a = b
   end subroutine

   !dec$ attributes dllexport :: copy_i8_s
   subroutine copy_i8_s (a, b)
      integer*8, intent(out) :: a
      integer*8, intent(in)  :: b
      a = b
   end subroutine

   !dec$ attributes dllexport :: copy_r4_v
   subroutine copy_r4_v (a, b)
      real*4, dimension(:), intent(out) :: a
      real*4, dimension(:), intent(in)  :: b
      a = b
   end subroutine

   !dec$ attributes dllexport :: copy_r8_v
   subroutine copy_r8_v (a, b)
      real*8, dimension(:), intent(out) :: a
      real*8, dimension(:), intent(in)  :: b
      a = b
   end subroutine

   !dec$ attributes dllexport :: copy_i4_v
   subroutine copy_i4_v (a, b)
      integer*4, dimension(:), intent(out) :: a
      integer*4, dimension(:), intent(in)  :: b
      a = b
   end subroutine

   !dec$ attributes dllexport :: copy_i8_v
   subroutine copy_i8_v (a, b)
      integer*8, dimension(:), intent(out) :: a
      integer*8, dimension(:), intent(in)  :: b
      a = b
   end subroutine