dftd4_reference Module


Uses


Variables

Type Visibility Attributes Name Initial
real(kind=wp), private, dimension(23,7,max_elem) :: alphaiw
real(kind=wp), private, dimension(7,max_elem) :: ascale
real(kind=wp), private, dimension(7,max_elem) :: clsh
real(kind=wp), private, dimension(7,max_elem) :: clsq
real(kind=wp), private, dimension(7,max_elem) :: dfth
real(kind=wp), private, dimension(7,max_elem) :: dftq
real(kind=wp), private, dimension(7,max_elem) :: gffh
real(kind=wp), private, dimension(7,max_elem) :: gffq
real(kind=wp), private, dimension(7,max_elem) :: hcount
integer, private, parameter :: max_elem = 118
real(kind=wp), private, dimension(7,max_elem) :: pbch
real(kind=wp), private, dimension(7,max_elem) :: pbcq
real(kind=wp), private, dimension(7,max_elem) :: refcn
real(kind=wp), private, dimension(7,max_elem) :: refcovcn
real(kind=wp), private, dimension(7,max_elem) :: refh
integer, private, dimension(max_elem) :: refn
real(kind=wp), private, dimension(7,max_elem) :: refq
integer, private, dimension(7,max_elem) :: refsys
real(kind=wp), private, dimension(23,17) :: secaiw
real(kind=wp), private, dimension(17) :: seccn
real(kind=wp), private, dimension(17) :: seccnd3
real(kind=wp), private, dimension(17) :: secq
real(kind=wp), private, dimension(17) :: sscale

Interfaces

public interface get_nref

  • private elemental function get_nref_sym(sym) result(n)

    Get number of references for a given element symbol

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: sym

    Element symbol

    Return Value integer

    Number of references

  • private elemental function get_nref_num(num) result(n)

    Get number of references for a given atomic number

    Arguments

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

    Atomic number

    Return Value integer

    Number of references

public interface set_refalpha_eeq

  • private pure subroutine set_refalpha_eeq_sym(alpha, ga, gc, sym)

    Set the reference polarizibility for an element symbol

    Arguments

    Type IntentOptional Attributes Name
    real(kind=wp), intent(out) :: alpha(:,:)

    Reference polarizibility

    real(kind=wp), intent(in) :: ga

    Maximum charge scaling height

    real(kind=wp), intent(in) :: gc

    Charge scaling steepness

    character(len=*), intent(in) :: sym

    Element symbol

  • private pure subroutine set_refalpha_eeq_num(alpha, ga, gc, num)

    Set the reference polarizibility for an atomic number

    Arguments

    Type IntentOptional Attributes Name
    real(kind=wp), intent(out) :: alpha(:,:)

    Reference polarizibility

    real(kind=wp), intent(in) :: ga

    Maximum charge scaling height

    real(kind=wp), intent(in) :: gc

    Charge scaling steepness

    integer, intent(in) :: num

    Atomic number

public interface set_refalpha_gfn2

  • private pure subroutine set_refalpha_gfn2_sym(alpha, ga, gc, sym)

    Set the reference polarizibility for an element symbol

    Arguments

    Type IntentOptional Attributes Name
    real(kind=wp), intent(out) :: alpha(:,:)

    Reference polarizibility

    real(kind=wp), intent(in) :: ga

    Maximum charge scaling height

    real(kind=wp), intent(in) :: gc

    Charge scaling steepness

    character(len=*), intent(in) :: sym

    Element symbol

  • private pure subroutine set_refalpha_gfn2_num(alpha, ga, gc, num)

    Set the reference polarizibility for an atomic number

    Arguments

    Type IntentOptional Attributes Name
    real(kind=wp), intent(out) :: alpha(:,:)

    Reference polarizibility

    real(kind=wp), intent(in) :: ga

    Maximum charge scaling height

    real(kind=wp), intent(in) :: gc

    Charge scaling steepness

    integer, intent(in) :: num

    Atomic number

public interface set_refcn

  • private pure subroutine set_refcn_sym(cn, sym)

    Set the reference coordination numbers for an element symbol

    Arguments

    Type IntentOptional Attributes Name
    real(kind=wp), intent(out) :: cn(:)

    Reference coordination number

    character(len=*), intent(in) :: sym

    Element symbol

  • private pure subroutine set_refcn_num(cn, num)

    Set the reference coordination numbers for an atomic number

    Arguments

    Type IntentOptional Attributes Name
    real(kind=wp), intent(out) :: cn(:)

    Reference coordination number

    integer, intent(in) :: num

    Atomic number

public interface set_refgw

  • private pure subroutine set_refgw_sym(ngw, sym)

    Set the number of gaussian weights for an element symbol

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(out) :: ngw(:)

    Number of gaussian weights

    character(len=*), intent(in) :: sym

    Element symbol

  • private pure subroutine set_refgw_num(ngw, num)

    Set the number of gaussian weights for an atomic number

    Arguments

    Type IntentOptional Attributes Name
    integer, intent(out) :: ngw(:)

    Number of gaussian weights

    integer, intent(in) :: num

    Atomic number

