guga_data Module



Variables

Type Visibility Attributes Name Initial
type(GeneratorType_Values_t), public, parameter :: gen_type = GeneratorType_Values_t()
integer, public, parameter :: n_excit_type_bits = 5
integer, public, parameter :: n_excit_lvl_bits = 2
integer, public, parameter :: n_excit_info_bits = n_excit_type_bits+n_excit_lvl_bits
integer, public, parameter :: pos_excit_type_bits = int(bit_size(1_int_rdm))-n_excit_type_bits
integer, public, parameter :: pos_excit_lvl_bits = int(bit_size(1_int_rdm))-n_excit_info_bits
integer, private :: i_
integer(kind=int_rdm), private, parameter :: excitLvl_bitmask = ishft(int(sum([(2**i_, i_=0, n_excit_lvl_bits-1)]), int_rdm), pos_excit_lvl_bits)
integer(kind=int_rdm), private, parameter :: excitType_bitmask = ishft(int(sum([(2**i_, i_=0, n_excit_type_bits-1)]), int_rdm), pos_excit_type_bits)
integer(kind=int_rdm), private, parameter :: excitInfo_bitmask = ior(excitLvl_bitmask, excitType_bitmask)
integer(kind=int_rdm), public, parameter :: rdm_ind_bitmask = not(excitInfo_bitmask)
integer, public, parameter :: n_excit_index_bits = 8
type(ExcitationTypeValues_t), public, parameter :: excit_type = ExcitationTypeValues_t()
type(ExcitationType_t), public, parameter :: excit_type_arr(0:25) = [excit_type%invalid, excit_type%weight, excit_type%single, excit_type%raising, excit_type%lowering, excit_type%non_overlap, excit_type%single_overlap_lowering, excit_type%single_overlap_raising, excit_type%single_overlap_L_to_R, excit_type%single_overlap_R_to_L, excit_type%double_lowering, excit_type%double_raising, excit_type%double_L_to_R_to_L, excit_type%double_R_to_L_to_R, excit_type%double_L_to_R, excit_type%double_R_to_L, excit_type%fullstop_lowering, excit_type%fullstop_raising, excit_type%fullstop_L_to_R, excit_type%fullstop_R_to_L, excit_type%fullstart_lowering, excit_type%fullstart_raising, excit_type%fullstart_L_to_R, excit_type%fullstart_R_to_L, excit_type%fullstart_stop_alike, excit_type%fullstart_stop_mixed]
type(ExcitationType_t), public, parameter :: valid_excit_type_arr(1:25) = excit_type_arr(1:25)
type(ExcitationType_t), public, parameter :: non_trivial_double_excit_type_arr(8:25) = excit_type_arr(8:25)
type(DistinctDoubleTypeVals_t), public, parameter :: distinct_doubles = DistinctDoubleTypeVals_t()
type(DistinctDoubleType_t), public, parameter :: distinct_doubles_arr(0:19) = [distinct_doubles%invalid, distinct_doubles%jijk, distinct_doubles%ijkj, distinct_doubles%ikjk, distinct_doubles%kikj, distinct_doubles%jikk, distinct_doubles%ijkk, distinct_doubles%ijik, distinct_doubles%jiki, distinct_doubles%iikj, distinct_doubles%iijk, distinct_doubles%ijij, distinct_doubles%jiji, distinct_doubles%iijj, distinct_doubles%ikjl, distinct_doubles%kilj, distinct_doubles%ijkl, distinct_doubles%jilk, distinct_doubles%ijlk, distinct_doubles%jikl]
logical, public :: tGUGACore = .false.
integer(kind=TagIntType), public :: tag_excitations = 0
integer(kind=TagIntType), public :: tag_tmp_excits = 0
integer(kind=TagIntType), public :: tag_proje_list = 0
type(ProcedurePtrArray_t), private :: singleMatElesGUGA(15)
integer, private, dimension(0:3,0:3,-1:2) :: indArrOne = reshape((/2, 2, 2, -1, 2, 10, 14, 5, 2, -1, 3, 7, -1, 7, 5, 3, 2, 2, 2, -1, 2, 3, 12, 6, 2, -1, 11, 8, -1, 5, 7, 3, 2, 2, 2, -1, 2, 3, -1, 5, 2, 13, 10, 7, -1, 7, 5, 3, 2, 2, 2, -1, 2, 9, -1, 6, 2, 15, 3, 8, -1, 5, 7, 3/), (/4, 4, 4/))
type(ProcedurePtrArray_t), private :: doubleMatEleX1GUGA(45)
integer, private, dimension(0:3,0:3,-7:7) :: indArrTwoX1 = reshape((/2, -1, 2, -1, -1, 34, 32, 18, -1, -1, 2, -1, -1, -1, -1, 2, 2, -1, 2, -1, 2, 39, 43, 23, -1, -1, 39, -1, -1, -1, 15, 2, 2, -1, -1, -1, 2, 2, 33, -1, -1, -1, 45, -1, -1, -1, 3, 2, -1, -1, -1, -1, 16, -1, -1, -1, 2, -1, -1, -1, -1, 3, 7, -1, 1, 38, 7, 1, 12, 12, 40, 17, 38, 38, 7, 23, 1, 4, 20, 1, -1, 2, 21, -1, -1, -1, -1, 12, -1, -1, -1, 22, -1, -1, -1, -1, 2, 21, 16, 1, -1, 31, 33, 28, -1, 32, 35, 26, 1, -1, -1, 2, 2, 7, 12, -1, 28, 30, 44, 10, 26, 42, 34, 6, -1, 20, 17, 2, 2, -1, -1, 1, 11, 31, 37, -1, 5, 29, 35, -1, 1, 7, 12, 2, -1, -1, -1, -1, 2, -1, -1, -1, 21, -1, -1, -1, -1, 12, 8, -1, -1, 12, 40, -1, 40, -1, -1, 25, 7, -1, -1, 20, -1, 17, 9, -1, -1, 16, 2, -1, -1, -1, -1, 24, -1, -1, -1, 7, -1, -1, -1, -1, 2, 2, -1, -1, -1, 2, -1, -1, -1, 33, 30, 14, -1, -1, -1, 2, 2, 2, -1, -1, -1, 41, -1, -1, 2, 43, 41, 25, -1, 19, -1, 2, 2, -1, -1, -1, -1, 36, -1, -1, 2, 32, 2, -1, -1, 8, -1, 2/), (/4, 4, 15/))
type(ProcedurePtrArray_t), private :: doubleMatEleX0GUGA(17)
integer, private, dimension(0:3,0:3,-7:7) :: indArrTwoX0 = reshape((/1, -1, 1, -1, -1, 1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, 1, -1, 1, -1, 1, 1, 1, 1, -1, -1, 1, -1, -1, -1, 1, 1, 1, -1, -1, -1, 1, 1, 1, -1, 1, -1, 1, -1, -1, -1, 1, 1, 1, -1, -1, -1, 14, 1, 2, -1, 1, -1, 2, -1, -1, 1, 7, 2, 1, 1, 7, 10, 7, 7, 1, 15, 1, 1, 7, 1, 11, 1, 17, 5, 1, 1, 16, -1, -1, 2, 2, 7, -1, -1, 1, 1, -1, -1, -1, 2, 2, 16, 14, 4, -1, 3, 1, 7, -1, 1, 3, 7, 4, -1, -1, 2, 2, 6, 6, -1, 6, 2, 1, 13, 6, 1, 2, 12, -1, 16, 14, 2, 2, -1, -1, 4, 13, 3, 1, -1, 12, 1, 3, -1, 4, 7, 7, 2, 1, -1, -1, -1, 1, 2, -1, -1, 16, 2, 1, -1, -1, 7, 1, 2, -1, 7, 1, 9, 1, -1, -1, 1, 7, -1, -1, 17, 8, 15, 1, -1, 1, 14, 1, -1, -1, 1, -1, 1, -1, 2, 2, 7, -1, -1, -1, 2, 1, 1, -1, -1, -1, 1, -1, -1, -1, 1, 1, 1, -1, -1, -1, 1, 1, 1, -1, -1, -1, 1, -1, -1, 1, 1, 1, 1, -1, 1, -1, 1, 1, -1, -1, -1, -1, 1, -1, -1, 1, 1, 1, -1, -1, 1, -1, 1/), (/4, 4, 15/))
type(ProcPtrArrTwo_t), private :: mixedGenFullStopMatEle(5)
integer, private, dimension(0:3, 0:3, -1:1) :: indArrEnd = reshape([-1, -1, -1, -1, -1, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, 2, -1, -1, -1, -1, 3, -1, -1, -1, -1, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, -1, -1, -1, -1, -1, -1], [4, 4, 3])
type(ProcedurePtrArray_t), private :: doubleContribution(7)
integer, private, dimension(0:3,0:3,-1:2) :: indContr = reshape([1, -1, -1, -1, -1, 1, 7, -1, -1, -1, 3, -1, -1, -1, -1, 3, 1, -1, -1, -1, -1, 3, 5, -1, -1, -1, 1, -1, -1, -1, -1, 3, 1, -1, -1, -1, -1, 3, -1, -1, -1, 6, 1, -1, -1, -1, -1, 3, 1, -1, -1, -1, -1, 1, -1, -1, -1, 4, 3, -1, -1, -1, -1, 3], [4, 4, 4])
type(ProjE_t), public, allocatable :: projE_replica(:)
integer, public, allocatable :: orbitalIndex(:)

