orb_idx_mod Module



Contents


Variables

Type Visibility Attributes Name Initial
type(SpinProj_t), public, parameter :: beta = SpinProj_t(-1)
type(SpinProj_t), public, parameter :: alpha = SpinProj_t(1)

Interfaces

public interface SpinOrbIdx_t

public interface size

  • private pure function size_SpinOrbIdx_t(orbs) result(res)

    Arguments

    Type IntentOptional Attributes Name
    type(SpinOrbIdx_t), intent(in) :: orbs

    Return Value integer

  • private pure function size_SpatOrbIdx_t(orbs) result(res)

    Arguments

    Type IntentOptional Attributes Name
    type(SpatOrbIdx_t), intent(in) :: orbs

    Return Value integer

public interface write_det

  • private subroutine write_det_SpinOrbIdx_t(det_I, i_unit, advance)

    Arguments

    Type IntentOptional Attributes Name
    type(SpinOrbIdx_t), intent(in) :: det_I
    integer, intent(in), optional :: i_unit
    logical, intent(in), optional :: advance
  • private subroutine write_det_SpatOrbIdx_t(det_I, i_unit, advance)

    Arguments

    Type IntentOptional Attributes Name
    type(SpatOrbIdx_t), intent(in) :: det_I
    integer, intent(in), optional :: i_unit
    logical, intent(in), optional :: advance

public interface operator(==)

  • private pure function eq_SpinOrbIdx_t(lhs, rhs) result(res)

    Arguments

    Type IntentOptional Attributes Name
    type(SpinOrbIdx_t), intent(in) :: lhs
    type(SpinOrbIdx_t), intent(in) :: rhs

    Return Value logical, (size(lhs))

  • private pure function eq_SpatOrbIdx_t(lhs, rhs) result(res)

    Arguments

    Type IntentOptional Attributes Name
    type(SpatOrbIdx_t), intent(in) :: lhs
    type(SpatOrbIdx_t), intent(in) :: rhs

    Return Value logical, (size(lhs))

public interface operator(/=)

  • private pure function neq_SpinOrbIdx_t(lhs, rhs) result(res)

    Arguments

    Type IntentOptional Attributes Name
    type(SpinOrbIdx_t), intent(in) :: lhs
    type(SpinOrbIdx_t), intent(in) :: rhs

    Return Value logical, (size(lhs))

  • private pure function neq_SpatOrbIdx_t(lhs, rhs) result(res)

    Arguments

    Type IntentOptional Attributes Name
    type(SpatOrbIdx_t), intent(in) :: lhs
    type(SpatOrbIdx_t), intent(in) :: rhs

    Return Value logical, (size(lhs))

public interface lex_leq

public interface lex_geq

private interface lex_leq

private interface lex_geq

public interface sum


Derived Types

type, public ::  OrbIdx_t

Components

Type Visibility Attributes Name Initial
integer, public, allocatable :: idx(:)

type, public, extends(OrbIdx_t) ::  SpinOrbIdx_t

We assume order [beta_1, alpha_1, beta_2, alpha_2, …]

Components

Type Visibility Attributes Name Initial
integer, public, allocatable :: idx(:)

Constructor

private pure function SpinOrbIdx_t_from_SpatOrbIdx_t (spat_orbs, m_s)
private pure function construction_from_array_SpinOrbIdx_t (idx, m_s)

Type-Bound Procedures

procedure , public , nopass :: from_ilut => from_ilut_SpinOrbIdx_t Function

type, public, extends(OrbIdx_t) ::  SpatOrbIdx_t

Components

Type Visibility Attributes Name Initial
integer, public, allocatable :: idx(:)

type, public ::  SpinProj_t

Components

Type Visibility Attributes Name Initial
integer, public :: val

Twice the spin projection as integer.

Type-Bound Procedures

procedure , private , :: eq_SpinProj_t_SpinProj_t Function
generic, public :: operator(==) => eq_SpinProj_t_SpinProj_t
procedure , private , :: neq_SpinProj_t_SpinProj_t Function
generic, public :: operator(/=) => neq_SpinProj_t_SpinProj_t
procedure , private , :: add_SpinProj_t_SpinProj_t Function
generic, public :: operator(+) => add_SpinProj_t_SpinProj_t
procedure , private , :: mult_SpinProj_t_int Function
generic, public :: operator(*) => mult_SpinProj_t_int
procedure , private , :: sub_SpinProj_t_SpinProj_t Function
procedure , private , :: neg_SpinProj_t Function
generic, public :: operator(-) => sub_SpinProj_t_SpinProj_t, neg_SpinProj_t

Functions

private pure function construction_from_array_SpinOrbIdx_t(idx, m_s) result(res)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: idx(:)
type(SpinProj_t), intent(in), optional :: m_s

Return Value type(SpinOrbIdx_t)

private pure function size_SpinOrbIdx_t(orbs) result(res)

Arguments

Type IntentOptional Attributes Name
type(SpinOrbIdx_t), intent(in) :: orbs

Return Value integer

private pure function size_SpatOrbIdx_t(orbs) result(res)

Arguments

Type IntentOptional Attributes Name
type(SpatOrbIdx_t), intent(in) :: orbs

Return Value integer

private pure function eq_SpinOrbIdx_t(lhs, rhs) result(res)

Arguments

Type IntentOptional Attributes Name
type(SpinOrbIdx_t), intent(in) :: lhs
type(SpinOrbIdx_t), intent(in) :: rhs

Return Value logical, (size(lhs))

private pure function eq_SpatOrbIdx_t(lhs, rhs) result(res)

