SUBROUTINE SwapOneEPropInts(nBasisFrz, iNum)
! IN: iNum is the number of perturbation operator used in the calculation
! During freezing, we need to know the OneEPropInts arrays both pre- and
! post-freezing. Once freezing is done, clear all the pre-freezing
! arrays and point them to the post-freezing arrays, so the code
! referencing pre-freezing arrays can be used post-freezing.
implicit none
integer, intent(in) :: nBasisFrz, iNum
integer :: iSize, ierr
character(*), parameter :: t_r = 'SwapOneEPropInts'
Deallocate(OneEPropInts)
call LogMemDealloc(t_r, tagOneEPropInts)
NULLIFY (OneEPropInts)
allocate(OneEPropInts(nBasisFrz, nBasisFrz, iNum), STAT=ierr)
iSize = nBasisFrz * nBasisFrz * iNum
call LogMemAlloc('OneEPropInts', iSize, HElement_t_size * 8, t_r, tagOneEPropInts)
OneEPropInts => OneEPropInts2
NULLIFY (OneEPropInts2)
END SUBROUTINE SwapOneEPropInts