xcompact Program

Uses

  • program~~xcompact~~UsesGraph program~xcompact xcompact module~m_allocator m_allocator program~xcompact->module~m_allocator module~m_base_backend m_base_backend program~xcompact->module~m_base_backend module~m_base_case m_base_case program~xcompact->module~m_base_case module~m_case_channel m_case_channel program~xcompact->module~m_case_channel module~m_case_generic m_case_generic program~xcompact->module~m_case_generic module~m_case_tgv m_case_tgv program~xcompact->module~m_case_tgv module~m_common m_common program~xcompact->module~m_common module~m_config m_config program~xcompact->module~m_config module~m_cuda_allocator m_cuda_allocator program~xcompact->module~m_cuda_allocator module~m_cuda_backend m_cuda_backend program~xcompact->module~m_cuda_backend module~m_cuda_common m_cuda_common program~xcompact->module~m_cuda_common module~m_mesh m_mesh program~xcompact->module~m_mesh module~m_omp_backend m_omp_backend program~xcompact->module~m_omp_backend module~m_omp_common m_omp_common program~xcompact->module~m_omp_common mpi mpi program~xcompact->mpi module~m_allocator->module~m_common module~m_allocator->module~m_mesh iso_fortran_env iso_fortran_env module~m_allocator->iso_fortran_env module~m_field m_field module~m_allocator->module~m_field module~m_base_backend->module~m_allocator module~m_base_backend->module~m_common module~m_base_backend->module~m_mesh module~m_base_backend->mpi module~m_base_backend->module~m_field module~m_poisson_fft m_poisson_fft module~m_base_backend->module~m_poisson_fft module~m_tdsops m_tdsops module~m_base_backend->module~m_tdsops module~m_base_case->module~m_allocator module~m_base_case->module~m_base_backend module~m_base_case->module~m_common module~m_base_case->module~m_mesh module~m_base_case->mpi module~m_checkpoint_manager~2 m_checkpoint_manager module~m_base_case->module~m_checkpoint_manager~2 module~m_base_case->module~m_field module~m_solver m_solver module~m_base_case->module~m_solver 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_common module~m_case_channel->module~m_config module~m_case_channel->module~m_mesh module~m_case_channel->mpi module~m_case_channel->iso_fortran_env module~m_case_channel->module~m_solver 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_common module~m_case_generic->module~m_mesh module~m_case_generic->iso_fortran_env module~m_case_generic->module~m_field module~m_case_generic->module~m_solver 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_common module~m_case_tgv->module~m_mesh module~m_case_tgv->iso_fortran_env module~m_case_tgv->module~m_field module~m_case_tgv->module~m_solver module~m_config->module~m_common module~m_config->iso_fortran_env module~m_cuda_allocator->module~m_allocator module~m_cuda_allocator->module~m_common module~m_cuda_allocator->module~m_mesh module~m_cuda_allocator->module~m_field module~m_cuda_backend->module~m_allocator module~m_cuda_backend->module~m_base_backend module~m_cuda_backend->module~m_common module~m_cuda_backend->module~m_cuda_allocator module~m_cuda_backend->module~m_cuda_common module~m_cuda_backend->module~m_mesh module~m_cuda_backend->mpi cudafor cudafor module~m_cuda_backend->cudafor module~m_cuda_backend->iso_fortran_env module~m_cuda_exec_dist m_cuda_exec_dist module~m_cuda_backend->module~m_cuda_exec_dist module~m_cuda_kernels_dist m_cuda_kernels_dist module~m_cuda_backend->module~m_cuda_kernels_dist module~m_cuda_kernels_fieldops m_cuda_kernels_fieldops module~m_cuda_backend->module~m_cuda_kernels_fieldops module~m_cuda_kernels_reorder m_cuda_kernels_reorder module~m_cuda_backend->module~m_cuda_kernels_reorder module~m_cuda_poisson_fft m_cuda_poisson_fft module~m_cuda_backend->module~m_cuda_poisson_fft module~m_cuda_sendrecv m_cuda_sendrecv module~m_cuda_backend->module~m_cuda_sendrecv module~m_cuda_tdsops m_cuda_tdsops module~m_cuda_backend->module~m_cuda_tdsops module~m_cuda_backend->module~m_field module~m_cuda_backend->module~m_tdsops module~m_mesh->module~m_common module~m_mesh->mpi module~m_mesh->iso_fortran_env module~m_mesh->module~m_field module~m_mesh_content m_mesh_content module~m_mesh->module~m_mesh_content module~m_omp_backend->module~m_allocator module~m_omp_backend->module~m_base_backend module~m_omp_backend->module~m_common module~m_omp_backend->module~m_mesh module~m_omp_backend->module~m_omp_common module~m_omp_backend->mpi module~m_omp_backend->module~m_field module~m_omp_exec_dist m_omp_exec_dist module~m_omp_backend->module~m_omp_exec_dist module~m_omp_sendrecv m_omp_sendrecv module~m_omp_backend->module~m_omp_sendrecv module~m_ordering m_ordering module~m_omp_backend->module~m_ordering module~m_omp_backend->module~m_tdsops module~m_checkpoint_manager~2->module~m_solver module~m_checkpoint_manager_impl m_checkpoint_manager_impl module~m_checkpoint_manager~2->module~m_checkpoint_manager_impl module~m_cuda_exec_dist->module~m_common module~m_cuda_exec_dist->module~m_cuda_common module~m_cuda_exec_dist->mpi module~m_cuda_exec_dist->cudafor module~m_cuda_exec_dist->module~m_cuda_kernels_dist module~m_cuda_exec_dist->module~m_cuda_sendrecv module~m_cuda_exec_dist->module~m_cuda_tdsops module~m_cuda_kernels_dist->module~m_common module~m_cuda_kernels_dist->cudafor module~m_cuda_kernels_fieldops->module~m_common module~m_cuda_kernels_fieldops->module~m_cuda_common module~m_cuda_kernels_fieldops->cudafor module~m_cuda_kernels_reorder->module~m_common module~m_cuda_kernels_reorder->module~m_cuda_common module~m_cuda_kernels_reorder->cudafor module~m_cuda_poisson_fft->module~m_common module~m_cuda_poisson_fft->module~m_cuda_allocator module~m_cuda_poisson_fft->module~m_mesh module~m_cuda_poisson_fft->mpi module~m_cuda_poisson_fft->cudafor module~m_cuda_poisson_fft->iso_fortran_env module~m_cuda_poisson_fft->module~m_field module~m_cuda_poisson_fft->module~m_poisson_fft module~m_cuda_poisson_fft->module~m_tdsops cufft cufft module~m_cuda_poisson_fft->cufft cufftXt cufftXt module~m_cuda_poisson_fft->cufftXt iso_c_binding iso_c_binding module~m_cuda_poisson_fft->iso_c_binding module~m_cuda_spectral m_cuda_spectral module~m_cuda_poisson_fft->module~m_cuda_spectral module~m_cuda_sendrecv->module~m_common module~m_cuda_sendrecv->mpi module~m_cuda_sendrecv->cudafor module~m_cuda_tdsops->module~m_common module~m_cuda_tdsops->iso_fortran_env module~m_cuda_tdsops->module~m_tdsops module~m_field->module~m_common module~m_mesh_content->module~m_common module~m_omp_exec_dist->module~m_common module~m_omp_exec_dist->module~m_omp_common module~m_omp_exec_dist->mpi module~m_omp_exec_dist->module~m_omp_sendrecv module~m_omp_exec_dist->module~m_tdsops module~m_omp_kernels_dist m_omp_kernels_dist module~m_omp_exec_dist->module~m_omp_kernels_dist module~m_omp_sendrecv->module~m_common module~m_omp_sendrecv->mpi module~m_ordering->module~m_common module~m_ordering->module~m_mesh module~m_poisson_fft->module~m_common module~m_poisson_fft->module~m_mesh module~m_poisson_fft->module~m_field module~m_poisson_fft->module~m_tdsops module~m_solver->module~m_allocator module~m_solver->module~m_base_backend module~m_solver->module~m_common module~m_solver->module~m_config module~m_solver->module~m_mesh module~m_solver->mpi module~m_solver->iso_fortran_env module~m_solver->module~m_field module~m_solver->module~m_tdsops 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->module~m_common module~m_tdsops->iso_fortran_env module~m_checkpoint_manager_impl->module~m_common module~m_checkpoint_manager_impl->module~m_config module~m_checkpoint_manager_impl->mpi module~m_checkpoint_manager_impl->module~m_field module~m_checkpoint_manager_impl->module~m_solver module~m_adios2_io m_adios2_io module~m_checkpoint_manager_impl->module~m_adios2_io module~m_checkpoint_manager_base m_checkpoint_manager_base module~m_checkpoint_manager_impl->module~m_checkpoint_manager_base module~m_cuda_spectral->module~m_common module~m_cuda_spectral->cudafor module~m_omp_kernels_dist->module~m_common module~m_omp_kernels_dist->module~m_omp_common omp_lib omp_lib module~m_omp_kernels_dist->omp_lib module~m_time_integrator->module~m_allocator module~m_time_integrator->module~m_base_backend module~m_time_integrator->module~m_common module~m_time_integrator->module~m_field module~m_vector_calculus->module~m_allocator module~m_vector_calculus->module~m_base_backend module~m_vector_calculus->module~m_common module~m_vector_calculus->iso_fortran_env module~m_vector_calculus->module~m_field module~m_vector_calculus->module~m_tdsops module~m_adios2_io->module~m_common module~m_adios2_io->mpi adios2 adios2 module~m_adios2_io->adios2 module~m_checkpoint_manager_base->module~m_config module~m_checkpoint_manager_base->module~m_solver

