eulerian_obj_r Derived Type

type, public, extends(eulerian_obj_base) :: eulerian_obj_r

Eulerian data of type real


Inherits

type~~eulerian_obj_r~~InheritsGraph type~eulerian_obj_r eulerian_obj_r type~eulerian_obj_base eulerian_obj_base type~eulerian_obj_r->type~eulerian_obj_base type~block_obj block_obj type~eulerian_obj_base->type~block_obj block type~parallel_obj parallel_obj type~eulerian_obj_base->type~parallel_obj parallel type~block_obj->type~parallel_obj parallel MPI_Datatype MPI_Datatype type~block_obj->MPI_Datatype gc_slab_r, gc_slab_i type~axis_obj axis_obj type~block_obj->type~axis_obj axis, axis_partition type~parallel_obj->MPI_Datatype REAL_SP, REAL_DP, REAL_WP, COMPLEX_SP, COMPLEX_DP, COMPLEX_WP, INTEGER, INT8, LOGICAL MPI_Info MPI_Info type~parallel_obj->MPI_Info mpi_info type~communicators communicators type~parallel_obj->type~communicators comm type~patch patch type~parallel_obj->type~patch rank MPI_Comm MPI_Comm type~communicators->MPI_Comm w, g

Inherited by

type~~eulerian_obj_r~~InheritedByGraph type~eulerian_obj_r eulerian_obj_r type~cdifs_obj cdifs_obj type~cdifs_obj->type~eulerian_obj_r V, P, dP, SA, ibVF, ibF, ibN, Vold, resV, rhs, divu, Vm type~grans_obj grans_obj type~grans_obj->type~eulerian_obj_r ibVF, PVF, SA, Fp

Components

Type Visibility Attributes Name Initial
type(block_obj), public, pointer :: block => null()

Associated block structure

real(kind=wp), public, allocatable :: cell(:,:,:)

Cell data

character(len=:), public, allocatable :: name

Name of variable

type(parallel_obj), public, pointer :: parallel => null()

Associated parallel structure

integer, public :: staggering = 0

Type-Bound Procedures

procedure, public :: AddUpGhostCells => eulerian_obj_AddUpGhostCells

procedure, public :: AddUpGhostCells_x => eulerian_obj_AddUpGhostCells_x

  • private subroutine eulerian_obj_AddUpGhostCells_x(this)

    Add up ghostcells in the x direction with non-blocking mpi directives

    Arguments

    Type IntentOptional Attributes Name
    class(eulerian_obj_base), intent(inout) :: this

    An Eulerian field

procedure, public :: AddUpGhostCells_y => eulerian_obj_AddUpGhostCells_y

  • private subroutine eulerian_obj_AddUpGhostCells_y(this)

    Add up ghostcells in the y direction with non-blocking mpi directives

    Arguments

    Type IntentOptional Attributes Name
    class(eulerian_obj_base), intent(inout) :: this

    An Eulerian field

procedure, public :: AddUpGhostCells_z => eulerian_obj_AddUpGhostCells_z

  • private subroutine eulerian_obj_AddUpGhostCells_z(this)

    Add up ghostcells in the z direction with non-blocking mpi directives

    Arguments

    Type IntentOptional Attributes Name
    class(eulerian_obj_base), intent(inout) :: this

    An Eulerian field

procedure, public :: Info => eulerian_obj_Info

  • private subroutine eulerian_obj_Info(this)

    Print info about this structure

    Arguments

    Type IntentOptional Attributes Name
    class(eulerian_obj_base), intent(inout) :: this

    An Eulerian field

procedure, public :: UpdateGhostCells => eulerian_obj_UpdateGhostCells

procedure, public :: UpdateGhostCells_x => eulerian_obj_UpdateGhostCells_x

  • private subroutine eulerian_obj_UpdateGhostCells_x(this)

    Update the ghostcells in the x direction with non-blocking mpi directives

    Arguments

    Type IntentOptional Attributes Name
    class(eulerian_obj_base), intent(inout) :: this

    An Eulerian field

procedure, public :: UpdateGhostCells_y => eulerian_obj_UpdateGhostCells_y

  • private subroutine eulerian_obj_UpdateGhostCells_y(this)

    Update the ghostcells in the y direction with non-blocking mpi directives

    Arguments

    Type IntentOptional Attributes Name
    class(eulerian_obj_base), intent(inout) :: this

    An Eulerian field

procedure, public :: UpdateGhostCells_z => eulerian_obj_UpdateGhostCells_z

  • private subroutine eulerian_obj_UpdateGhostCells_z(this)

    Update the ghostcells in the z direction with non-blocking mpi directives

    Arguments

    Type IntentOptional Attributes Name
    class(eulerian_obj_base), intent(inout) :: this

    An Eulerian field

