abort_run Subroutine

public subroutine abort_run(message, collective)

Report a fatal error and stop every rank of the run.

By default the rank that calls this writes the message, prefixed with its rank on a multi-rank run, and aborts the job. That is safe however many ranks get here, so it is the right choice for a failure only some ranks see: a CUDA error, a missing file, a bad MPI return code.

Pass collective=.true. when every rank is certain to reach this call with the same message, typically while checking the input. Rank 0 then writes the message once and aborts, while the other ranks wait for it. Never use it for an error some ranks may not see: those ranks would carry on while the rest wait, and the run hangs.

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: message
logical, intent(in), optional :: collective

Calls

proc~~abort_run~~CallsGraph proc~abort_run m_logger::abort_run interface~str m_logger::str proc~abort_run->interface~str mpi_abort mpi_abort proc~abort_run->mpi_abort mpi_barrier mpi_barrier proc~abort_run->mpi_barrier mpi_comm_rank mpi_comm_rank proc~abort_run->mpi_comm_rank mpi_comm_size mpi_comm_size proc~abort_run->mpi_comm_size mpi_finalized mpi_finalized proc~abort_run->mpi_finalized mpi_initialized mpi_initialized proc~abort_run->mpi_initialized

Called by

proc~~abort_run~~CalledByGraph proc~abort_run m_logger::abort_run none~apply_sgs_stress m_les::les_t%apply_sgs_stress none~apply_sgs_stress->proc~abort_run proc~compute_sgs_stress_base m_base_backend::base_backend_t%compute_sgs_stress_base none~apply_sgs_stress->proc~compute_sgs_stress_base proc~compute_smagorinsky_nut_base m_base_backend::base_backend_t%compute_smagorinsky_nut_base none~apply_sgs_stress->proc~compute_smagorinsky_nut_base proc~field_set_abl_wall_stress_base m_base_backend::base_backend_t%field_set_abl_wall_stress_base none~apply_sgs_stress->proc~field_set_abl_wall_stress_base proc~field_set_y_plane_base m_base_backend::base_backend_t%field_set_y_plane_base none~apply_sgs_stress->proc~field_set_y_plane_base proc~reorder_base m_base_backend::base_backend_t%reorder_base none~apply_sgs_stress->proc~reorder_base proc~tds_solve_base m_base_backend::base_backend_t%tds_solve_base none~apply_sgs_stress->proc~tds_solve_base proc~vecadd_base m_base_backend::base_backend_t%vecadd_base none~apply_sgs_stress->proc~vecadd_base proc~set_field_data m_base_backend::base_backend_t%set_field_data none~apply_sgs_stress->proc~set_field_data none~begin_step m_io_session::writer_session_t%begin_step none~begin_step->proc~abort_run none~capture_solver_info m_cuda_memcheck_device::cuda_memcheck_device_t%capture_solver_info none~capture_solver_info->proc~abort_run none~configure_abl_wall_boundary m_les::les_t%configure_abl_wall_boundary none~configure_abl_wall_boundary->proc~abort_run none~configure_wall_damping m_les::les_t%configure_wall_damping none~configure_abl_wall_boundary->none~configure_wall_damping none~configure_shifted_periodic m_abl::abl_t%configure_shifted_periodic none~configure_shifted_periodic->proc~abort_run none~configure_wall_boundary_correction m_abl::abl_t%configure_wall_boundary_correction none~configure_wall_boundary_correction->proc~abort_run none~configure_wall_boundary_correction->none~configure_abl_wall_boundary proc~abl_wall_sample_location m_les::abl_wall_sample_location none~configure_wall_boundary_correction->proc~abl_wall_sample_location none~configure_wall_damping->proc~abort_run none~end_step m_io_session::writer_session_t%end_step none~end_step->proc~abort_run none~ensure_probe m_cuda_memcheck_device::cuda_memcheck_device_t%ensure_probe none~ensure_probe->proc~abort_run none~mem_info m_cuda_memcheck_device::cuda_memcheck_device_t%mem_info none~ensure_probe->none~mem_info proc~fft_workspace_bytes_query m_cuda_memcheck_device::fft_workspace_bytes_query none~ensure_probe->proc~fft_workspace_bytes_query none~handle_checkpoint_step m_checkpoint_manager::checkpoint_manager_t%handle_checkpoint_step none~handle_checkpoint_step->proc~abort_run none~write_data m_io_session::writer_session_t%write_data none~handle_checkpoint_step->none~write_data none~write_field_from_solver m_io_session::writer_session_t%write_field_from_solver none~handle_checkpoint_step->none~write_field_from_solver proc~get_field_ptr m_io_field_utils::get_field_ptr none~handle_checkpoint_step->proc~get_field_ptr proc~sync_base m_base_backend::base_backend_t%sync_base none~handle_checkpoint_step->proc~sync_base proc~write_single_field_to_buffer m_io_field_utils::write_single_field_to_buffer none~handle_checkpoint_step->proc~write_single_field_to_buffer none~write_checkpoint~5 m_stats::stats_manager_t%write_checkpoint none~handle_checkpoint_step->none~write_checkpoint~5 proc~get_field_data m_base_backend::base_backend_t%get_field_data none~handle_checkpoint_step->proc~get_field_data proc~setup_field_arrays m_io_field_utils::setup_field_arrays none~handle_checkpoint_step->proc~setup_field_arrays none~handle_restart~2 m_checkpoint_manager::checkpoint_manager_t%handle_restart none~handle_restart~2->proc~abort_run none~read_data m_io_session::reader_session_t%read_data none~handle_restart~2->none~read_data none~read_checkpoint~4 m_stats::stats_manager_t%read_checkpoint none~handle_restart~2->none~read_checkpoint~4 none~handle_restart~2->proc~set_field_data none~handle_snapshot_step m_snapshot_manager::snapshot_manager_t%handle_snapshot_step none~handle_snapshot_step->proc~abort_run none~handle_snapshot_step->none~begin_step none~handle_snapshot_step->none~end_step none~write_attribute m_io_session::writer_session_t%write_attribute none~handle_snapshot_step->none~write_attribute none~handle_snapshot_step->none~write_data none~handle_snapshot_step->none~write_field_from_solver none~handle_snapshot_step->proc~get_field_ptr none~handle_snapshot_step->proc~sync_base none~handle_snapshot_step->proc~write_single_field_to_buffer none~handle_snapshot_step->proc~setup_field_arrays none~init~2 m_cuda_memcheck_device::cuda_memcheck_device_t%init none~init~2->proc~abort_run none~init~6 m_backend_setup::backend_setup_t%init none~init~6->proc~abort_run proc~check_cuda m_cuda_errors::check_cuda none~init~6->proc~check_cuda none~mem_info->proc~abort_run none~planes_at m_inflow_planes::inflow_plane_reader_t%planes_at none~planes_at->proc~abort_run proc~read_inflow_block m_inflow_planes::read_inflow_block none~planes_at->proc~read_inflow_block none~query_plan_need m_cuda_memcheck_device::cuda_memcheck_device_t%query_plan_need none~query_plan_need->proc~abort_run none~query_plan_need->proc~fft_workspace_bytes_query none~read_data->proc~abort_run none~read_data~2 m_io_base::io_reader_t%read_data none~read_data->none~read_data~2 none~read_data~2->proc~abort_run none~sample~2 m_inflow_planes::inflow_plane_writer_t%sample none~sample~2->proc~abort_run none~sample~2->none~write_data none~sample~2->proc~get_field_data none~write_attribute->proc~abort_run none~write_data->proc~abort_run none~write_field_from_solver->proc~abort_run none~write_step m_scalar_series::scalar_series_t%write_step none~write_step->proc~abort_run proc~abl_wall_sample_location->proc~abort_run proc~abl_wall_upper_plane m_base_backend::abl_wall_upper_plane proc~abl_wall_upper_plane->proc~abort_run proc~advance_turbine m_alm_turbine::advance_turbine proc~advance_turbine->proc~abort_run proc~alloc_tdsops_base m_base_backend::base_backend_t%alloc_tdsops_base proc~alloc_tdsops_base->proc~abort_run proc~allocate_flow_case m_case_factory::allocate_flow_case proc~allocate_flow_case->proc~abort_run proc~base_init m_poisson_fft::poisson_fft_t%base_init proc~base_init->proc~abort_run proc~stretching_matrix m_poisson_fft::poisson_fft_t%stretching_matrix proc~base_init->proc~stretching_matrix proc~case_abl_init m_case_abl::case_abl_init proc~case_abl_init->proc~abort_run proc~case_abl_init->none~configure_shifted_periodic proc~case_abl_init->none~configure_wall_boundary_correction proc~get_argument m_common::get_argument proc~case_abl_init->proc~get_argument proc~init_turbine_model m_turbine_setup::init_turbine_model proc~case_abl_init->proc~init_turbine_model proc~case_init m_base_case::base_case_t%case_init proc~case_abl_init->proc~case_init proc~case_wind_turbine_init m_case_wind_turbine::case_wind_turbine_init proc~case_wind_turbine_init->proc~abort_run proc~case_wind_turbine_init->proc~get_argument proc~case_wind_turbine_init->proc~init_turbine_model proc~case_wind_turbine_init->proc~case_init proc~check_cuda->proc~abort_run proc~check_cufft m_cuda_errors::check_cufft proc~check_cufft->proc~abort_run proc~check_labelled_fields m_base_backend::check_labelled_fields proc~check_labelled_fields->proc~abort_run proc~check_mpi m_logger::check_mpi proc~check_mpi->proc~abort_run proc~check_point_fields m_base_backend::check_point_fields proc~check_point_fields->proc~abort_run proc~classify_boundaries m_mesh::classify_boundaries proc~classify_boundaries->proc~abort_run proc~compute_pressure_vert m_postprocess::compute_pressure_vert proc~compute_pressure_vert->proc~abort_run proc~interpl_c2v m_vector_calculus::vector_calculus_t%interpl_c2v proc~compute_pressure_vert->proc~interpl_c2v proc~compute_pressure_vert->proc~vecadd_base proc~compute_qcriterion_base m_base_backend::base_backend_t%compute_qcriterion_base proc~compute_qcriterion_base->proc~abort_run proc~compute_sgs_stress_base->proc~abort_run proc~compute_smagorinsky_nut_base->proc~abort_run proc~compute_vorticity_base m_base_backend::base_backend_t%compute_vorticity_base proc~compute_vorticity_base->proc~abort_run proc~copy_data_to_f_base m_base_backend::base_backend_t%copy_data_to_f_base proc~copy_data_to_f_base->proc~abort_run proc~copy_f_to_data_base m_base_backend::base_backend_t%copy_f_to_data_base proc~copy_f_to_data_base->proc~abort_run proc~copy_halo m_cuda_sendrecv::copy_halo proc~copy_halo->proc~abort_run proc~count_steps_up_to~2 m_io_backend::count_steps_up_to proc~count_steps_up_to~2->proc~abort_run proc~create_cuda_poisson_fft m_cuda_poisson_fft::create_cuda_poisson_fft proc~create_cuda_poisson_fft->proc~abort_run proc~create_omp_poisson_fft m_omp_poisson_fft::create_omp_poisson_fft proc~create_omp_poisson_fft->proc~abort_run proc~curl~2 m_vector_calculus::vector_calculus_t%curl proc~curl~2->proc~abort_run proc~curl~2->proc~reorder_base proc~curl~2->proc~tds_solve_base proc~curl~2->proc~vecadd_base proc~decomposition_2decomp m_decomp::decomposition_2decomp proc~decomposition_2decomp->proc~abort_run proc~decomposition_2decomp~2 m_decomp::decomposition_2decomp proc~decomposition_2decomp~2->proc~abort_run proc~deriv_1st m_tdsops::tdsops_t%deriv_1st proc~deriv_1st->proc~abort_run proc~deriv_2nd m_tdsops::tdsops_t%deriv_2nd proc~deriv_2nd->proc~abort_run proc~device_sync m_omptgt_common::device_sync proc~device_sync->proc~abort_run proc~divergence_v2c m_vector_calculus::vector_calculus_t%divergence_v2c proc~divergence_v2c->proc~abort_run proc~divergence_v2c->proc~reorder_base proc~divergence_v2c->proc~tds_solve_base proc~divergence_v2c->proc~vecadd_base proc~enforce_periodicity m_poisson_fft::poisson_fft_t%enforce_periodicity proc~enforce_periodicity->proc~abort_run proc~exchange_dim2_mirror m_cuda_poisson_fft::cuda_poisson_fft_t%exchange_dim2_mirror proc~exchange_dim2_mirror->proc~abort_run proc~exchange_dim2_mirror->proc~check_cuda proc~exchange_dim2_mirror->proc~check_mpi proc~exec_dist_penta_periodic~2 m_omptgt_exec_dist::exec_dist_penta_periodic proc~exec_dist_penta_periodic~2->proc~abort_run proc~export_field_to_device m_base_backend::base_backend_t%export_field_to_device proc~export_field_to_device->proc~abort_run proc~export_field_to_device_cuda m_cuda_backend::cuda_backend_t%export_field_to_device_cuda proc~export_field_to_device_cuda->proc~abort_run proc~export_field_to_device_cuda->proc~check_cuda proc~reorder_cuda m_cuda_backend::cuda_backend_t%reorder_cuda proc~export_field_to_device_cuda->proc~reorder_cuda proc~fft_workspace_bytes_query->proc~abort_run proc~create_fft_plan_pair m_cuda_poisson_fft::create_fft_plan_pair proc~fft_workspace_bytes_query->proc~create_fft_plan_pair proc~field_add_const_x_face_base m_base_backend::base_backend_t%field_add_const_x_face_base proc~field_add_const_x_face_base->proc~abort_run proc~field_add_const_x_face_cuda m_cuda_backend::cuda_backend_t%field_add_const_x_face_cuda proc~field_add_const_x_face_cuda->proc~abort_run proc~field_add_const_x_face_omp m_omp_backend::omp_backend_t%field_add_const_x_face_omp proc~field_add_const_x_face_omp->proc~abort_run proc~field_add_face_from_field_base m_base_backend::base_backend_t%field_add_face_from_field_base proc~field_add_face_from_field_base->proc~abort_run proc~field_add_face_from_field_cuda m_cuda_backend::cuda_backend_t%field_add_face_from_field_cuda proc~field_add_face_from_field_cuda->proc~abort_run proc~field_add_face_from_field_omp m_omp_backend::omp_backend_t%field_add_face_from_field_omp proc~field_add_face_from_field_omp->proc~abort_run proc~field_add_gaussian_sources_base m_base_backend::base_backend_t%field_add_gaussian_sources_base proc~field_add_gaussian_sources_base->proc~abort_run proc~field_labelled_axpy_base m_base_backend::base_backend_t%field_labelled_axpy_base proc~field_labelled_axpy_base->proc~abort_run proc~field_labelled_sums_base m_base_backend::base_backend_t%field_labelled_sums_base proc~field_labelled_sums_base->proc~abort_run proc~field_max_mean_base m_base_backend::base_backend_t%field_max_mean_base proc~field_max_mean_base->proc~abort_run proc~field_max_mean_cuda m_cuda_backend::cuda_backend_t%field_max_mean_cuda proc~field_max_mean_cuda->proc~abort_run proc~field_max_mean_omp m_omp_backend::omp_backend_t%field_max_mean_omp proc~field_max_mean_omp->proc~abort_run proc~field_plane_sums_base m_base_backend::base_backend_t%field_plane_sums_base proc~field_plane_sums_base->proc~abort_run proc~field_plane_sums_cuda m_cuda_backend::cuda_backend_t%field_plane_sums_cuda proc~field_plane_sums_cuda->proc~abort_run proc~field_plane_sums_omp m_omp_backend::omp_backend_t%field_plane_sums_omp proc~field_plane_sums_omp->proc~abort_run proc~field_sample_points_base m_base_backend::base_backend_t%field_sample_points_base proc~field_sample_points_base->proc~abort_run proc~field_scale_base m_base_backend::base_backend_t%field_scale_base proc~field_scale_base->proc~abort_run proc~field_set_abl_wall_stress_base->proc~abort_run proc~field_set_abl_wall_stress_cuda m_cuda_backend::cuda_backend_t%field_set_abl_wall_stress_cuda proc~field_set_abl_wall_stress_cuda->proc~abort_run proc~field_set_abl_wall_stress_cuda->proc~abl_wall_upper_plane proc~field_set_abl_wall_stress_omp m_omp_backend::omp_backend_t%field_set_abl_wall_stress_omp proc~field_set_abl_wall_stress_omp->proc~abort_run proc~field_set_abl_wall_stress_omp->proc~abl_wall_upper_plane proc~field_set_face_base m_base_backend::base_backend_t%field_set_face_base proc~field_set_face_base->proc~abort_run proc~field_set_face_cuda m_cuda_backend::cuda_backend_t%field_set_face_cuda proc~field_set_face_cuda->proc~abort_run proc~field_set_face_from_field_base m_base_backend::base_backend_t%field_set_face_from_field_base proc~field_set_face_from_field_base->proc~abort_run proc~field_set_face_from_field_cuda m_cuda_backend::cuda_backend_t%field_set_face_from_field_cuda proc~field_set_face_from_field_cuda->proc~abort_run proc~field_set_face_from_field_omp m_omp_backend::omp_backend_t%field_set_face_from_field_omp proc~field_set_face_from_field_omp->proc~abort_run proc~field_set_face_omp m_omp_backend::omp_backend_t%field_set_face_omp proc~field_set_face_omp->proc~abort_run proc~field_set_y_plane_base->proc~abort_run proc~field_set_y_plane_cuda m_cuda_backend::cuda_backend_t%field_set_y_plane_cuda proc~field_set_y_plane_cuda->proc~abort_run proc~field_set_y_plane_omp m_omp_backend::omp_backend_t%field_set_y_plane_omp proc~field_set_y_plane_omp->proc~abort_run proc~field_shift_base m_base_backend::base_backend_t%field_shift_base proc~field_shift_base->proc~abort_run proc~field_shift_blend_x_band_cuda m_cuda_backend::cuda_backend_t%field_shift_blend_x_band_cuda proc~field_shift_blend_x_band_cuda->proc~abort_run proc~field_shift_blend_x_band_cuda->proc~check_cuda proc~field_volume_integral_base m_base_backend::base_backend_t%field_volume_integral_base proc~field_volume_integral_base->proc~abort_run proc~field_volume_integral_cuda m_cuda_backend::cuda_backend_t%field_volume_integral_cuda proc~field_volume_integral_cuda->proc~abort_run proc~field_volume_integral_omp m_omp_backend::omp_backend_t%field_volume_integral_omp proc~field_volume_integral_omp->proc~abort_run proc~filter_in_dir m_solver::filter_in_dir proc~filter_in_dir->proc~abort_run proc~filter_in_dir->proc~reorder_base proc~filter_in_dir->proc~tds_solve_base proc~veccopy_base m_base_backend::base_backend_t%veccopy_base proc~filter_in_dir->proc~veccopy_base proc~get_argument->proc~abort_run proc~get_device_bw_info_base m_base_backend::base_backend_t%get_device_bw_info_base proc~get_device_bw_info_base->proc~abort_run proc~get_field_ptr->proc~abort_run proc~gradient_c2v m_vector_calculus::vector_calculus_t%gradient_c2v proc~gradient_c2v->proc~abort_run proc~gradient_c2v->proc~reorder_base proc~gradient_c2v->proc~tds_solve_base proc~init_adm m_adm::adm_t%init_adm proc~init_adm->proc~abort_run proc~read_ad_file m_adm::read_ad_file proc~init_adm->proc~read_ad_file proc~init_adm->proc~set_field_data proc~init_controller m_alm_controller::init_controller proc~init_controller->proc~abort_run proc~init_omp_poisson_fft m_omp_backend::omp_backend_t%init_omp_poisson_fft proc~init_omp_poisson_fft->proc~abort_run proc~init_omp_poisson_fft->proc~create_omp_poisson_fft proc~init_poisson_fft_base m_base_backend::base_backend_t%init_poisson_fft_base proc~init_poisson_fft_base->proc~abort_run proc~init_turbine_model->proc~abort_run proc~init~9 m_solver::init proc~init~9->proc~abort_run proc~init~9->proc~get_argument proc~init~9->proc~init_poisson_fft_base proc~allocate_tdsops m_tdsops_setup::allocate_tdsops proc~init~9->proc~allocate_tdsops proc~interpl_c2v->proc~abort_run proc~interpl_c2v->proc~reorder_base proc~interpl_c2v->proc~tds_solve_base proc~interpl_mid m_tdsops::tdsops_t%interpl_mid proc~interpl_mid->proc~abort_run proc~laplacian m_vector_calculus::vector_calculus_t%laplacian proc~laplacian->proc~abort_run proc~laplacian->proc~reorder_base proc~sum_yintox_base m_base_backend::base_backend_t%sum_yintox_base proc~laplacian->proc~sum_yintox_base proc~sum_zintox_base m_base_backend::base_backend_t%sum_zintox_base proc~laplacian->proc~sum_zintox_base proc~laplacian->proc~tds_solve_base proc~lowpass m_tdsops::tdsops_t%lowpass proc~lowpass->proc~abort_run proc~memcpy_d2d m_omptgt_common::memcpy_d2d proc~memcpy_d2d->proc~abort_run proc~memcpy_d2h m_omptgt_common::memcpy_d2h proc~memcpy_d2h->proc~abort_run proc~memcpy_h2d m_omptgt_common::memcpy_h2d proc~memcpy_h2d->proc~abort_run proc~no_device_exit x3d2_memcheck::no_device_exit proc~no_device_exit->proc~abort_run proc~nolds_of m_time_integrator::nolds_of proc~nolds_of->proc~abort_run proc~obtain_coordinates m_mesh_content::geo_t%obtain_coordinates proc~obtain_coordinates->proc~abort_run proc~parse_args m_memcheck_context::parse_args proc~parse_args->proc~abort_run proc~precorrect_walls m_solver::solver_t%precorrect_walls proc~precorrect_walls->proc~abort_run proc~precorrect_walls->proc~field_add_face_from_field_base proc~precorrect_walls->proc~field_scale_base proc~precorrect_walls->proc~field_set_face_base proc~process_spectral_110 m_omp_spectral::process_spectral_110 proc~process_spectral_110->proc~abort_run proc~read_abl_nml m_config::abl_config_t%read_abl_nml proc~read_abl_nml->proc~abort_run proc~validate_abl_config m_config::validate_abl_config proc~read_abl_nml->proc~validate_abl_config proc~read_ad_file->proc~abort_run proc~read_airfoil m_alm_airfoil::read_airfoil proc~read_airfoil->proc~abort_run proc~read_channel_nml m_config::channel_config_t%read_channel_nml proc~read_channel_nml->proc~abort_run proc~read_checkpoint_adm m_adm::adm_t%read_checkpoint_adm proc~read_checkpoint_adm->proc~abort_run proc~read_checkpoint_adm->none~read_data proc~read_checkpoint_nml m_config::checkpoint_config_t%read_checkpoint_nml proc~read_checkpoint_nml->proc~abort_run proc~read_cylinder_nml m_config::cylinder_config_t%read_cylinder_nml proc~read_cylinder_nml->proc~abort_run proc~read_domain_nml m_config::domain_config_t%read_domain_nml proc~read_domain_nml->proc~abort_run proc~read_inflow_block->proc~abort_run proc~read_inflow_block->none~read_data proc~read_inflow_nml m_config::inflow_config_t%read_inflow_nml proc~read_inflow_nml->proc~abort_run proc~read_les_nml m_config::les_config_t%read_les_nml proc~read_les_nml->proc~abort_run proc~read_line_geometry m_alm_element::read_line_geometry proc~read_line_geometry->proc~abort_run proc~read_solver_nml m_config::solver_config_t%read_solver_nml proc~read_solver_nml->proc~abort_run proc~read_stats_nml m_config::stats_config_t%read_stats_nml proc~read_stats_nml->proc~abort_run proc~read_string_attribute~2 m_io_backend::read_string_attribute proc~read_string_attribute~2->proc~abort_run proc~read_turbine_file m_alm_turbine::read_turbine_file proc~read_turbine_file->proc~abort_run proc~read_turbine_file->proc~init_controller proc~read_turbine_file->proc~read_airfoil proc~read_wind_turbine_nml m_config::wind_turbine_config_t%read_wind_turbine_nml proc~read_wind_turbine_nml->proc~abort_run proc~redistribute_110_to_yslab m_cuda_poisson_fft::cuda_poisson_110_t%redistribute_110_to_yslab proc~redistribute_110_to_yslab->proc~abort_run proc~redistribute_110_to_yslab->proc~check_cuda proc~redistribute_110_to_yslab->proc~check_mpi proc~redistribute_110_to_zslab m_cuda_poisson_fft::cuda_poisson_110_t%redistribute_110_to_zslab proc~redistribute_110_to_zslab->proc~abort_run proc~redistribute_110_to_zslab->proc~check_cuda proc~redistribute_110_to_zslab->proc~check_mpi proc~reorder_base->proc~abort_run proc~reorder_cuda->proc~abort_run proc~resolve_field_t m_omptgt_backend::resolve_field_t proc~resolve_field_t->proc~abort_run proc~run m_base_case::base_case_t%run proc~run->proc~abort_run none~handle_io_step m_io_manager::io_manager_t%handle_io_step proc~run->none~handle_io_step none~write_initial_snapshot m_io_manager::io_manager_t%write_initial_snapshot proc~run->none~write_initial_snapshot proc~compute_derived_fields m_postprocess::compute_derived_fields proc~run->proc~compute_derived_fields proc~finish_step m_base_case::base_case_t%finish_step proc~run->proc~finish_step proc~substep m_base_case::base_case_t%substep proc~run->proc~substep proc~apply_spatial_filter m_solver::solver_t%apply_spatial_filter proc~run->proc~apply_spatial_filter none~update_stats m_io_manager::io_manager_t%update_stats proc~run->none~update_stats proc~scalar_product_base m_base_backend::base_backend_t%scalar_product_base proc~scalar_product_base->proc~abort_run proc~scalar_product_cuda m_cuda_backend::cuda_backend_t%scalar_product_cuda proc~scalar_product_cuda->proc~abort_run proc~scalar_product_omp m_omp_backend::omp_backend_t%scalar_product_omp proc~scalar_product_omp->proc~abort_run proc~scalar_product_omp->proc~get_field_data proc~set_field_face_data_base m_base_backend::base_backend_t%set_field_face_data_base proc~set_field_face_data_base->proc~abort_run proc~set_field_face_data_cuda m_cuda_backend::cuda_backend_t%set_field_face_data_cuda proc~set_field_face_data_cuda->proc~abort_run proc~set_field_face_data_omp m_omp_backend::omp_backend_t%set_field_face_data_omp proc~set_field_face_data_omp->proc~abort_run proc~slice_max_sum_base m_base_backend::base_backend_t%slice_max_sum_base proc~slice_max_sum_base->proc~abort_run proc~slice_max_sum_cuda m_cuda_backend::cuda_backend_t%slice_max_sum_cuda proc~slice_max_sum_cuda->proc~abort_run proc~slice_max_sum_omp m_omp_backend::omp_backend_t%slice_max_sum_omp proc~slice_max_sum_omp->proc~abort_run proc~source_index_boxes m_base_backend::source_index_boxes proc~source_index_boxes->proc~abort_run proc~stagder_1st m_tdsops::tdsops_t%stagder_1st proc~stagder_1st->proc~abort_run proc~stretching_matrix->proc~abort_run proc~sum_yintox_base->proc~abort_run proc~sum_zintox_base->proc~abort_run proc~sync_base->proc~abort_run proc~tds_solve_base->proc~abort_run proc~tds_solve_cuda m_cuda_backend::cuda_backend_t%tds_solve_cuda proc~tds_solve_cuda->proc~abort_run proc~thom_solve_cuda m_cuda_backend::cuda_backend_t%thom_solve_cuda proc~tds_solve_cuda->proc~thom_solve_cuda proc~tds_solve_dist~3 m_cuda_backend::cuda_backend_t%tds_solve_dist proc~tds_solve_cuda->proc~tds_solve_dist~3 proc~tds_solve_omp m_omp_backend::omp_backend_t%tds_solve_omp proc~tds_solve_omp->proc~abort_run proc~thom_solve_omp m_omp_backend::omp_backend_t%thom_solve_omp proc~tds_solve_omp->proc~thom_solve_omp proc~tds_solve_dist~2 m_omp_backend::tds_solve_dist proc~tds_solve_omp->proc~tds_solve_dist~2 proc~tdsops_init m_tdsops::tdsops_init proc~tdsops_init->proc~abort_run proc~tdsops_init->proc~deriv_1st proc~tdsops_init->proc~deriv_2nd proc~tdsops_init->proc~interpl_mid proc~tdsops_init->proc~lowpass proc~tdsops_init->proc~stagder_1st proc~thom_solve_base m_base_backend::base_backend_t%thom_solve_base proc~thom_solve_base->proc~abort_run proc~thom_solve_cuda->proc~abort_run proc~thom_solve_omp->proc~abort_run proc~transeq_species_base m_base_backend::base_backend_t%transeq_species_base proc~transeq_species_base->proc~abort_run proc~transeq_x_base m_base_backend::base_backend_t%transeq_x_base proc~transeq_x_base->proc~abort_run proc~transeq_y_base m_base_backend::base_backend_t%transeq_y_base proc~transeq_y_base->proc~abort_run proc~transeq_z_base m_base_backend::base_backend_t%transeq_z_base proc~transeq_z_base->proc~abort_run proc~undo_periodicity m_poisson_fft::poisson_fft_t%undo_periodicity proc~undo_periodicity->proc~abort_run proc~usage_error x3d2_poisson_solver::usage_error proc~usage_error->proc~abort_run proc~validate_abl_config->proc~abort_run proc~vecadd_base->proc~abort_run proc~vecadd_omp m_omp_backend::omp_backend_t%vecadd_omp proc~vecadd_omp->proc~abort_run proc~veccopy_base->proc~abort_run proc~veccopy_omp m_omp_backend::omp_backend_t%veccopy_omp proc~veccopy_omp->proc~abort_run proc~vecmult_base m_base_backend::base_backend_t%vecmult_base proc~vecmult_base->proc~abort_run proc~vecmult_omp m_omp_backend::omp_backend_t%vecmult_omp proc~vecmult_omp->proc~abort_run proc~vector_norm_squared_base m_base_backend::base_backend_t%vector_norm_squared_base proc~vector_norm_squared_base->proc~abort_run proc~vector_norm_squared_cuda m_cuda_backend::cuda_backend_t%vector_norm_squared_cuda proc~vector_norm_squared_cuda->proc~abort_run proc~vector_norm_squared_omp m_omp_backend::omp_backend_t%vector_norm_squared_omp proc~vector_norm_squared_omp->proc~abort_run proc~write_line_loads m_alm_output::write_line_loads proc~write_line_loads->proc~abort_run proc~write_single_field_to_buffer->proc~abort_run proc~x_slice_weighted_sum_base m_base_backend::base_backend_t%x_slice_weighted_sum_base proc~x_slice_weighted_sum_base->proc~abort_run proc~x_slice_weighted_sum_cuda m_cuda_backend::cuda_backend_t%x_slice_weighted_sum_cuda proc~x_slice_weighted_sum_cuda->proc~abort_run proc~x_slice_weighted_sum_omp m_omp_backend::omp_backend_t%x_slice_weighted_sum_omp proc~x_slice_weighted_sum_omp->proc~abort_run program~x3d2_memcheck x3d2_memcheck program~x3d2_memcheck->proc~abort_run program~x3d2_memcheck->none~init~2 program~x3d2_memcheck->proc~no_device_exit program~x3d2_memcheck->proc~parse_args proc~classify_bc m_memcheck_context::classify_bc program~x3d2_memcheck->proc~classify_bc proc~peak_fields_lookup m_memory_estimate::peak_fields_lookup program~x3d2_memcheck->proc~peak_fields_lookup proc~query_card_gib x3d2_memcheck::query_card_gib program~x3d2_memcheck->proc~query_card_gib proc~run_build_mode m_memcheck_build::run_build_mode program~x3d2_memcheck->proc~run_build_mode proc~report m_memcheck_report::report program~x3d2_memcheck->proc~report interface~case_abl_t m_case_abl::case_abl_t interface~case_abl_t->proc~case_abl_init interface~case_wind_turbine_t m_case_wind_turbine::case_wind_turbine_t interface~case_wind_turbine_t->proc~case_wind_turbine_init interface~solver_t m_solver::solver_t interface~solver_t->proc~init~9 interface~tdsops_t m_tdsops::tdsops_t interface~tdsops_t->proc~tdsops_init none~apply_damping m_abl::abl_t%apply_damping none~apply_damping->proc~field_shift_base none~apply_damping->proc~vecadd_base none~apply_damping->proc~veccopy_base none~apply_damping->proc~vecmult_base none~build_damping m_abl::abl_t%build_damping none~apply_damping->none~build_damping none~apply_forcing m_abl::abl_t%apply_forcing none~apply_forcing->proc~field_shift_base none~apply_forcing->proc~vecadd_base none~apply_forcing->none~apply_damping none~body m_ibm::ibm_t%body none~body->proc~vecmult_base none~handle_io_step->none~handle_checkpoint_step none~handle_io_step->none~handle_snapshot_step none~write_stats m_stats::stats_manager_t%write_stats none~handle_io_step->none~write_stats none~handle_restart~3 m_io_manager::io_manager_t%handle_restart none~handle_restart~3->none~handle_restart~2 none~read_checkpoint~4->none~read_data none~sample m_abl_diagnostics::abl_diagnostics_t%sample none~sample->proc~abl_wall_sample_location none~sample->proc~field_plane_sums_base none~sample->proc~field_set_abl_wall_stress_base none~write_checkpoint~5->none~write_data none~write_initial_snapshot->none~handle_snapshot_step none~write_stats->none~write_data proc~allocate_tdsops->proc~alloc_tdsops_base proc~apply_bc_abl m_case_abl::case_abl_t%apply_BC_abl proc~apply_bc_abl->proc~field_set_face_base proc~apply_bc_abl->proc~field_set_face_from_field_base proc~outflow_flow_rate_correction m_base_case::base_case_t%outflow_flow_rate_correction proc~apply_bc_abl->proc~outflow_flow_rate_correction proc~apply_bc_channel m_case_channel::case_channel_t%apply_BC_channel proc~apply_bc_channel->proc~field_set_face_from_field_base proc~apply_bc_cylinder m_case_cylinder::case_cylinder_t%apply_BC_cylinder proc~apply_bc_cylinder->proc~field_set_face_from_field_base proc~apply_bc_wind_turbine m_case_wind_turbine::case_wind_turbine_t%apply_BC_wind_turbine proc~apply_bc_wind_turbine->proc~field_add_const_x_face_base proc~apply_bc_wind_turbine->proc~field_set_face_from_field_base proc~apply_bc_wind_turbine->proc~slice_max_sum_base proc~compute_outflow_params m_base_case::base_case_t%compute_outflow_params proc~apply_bc_wind_turbine->proc~compute_outflow_params proc~apply_les m_solver::solver_t%apply_les proc~apply_les->none~apply_sgs_stress proc~case_channel_init m_case_channel::case_channel_init proc~case_channel_init->proc~get_argument proc~case_channel_init->proc~case_init proc~case_cylinder_init m_case_cylinder::case_cylinder_init proc~case_cylinder_init->proc~get_argument proc~case_cylinder_init->proc~case_init proc~case_init->proc~init~9 proc~case_init->none~handle_restart~3 proc~classify_bc->proc~classify_boundaries proc~compute_derived_fields->proc~compute_qcriterion_base proc~compute_derived_fields->proc~compute_vorticity_base proc~compute_derived_fields->proc~reorder_base proc~compute_derived_fields->proc~tds_solve_base proc~compute_outflow_params->proc~slice_max_sum_base proc~create_fft_plan m_cuda_poisson_fft::create_fft_plan proc~create_fft_plan->proc~check_cufft proc~create_fft_plan_pair->proc~check_cufft proc~create_fft_plan_pair->proc~create_fft_plan proc~create_plans m_cuda_poisson_fft::cuda_poisson_fft_t%create_plans proc~create_plans->proc~check_cufft proc~create_plans->proc~create_fft_plan_pair proc~create_plans_110 m_cuda_poisson_fft::cuda_poisson_110_t%create_plans_110 proc~create_plans_110->proc~check_cufft proc~create_plans_110->proc~create_fft_plan_pair proc~cuda_tdsops_init m_cuda_tdsops::cuda_tdsops_init proc~cuda_tdsops_init->proc~tdsops_init proc~curl m_solver::solver_t%curl proc~curl->proc~curl~2 proc~define_bc_abl m_case_abl::case_abl_t%define_BC_abl proc~define_bc_abl->proc~field_plane_sums_base proc~define_bc_abl->proc~field_shift_base proc~define_bc_abl->proc~compute_outflow_params proc~update_inflow_plane m_case_abl::case_abl_t%update_inflow_plane proc~define_bc_abl->proc~update_inflow_plane none~apply_shifted_periodic m_abl::abl_t%apply_shifted_periodic proc~define_bc_abl->none~apply_shifted_periodic proc~define_bc_channel m_case_channel::case_channel_t%define_BC_channel proc~define_bc_channel->proc~field_shift_base proc~define_bc_channel->proc~field_volume_integral_base proc~define_bc_channel->proc~set_field_face_data_base proc~define_bc_cylinder m_case_cylinder::case_cylinder_t%define_BC_cylinder proc~define_bc_cylinder->proc~set_field_face_data_base proc~define_bc_cylinder->proc~compute_outflow_params proc~divergence_v2p m_solver::solver_t%divergence_v2p proc~divergence_v2p->proc~divergence_v2c proc~fft_backward_100_cuda m_cuda_poisson_fft::cuda_poisson_100_t%fft_backward_100_cuda proc~fft_backward_100_cuda->proc~check_cufft proc~fft_backward_110_cuda m_cuda_poisson_fft::cuda_poisson_110_t%fft_backward_110_cuda proc~fft_backward_110_cuda->proc~check_cufft proc~fft_backward_110_cuda->proc~redistribute_110_to_zslab proc~fft_backward_cuda m_cuda_poisson_fft::cuda_poisson_fft_t%fft_backward_cuda proc~fft_backward_cuda->proc~check_cufft proc~fft_forward_100_cuda m_cuda_poisson_fft::cuda_poisson_100_t%fft_forward_100_cuda proc~fft_forward_100_cuda->proc~check_cufft proc~fft_forward_110_cuda m_cuda_poisson_fft::cuda_poisson_110_t%fft_forward_110_cuda proc~fft_forward_110_cuda->proc~check_cufft proc~fft_forward_110_cuda->proc~redistribute_110_to_yslab proc~fft_forward_cuda m_cuda_poisson_fft::cuda_poisson_fft_t%fft_forward_cuda proc~fft_forward_cuda->proc~check_cufft proc~fft_postprocess_010_cuda m_cuda_poisson_fft::cuda_poisson_010_t%fft_postprocess_010_cuda proc~fft_postprocess_010_cuda->proc~exchange_dim2_mirror proc~fft_postprocess_100_cuda m_cuda_poisson_fft::cuda_poisson_100_t%fft_postprocess_100_cuda proc~fft_postprocess_100_cuda->proc~exchange_dim2_mirror proc~fft_postprocess_110_cuda m_cuda_poisson_fft::cuda_poisson_110_t%fft_postprocess_110_cuda proc~fft_postprocess_110_cuda->proc~exchange_dim2_mirror proc~fft_postprocess_110_omp m_omp_poisson_fft::omp_poisson_110_t%fft_postprocess_110_omp proc~fft_postprocess_110_omp->proc~process_spectral_110 proc~field_add_gaussian_sources_cuda m_cuda_backend::cuda_backend_t%field_add_gaussian_sources_cuda proc~field_add_gaussian_sources_cuda->proc~check_point_fields proc~field_add_gaussian_sources_cuda->proc~source_index_boxes proc~field_add_gaussian_sources_omp m_omp_backend::omp_backend_t%field_add_gaussian_sources_omp proc~field_add_gaussian_sources_omp->proc~check_point_fields proc~field_add_gaussian_sources_omp->proc~source_index_boxes proc~field_labelled_axpy_cuda m_cuda_backend::cuda_backend_t%field_labelled_axpy_cuda proc~field_labelled_axpy_cuda->proc~check_labelled_fields proc~field_labelled_axpy_omp m_omp_backend::omp_backend_t%field_labelled_axpy_omp proc~field_labelled_axpy_omp->proc~check_labelled_fields proc~field_labelled_sums_cuda m_cuda_backend::cuda_backend_t%field_labelled_sums_cuda proc~field_labelled_sums_cuda->proc~check_labelled_fields proc~field_labelled_sums_omp m_omp_backend::omp_backend_t%field_labelled_sums_omp proc~field_labelled_sums_omp->proc~check_labelled_fields proc~field_sample_points_cuda m_cuda_backend::cuda_backend_t%field_sample_points_cuda proc~field_sample_points_cuda->proc~check_point_fields proc~field_sample_points_omp m_omp_backend::omp_backend_t%field_sample_points_omp proc~field_sample_points_omp->proc~check_point_fields proc~field_set_x_inlet_plane_base m_base_backend::base_backend_t%field_set_x_inlet_plane_base proc~field_set_x_inlet_plane_base->proc~set_field_face_data_base proc~filter_field m_solver::filter_field proc~filter_field->proc~filter_in_dir proc~finish_step->proc~compute_pressure_vert proc~finish_step->proc~compute_derived_fields proc~forcings_channel m_case_channel::case_channel_t%forcings_channel proc~forcings_channel->proc~vecadd_base proc~get_field_data->proc~copy_f_to_data_base proc~get_field_data->proc~reorder_base proc~gradient_p2v m_solver::solver_t%gradient_p2v proc~gradient_p2v->proc~gradient_c2v proc~init_cuda_poisson_fft m_cuda_backend::cuda_backend_t%init_cuda_poisson_fft proc~init_cuda_poisson_fft->proc~create_cuda_poisson_fft proc~init~16 m_time_integrator::init proc~init~16->proc~nolds_of proc~mesh_init m_mesh::mesh_init proc~mesh_init->proc~classify_boundaries proc~mesh_init->proc~decomposition_2decomp proc~mesh_init->proc~obtain_coordinates proc~omptgt_tdsops_init m_omptgt_tdsops::omptgt_tdsops_init proc~omptgt_tdsops_init->proc~tdsops_init proc~outflow_flow_rate_correction->proc~x_slice_weighted_sum_base proc~parse_arguments x3d2_poisson_solver::parse_arguments proc~parse_arguments->proc~usage_error proc~peak_fields_lookup->proc~nolds_of proc~poisson_fft m_solver::poisson_fft proc~poisson_fft->proc~reorder_base proc~solve_poisson m_poisson_fft::poisson_fft_t%solve_poisson proc~poisson_fft->proc~solve_poisson proc~post_step_abl m_case_abl::case_abl_t%post_step_abl proc~post_step_abl->none~sample~2 proc~prepare_probe m_memcheck_estimate::prepare_probe proc~prepare_probe->none~ensure_probe proc~prepare_probe->none~mem_info proc~prepare_probe->none~query_plan_need proc~pressure_correction m_solver::solver_t%pressure_correction proc~pressure_correction->proc~vecadd_base proc~pressure_correction->proc~divergence_v2p proc~pressure_correction->proc~gradient_p2v proc~project_forces_adm m_adm::adm_t%project_forces_adm proc~project_forces_adm->proc~field_labelled_axpy_base proc~project_forces_adm->proc~field_labelled_sums_base proc~query_card_gib->none~mem_info proc~run_build_mode->none~capture_solver_info proc~run_build_mode->none~init~6 proc~run_build_mode->none~mem_info proc~run_build_mode->proc~allocate_flow_case proc~run_build_mode->proc~finish_step proc~run_build_mode->proc~peak_fields_lookup proc~run_build_mode->proc~substep proc~sendrecv_3fields m_cuda_sendrecv::sendrecv_3fields proc~sendrecv_3fields->proc~check_cuda proc~sendrecv_3fields->proc~check_mpi proc~sendrecv_3fields->proc~copy_halo proc~sendrecv_3fields~2 m_omptgt_sendrecv::sendrecv_3fields proc~sendrecv_3fields~2->proc~device_sync proc~sendrecv_3fields~2->proc~memcpy_d2d proc~sendrecv_fields m_cuda_sendrecv::sendrecv_fields proc~sendrecv_fields->proc~check_cuda proc~sendrecv_fields->proc~check_mpi proc~sendrecv_fields->proc~copy_halo proc~sendrecv_fields~2 m_omptgt_sendrecv::sendrecv_fields proc~sendrecv_fields~2->proc~device_sync proc~sendrecv_fields~2->proc~memcpy_d2d proc~sendrecv_fields~3 m_omp_sendrecv::sendrecv_fields proc~sendrecv_fields~3->proc~check_mpi proc~set_field_data->proc~copy_data_to_f_base proc~set_field_data->proc~reorder_base proc~set_turbine_geometry m_alm_turbine::set_turbine_geometry proc~set_turbine_geometry->proc~read_line_geometry proc~setup_field_arrays->proc~get_field_ptr proc~setup_field_arrays->proc~get_field_data proc~solve_poisson->proc~enforce_periodicity proc~solve_poisson->proc~undo_periodicity proc~substep->proc~precorrect_walls proc~substep->none~body proc~substep->proc~pressure_correction proc~sync_cuda m_cuda_backend::cuda_backend_t%sync_cuda proc~sync_cuda->proc~check_cuda proc~transeq_default m_solver::transeq_default proc~transeq_default->proc~reorder_base proc~transeq_default->proc~sum_yintox_base proc~transeq_default->proc~sum_zintox_base proc~transeq_default->proc~transeq_x_base proc~transeq_default->proc~transeq_y_base proc~transeq_default->proc~transeq_z_base proc~transeq_default->proc~apply_les proc~transeq_species m_solver::solver_t%transeq_species proc~transeq_default->proc~transeq_species proc~transeq_lowmem m_solver::transeq_lowmem proc~transeq_lowmem->proc~reorder_base proc~transeq_lowmem->proc~sum_yintox_base proc~transeq_lowmem->proc~sum_zintox_base proc~transeq_lowmem->proc~transeq_x_base proc~transeq_lowmem->proc~transeq_y_base proc~transeq_lowmem->proc~transeq_z_base proc~transeq_lowmem->proc~apply_les proc~transeq_lowmem->proc~transeq_species proc~transeq_species->proc~reorder_base proc~transeq_species->proc~sum_yintox_base proc~transeq_species->proc~sum_zintox_base proc~transeq_species->proc~transeq_species_base proc~update_inflow_plane->none~planes_at proc~update_inflow_plane->proc~field_set_x_inlet_plane_base proc~write_checkpoint_adm m_adm::adm_t%write_checkpoint_adm proc~write_checkpoint_adm->none~write_data proc~write_output_adm m_adm::adm_t%write_output_adm proc~write_output_adm->none~write_step proc~write_step~2 m_monitoring::monitoring_t%write_step proc~write_step~2->none~write_step proc~write_step~2->proc~field_max_mean_base proc~write_step~2->proc~vector_norm_squared_base proc~write_step~2->proc~curl proc~write_step~2->proc~divergence_v2p program~x3d2_poisson_solver x3d2_poisson_solver program~x3d2_poisson_solver->none~init~6 program~x3d2_poisson_solver->proc~init_poisson_fft_base program~x3d2_poisson_solver->proc~sync_base program~x3d2_poisson_solver->proc~allocate_tdsops program~x3d2_poisson_solver->proc~parse_arguments program~x3d2_poisson_solver->proc~set_field_data program~x3d2_poisson_solver->proc~solve_poisson program~xcompact xcompact program~xcompact->none~init~6 program~xcompact->proc~allocate_flow_case program~xcompact->proc~get_argument program~xcompact->proc~run interface~case_channel_t m_case_channel::case_channel_t interface~case_channel_t->proc~case_channel_init interface~case_cylinder_t m_case_cylinder::case_cylinder_t interface~case_cylinder_t->proc~case_cylinder_init interface~cuda_tdsops_t m_cuda_tdsops::cuda_tdsops_t interface~cuda_tdsops_t->proc~cuda_tdsops_init interface~mesh_t m_mesh::mesh_t interface~mesh_t->proc~mesh_init interface~time_intg_t m_time_integrator::time_intg_t interface~time_intg_t->proc~init~16 none~build_damping->proc~set_field_data none~initialise m_abl::abl_t%initialise none~initialise->proc~set_field_data none~update~3 m_stats::stats_manager_t%update none~update~3->proc~get_field_data proc~apply_spatial_filter->proc~filter_field proc~case_generic_init m_case_generic::case_generic_init proc~case_generic_init->proc~case_init proc~case_tgv_init m_case_tgv::case_tgv_init proc~case_tgv_init->proc~case_init proc~define_bc_wind_turbine m_case_wind_turbine::case_wind_turbine_t%define_BC_wind_turbine proc~define_bc_wind_turbine->proc~field_set_x_inlet_plane_base proc~exec_dist_tds_compact m_cuda_exec_dist::exec_dist_tds_compact proc~exec_dist_tds_compact->proc~sendrecv_fields proc~exec_dist_tds_compact~2 m_omptgt_exec_dist::exec_dist_tds_compact proc~exec_dist_tds_compact~2->proc~sendrecv_fields~2 proc~exec_dist_tds_compact~3 m_omp_exec_dist::exec_dist_tds_compact proc~exec_dist_tds_compact~3->proc~sendrecv_fields~3 proc~exec_dist_transeq_3fused m_cuda_exec_dist::exec_dist_transeq_3fused proc~exec_dist_transeq_3fused->proc~sendrecv_3fields proc~exec_dist_transeq_3fused~2 m_omptgt_exec_dist::exec_dist_transeq_3fused proc~exec_dist_transeq_3fused~2->proc~sendrecv_3fields~2 proc~exec_dist_transeq_compact m_omp_exec_dist::exec_dist_transeq_compact proc~exec_dist_transeq_compact->proc~sendrecv_fields~3 proc~field_shift_blend_x_band_base m_base_backend::base_backend_t%field_shift_blend_x_band_base proc~field_shift_blend_x_band_base->proc~get_field_data proc~field_shift_blend_x_band_base->proc~set_field_data proc~forcings_abl m_case_abl::case_abl_t%forcings_abl proc~forcings_abl->none~apply_forcing proc~initial_conditions_channel m_case_channel::case_channel_t%initial_conditions_channel proc~initial_conditions_channel->proc~set_field_data proc~initial_conditions_cylinder m_case_cylinder::case_cylinder_t%initial_conditions_cylinder proc~initial_conditions_cylinder->proc~set_field_data proc~initial_conditions_wind_turbine m_case_wind_turbine::case_wind_turbine_t%initial_conditions_wind_turbine proc~initial_conditions_wind_turbine->proc~set_field_data proc~postprocess_abl m_case_abl::case_abl_t%postprocess_abl proc~postprocess_abl->none~sample proc~postprocess_abl->proc~write_step~2 proc~postprocess_channel m_case_channel::case_channel_t%postprocess_channel proc~postprocess_channel->proc~write_step~2 proc~postprocess_cylinder m_case_cylinder::case_cylinder_t%postprocess_cylinder proc~postprocess_cylinder->proc~write_step~2 proc~postprocess_generic m_case_generic::case_generic_t%postprocess_generic proc~postprocess_generic->proc~write_step~2 proc~postprocess_tgv m_case_tgv::case_tgv_t%postprocess_tgv proc~postprocess_tgv->proc~write_step~2 proc~postprocess_wind_turbine m_case_wind_turbine::case_wind_turbine_t%postprocess_wind_turbine proc~postprocess_wind_turbine->proc~write_step~2 proc~report->proc~prepare_probe proc~set_init m_base_case::base_case_t%set_init proc~set_init->proc~set_field_data proc~solve_poisson_000_cuda m_cuda_poisson_fft::cuda_poisson_000_t%solve_poisson_000_cuda proc~solve_poisson_000_cuda->proc~fft_backward_cuda proc~solve_poisson_000_cuda->proc~fft_forward_cuda proc~tds_solve_dist~2->proc~sendrecv_fields~3 proc~tds_solve_dist~2->proc~exec_dist_tds_compact~3 proc~tds_solve_dist~3->proc~sendrecv_fields proc~tds_solve_dist~3->proc~exec_dist_tds_compact proc~transeq_cuda_dist m_cuda_backend::cuda_backend_t%transeq_cuda_dist proc~transeq_cuda_dist->proc~sendrecv_3fields proc~transeq_cuda_dist->proc~exec_dist_transeq_3fused proc~transeq_omp_dist m_omp_backend::omp_backend_t%transeq_omp_dist proc~transeq_omp_dist->proc~sendrecv_fields~3 proc~transeq_omp_dist->proc~exec_dist_transeq_compact proc~transeq_species_cuda m_cuda_backend::cuda_backend_t%transeq_species_cuda proc~transeq_species_cuda->proc~sendrecv_fields proc~transeq_species_cuda->proc~exec_dist_transeq_3fused proc~transeq_species_omp m_omp_backend::omp_backend_t%transeq_species_omp proc~transeq_species_omp->proc~sendrecv_fields~3 proc~transeq_species_omp->proc~exec_dist_transeq_compact interface~case_generic_t m_case_generic::case_generic_t interface~case_generic_t->proc~case_generic_init interface~case_tgv_t m_case_tgv::case_tgv_t interface~case_tgv_t->proc~case_tgv_init none~apply_shifted_periodic->proc~field_shift_blend_x_band_base none~update_stats->none~update~3 proc~initial_conditions_abl m_case_abl::case_abl_t%initial_conditions_abl proc~initial_conditions_abl->none~initialise proc~initial_conditions_tgv m_case_tgv::case_tgv_t%initial_conditions_tgv proc~initial_conditions_tgv->proc~set_init proc~transeq_x_cuda m_cuda_backend::cuda_backend_t%transeq_x_cuda proc~transeq_x_cuda->proc~transeq_cuda_dist proc~transeq_x_omp m_omp_backend::omp_backend_t%transeq_x_omp proc~transeq_x_omp->proc~transeq_omp_dist proc~transeq_y_cuda m_cuda_backend::cuda_backend_t%transeq_y_cuda proc~transeq_y_cuda->proc~transeq_cuda_dist proc~transeq_y_omp m_omp_backend::omp_backend_t%transeq_y_omp proc~transeq_y_omp->proc~transeq_omp_dist proc~transeq_z_cuda m_cuda_backend::cuda_backend_t%transeq_z_cuda proc~transeq_z_cuda->proc~transeq_cuda_dist proc~transeq_z_omp m_omp_backend::omp_backend_t%transeq_z_omp proc~transeq_z_omp->proc~transeq_omp_dist