Interfaces

public interface ExcitationType_t

public interface DistinctDoubleType_t

public interface DistinctDouble_t


Abstract Interfaces

abstract interface

  • private pure function dummyFunction(bValue) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=dp), intent(in) :: bValue

    Return Value real(kind=dp)

abstract interface

  • private pure subroutine dummySubroutine(bValue, x0, x1)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=dp), intent(in) :: bValue
    real(kind=dp), intent(out), optional :: x0
    real(kind=dp), intent(out), optional :: x1

Derived Types

type, public ::  WeightData_t

Components

Type Visibility Attributes Name Initial
real(kind=dp), public :: F = 0.0_dp
real(kind=dp), public :: G = 0.0_dp
real(kind=dp), public :: minus = 0.0_dp
real(kind=dp), public :: plus = 0.0_dp
real(kind=dp), public :: zero = 0.0_dp

type, private ::  GeneratorType_Values_t

Components

Type Visibility Attributes Name Initial
integer, public :: R = 1
integer, public :: L = -1
integer, public :: W = 0

type, public, extends(EnumBase_t) ::  ExcitationType_t

Components

Type Visibility Attributes Name Initial
integer, public :: val
character(len=30), public :: str

Constructor

private elemental function construct_ExcitationType_t (n)

Type-Bound Procedures