public interface set_refq_eeq

  • private pure subroutine set_refq_eeq_sym(q, sym)

    Set the reference partial charges for an element symbol

    Arguments

    Type IntentOptional Attributes Name
    real(kind=wp), intent(out) :: q(:)

    Reference partial charge

    character(len=*), intent(in) :: sym

    Element symbol

  • private pure subroutine set_refq_eeq_num(q, num)

    Set the reference partial charges for an atomic number

    Arguments

    Type IntentOptional Attributes Name
    real(kind=wp), intent(out) :: q(:)

    Reference partial charge

    integer, intent(in) :: num

    Atomic number

public interface set_refq_gfn2

  • private pure subroutine set_refq_gfn2_sym(q, sym)

    Set the reference partial charges for an element symbol

    Arguments

    Type IntentOptional Attributes Name
    real(kind=wp), intent(out) :: q(:)

    Reference partial charge

    character(len=*), intent(in) :: sym

    Element symbol

  • private pure subroutine set_refq_gfn2_num(q, num)

    Set the reference partial charges for an atomic number

    Arguments

    Type IntentOptional Attributes Name
    real(kind=wp), intent(out) :: q(:)

    Reference partial charge

    integer, intent(in) :: num

    Atomic number


Functions

private elemental function get_nref_num(num) result(n)

Get number of references for a given atomic number

Arguments

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

Atomic number

Return Value integer

Number of references

private elemental function get_nref_sym(sym) result(n)

Get number of references for a given element symbol

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: sym

Element symbol

Return Value integer

Number of references

private elemental function zeta(a, c, qref, qmod)

charge scaling function

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: a
real(kind=wp), intent(in) :: c
real(kind=wp), intent(in) :: qref
real(kind=wp), intent(in) :: qmod

Return Value real(kind=wp)


Subroutines

private pure subroutine set_refalpha_eeq_num(alpha, ga, gc, num)

Set the reference polarizibility for an atomic number

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(out) :: alpha(:,:)

Reference polarizibility

real(kind=wp), intent(in) :: ga

Maximum charge scaling height

real(kind=wp), intent(in) :: gc

Charge scaling steepness

integer, intent(in) :: num

Atomic number

private pure subroutine set_refalpha_eeq_sym(alpha, ga, gc, sym)

Set the reference polarizibility for an element symbol

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(out) :: alpha(:,:)

Reference polarizibility

real(kind=wp), intent(in) :: ga

Maximum charge scaling height

real(kind=wp), intent(in) :: gc

Charge scaling steepness

character(len=*), intent(in) :: sym

Element symbol

private pure subroutine set_refalpha_gfn2_num(alpha, ga, gc, num)

Set the reference polarizibility for an atomic number

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(out) :: alpha(:,:)

Reference polarizibility

real(kind=wp), intent(in) :: ga

Maximum charge scaling height

real(kind=wp), intent(in) :: gc

Charge scaling steepness

integer, intent(in) :: num

Atomic number

private pure subroutine set_refalpha_gfn2_sym(alpha, ga, gc, sym)

Set the reference polarizibility for an element symbol

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(out) :: alpha(:,:)

Reference polarizibility

real(kind=wp), intent(in) :: ga

Maximum charge scaling height

real(kind=wp), intent(in) :: gc

Charge scaling steepness

character(len=*), intent(in) :: sym

Element symbol

private pure subroutine set_refcn_num(cn, num)

Set the reference coordination numbers for an atomic number

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(out) :: cn(:)

Reference coordination number

integer, intent(in) :: num

Atomic number

private pure subroutine set_refcn_sym(cn, sym)

Set the reference coordination numbers for an element symbol

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(out) :: cn(:)

Reference coordination number

character(len=*), intent(in) :: sym

Element symbol

private pure subroutine set_refgw_num(ngw, num)

Set the number of gaussian weights for an atomic number

Arguments

Type IntentOptional Attributes Name
integer, intent(out) :: ngw(:)

Number of gaussian weights

integer, intent(in) :: num

Atomic number

private pure subroutine set_refgw_sym(ngw, sym)

Set the number of gaussian weights for an element symbol

Arguments

Type IntentOptional Attributes Name
integer, intent(out) :: ngw(:)

Number of gaussian weights

character(len=*), intent(in) :: sym

Element symbol

private pure subroutine set_refq_eeq_num(q, num)

Set the reference partial charges for an atomic number

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(out) :: q(:)

Reference partial charge

integer, intent(in) :: num

Atomic number

private pure subroutine set_refq_eeq_sym(q, sym)

Set the reference partial charges for an element symbol

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(out) :: q(:)

Reference partial charge

character(len=*), intent(in) :: sym

Element symbol

private pure subroutine set_refq_gfn2_num(q, num)

Set the reference partial charges for an atomic number

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(out) :: q(:)

Reference partial charge

integer, intent(in) :: num

Atomic number

private pure subroutine set_refq_gfn2_sym(q, sym)

Set the reference partial charges for an element symbol

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(out) :: q(:)

Reference partial charge

character(len=*), intent(in) :: sym

Element symbol