anchor.diff:          !    f(basis_length): bit string representation of the Slater
           !        determinant.
           ! Out:
  -        !    occ_list(nel): integer list of occupied spin-orbitals in the Slater determinant.
  -        !    unocc_list_alpha(nvirt_alpha): integer list of unoccupied alpha
  -        !        spin-orbitals in the Slater determinant.
  -        !    unocc_list_beta(nvirt_beta): integer list of unoccupied beta
  -        !        spin-orbitals in the Slater determinant.
  +        !    d: det_info variable.  The following components are set:
  +        !        occ_list_alpha(nalpha): integer list of occupied alpha
  +        !            spin-orbitals in the Slater determinant.
  +        !        occ_list_beta(nbeta): integer list of occupied beta
  +        !            spin-orbitals in the Slater determinant.
  +        !        unocc_list_alpha(nvirt_alpha): integer list of unoccupied alpha
  +        !            spin-orbitals in the Slater determinant.
  +        !        unocc_list_beta(nvirt_beta): integer list of unoccupied beta
  +        !            spin-orbitals in the Slater determinant.
   
           integer(i0), intent(in) :: f(basis_length)
  -        integer, intent(out) :: occ_list_alpha(nalpha), occ_list_beta(nbeta)
  -        integer, intent(out) :: unocc_list_alpha(nvirt_alpha), unocc_list_beta(nvirt_beta)
  +        type(det_info), intent(out) :: d
           integer :: i, j, iocc_a, iocc_b, iunocc_a, iunocc_b
   
           iocc_a = 0
  
positive.code:         !    f(basis_length): bit string representation of the Slater
          !        determinant.
          ! Out:
          !    occ_list(nel): integer list of occupied spin-orbitals in the Slater determinant.
          !    unocc_list_alpha(nvirt_alpha): integer list of unoccupied alpha
          !        spin-orbitals in the Slater determinant.
          !    unocc_list_beta(nvirt_beta): integer list of unoccupied beta
          !        spin-orbitals in the Slater determinant.
  
          integer(i0), intent(in) :: f(basis_length)
          integer, intent(out) :: occ_list(nel), unocc_list_alpha(nvirt_alpha), unocc_list_beta(nvirt_beta)
          integer :: i, j, iocc, iunocc_a, iunocc_b
  
          iocc = 0
  
negative.code: 
      end function decode_det
  
      pure subroutine decode_det_occ_spinunocc(f, d)
  
          ! Decode determinant bit string into integer lists containing the
          ! occupied and unoccupied orbitals.  The unoccupied alpha and beta
  