nambu Derived Type

type, public :: nambu


Contents


Components

TypeVisibility AttributesNameInitial
complex(kind=wp), public :: matrix(4,4) =0.0_wp

Encapsulate a spin and Nambu space matrix


Type-Bound Procedures

generic, public :: nambu => cons_rscalar, cons_cscalar, cons_cmatrix, cons_nambu

  • private pure function nambu_cons_rscalar(other) result(this)

    Constructs a nambu object from a real scalar.

    Arguments

    Type IntentOptional AttributesName
    real(kind=wp), intent(in) :: other

    Return Value type(nambu)

  • private pure function nambu_cons_cscalar(other) result(this)

    Constructs a nambu object from a complex scalar.

    Arguments

    Type IntentOptional AttributesName
    complex(kind=wp), intent(in) :: other

    Return Value type(nambu)

  • private pure function nambu_cons_cmatrix(other) result(this)

    Constructs a nambu object from a complex matrix.

    Arguments

    Type IntentOptional AttributesName
    complex(kind=wp), intent(in) :: other(4,4)

    Return Value type(nambu)

  • private pure function nambu_cons_nambu(other) result(this)

    Constructs a nambu object from an existing one.

    Arguments

    Type IntentOptional AttributesName
    type(nambu), intent(in) :: other

    Return Value type(nambu)

generic, public :: assignment(=) => assr_rscalar, assr_cscalar, assr_cmatrix, assl_cmatrix

  • private pure subroutine nambu_assr_rscalar(this, other)

    Imports data to a nambu object from a real scalar.

    Arguments

    Type IntentOptional AttributesName
    class(nambu), intent(inout) :: this
    real(kind=wp), intent(in) :: other
  • private pure subroutine nambu_assr_cscalar(this, other)

    Imports data to a nambu object from a complex scalar.

    Arguments

    Type IntentOptional AttributesName
    class(nambu), intent(inout) :: this
    complex(kind=wp), intent(in) :: other
  • private pure subroutine nambu_assr_cmatrix(this, other)

    Imports data to a nambu object from a complex matrix.

    Arguments

    Type IntentOptional AttributesName
    class(nambu), intent(inout) :: this
    complex(kind=wp), intent(in) :: other(4,4)
  • private pure subroutine nambu_assl_cmatrix(other, this)

    Exports data from a nambu object to a complex matrix.

    Arguments

    Type IntentOptional AttributesName
    complex(kind=wp), intent(out) :: other(4,4)
    class(nambu), intent(in) :: this

generic, public :: operator(+) => addl_rscalar, addr_rscalar, addl_cscalar, addr_cscalar, addl_cmatrix, addr_cmatrix, add_nambu

  • private pure function nambu_addl_rscalar(other, this) result(r)

    Defines left addition of a nambu matrix and a real scalar.

    Arguments

    Type IntentOptional AttributesName
    real(kind=wp), intent(in) :: other
    class(nambu), intent(in) :: this

    Return Value type(nambu)

  • private pure function nambu_addr_rscalar(this, other) result(r)

    Defines right addition of a nambu matrix and a real scalar.

    Arguments

    Type IntentOptional AttributesName
    class(nambu), intent(in) :: this
    real(kind=wp), intent(in) :: other

    Return Value type(nambu)

  • private pure function nambu_addl_cscalar(other, this) result(r)

    Defines left addition of a nambu matrix and a complex scalar.

    Arguments

    Type IntentOptional AttributesName
    complex(kind=wp), intent(in) :: other
    class(nambu), intent(in) :: this

    Return Value type(nambu)

  • private pure function nambu_addr_cscalar(this, other) result(r)

    Defines right addition of a nambu matrix and a complex scalar.

    Arguments

    Type IntentOptional AttributesName
    class(nambu), intent(in) :: this
    complex(kind=wp), intent(in) :: other

    Return Value type(nambu)

  • private pure function nambu_addl_cmatrix(other, this) result(r)

    Defines left addition of a nambu matrix and a complex matrix.

    Arguments

    Type IntentOptional AttributesName
    complex(kind=wp), intent(in) :: other(4,4)
    class(nambu), intent(in) :: this

    Return Value type(nambu)

  • private pure function nambu_addr_cmatrix(this, other) result(r)

    Defines right addition of a nambu matrix and a complex matrix.

    Arguments

    Type IntentOptional AttributesName
    class(nambu), intent(in) :: this
    complex(kind=wp), intent(in) :: other(4,4)

    Return Value type(nambu)

  • private pure elemental function nambu_add_nambu(this, other) result(r)

    Defines addition of two nambu matrices.

    Arguments

    Type IntentOptional AttributesName
    class(nambu), intent(in) :: this
    class(nambu), intent(in) :: other

    Return Value type(nambu)