procedure, public :: allocate => eulerian_obj_allocate

  • private subroutine eulerian_obj_AssignEulerianObj(this, in)

    Assignment for Eulerian_obj

    Arguments

    Type IntentOptional Attributes Name
    class(eulerian_obj_base), intent(inout) :: this

    An Eulerian field

    class(eulerian_obj_base), intent(in) :: in

    Object to assign

  • private subroutine eulerian_obj_AssignReal0D(this, in)

    Assignment for Eulerian_obj

    Arguments

    Type IntentOptional Attributes Name
    class(eulerian_obj_base), intent(inout) :: this

    An Eulerian field

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

    Object to assign

  • private subroutine eulerian_obj_AssignInt0D(this, in)

    Assignment for Eulerian_obj

    Arguments

    Type IntentOptional Attributes Name
    class(eulerian_obj_base), intent(inout) :: this

    An Eulerian field

    integer, intent(in) :: in

    Object to assign

procedure, public :: deallocate => eulerian_obj_deallocate

procedure, public :: eulerian_obj_AddEulerianIObj

procedure, public :: eulerian_obj_AddEulerianRObj

procedure, public :: eulerian_obj_AssignEulerianObj

procedure, public :: eulerian_obj_AssignInt0D

  • private subroutine eulerian_obj_AssignInt0D(this, in)

    Assignment for Eulerian_obj

    Arguments

    Type IntentOptional Attributes Name
    class(eulerian_obj_base), intent(inout) :: this

    An Eulerian field

    integer, intent(in) :: in

    Object to assign

procedure, public :: eulerian_obj_AssignReal0D

  • private subroutine eulerian_obj_AssignReal0D(this, in)

    Assignment for Eulerian_obj

    Arguments

    Type IntentOptional Attributes Name
    class(eulerian_obj_base), intent(inout) :: this

    An Eulerian field

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

    Object to assign

procedure, public :: eulerian_obj_MulInt0D

  • private function eulerian_obj_MulInt0D(this, in) result(res)

    Multiplication

    Arguments

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

    An Eulerian field

    integer, intent(in) :: in

    An Eulerian field

    Return Value class(eulerian_obj_base), allocatable

procedure, public :: eulerian_obj_MulReal0D

  • private function eulerian_obj_MulReal0D(this, in) result(res)

    Multiplication

    Arguments

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

    An Eulerian field

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

    An Eulerian field

    Return Value type(eulerian_obj_r)

procedure, public :: eulerian_obj_SubEulerianIObj

procedure, public :: eulerian_obj_SubEulerianRObj

procedure, public :: finalize => eulerian_obj_Final

  • private subroutine eulerian_obj_Final(this)

    Finalize the Eulerian object

    Arguments

    Type IntentOptional Attributes Name
    class(eulerian_obj_base), intent(inout) :: this

    An Eulerian field

procedure, public :: initialize => eulerian_obj_Init

  • private subroutine eulerian_obj_Init(this, name, block, parallel, stag)

    Initialize an Eulerian field

    Arguments

    Type IntentOptional Attributes Name
    class(eulerian_obj_base), intent(inout) :: this

    An Eulerian field

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

    Name of variable

    type(block_obj), intent(in), target :: block

    A block object

    type(parallel_obj), intent(in), target :: parallel

    parallel structure from main program

    integer, intent(in) :: stag

    Staggering

procedure, public :: mean => eulerian_obj_mean

  • private function eulerian_obj_mean(this) result(val)

    Compute the mean of an Eulerian_obj

    Arguments

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

    An Eulerian field

    Return Value real(kind=wp)

procedure, public :: norm2 => eulerian_obj_norm2

  • private function eulerian_obj_norm2(this) result(val)

    Compute norm2 of an Eulerian_obj

    Arguments

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

    An Eulerian field

    Return Value real(kind=wp)

generic, public :: operator(*) => eulerian_obj_MulReal0D, eulerian_obj_MulInt0D

  • private function eulerian_obj_MulReal0D(this, in) result(res)

    Multiplication

    Arguments

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

    An Eulerian field

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

    An Eulerian field

    Return Value type(eulerian_obj_r)

  • private function eulerian_obj_MulInt0D(this, in) result(res)

    Multiplication

    Arguments

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

    An Eulerian field

    integer, intent(in) :: in

    An Eulerian field

    Return Value class(eulerian_obj_base), allocatable

generic, public :: operator(+) => eulerian_obj_AddEulerianRObj, eulerian_obj_AddEulerianIObj

generic, public :: operator(-) => eulerian_obj_SubEulerianRObj, eulerian_obj_SubEulerianIObj