generic, public :: operator(==) => eq_EnumBase_t
generic, public :: operator(/=) => neq_EnumBase_t

type, private ::  ExcitationTypeValues_t

Components

Type Visibility Attributes Name Initial
type(ExcitationType_t), public :: invalid = ExcitationType_t(0, 'invalid')
type(ExcitationType_t), public :: weight = ExcitationType_t(1, 'Weight')
type(ExcitationType_t), public :: single = ExcitationType_t(2, 'Single')
type(ExcitationType_t), public :: raising = ExcitationType_t(3, 'Weight + Raising')
type(ExcitationType_t), public :: lowering = ExcitationType_t(4, 'Weight + Lowering')
type(ExcitationType_t), public :: non_overlap = ExcitationType_t(5, 'Non Overlap')
type(ExcitationType_t), public :: single_overlap_lowering = ExcitationType_t(6, 'Single Overlap Lowering')
type(ExcitationType_t), public :: single_overlap_raising = ExcitationType_t(7, 'Single Overlap Raising')
type(ExcitationType_t), public :: single_overlap_L_to_R = ExcitationType_t(8, 'Single Overlap L to R')
type(ExcitationType_t), public :: single_overlap_R_to_L = ExcitationType_t(9, 'Single Overlap R to L')
type(ExcitationType_t), public :: double_lowering = ExcitationType_t(10, 'Double Lowering')
type(ExcitationType_t), public :: double_raising = ExcitationType_t(11, 'Double Raising')
type(ExcitationType_t), public :: double_L_to_R_to_L = ExcitationType_t(12, 'Double L to R to L')
type(ExcitationType_t), public :: double_R_to_L_to_R = ExcitationType_t(13, 'Double R to L to R')
type(ExcitationType_t), public :: double_L_to_R = ExcitationType_t(14, 'Double L to R')
type(ExcitationType_t), public :: double_R_to_L = ExcitationType_t(15, 'Double R to L')
type(ExcitationType_t), public :: fullstop_lowering = ExcitationType_t(16, 'Fullstop Lowering')
type(ExcitationType_t), public :: fullstop_raising = ExcitationType_t(17, 'Fullstop Raising')
type(ExcitationType_t), public :: fullstop_L_to_R = ExcitationType_t(18, 'Fullstop L to R')
type(ExcitationType_t), public :: fullstop_R_to_L = ExcitationType_t(19, 'Fullstop R to L')
type(ExcitationType_t), public :: fullstart_lowering = ExcitationType_t(20, 'Fullstart Lowering')
type(ExcitationType_t), public :: fullstart_raising = ExcitationType_t(21, 'Fullstart Raising')
type(ExcitationType_t), public :: fullstart_L_to_R = ExcitationType_t(22, 'Fullstart L to R')
type(ExcitationType_t), public :: fullstart_R_to_L = ExcitationType_t(23, 'Fullstart R to L')
type(ExcitationType_t), public :: fullstart_stop_alike = ExcitationType_t(24, 'Fullstart to Fullstop Alike')
type(ExcitationType_t), public :: fullstart_stop_mixed = ExcitationType_t(25, 'Fullstart to Fullstop Mixed')

