nga_smod Submodule


Uses

  • module~~nga_smod~~UsesGraph module~nga_smod nga_smod module~particles_point particles_point module~nga_smod->module~particles_point module~leapblock leapBlock module~particles_point->module~leapblock module~leapeulerian leapEulerian module~particles_point->module~leapeulerian module~leapio leapIO module~particles_point->module~leapio module~leapkinds leapKinds module~particles_point->module~leapkinds module~leaplagrangian leapLagrangian module~particles_point->module~leaplagrangian module~leapparallel leapParallel module~particles_point->module~leapparallel mpi_f08 mpi_f08 module~particles_point->mpi_f08 module~leapblock->module~leapkinds module~leapblock->module~leapparallel module~leapblock->mpi_f08 module~leapeulerian->module~leapblock module~leapeulerian->module~leapio module~leapeulerian->module~leapkinds module~leapeulerian->module~leapparallel module~leapeulerian->mpi_f08 module~leapio_mpi leapIO_mpi module~leapeulerian->module~leapio_mpi module~leapparser leapParser module~leapeulerian->module~leapparser module~leaputils leapUtils module~leapeulerian->module~leaputils module~leapio_h5hut leapIO_h5hut module~leapio->module~leapio_h5hut module~leapio_hdf5 leapIO_hdf5 module~leapio->module~leapio_hdf5 module~leapio->module~leapio_mpi module~leapio_silo leapIO_silo module~leapio->module~leapio_silo iso_fortran_env iso_fortran_env module~leapkinds->iso_fortran_env module~leaplagrangian->module~leapblock module~leaplagrangian->module~leapio module~leaplagrangian->module~leapkinds module~leaplagrangian->module~leapparallel module~leaplagrangian->mpi_f08 module~leaplagrangian->module~leapparser module~leaplagrangian->module~leaputils module~leapparallel->module~leapkinds module~leapparallel->mpi_f08 module~leapparallel->module~leapparser module~leapio_h5hut->module~leapkinds module~leapio_h5hut->module~leapparallel h5hut h5hut module~leapio_h5hut->h5hut module~leapio_hdf5->module~leapkinds module~leapio_hdf5->module~leapparallel module~leapio_hdf5->module~leaputils hdf5 hdf5 module~leapio_hdf5->hdf5 module~leapio_mpi->module~leapblock module~leapio_mpi->module~leapkinds module~leapio_mpi->module~leapparallel module~leapio_mpi->mpi_f08 module~leapio_silo->module~leapblock module~leapio_silo->module~leapkinds module~leapio_silo->module~leapparallel module~leapio_silo->mpi_f08 module~leapio_silo->module~leaputils module~leapparser->module~leapkinds module~leapcli leapCli module~leapparser->module~leapcli module~leaputils->module~leapkinds module~leaputils->mpi_f08 module~leapcli->module~leapkinds

Derived Types

type ::  nga_part_obj

Particle type as definied in NGA

Components

Type Visibility Attributes Name Initial
real(kind=WP), public, dimension(3) :: Acol

Particle collision force

real(kind=WP), public, dimension(3) :: Tcol

Particle collision torque

real(kind=WP), public :: d

diameter

real(kind=WP), public :: dt

time step size

integer, public :: i

nearest cell

integer(kind=leapI8), public :: id

Identifying number (inactive if <0)

integer, public :: j

nearest cell

integer, public :: k

nearest cell

integer, public :: stop

control parameter

real(kind=WP), public :: u

velocity

real(kind=WP), public :: v

velocity

real(kind=WP), public :: w

velocity

real(kind=WP), public :: wx

angular velocity

real(kind=WP), public :: wy

angular velocity

real(kind=WP), public :: wz

angular velocity

real(kind=WP), public :: x

position

real(kind=WP), public :: y

position

real(kind=WP), public :: z

position

type ::  ngapart_obj

Components

Type Visibility Attributes Name Initial
type(MPI_Info), public :: MPI_INFO

MPI info

integer, public :: MPI_SIZE

MPI size of a NGA particle

type(MPI_DATATYPE), public :: MPI_TYPE

MPI variable type of a NGA particle

integer, public :: count

Total count of particles in file

real(kind=leapDP), public :: dt

Time step in file

type(MPI_File), public :: fid

File identifier

character(len=str64), public :: filename

File to read/write

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

Associated parallel structure

real(kind=leapDP), public :: time

Time in file

Type-Bound Procedures

procedure, public :: Close => ngapart_Close
procedure, public :: CreateMPIType => ngapart_CreateMPIType
procedure, public :: Finalize => ngapart_Final
procedure, public :: GetAttributes => ngapart_GetAttributes
procedure, public :: Initialize => ngapart_Init
procedure, public :: Open => ngapart_Open
procedure, public :: Read => ngapart_Read

Subroutines

subroutine ngapart_Close(this)

Close file with MPI

Arguments

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

NGApart object

subroutine ngapart_CreateMPIType(this)

Define MPI Type and size for a NGA particle

Arguments

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

NGApart object

subroutine ngapart_Final(this)

Finalize structure

Arguments

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

NGApart object

subroutine ngapart_GetAttributes(this)

Read file attributes

Arguments

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

NGApart object

subroutine ngapart_Init(this, filename, access_flag, parallel)

Initialize structuree

Arguments

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

NGApart object

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

File to read/write

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

File access mode

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

Parallel structure

subroutine ngapart_Open(this, flag)

Open raw NGA part file

Arguments

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

NGApart object

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

File access mode

subroutine ngapart_Read(this, pp)

Read NGA particles, convert and store them in LEAP particle structure

Arguments

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

NGApart object

class(particle_set), intent(inout) :: pp

LEAP point-particle set


Module Subroutines

module subroutine particle_set_ReadNGA(this, iter, time)

Read particle data from file in parallel

Arguments

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

Lagrangian array to dump

integer, intent(out) :: iter

Iteration at write

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

Time at write