m_field Module


Uses

  • module~~m_field~~UsesGraph module~m_field m_field iso_c_binding iso_c_binding module~m_field->iso_c_binding module~m_common m_common module~m_field->module~m_common m_mpi m_mpi module~m_common->m_mpi module~m_logger m_logger module~m_common->module~m_logger module~m_logger->m_mpi iso_fortran_env iso_fortran_env module~m_logger->iso_fortran_env

Used by

  • module~~m_field~~UsedByGraph module~m_field m_field module~m_abl m_abl module~m_abl->module~m_field module~m_allocator m_allocator module~m_abl->module~m_allocator module~m_base_backend m_base_backend module~m_abl->module~m_base_backend module~m_les m_les module~m_abl->module~m_les module~m_mesh m_mesh module~m_abl->module~m_mesh module~m_abl_diagnostics m_abl_diagnostics module~m_abl_diagnostics->module~m_field module~m_abl_diagnostics->module~m_base_backend module~m_abl_diagnostics->module~m_les module~m_abl_diagnostics->module~m_mesh module~m_adm m_adm module~m_adm->module~m_field module~m_adm->module~m_allocator module~m_adm->module~m_base_backend module~m_io_session m_io_session module~m_adm->module~m_io_session module~m_adm->module~m_mesh module~m_turbine_model m_turbine_model module~m_adm->module~m_turbine_model module~m_allocator->module~m_field module~m_alm m_alm module~m_alm->module~m_field module~m_alm->module~m_allocator module~m_alm->module~m_base_backend module~m_alm->module~m_io_session module~m_alm->module~m_mesh module~m_alm->module~m_turbine_model module~m_base_backend->module~m_field module~m_base_backend->module~m_allocator module~m_base_backend->module~m_mesh module~m_poisson_fft m_poisson_fft module~m_base_backend->module~m_poisson_fft module~m_base_case m_base_case module~m_base_case->module~m_field module~m_base_case->module~m_allocator module~m_base_case->module~m_base_backend module~m_base_case->module~m_mesh module~m_monitoring m_monitoring module~m_base_case->module~m_monitoring module~m_postprocess m_postprocess module~m_base_case->module~m_postprocess module~m_solver m_solver module~m_base_case->module~m_solver module~m_io_manager m_io_manager module~m_base_case->module~m_io_manager module~m_case_abl m_case_abl module~m_case_abl->module~m_field module~m_case_abl->module~m_abl module~m_case_abl->module~m_abl_diagnostics module~m_case_abl->module~m_allocator module~m_case_abl->module~m_base_backend module~m_case_abl->module~m_base_case module~m_inflow_planes m_inflow_planes module~m_case_abl->module~m_inflow_planes module~m_case_abl->module~m_mesh module~m_case_abl->module~m_turbine_model module~m_turbine_setup m_turbine_setup module~m_case_abl->module~m_turbine_setup module~m_case_channel m_case_channel module~m_case_channel->module~m_field module~m_case_channel->module~m_allocator module~m_case_channel->module~m_base_backend module~m_case_channel->module~m_base_case module~m_case_channel->module~m_mesh module~m_case_channel->module~m_solver module~m_case_cylinder m_case_cylinder module~m_case_cylinder->module~m_field module~m_case_cylinder->module~m_allocator module~m_case_cylinder->module~m_base_backend module~m_case_cylinder->module~m_base_case module~m_case_cylinder->module~m_mesh module~m_case_cylinder->module~m_solver module~m_case_generic m_case_generic module~m_case_generic->module~m_field module~m_case_generic->module~m_allocator module~m_case_generic->module~m_base_backend module~m_case_generic->module~m_base_case module~m_case_generic->module~m_mesh module~m_case_generic->module~m_solver module~m_case_tgv m_case_tgv module~m_case_tgv->module~m_field module~m_case_tgv->module~m_allocator module~m_case_tgv->module~m_base_backend module~m_case_tgv->module~m_base_case module~m_case_tgv->module~m_mesh module~m_case_tgv->module~m_solver module~m_case_wind_turbine m_case_wind_turbine module~m_case_wind_turbine->module~m_field module~m_case_wind_turbine->module~m_allocator module~m_case_wind_turbine->module~m_base_backend module~m_case_wind_turbine->module~m_base_case module~m_case_wind_turbine->module~m_mesh module~m_case_wind_turbine->module~m_solver module~m_case_wind_turbine->module~m_turbine_model module~m_case_wind_turbine->module~m_turbine_setup module~m_checkpoint_manager m_checkpoint_manager module~m_checkpoint_manager->module~m_field module~m_io_field_utils m_io_field_utils module~m_checkpoint_manager->module~m_io_field_utils module~m_checkpoint_manager->module~m_io_session module~m_checkpoint_manager->module~m_solver module~m_stats m_stats module~m_checkpoint_manager->module~m_stats module~m_checkpoint_state m_checkpoint_state module~m_checkpoint_manager->module~m_checkpoint_state module~m_cuda_allocator m_cuda_allocator module~m_cuda_allocator->module~m_field module~m_cuda_allocator->module~m_allocator module~m_cuda_allocator->module~m_mesh module~m_cuda_backend m_cuda_backend module~m_cuda_backend->module~m_field module~m_cuda_backend->module~m_allocator module~m_cuda_backend->module~m_base_backend module~m_cuda_backend->module~m_cuda_allocator module~m_cuda_poisson_fft m_cuda_poisson_fft module~m_cuda_backend->module~m_cuda_poisson_fft module~m_cuda_backend->module~m_mesh module~m_cuda_poisson_fft->module~m_field module~m_cuda_poisson_fft->module~m_cuda_allocator module~m_cuda_poisson_fft->module~m_mesh module~m_cuda_poisson_fft->module~m_poisson_fft module~m_ibm m_ibm module~m_ibm->module~m_field module~m_ibm->module~m_allocator module~m_ibm->module~m_base_backend module~m_ibm->module~m_io_session module~m_ibm->module~m_mesh module~m_inflow_planes->module~m_field module~m_inflow_planes->module~m_base_backend module~m_inflow_planes->module~m_io_session module~m_inflow_planes->module~m_mesh module~m_io_backend m_io_backend module~m_io_backend->module~m_field module~m_io_backend->module~m_base_backend module~m_io_base m_io_base module~m_io_backend->module~m_io_base module~m_io_backend~2 m_io_backend module~m_io_backend~2->module~m_field module~m_io_backend~2->module~m_base_backend module~m_io_backend~2->module~m_io_base module~m_io_base->module~m_field module~m_io_base->module~m_base_backend module~m_io_field_utils->module~m_field module~m_io_field_utils->module~m_io_base module~m_io_field_utils->module~m_solver module~m_io_session->module~m_field module~m_io_session->module~m_base_backend module~m_io_session->module~m_io_backend module~m_io_session->module~m_io_base module~m_les->module~m_field module~m_les->module~m_base_backend module~m_les->module~m_mesh module~m_memcheck_build m_memcheck_build module~m_memcheck_build->module~m_field module~m_memcheck_build->module~m_base_case module~m_memcheck_build->module~m_case_abl module~m_memcheck_build->module~m_ibm module~m_memcheck_build->module~m_mesh module~m_memcheck_build->module~m_monitoring module~m_backend_setup m_backend_setup module~m_memcheck_build->module~m_backend_setup module~m_case_factory m_case_factory module~m_memcheck_build->module~m_case_factory module~m_memcheck_context m_memcheck_context module~m_memcheck_build->module~m_memcheck_context module~m_memcheck_estimate m_memcheck_estimate module~m_memcheck_build->module~m_memcheck_estimate module~m_memory_estimate m_memory_estimate module~m_memcheck_build->module~m_memory_estimate module~m_memcheck_report m_memcheck_report module~m_memcheck_build->module~m_memcheck_report module~m_mesh->module~m_field module~m_monitoring->module~m_field module~m_monitoring->module~m_solver module~m_omp_backend m_omp_backend module~m_omp_backend->module~m_field module~m_omp_backend->module~m_allocator module~m_omp_backend->module~m_base_backend module~m_omp_backend->module~m_mesh module~m_omp_poisson_fft m_omp_poisson_fft module~m_omp_poisson_fft->module~m_field module~m_omp_poisson_fft->module~m_mesh module~m_omp_poisson_fft->module~m_poisson_fft module~m_omptgt_allocator m_omptgt_allocator module~m_omptgt_allocator->module~m_field module~m_omptgt_allocator->module~m_allocator module~m_omptgt_allocator->module~m_mesh module~m_omptgt_backend m_omptgt_backend module~m_omptgt_backend->module~m_field module~m_omptgt_backend->module~m_allocator module~m_omptgt_backend->module~m_base_backend module~m_omptgt_backend->module~m_mesh module~m_poisson_fft->module~m_field module~m_poisson_fft->module~m_mesh module~m_postprocess->module~m_field module~m_postprocess->module~m_solver module~m_snapshot_manager m_snapshot_manager module~m_snapshot_manager->module~m_field module~m_snapshot_manager->module~m_io_field_utils module~m_snapshot_manager->module~m_io_session module~m_snapshot_manager->module~m_solver module~m_solver->module~m_field module~m_solver->module~m_allocator module~m_solver->module~m_base_backend module~m_solver->module~m_ibm module~m_solver->module~m_les module~m_solver->module~m_mesh module~m_time_integrator m_time_integrator module~m_solver->module~m_time_integrator module~m_vector_calculus m_vector_calculus module~m_solver->module~m_vector_calculus module~m_tdsops_setup m_tdsops_setup module~m_solver->module~m_tdsops_setup module~m_stats->module~m_field module~m_stats->module~m_io_session module~m_stats->module~m_solver module~m_time_integrator->module~m_field module~m_time_integrator->module~m_allocator module~m_time_integrator->module~m_base_backend module~m_turbine_dummy m_turbine_dummy module~m_turbine_dummy->module~m_field module~m_turbine_dummy->module~m_allocator module~m_turbine_dummy->module~m_base_backend module~m_turbine_dummy->module~m_io_session module~m_turbine_dummy->module~m_mesh module~m_turbine_dummy->module~m_turbine_model module~m_turbine_model->module~m_field module~m_turbine_model->module~m_allocator module~m_turbine_model->module~m_base_backend module~m_turbine_model->module~m_mesh module~m_turbine_model->module~m_checkpoint_state module~m_vector_calculus->module~m_field module~m_vector_calculus->module~m_allocator module~m_vector_calculus->module~m_base_backend module~m_backend_setup->module~m_allocator module~m_backend_setup->module~m_base_backend module~m_backend_setup->module~m_cuda_allocator module~m_backend_setup->module~m_cuda_backend module~m_backend_setup->module~m_mesh module~m_backend_setup->module~m_omp_backend module~m_backend_setup->module~m_omptgt_allocator module~m_backend_setup->module~m_omptgt_backend module~m_case_factory->module~m_allocator module~m_case_factory->module~m_base_backend module~m_case_factory->module~m_base_case module~m_case_factory->module~m_case_abl module~m_case_factory->module~m_case_channel module~m_case_factory->module~m_case_cylinder module~m_case_factory->module~m_case_generic module~m_case_factory->module~m_case_tgv module~m_case_factory->module~m_case_wind_turbine module~m_case_factory->module~m_mesh module~m_checkpoint_state->module~m_io_session module~m_cuda_memcheck_device m_cuda_memcheck_device module~m_cuda_memcheck_device->module~m_base_case module~m_cuda_memcheck_device->module~m_cuda_poisson_fft module~m_cuda_memcheck_device->module~m_mesh module~m_cuda_memcheck_device->module~m_memory_estimate module~m_io_manager->module~m_checkpoint_manager module~m_io_manager->module~m_snapshot_manager module~m_io_manager->module~m_solver module~m_io_manager->module~m_stats module~m_io_manager->module~m_checkpoint_state module~m_memcheck_context->module~m_mesh module~m_memcheck_context->module~m_cuda_memcheck_device module~m_memcheck_estimate->module~m_cuda_poisson_fft module~m_memcheck_estimate->module~m_memcheck_context module~m_memcheck_estimate->module~m_memory_estimate module~m_memory_estimate->module~m_allocator module~m_memory_estimate->module~m_time_integrator module~m_tdsops_setup->module~m_base_backend module~m_tdsops_setup->module~m_mesh module~m_turbine_setup->module~m_adm module~m_turbine_setup->module~m_alm module~m_turbine_setup->module~m_solver module~m_turbine_setup->module~m_turbine_dummy module~m_turbine_setup->module~m_turbine_model module~m_turbine_setup->module~m_io_manager proc~init_omp_poisson_fft m_omp_backend::omp_backend_t%init_omp_poisson_fft proc~init_omp_poisson_fft->module~m_omp_poisson_fft proc~resolve_gpu_io_mode m_memcheck_context::resolve_gpu_io_mode proc~resolve_gpu_io_mode->module~m_io_backend program~x3d2_memcheck x3d2_memcheck program~x3d2_memcheck->module~m_memcheck_build program~x3d2_memcheck->module~m_memcheck_context program~x3d2_memcheck->module~m_memcheck_estimate program~x3d2_memcheck->module~m_memory_estimate program~x3d2_memcheck->module~m_memcheck_report program~x3d2_poisson_solver x3d2_poisson_solver program~x3d2_poisson_solver->module~m_allocator program~x3d2_poisson_solver->module~m_base_backend program~x3d2_poisson_solver->module~m_mesh program~x3d2_poisson_solver->module~m_backend_setup program~x3d2_poisson_solver->module~m_tdsops_setup program~xcompact xcompact program~xcompact->module~m_base_case program~xcompact->module~m_mesh program~xcompact->module~m_backend_setup program~xcompact->module~m_case_factory module~m_memcheck_report->module~m_cuda_memcheck_device module~m_memcheck_report->module~m_memcheck_context module~m_memcheck_report->module~m_memcheck_estimate module~m_memcheck_report->module~m_memory_estimate