type, public, extends(EnumBase_t) ::  DistinctDoubleType_t

This represents a distinct double excitation (compare Table 4.3 of [@DobrautzThesis2019]) A distinct double excitation consists of the two double excitations which are connected by exchange .

Read more…

Components

Type Visibility Attributes Name Initial
integer, public :: val
type(ExcitationType_t), public :: repr

The two subtypes usually do not differ. If the two subtypes differ, then it is always a pairing with non_overlap. For this reason we can choose one representative.

Read more…
type(ExcitationType_t), public :: other

The other Excitation that is not the representative

character(len=2), public :: label

The label in Table 4.3 of [@DobrautzThesis2019]

integer, public :: idx_for_repr(4) = [1, 2, 3, 4]

Store the permutation for outputting the representation index

Read more…

Constructor

private elemental function construct_DistinctDoubleType_t_ijkl (idx)
private elemental function construct_DistinctDoubleType_t_ijab (idx)

Type-Bound Procedures

generic, public :: operator(==) => eq_EnumBase_t
generic, public :: operator(/=) => neq_EnumBase_t

type, public ::  DistinctDoubleTypeVals_t

Components

Type Visibility Attributes Name Initial
type(DistinctDoubleType_t), public :: invalid = DistinctDoubleType_t(0, excit_type%invalid, excit_type%invalid, '')
type(DistinctDoubleType_t), public :: jijk = DistinctDoubleType_t(1, excit_type%single_overlap_L_to_R, excit_type%single_overlap_L_to_R, '1a')
type(DistinctDoubleType_t), public :: ijkj = DistinctDoubleType_t(2, excit_type%single_overlap_R_to_L, excit_type%single_overlap_R_to_L, '1b')
type(DistinctDoubleType_t), public :: ikjk = DistinctDoubleType_t(3, excit_type%fullstop_raising, excit_type%fullstop_raising, '1c')
type(DistinctDoubleType_t), public :: kikj = DistinctDoubleType_t(4, excit_type%fullstop_lowering, excit_type%fullstop_lowering, '1d')
type(DistinctDoubleType_t), public :: jikk = DistinctDoubleType_t(5, excit_type%fullstop_L_to_R, excit_type%non_overlap, '1e', [1, 4, 3, 2])
type(DistinctDoubleType_t), public :: ijkk = DistinctDoubleType_t(6, excit_type%fullstop_R_to_L, excit_type%non_overlap, '1f', [1, 4, 3, 2])
type(DistinctDoubleType_t), public :: ijik = DistinctDoubleType_t(7, excit_type%fullstart_raising, excit_type%fullstart_raising, '1g')
type(DistinctDoubleType_t), public :: jiki = DistinctDoubleType_t(8, excit_type%fullstart_lowering, excit_type%fullstart_lowering, '1h')
type(DistinctDoubleType_t), public :: iikj = DistinctDoubleType_t(9, excit_type%fullstart_R_to_L, excit_type%non_overlap, '1i', [1, 4, 3, 2])
type(DistinctDoubleType_t), public :: iijk = DistinctDoubleType_t(10, excit_type%fullstart_L_to_R, excit_type%non_overlap, '1j', [1, 4, 3, 2])
type(DistinctDoubleType_t), public :: ijij = DistinctDoubleType_t(11, excit_type%fullstart_stop_alike, excit_type%fullstart_stop_alike, '2a')
type(DistinctDoubleType_t), public :: jiji = DistinctDoubleType_t(12, excit_type%fullstart_stop_alike, excit_type%fullstart_stop_alike, '2b')
type(DistinctDoubleType_t), public :: iijj = DistinctDoubleType_t(13, excit_type%fullstart_stop_mixed, excit_type%non_overlap, '2c', [1, 4, 3, 2])
type(DistinctDoubleType_t), public :: ikjl = DistinctDoubleType_t(14, excit_type%double_raising, excit_type%double_raising, '3a', [3, 4, 1, 2])
type(DistinctDoubleType_t), public :: kilj = DistinctDoubleType_t(15, excit_type%double_lowering, excit_type%double_lowering, '3b')
type(DistinctDoubleType_t), public :: ijkl = DistinctDoubleType_t(16, excit_type%double_R_to_L_to_R, excit_type%non_overlap, '3c', [1, 4, 3, 2])
type(DistinctDoubleType_t), public :: jilk = DistinctDoubleType_t(17, excit_type%double_L_to_R_to_L, excit_type%non_overlap, '3d', [1, 4, 3, 2])
type(DistinctDoubleType_t), public :: ijlk = DistinctDoubleType_t(18, excit_type%double_R_to_L, excit_type%non_overlap, '3e', [1, 4, 3, 2])
type(DistinctDoubleType_t), public :: jikl = DistinctDoubleType_t(19, excit_type%double_L_to_R, excit_type%non_overlap, '3f', [1, 4, 3, 2])