generic, public :: operator(-) => subl_rscalar, subr_rscalar, subl_cscalar, subr_cscalar, subl_cmatrix, subr_cmatrix, sub_nambu

  • private pure function nambu_subl_rscalar(other, this) result(r)

    Defines left subtraction of a nambu matrix and a real scalar.

    Arguments

    Type IntentOptional AttributesName
    real(kind=wp), intent(in) :: other
    class(nambu), intent(in) :: this

    Return Value type(nambu)

  • private pure function nambu_subr_rscalar(this, other) result(r)

    Defines right subtraction of a nambu matrix and a real scalar.

    Arguments

    Type IntentOptional AttributesName
    class(nambu), intent(in) :: this
    real(kind=wp), intent(in) :: other

    Return Value type(nambu)

  • private pure function nambu_subl_cscalar(other, this) result(r)

    Defines left subtraction of a nambu matrix and a complex scalar.

    Arguments

    Type IntentOptional AttributesName
    complex(kind=wp), intent(in) :: other
    class(nambu), intent(in) :: this

    Return Value type(nambu)

  • private pure function nambu_subr_cscalar(this, other) result(r)

    Defines right subtraction of a nambu matrix and a complex scalar.

    Arguments

    Type IntentOptional AttributesName
    class(nambu), intent(in) :: this
    complex(kind=wp), intent(in) :: other

    Return Value type(nambu)

  • private pure function nambu_subl_cmatrix(other, this) result(r)

    Defines left subtraction of a nambu matrix and a complex matrix.

    Arguments

    Type IntentOptional AttributesName
    complex(kind=wp), intent(in) :: other(4,4)
    class(nambu), intent(in) :: this

    Return Value type(nambu)

  • private pure function nambu_subr_cmatrix(this, other) result(r)

    Defines right subtraction of a nambu matrix and a complex matrix.

    Arguments

    Type IntentOptional AttributesName
    class(nambu), intent(in) :: this
    complex(kind=wp), intent(in) :: other(4,4)

    Return Value type(nambu)

  • private pure elemental function nambu_sub_nambu(this, other) result(r)

    Defines subtraction of two nambu matrices.

    Arguments

    Type IntentOptional AttributesName
    class(nambu), intent(in) :: this
    class(nambu), intent(in) :: other

    Return Value type(nambu)

generic, public :: operator(*) => mull_rscalar, mulr_rscalar, mull_cscalar, mulr_cscalar, mull_cmatrix, mulr_cmatrix, mul_nambu

  • private pure function nambu_mull_rscalar(other, this) result(r)

    Defines left multiplication of a nambu matrix by a real scalar.

    Arguments

    Type IntentOptional AttributesName
    real(kind=wp), intent(in) :: other
    class(nambu), intent(in) :: this

    Return Value type(nambu)

  • private pure function nambu_mulr_rscalar(this, other) result(r)

    Defines right multiplication of a nambu matrix by a real scalar.

    Arguments

    Type IntentOptional AttributesName
    class(nambu), intent(in) :: this
    real(kind=wp), intent(in) :: other

    Return Value type(nambu)

  • private pure function nambu_mull_cscalar(other, this) result(r)

    Defines left multiplication of a nambu matrix by a complex scalar.

    Arguments

    Type IntentOptional AttributesName
    complex(kind=wp), intent(in) :: other
    class(nambu), intent(in) :: this

    Return Value type(nambu)

  • private function nambu_mulr_cscalar(this, other) result(r)

    Defines right multiplication of a nambu matrix by a complex scalar.

    Arguments

    Type IntentOptional AttributesName
    class(nambu), intent(in) :: this
    complex(kind=wp), intent(in) :: other

    Return Value type(nambu)

  • private pure function nambu_mull_cmatrix(other, this) result(r)

    Defines left multiplication of a nambu matrix by a complex matrix.

    Arguments

    Type IntentOptional AttributesName
    complex(kind=wp), intent(in) :: other(4,4)
    class(nambu), intent(in) :: this

    Return Value type(nambu)

  • private pure function nambu_mulr_cmatrix(this, other) result(r)

    Defines right multiplication of a nambu matrix by a complex matrix.

    Arguments

    Type IntentOptional AttributesName
    class(nambu), intent(in) :: this
    complex(kind=wp), intent(in) :: other(4,4)

    Return Value type(nambu)

  • private pure elemental function nambu_mul_nambu(this, other) result(r)

    Defines multiplication of two nambu matrices.

    Arguments

    Type IntentOptional AttributesName
    class(nambu), intent(in) :: this
    class(nambu), intent(in) :: other

    Return Value type(nambu)

generic, public :: operator(/) => divr_rscalar, divr_cscalar

  • private pure function nambu_divr_rscalar(this, other) result(r)

    Defines division of a nambu matrix by a real scalar.

    Arguments

    Type IntentOptional AttributesName
    class(nambu), intent(in) :: this
    real(kind=wp), intent(in) :: other

    Return Value type(nambu)

  • private pure function nambu_divr_cscalar(this, other) result(r)

    Defines division of a nambu matrix by a complex scalar.

    Arguments

    Type IntentOptional AttributesName
    class(nambu), intent(in) :: this
    complex(kind=wp), intent(in) :: other

    Return Value type(nambu)

generic, public :: operator(**) => expr_iscalar

  • private pure function nambu_expr_iscalar(this, other) result(r)

    Exponentiates the nambu object, where the power is a positive integer.

    Arguments

    Type IntentOptional AttributesName
    class(nambu), intent(in) :: this
    integer, intent(in) :: other

    Return Value type(nambu)