Calls

program~~xcompact~~CallsGraph program~xcompact xcompact cudagetdevice cudagetdevice program~xcompact->cudagetdevice cudagetdevicecount cudagetdevicecount program~xcompact->cudagetdevicecount cudasetdevice cudasetdevice program~xcompact->cudasetdevice mpi_comm_rank mpi_comm_rank program~xcompact->mpi_comm_rank mpi_comm_size mpi_comm_size program~xcompact->mpi_comm_size mpi_finalize mpi_finalize program~xcompact->mpi_finalize mpi_init mpi_init program~xcompact->mpi_init proc~get_argument m_common::get_argument program~xcompact->proc~get_argument proc~run m_base_case::base_case_t%run program~xcompact->proc~run boundary_conditions boundary_conditions proc~run->boundary_conditions forcings forcings proc~run->forcings none~handle_io_step~3 m_checkpoint_manager::checkpoint_manager_t%handle_io_step proc~run->none~handle_io_step~3 none~is_restart m_checkpoint_manager::checkpoint_manager_t%is_restart proc~run->none~is_restart postprocess postprocess proc~run->postprocess pre_correction pre_correction proc~run->pre_correction proc~case_finalise m_base_case::base_case_t%case_finalise proc~run->proc~case_finalise proc~get_block m_allocator::allocator_t%get_block proc~run->proc~get_block proc~is_root m_mesh_content::par_t%is_root proc~run->proc~is_root proc~pressure_correction m_solver::solver_t%pressure_correction proc~run->proc~pressure_correction proc~release_block m_allocator::allocator_t%release_block proc~run->proc~release_block proc~transeq m_solver::solver_t%transeq proc~run->proc~transeq none~handle_io_step~2 m_checkpoint_manager_impl::checkpoint_manager_adios2_t%handle_io_step none~handle_io_step~3->none~handle_io_step~2 proc~case_finalise->proc~is_root none~finalise~3 m_checkpoint_manager::checkpoint_manager_t%finalise proc~case_finalise->none~finalise~3 none~get_padded_dims m_mesh::mesh_t%get_padded_dims proc~get_block->none~get_padded_dims proc~create_block m_allocator::allocator_t%create_block proc~get_block->proc~create_block proc~set_shape m_field::field_t%set_shape proc~get_block->proc~set_shape proc~pressure_correction->proc~get_block proc~pressure_correction->proc~release_block proc~divergence_v2p m_solver::solver_t%divergence_v2p proc~pressure_correction->proc~divergence_v2p proc~gradient_p2v m_solver::solver_t%gradient_p2v proc~pressure_correction->proc~gradient_p2v vecadd vecadd proc~pressure_correction->vecadd proc~transeq->proc~get_block proc~transeq->proc~release_block reorder reorder proc~transeq->reorder sum_yintox sum_yintox proc~transeq->sum_yintox sum_zintox sum_zintox proc~transeq->sum_zintox transeq_x transeq_x proc~transeq->transeq_x transeq_y transeq_y proc~transeq->transeq_y transeq_z transeq_z proc~transeq->transeq_z none~finalise~2 m_checkpoint_manager_impl::checkpoint_manager_adios2_t%finalise none~finalise~3->none~finalise~2 proc~get_padded_dims_dir m_mesh::mesh_t%get_padded_dims_dir none~get_padded_dims->proc~get_padded_dims_dir proc~get_padded_dims_phi m_mesh::mesh_t%get_padded_dims_phi none~get_padded_dims->proc~get_padded_dims_phi none~handle_io_step~2->mpi_comm_rank none~handle_io_step~2->proc~get_block none~handle_io_step~2->proc~release_block none~begin_step~2 m_adios2_io::adios2_writer_t%begin_step none~handle_io_step~2->none~begin_step~2 none~write_attribute m_adios2_io::adios2_writer_t%write_attribute none~handle_io_step~2->none~write_attribute none~write_data m_adios2_io::adios2_writer_t%write_data none~handle_io_step~2->none~write_data proc~get_coordinates m_mesh::mesh_t%get_coordinates none~handle_io_step~2->proc~get_coordinates proc~get_dims m_mesh::mesh_t%get_dims none~handle_io_step~2->proc~get_dims proc~get_field_data m_base_backend::base_backend_t%get_field_data none~handle_io_step~2->proc~get_field_data proc~get_global_dims m_mesh::mesh_t%get_global_dims none~handle_io_step~2->proc~get_global_dims proc~divergence_v2c m_vector_calculus::vector_calculus_t%divergence_v2c proc~divergence_v2p->proc~divergence_v2c proc~gradient_c2v m_vector_calculus::vector_calculus_t%gradient_c2v proc~gradient_p2v->proc~gradient_c2v adios2_begin_step adios2_begin_step none~begin_step~2->adios2_begin_step none~handle_error m_adios2_io::base_adios2_t%handle_error none~begin_step~2->none~handle_error none~finalise~4 m_adios2_io::base_adios2_t%finalise none~finalise~2->none~finalise~4 adios2_define_attribute adios2_define_attribute none~write_attribute->adios2_define_attribute none~write_attribute->none~handle_error adios2_define_variable adios2_define_variable none~write_data->adios2_define_variable adios2_put adios2_put none~write_data->adios2_put none~write_data->none~handle_error proc~divergence_v2c->proc~get_block proc~divergence_v2c->proc~release_block proc~divergence_v2c->reorder proc~divergence_v2c->vecadd tds_solve tds_solve proc~divergence_v2c->tds_solve proc~get_dims_dataloc m_mesh::get_dims_dataloc proc~get_dims->proc~get_dims_dataloc proc~get_field_data->proc~get_block proc~get_field_data->proc~release_block proc~get_field_data->reorder copy_f_to_data copy_f_to_data proc~get_field_data->copy_f_to_data proc~get_rdr_from_dirs m_common::get_rdr_from_dirs proc~get_field_data->proc~get_rdr_from_dirs proc~get_global_dims->proc~get_dims_dataloc none~get_n_groups m_mesh::mesh_t%get_n_groups proc~get_padded_dims_dir->none~get_n_groups proc~get_padded_dims_phi->none~get_padded_dims proc~gradient_c2v->proc~get_block proc~gradient_c2v->proc~release_block proc~gradient_c2v->reorder proc~gradient_c2v->tds_solve none~finalise~4->none~handle_error adios2_finalize adios2_finalize none~finalise~4->adios2_finalize proc~get_n_groups_dir m_mesh::mesh_t%get_n_groups_dir none~get_n_groups->proc~get_n_groups_dir proc~get_n_groups_phi m_mesh::mesh_t%get_n_groups_phi none~get_n_groups->proc~get_n_groups_phi proc~get_n_groups_phi->none~get_n_groups

Variables

Type Attributes Name Initial
class(base_backend_t), pointer :: backend
class(allocator_t), pointer :: allocator
type(allocator_t), pointer :: host_allocator
type(mesh_t), target :: mesh
class(base_case_t), allocatable :: flow_case
type(cuda_backend_t), target :: cuda_backend
type(cuda_allocator_t), target :: cuda_allocator
integer :: ndevs
integer :: devnum
type(omp_backend_t), target :: omp_backend
type(allocator_t), target :: omp_allocator
real(kind=dp) :: t_start
real(kind=dp) :: t_end
type(domain_config_t) :: domain_cfg
type(solver_config_t) :: solver_cfg
character(len=32) :: backend_name
integer :: nrank
integer :: nproc
integer :: ierr
logical :: use_2decomp