anchor.diff:      rndVec(i) = sqrt((-two)*log_mb(rndTmp(i)))
     end do
   
  -end subroutine rnd_rayleigh
  +end subroutine rnd_rayleigh_nocut
  +
  +! ================================================================================================ !
  +!  V.K. Berglyd Olsen, BE-ABP-HSS
  +!  Created: 2019-09-26
  +!  Updated: 2019-09-26
  +!  Rayleigh distribution with radial part of Box-Muller and a max cut.
  +! ================================================================================================ !
  +subroutine rnd_rayleigh_maxcut(seriesID, rndVec, vLen, sMax)
  +
  +  use crcoall
  +  use mathlib_bouncer
  +  use numerical_constants, only : one, two
  +
  +  integer,          intent(in)  :: seriesID, vLen
  +  real(kind=fPrec), intent(out) :: rndVec(vLen), sMax
  +
  +  integer i
  +  real(kind=fPrec) rndTmp(vLen), cFac
  +
  +  cFac = one - exp_mb(-(sMax**2/two))
  +  call rnd_uniform(seriesID, rndTmp, vLen)
  +  do i=1,vLen
  +    rndVec(i) = sqrt((-two)*log_mb(one - cFac*rndTmp(i)))
  +  end do
  +
  +end subroutine rnd_rayleigh_maxcut
  +
  +! ================================================================================================ !
  +!  V.K. Berglyd Olsen, BE-ABP-HSS
  +!  Created: 2019-09-26
  +!  Updated: 2019-09-26
  +!  Rayleigh distribution with radial part of Box-Muller and a min and max cut.
  +! ================================================================================================ !
  +subroutine rnd_rayleigh_maxmincut(seriesID, rndVec, vLen, sMax, sMin)
  +
  +  use crcoall
  +  use mathlib_bouncer
  +  use numerical_constants, only : one, two
  +
  +  integer,          intent(in)  :: seriesID, vLen
  +  real(kind=fPrec), intent(out) :: rndVec(vLen), sMax, sMin
  +
  +  integer i
  +  real(kind=fPrec) rndTmp(vLen), cFac, sMin2
  +
  +  cFac  = one - exp_mb(-((sMax+sMin)*(sMax-sMin)/two))
  +  sMin2 = sMin**2
  +  call rnd_uniform(seriesID, rndTmp, vLen)
  +  do i=1,vLen
  +    rndVec(i) = sqrt(sMin2 - two*log_mb(one - cFac*rndTmp(i)))
  +  end do
  +
  +end subroutine rnd_rayleigh_maxmincut
   
   ! ================================================================================================ !
   !  V.K. Berglyd Olsen, BE-ABP-HSS
   !  Created: 2019-09-24
   !  Updated: 2019-09-24
   !  Irwin-Hall approximation of a normal distribution of order N = 1:10
  -!  1st order is equivalen to uniform, 2nd order is triangtular, and 3rd order and up approaches a
  +!  The distribution is centred around nOrder/2 and extends from - nOrder/2 to + nOrder/2
  +!  1st order is equivalen to uniform, 2nd order is triangular, and 3rd order and up approaches a
   !  Gaussian distribution. First few orders should be faster than Box-Muller.
   ! ================================================================================================ !
   subroutine rnd_irwinHall(seriesID, rndVec, vLen, nOrder)
  
positive.code: !  unintrupted. This will also hold after a restart from checkpoint.
  !  At 64-bit, tail truncation occurs at 9.42 sigmas, and 6.66 sigmas at 32-bit.
  ! ================================================================================================ !
  subroutine rnd_normal(seriesID, rndVec, vLen)
  
    use crcoall
    use mathlib_bouncer
  
negative.code: !  Updated: 2019-09-24
  !  Rayleigh distribution with radial part of Box-Muller.
  ! ================================================================================================ !
  subroutine rnd_rayleigh_nocut(seriesID, rndVec, vLen)
  
    use crcoall
    use mathlib_bouncer
  