Arguments

Type IntentOptional Attributes Name
type(SpatOrbIdx_t), intent(in) :: lhs
type(SpatOrbIdx_t), intent(in) :: rhs

Return Value logical, (size(lhs))

private pure function neq_SpinOrbIdx_t(lhs, rhs) result(res)

Arguments

Type IntentOptional Attributes Name
type(SpinOrbIdx_t), intent(in) :: lhs
type(SpinOrbIdx_t), intent(in) :: rhs

Return Value logical, (size(lhs))

private pure function neq_SpatOrbIdx_t(lhs, rhs) result(res)

Arguments

Type IntentOptional Attributes Name
type(SpatOrbIdx_t), intent(in) :: lhs
type(SpatOrbIdx_t), intent(in) :: rhs

Return Value logical, (size(lhs))

private pure function SpinOrbIdx_t_from_SpatOrbIdx_t(spat_orbs, m_s) result(res)

Arguments

Type IntentOptional Attributes Name
type(SpatOrbIdx_t), intent(in) :: spat_orbs
type(SpinProj_t), intent(in), optional :: m_s

Return Value type(SpinOrbIdx_t)

public pure function to_ilut(det_I) result(iLut)

Arguments

Type IntentOptional Attributes Name
type(SpinOrbIdx_t), intent(in) :: det_I

Return Value integer(kind=n_int), (0:nIfTot)

public pure function calc_spin(orbs) result(res)

Arguments

Type IntentOptional Attributes Name
type(SpinOrbIdx_t), intent(in) :: orbs

Return Value type(SpinProj_t), (size(orbs))

private elemental function add_SpinProj_t_SpinProj_t(lhs, rhs) result(res)

Arguments

Type IntentOptional Attributes Name
class(SpinProj_t), intent(in) :: lhs
class(SpinProj_t), intent(in) :: rhs

Return Value type(SpinProj_t)

private elemental function mult_SpinProj_t_int(lhs, rhs) result(res)

Arguments

Type IntentOptional Attributes Name
class(SpinProj_t), intent(in) :: lhs
integer, intent(in) :: rhs

Return Value type(SpinProj_t)

private pure function sum_SpinProj_t(V) result(res)

Arguments

Type IntentOptional Attributes Name
type(SpinProj_t), intent(in) :: V(:)

Return Value type(SpinProj_t)

private elemental function sub_SpinProj_t_SpinProj_t(lhs, rhs) result(res)

Arguments

Type IntentOptional Attributes Name
class(SpinProj_t), intent(in) :: lhs
class(SpinProj_t), intent(in) :: rhs

Return Value type(SpinProj_t)

private elemental function neg_SpinProj_t(m_s) result(res)

Arguments

Type IntentOptional Attributes Name
class(SpinProj_t), intent(in) :: m_s

Return Value type(SpinProj_t)

private elemental function eq_SpinProj_t_SpinProj_t(lhs, rhs) result(res)

Arguments

Type IntentOptional Attributes Name
class(SpinProj_t), intent(in) :: lhs
class(SpinProj_t), intent(in) :: rhs

Return Value logical

private elemental function neq_SpinProj_t_SpinProj_t(lhs, rhs) result(res)

Arguments

Type IntentOptional Attributes Name
class(SpinProj_t), intent(in) :: lhs
class(SpinProj_t), intent(in) :: rhs

Return Value logical

public elemental function calc_spin_raw(orb_idx) result(res)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: orb_idx

Return Value type(SpinProj_t)

private pure function lex_leq_SpinOrbIdx_t(lhs, rhs) result(res)

Arguments

Type IntentOptional Attributes Name
type(SpinOrbIdx_t), intent(in) :: lhs
type(SpinOrbIdx_t), intent(in) :: rhs

Return Value logical

private pure function lex_geq_SpinOrbIdx_t(lhs, rhs) result(res)

Arguments

Type IntentOptional Attributes Name
type(SpinOrbIdx_t), intent(in) :: lhs
type(SpinOrbIdx_t), intent(in) :: rhs

Return Value logical

private pure function lex_leq_SpatOrbIdx_t(lhs, rhs) result(res)

Arguments

Type IntentOptional Attributes Name
type(SpatOrbIdx_t), intent(in) :: lhs
type(SpatOrbIdx_t), intent(in) :: rhs

Return Value logical

private pure function lex_geq_SpatOrbIdx_t(lhs, rhs) result(res)

Arguments

Type IntentOptional Attributes Name
type(SpatOrbIdx_t), intent(in) :: lhs
type(SpatOrbIdx_t), intent(in) :: rhs

Return Value logical

private pure function from_ilut_SpinOrbIdx_t(ilut) result(res)

Arguments

Type IntentOptional Attributes Name
integer(kind=n_int), intent(in) :: ilut(0:nIfD)

Return Value type(SpinOrbIdx_t)

public elemental function get_spat(iorb) result(res)

Return the spatial orbital of iorb

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: iorb

Return Value integer


Subroutines

private subroutine write_det_SpinOrbIdx_t(det_I, i_unit, advance)

Arguments

Type IntentOptional Attributes Name
type(SpinOrbIdx_t), intent(in) :: det_I
integer, intent(in), optional :: i_unit
logical, intent(in), optional :: advance

private subroutine write_det_SpatOrbIdx_t(det_I, i_unit, advance)

Arguments

Type IntentOptional Attributes Name
type(SpatOrbIdx_t), intent(in) :: det_I
integer, intent(in), optional :: i_unit
logical, intent(in), optional :: advance