type, public ::  ijkl_Index_t

An index in the format of the Shavit papers [@Hinze1981]

Read more…

Components

Type Visibility Attributes Name Initial
integer, public :: val(4)

Type-Bound Procedures

procedure, public :: extract_ijkl => extract_ijkl_Index_t
procedure, public :: convert => convert_ijkl_Index_t
procedure, public :: normalize => normalize_ijkl_Index_t
procedure, public :: is_normalized => is_normalized_ijkl_Index_t
procedure, public :: fuse => fuse_ijkl_Index_t

type, public ::  ijab_Index_t

An index in the format of the rest of NECI [i, j, a, b] corresponds to

Read more…

Components

Type Visibility Attributes Name Initial
integer, public :: val(4)

Type-Bound Procedures

procedure, public :: extract_ijab => extract_ijab_Index_t
procedure, public :: convert => convert_ijab_Index_t
procedure, public :: normalize => normalize_ijab_Index_t
procedure, public :: is_normalized => is_normalized_ijab_Index_t
procedure, public :: fuse => fuse_ijab_Index_t

type, public ::  DistinctDouble_t

Components

Type Visibility Attributes Name Initial
type(ijkl_Index_t), public :: idx
type(DistinctDoubleType_t), public :: typ

Constructor

private elemental function construct_DistinctDouble_t_ijkl (idx)
private elemental function construct_DistinctDouble_t_ijab (idx)

