anchor.diff:      if(iseed2 < 0) iseed2 = iseed2+2147483399
       iz = iseed1-iseed2
       if(iz < 1) iz = iz+2147483562
  -    r(j) = real(iz,fPrec)*4.656613e-10_fPrec
  +    r(j) = real(iz,fPrec)*4.656613e-10_fPrec ! Note: this is still single precision
     end do
   
     if(mode == 1) then
  
positive.code: subroutine ranecu(rvec, len, mode, cut)
  
    use crcoall
    use floatPrecision
    use mathlib_bouncer
    use numerical_constants
  
    real(kind=fPrec),           intent(out) :: rvec(*)
    integer,                    intent(in)  :: len
    integer,                    intent(in)  :: mode
    real(kind=fPrec), optional, intent(in)  :: cut
  
  
negative.code: ! ================================================================================================ !
  module mod_ranecu
  
    use floatPrecision
  
    implicit none
  
    integer, private, save :: iseed1 = 12345
    integer, private, save :: iseed2 = 67890
  
    ! Constants for converting the integer range 1 to 2147483563 to a real between 0 and 1.0 (non-inclusive)
  #ifdef SINGLE_MATH
    real(kind=fPrec), parameter :: rScale = 4.65661287e-10_fPrec ! 0x30000000
  #endif
  #ifdef DOUBLE_MATH
    real(kind=fPrec), parameter :: rScale = 4.65661305739176810e-10_fPrec ! 0x3e0000000aa00006
  #endif
  #ifdef QUAD_MATH
    real(kind=fPrec), parameter :: rScale = 4.6566130573917691960466940253828613e-10_fPrec ! 0x3fe0000000aa000070e4004af76831c8
  #endif
  
  contains
  
  