eulerian_set Derived Type

type, public :: eulerian_set

A collection of eulerian objects


Inherits

type~~eulerian_set~~InheritsGraph type~eulerian_set eulerian_set type~block_obj block_obj type~eulerian_set->type~block_obj block type~eulerian_ptr eulerian_ptr type~eulerian_set->type~eulerian_ptr field type~hashtbl_obj hashtbl_obj type~eulerian_set->type~hashtbl_obj tbl type~parallel_obj parallel_obj type~eulerian_set->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~eulerian_obj_base eulerian_obj_base type~eulerian_ptr->type~eulerian_obj_base p type~sllist_obj sllist_obj type~hashtbl_obj->type~sllist_obj vec 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 type~eulerian_obj_base->type~block_obj block type~eulerian_obj_base->type~parallel_obj parallel type~sllist_obj->type~sllist_obj child

Inherited by

type~~eulerian_set~~InheritedByGraph type~eulerian_set eulerian_set type~cdifs_obj cdifs_obj type~cdifs_obj->type~eulerian_set fields type~grans_obj grans_obj type~grans_obj->type~eulerian_set fields

Components

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

Associated block structure

type(eulerian_ptr), public, allocatable :: field(:)

A collection of Eulerian objects

logical, public :: overwrite = .true.

Switch to overwrite IO files

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

Associated parallel structure

character(len=str64), public :: read_file

file to read

character(len=str64), public :: write_file

file to write

type(hashtbl_obj), private :: tbl

Hash table


Type-Bound Procedures

procedure, public :: Add => eulerian_set_Add

  • private subroutine eulerian_set_Add(this, name, stag, obj)

    Add a new element to a collection of Eulerian objects

    Arguments

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

    A collection of Eulerian objects

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

    Name of variable

    integer, intent(in) :: stag

    Staggering

    class(eulerian_obj_base), intent(inout), target :: obj

    Eulerian obj to link and initialize

procedure, public :: Finalize => eulerian_set_Final

  • private subroutine eulerian_set_Final(this)

    Finalize structure

    Arguments

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

    A collection of Eulerian objects

procedure, public :: GetIndex => eulerian_set_GetIndex

  • private function eulerian_set_GetIndex(this, name) result(val)

    Returns the index of an Eulerian_obj contained in this%fields given its name.

    Arguments

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

    A collection of Eulerian objects

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

    Name of the field

    Return Value integer

procedure, public :: GetReadFileName => eulerian_set_GetReadFileName

  • private function eulerian_set_GetReadFileName(this) result(name)

    Return the base name of file to write

    Arguments

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

    A collection of Eulerian objects

    Return Value character(len=str64)

    Name of file

procedure, public :: GetWriteFileName => eulerian_set_GetWriteFileName

  • private function eulerian_set_GetWriteFileName(this) result(name)

    Return the base name of file to write

    Arguments

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

    A collection of Eulerian objects

    Return Value character(len=str64)

    Name of file

procedure, public :: Info => eulerian_set_Info

  • private subroutine eulerian_set_Info(this)

    Print info about this collection of eulerian objects

    Arguments

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

    A collection of Eulerian objects

procedure, public :: Initialize => eulerian_set_Init

  • private subroutine eulerian_set_Init(this, block, parallel)

    Initialize a collection of Eulerian objects

    Arguments

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

    A collection of Eulerian objects

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

    A block object

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

    parallel structure from main program

procedure, public :: Read => eulerian_set_Read

  • private subroutine eulerian_set_Read(this, iter, time, list)

    Read Eulerian data

    Arguments

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

    A collection of Eulerian objects

    integer, intent(out) :: iter

    Iteration at write

    real(kind=wp), intent(out) :: time

    Time at write

    character(len=str8), intent(in), optional :: list(:)

    Names of fields to write

procedure, public :: ReadAllNGA => eulerian_set_ReadAllNGA

  • private subroutine eulerian_set_ReadAllNGA(this, ngadata)

    Read all Eulerian objects in file

    Arguments

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

    A collection of Eulerian objects

    type(ngadata_obj), intent(inout) :: ngadata

    NGAdata structure

procedure, public :: ReadNGA => eulerian_set_ReadNGA

  • private subroutine eulerian_set_ReadNGA(this, iter, time)

    Read Eulerian data using MPI binary file tools

    Arguments

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

    A collection of Eulerian objects

    integer, intent(out) :: iter

    Iteration at write

    real(kind=wp), intent(out) :: time

    Time at write

procedure, public :: ReadSingle => eulerian_set_ReadSingle

  • private subroutine eulerian_set_ReadSingle(this, h5, ind)

    Read one Eulerian object based on name

    Arguments

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

    A collection of Eulerian objects

    type(h5hut_obj), intent(inout) :: h5

    H5hut structure

    integer, intent(in) :: ind

    Index of Eulerian object

procedure, public :: SetOverwrite => eulerian_set_SetOverwrite

  • private subroutine eulerian_set_SetOverwrite(this, overwrite)

    Set file overwritting

    Arguments

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

    A collection of Eulerian objects

    logical, intent(in) :: overwrite

    Name of file

procedure, public :: SetReadFileName => eulerian_set_SetReadFileName

  • private subroutine eulerian_set_SetReadFileName(this, name)

    Set the base name of file to read

    Arguments

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

    A collection of Eulerian objects

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

    Name of file

procedure, public :: SetWriteFileName => eulerian_set_SetWriteFileName

  • private subroutine eulerian_set_SetWriteFileName(this, name)

    Set the base name of file to write

    Arguments

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

    A collection of Eulerian objects

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

    Name of file

procedure, public :: Write => eulerian_set_Write

  • private subroutine eulerian_set_Write(this, iter, time, list)

    Write Eulerian data

    Arguments

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

    A collection of Eulerian objects

    integer, intent(in) :: iter

    Iteration at write

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

    Time at write

    character(len=str8), intent(in), optional :: list(:)

    Names of fields to write

procedure, public :: WriteSilo => eulerian_set_WriteSilo

  • private subroutine eulerian_set_WriteSilo(this, iter, time, list)

    Write Eulerian data using SILO

    Arguments

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

    A collection of Eulerian objects

    integer, intent(in) :: iter

    Iteration at write

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

    Time at write

    character(len=str8), intent(in), optional :: list(:)

    Names of fields to write

procedure, public :: WriteSingle => eulerian_set_WriteSingle

  • private subroutine eulerian_set_WriteSingle(this, h5, ind)

    Write a single Eulerian object to file

    Arguments

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

    A collection of Eulerian objects

    type(h5hut_obj), intent(inout) :: h5

    H5hut structure

    integer, intent(in) :: ind

    Index of Eulerian object

procedure, public :: WriteSingleSilo => eulerian_set_WriteSingleSilo

  • private subroutine eulerian_set_WriteSingleSilo(this, silo, ind)

    Write a single Eulerian objects to file using SILO

    Arguments

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

    A collection of Eulerian objects

    type(silo_obj), intent(inout) :: silo

    Silo structure

    integer, intent(in) :: ind

    Index of Eulerian object