Type-Bound Procedures

procedure, public :: get_repr_excit_info
procedure, public :: get_repr_index
procedure, public :: fuse => fuse_DistinctDouble_t

type, public ::  ExcitationInformation_t

Components

Type Visibility Attributes Name Initial
type(ExcitationType_t), public :: typ = excit_type%invalid
integer, public :: i = -1
integer, public :: j = -1
integer, public :: k = -1
integer, public :: l = -1
integer, public :: fullStart = -1
integer, public :: fullEnd = -1
integer, public :: secondStart = -1
integer, public :: firstEnd = -1
integer, public :: weight = -1
integer, public :: overlap = -1
integer, public :: gen1 = -2
integer, public :: gen2 = -2
integer, public :: firstGen = -2
integer, public :: lastGen = -2
integer, public :: currentGen = -2
integer, public :: excitLvl = -1
real(kind=dp), public :: order = 0.0_dp
real(kind=dp), public :: order1 = 0.0_dp
logical, public :: valid = .false.
logical, public :: spin_change = .false.
integer, public :: i_sg_start = -1

The supergroup from which the excitation starts. Only relevant for PropVec.

type, private ::  ProcedurePtrArray_t

Components

Type Visibility Attributes Name Initial
procedure(dummyFunction), public, pointer, nopass :: ptr => null()

type, private ::  ProcPtrArrTwo_t

Components

Type Visibility Attributes Name Initial
procedure(dummySubroutine), public, pointer, nopass :: ptr => null()

type, private ::  ProjE_t

Components

Type Visibility Attributes Name Initial
integer(kind=n_int), public, allocatable :: projE_ilut_list(:,:)
real(kind=dp), public, allocatable :: projE_hel_list(:)
integer, public, allocatable :: exlevel(:)
integer, public :: num_entries

type, public ::  RdmContribList_t

Components

Type Visibility Attributes Name Initial
integer(kind=n_int), public, allocatable :: ilut_list(:,:)
real(kind=dp), public, allocatable :: rdm_contrib(:)
integer(kind=int_rdm), public, allocatable :: rdm_ind(:)
integer, public, allocatable :: repeat_count(:)

Functions

public elemental function getDoubleContribution(step1, step2, deltaB, genFlag, bValue) result(doubleContr)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: step1
integer, intent(in) :: step2
integer, intent(in) :: deltaB
integer, intent(in) :: genFlag
real(kind=dp), intent(in) :: bValue

Return Value real(kind=dp)

public elemental function getSingleMatrixElement(step1, step2, deltaB, genFlag, bValue) result(hElement)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: step1
integer, intent(in) :: step2
integer, intent(in) :: deltaB
integer, intent(in) :: genFlag
real(kind=dp), intent(in) :: bValue

Return Value real(kind=dp)