Interfaces

public interface field_t

  • public function field_init(ngrid, next, id) result(f)

    Arguments

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

    next matches the polymorphic next component it is assigned to, so the caller hands over the list head as-is (see omptgt_field_init).

    class(field_t), intent(in), pointer :: next
    integer, intent(in) :: id

    next matches the polymorphic next component it is assigned to, so the caller hands over the list head as-is (see omptgt_field_init).

    Return Value type(field_t)


Derived Types

type, public ::  field_t

Memory block type holding both a data field and a pointer to the next block. The field_t type also holds an integer refcount that counts the number of references to this field. User code is currently responsible for incrementing the reference count.

Components

Type Visibility Attributes Name Initial
class(field_t), public, pointer :: next
real(kind=dp), public, pointer, contiguous :: data(:,:,:)
integer, public :: dir
integer, public :: data_loc
integer, public :: refcount = 0
integer, public :: id

An integer identifying the memory block.

Constructor

public function field_init (ngrid, next, id)

Type-Bound Procedures

procedure, public :: fill
procedure, public :: get_shape
procedure, public :: set_shape
procedure, public :: set_data_loc
procedure, public :: get_dev_ptr

type, public ::  flist_t

Use for creating a list of field pointers

Components

Type Visibility Attributes Name Initial
class(field_t), public, pointer :: ptr