private pure function minFunBplus2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funBplus0(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function minFunBplus1(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funBplus1(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funSqrt2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function minFunSqrt2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funOverRoot2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function minFunOverR2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funA_1_2overR2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funA_3_2overR2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function minFunA_3_2overR2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

public pure function funA_0_2overR2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

public pure function minFunA_0_2_overR2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funA_3_2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function minFunA_3_2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funA_1_0_overR2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funA_m1_0(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function minFunA_m1_0(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funA_m1_0_overR2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function minFunA_m1_0_overR2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

public pure function funA_2_0_overR2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

public pure function minFunA_2_0_overR2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funA_0_1_overR2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function minFunA_0_1_overR2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funA_2_1_overR2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function minFunA_2_1_overR2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function minFunA_1_2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function minFunA_1_0(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function minFunA_0_1(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

public pure function funA_3_1_overR2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function minFunA_3_1_overR2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

public pure function funA_m1_1_overR2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function minFunA_m1_1_overR2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funB_2_3(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funD_2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funD_0(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function minFunD_0(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funB_1_2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funB_0_1(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funD_1(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function minFunD_1(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funD_m1(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funB_m1_0(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function minFunA_2_1(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function minFunC_2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function minFunC_0(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function minFunOverB_2_R2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function minFunOverB_0_R2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function minFunB_0_2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funZero(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funPlus1(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funMinus1(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funTwo(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funA_0_1(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funA_2_1(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funA_1_0(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funA_1_2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funC_0(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funC_1(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funC_2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function minFunOverB_2(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funOverB_1(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function minFunOverB_1(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funOverB_0(b) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b

Return Value real(kind=dp)

private pure function funA(b, x, y) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b
real(kind=dp), intent(in) :: x
real(kind=dp), intent(in) :: y

Return Value real(kind=dp)

private pure function funB(b, x, y) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b
real(kind=dp), intent(in) :: x
real(kind=dp), intent(in) :: y

Return Value real(kind=dp)

private pure function funC(b, x) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b
real(kind=dp), intent(in) :: x

Return Value real(kind=dp)

private pure function funD(b, x) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b
real(kind=dp), intent(in) :: x

Return Value real(kind=dp)

private pure function funOverB(b, x) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b
real(kind=dp), intent(in) :: x

Return Value real(kind=dp)

private elemental function construct_ExcitationType_t(n) result(res)

Arguments

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

Return Value type(ExcitationType_t)

private elemental function get_repr_index(this) result(res)

Return the index for the representation.

Read more…

Arguments

Type IntentOptional Attributes Name
class(DistinctDouble_t), intent(in) :: this

Return Value type(ijkl_Index_t)

private elemental function get_repr_excit_info(this, i_sg_start) result(res)

Return the index for the representation.

Read more…

Arguments

Type IntentOptional Attributes Name
class(DistinctDouble_t), intent(in) :: this
integer, intent(in) :: i_sg_start

Return Value type(ExcitationInformation_t)

private elemental function construct_DistinctDoubleType_t_ijkl(idx) result(res)

Arguments

Type IntentOptional Attributes Name
type(ijkl_Index_t), intent(in) :: idx

Return Value type(DistinctDoubleType_t)

private elemental function construct_DistinctDoubleType_t_ijab(idx) result(res)

Arguments

Type IntentOptional Attributes Name
type(ijab_Index_t), intent(in) :: idx

Return Value type(DistinctDoubleType_t)

private elemental function construct_DistinctDouble_t_ijkl(idx) result(res)

Arguments

Type IntentOptional Attributes Name
type(ijkl_Index_t), intent(in) :: idx

Return Value type(DistinctDouble_t)

private elemental function construct_DistinctDouble_t_ijab(idx) result(res)

Arguments

Type IntentOptional Attributes Name
type(ijab_Index_t), intent(in) :: idx

Return Value type(DistinctDouble_t)

private elemental function normalize_ijab_Index_t(this) result(res)

Normalize such that i <= j and a <= b

Arguments

Type IntentOptional Attributes Name
class(ijab_Index_t), intent(in) :: this

Return Value type(ijab_Index_t)

private elemental function normalize_ijkl_Index_t(this) result(res)

Normalize such that i <= k and j <= l

Arguments

Type IntentOptional Attributes Name
class(ijkl_Index_t), intent(in) :: this

Return Value type(ijkl_Index_t)

private elemental function convert_ijkl_Index_t(this) result(res)

Convert to the ijab_Index_t

Arguments

Type IntentOptional Attributes Name
class(ijkl_Index_t), intent(in) :: this

Return Value type(ijab_Index_t)

private elemental function convert_ijab_Index_t(this) result(res)

Convert to the ijkl_Index_t

Arguments

Type IntentOptional Attributes Name
class(ijab_Index_t), intent(in) :: this

Return Value type(ijkl_Index_t)

private elemental function is_normalized_ijab_Index_t(this) result(res)

Check if index is normalized

Arguments

Type IntentOptional Attributes Name
class(ijab_Index_t), intent(in) :: this

Return Value logical

private elemental function is_normalized_ijkl_Index_t(this) result(res)

Check if index is normalized

Arguments

Type IntentOptional Attributes Name
class(ijkl_Index_t), intent(in) :: this

Return Value logical

private elemental function fuse_ijkl_Index_t(this) result(res)

Fuse a normalized index i <= k and j <= l.

Arguments

Type IntentOptional Attributes Name
class(ijkl_Index_t), intent(in) :: this

Return Value integer(kind=int64)

private elemental function fuse_ijab_Index_t(this) result(res)

Fuse a normalized index i <= j and a <= b.

Arguments

Type IntentOptional Attributes Name
class(ijab_Index_t), intent(in) :: this

Return Value integer(kind=int64)

public elemental function fused_to_ijkl(ijkl) result(idx)

Return a normalized index from a fused integer index

Arguments

Type IntentOptional Attributes Name
integer(kind=int64), intent(in) :: ijkl

Return Value type(ijkl_Index_t)

public elemental function fused_to_ijab(ijab) result(idx)

Return a normalized index from a fused integer index

Arguments

Type IntentOptional Attributes Name
integer(kind=int64), intent(in) :: ijab

Return Value type(ijab_Index_t)

private elemental function fuse_DistinctDouble_t(this) result(res)

Fuse a Distinct Double excitation

Read more…

Arguments

Type IntentOptional Attributes Name
class(DistinctDouble_t), intent(in) :: this

Return Value integer(kind=int64)

public elemental function fused_to_DistinctDouble(n) result(distinct_double)

Return a Distinct Double excitation from a fused integer index

Read more…

Arguments

Type IntentOptional Attributes Name
integer(kind=int64), intent(in) :: n

Return Value type(DistinctDouble_t)


Subroutines

public subroutine init_guga_data_procPtrs()

Arguments

None

public elemental subroutine getMixedFullStop(step1, step2, deltaB, bValue, x0_element, x1_element)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: step1
integer, intent(in) :: step2
integer, intent(in) :: deltaB
real(kind=dp), intent(in) :: bValue
real(kind=dp), intent(out), optional :: x0_element
real(kind=dp), intent(out), optional :: x1_element

public elemental subroutine getDoubleMatrixElement(step1, step2, deltaB, genFlag1, genFlag2, bValue, order, x0_element, x1_element)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: step1
integer, intent(in) :: step2
integer, intent(in) :: deltaB
integer, intent(in) :: genFlag1
integer, intent(in) :: genFlag2
real(kind=dp), intent(in) :: bValue
real(kind=dp), intent(in) :: order
real(kind=dp), intent(out), optional :: x0_element
real(kind=dp), intent(out), optional :: x1_element

private pure subroutine fullStop_00(b, x0, x1)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b
real(kind=dp), intent(out), optional :: x0
real(kind=dp), intent(out), optional :: x1

private pure subroutine fullStop_11(b, x0, x1)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b
real(kind=dp), intent(out), optional :: x0
real(kind=dp), intent(out), optional :: x1

private pure subroutine fullStop_12(b, x0, x1)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b
real(kind=dp), intent(out), optional :: x0
real(kind=dp), intent(out), optional :: x1

private pure subroutine fullStop_22(b, x0, x1)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b
real(kind=dp), intent(out), optional :: x0
real(kind=dp), intent(out), optional :: x1

private pure subroutine fullStop_33(b, x0, x1)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: b
real(kind=dp), intent(out), optional :: x0
real(kind=dp), intent(out), optional :: x1

private elemental subroutine extract_ijab_Index_t(this, i, j, a, b)

Extract the values as integers

Arguments

Type IntentOptional Attributes Name
class(ijab_Index_t), intent(in) :: this
integer, intent(out) :: i
integer, intent(out) :: j
integer, intent(out) :: a
integer, intent(out) :: b

private elemental subroutine extract_ijkl_Index_t(this, i, j, k, l)

Extract the values as integers

Arguments

Type IntentOptional Attributes Name
class(ijkl_Index_t), intent(in) :: this
integer, intent(out) :: i
integer, intent(out) :: j
integer, intent(out) :: k
integer, intent(out) :: l