Functions

public function field_init(ngrid, next, id) result(f)

Arguments

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

next matches the polymorphic next component it is assigned to, so the caller hands over the list head as-is (see omptgt_field_init).

class(field_t), intent(in), pointer :: next
integer, intent(in) :: id

next matches the polymorphic next component it is assigned to, so the caller hands over the list head as-is (see omptgt_field_init).

Return Value type(field_t)

public function get_dev_ptr(self) result(ptr)

Address of the block's storage in a separate device allocation, null for a host block. A device field type that keeps its storage behind a raw device pointer overrides this, letting its backend reach the storage by dynamic dispatch rather than by a type query.

Arguments

Type IntentOptional Attributes Name
class(field_t) :: self

Return Value type(c_ptr)

public function get_shape(self) result(dims)

Arguments

Type IntentOptional Attributes Name
class(field_t) :: self

Return Value integer, (3)


Subroutines

public subroutine fill(self, c)

Arguments

Type IntentOptional Attributes Name
class(field_t) :: self
real(kind=dp), intent(in) :: c

public subroutine set_data_loc(self, data_loc)

Arguments

Type IntentOptional Attributes Name
class(field_t) :: self
integer, intent(in) :: data_loc

public subroutine set_shape(self, dims)

Arguments

Type IntentOptional Attributes Name
class(field_t) :: self
integer, intent(in) :: dims(3)