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~4 m_io_session::writer_session_t%begin_step none~begin_step~4->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_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 none~configure_wall_damping->proc~abort_run none~end_step~4 m_io_session::writer_session_t%end_step none~end_step~4->proc~abort_run none~handle_checkpoint_step m_checkpoint_manager::checkpoint_manager_t%handle_checkpoint_step none~handle_checkpoint_step->proc~abort_run none~write_data~2 m_io_session::writer_session_t%write_data none~handle_checkpoint_step->none~write_data~2 none~write_field_from_solver~4 m_io_session::writer_session_t%write_field_from_solver none~handle_checkpoint_step->none~write_field_from_solver~4 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~4 m_stats::stats_manager_t%write_checkpoint none~handle_checkpoint_step->none~write_checkpoint~4 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 m_checkpoint_manager::checkpoint_manager_t%handle_restart none~handle_restart->proc~abort_run none~read_data~2 m_io_session::reader_session_t%read_data none~handle_restart->none~read_data~2 none~read_checkpoint~3 m_stats::stats_manager_t%read_checkpoint none~handle_restart->none~read_checkpoint~3 none~handle_restart->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~4 none~handle_snapshot_step->none~end_step~4 none~write_attribute~2 m_io_session::writer_session_t%write_attribute none~handle_snapshot_step->none~write_attribute~2 none~handle_snapshot_step->none~write_data~2 none~handle_snapshot_step->none~write_field_from_solver~4 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~17 m_backend_setup::backend_setup_t%init none~init~17->proc~abort_run proc~check_cuda m_cuda_errors::check_cuda none~init~17->proc~check_cuda none~read_data m_io_base::io_reader_t%read_data none~read_data->proc~abort_run none~read_data~2->proc~abort_run none~read_data~2->none~read_data none~write_attribute~2->proc~abort_run none~write_data~2->proc~abort_run none~write_field_from_solver~4->proc~abort_run none~write_step~2 m_scalar_series::scalar_series_t%write_step none~write_step~2->proc~abort_run proc~alloc_tdsops_base m_base_backend::base_backend_t%alloc_tdsops_base proc~alloc_tdsops_base->proc~abort_run proc~base_init m_poisson_fft::poisson_fft_t%base_init proc~base_init->proc~abort_run proc~waves_set m_poisson_fft::poisson_fft_t%waves_set proc~base_init->proc~waves_set proc~case_abl_init m_case_abl::case_abl_init proc~case_abl_init->proc~abort_run proc~case_abl_init->none~configure_wall_boundary_correction proc~get_argument m_common::get_argument proc~case_abl_init->proc~get_argument 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~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_omp_backend::check_labelled_fields proc~check_labelled_fields->proc~abort_run proc~check_labelled_fields~3 m_cuda_backend::check_labelled_fields proc~check_labelled_fields~3->proc~abort_run proc~check_mpi m_logger::check_mpi proc~check_mpi->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~curl m_vector_calculus::vector_calculus_t%curl proc~curl->proc~abort_run proc~curl->proc~reorder_base proc~curl->proc~tds_solve_base proc~curl->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~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 m_omptgt_exec_dist::exec_dist_penta_periodic proc~exec_dist_penta_periodic->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~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_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_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_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_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_x_inlet_plane_base m_base_backend::base_backend_t%field_set_x_inlet_plane_base proc~field_set_x_inlet_plane_base->proc~abort_run proc~field_set_x_inlet_plane_cuda m_cuda_backend::cuda_backend_t%field_set_x_inlet_plane_cuda proc~field_set_x_inlet_plane_cuda->proc~abort_run proc~field_set_x_inlet_plane_omp m_omp_backend::omp_backend_t%field_set_x_inlet_plane_omp proc~field_set_x_inlet_plane_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_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_cuda_poisson_fft_t m_cuda_poisson_fft::init_cuda_poisson_fft_t proc~init_cuda_poisson_fft_t->proc~abort_run proc~init_cuda_poisson_fft_t->proc~base_init proc~init_cuda_poisson_fft_t->proc~check_cufft 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_poisson_fft_base m_base_backend::base_backend_t%init_poisson_fft_base proc~init_poisson_fft_base->proc~abort_run proc~init~4 m_solver::init proc~init~4->proc~abort_run proc~init~4->proc~get_argument proc~init~4->proc~init_poisson_fft_base proc~allocate_tdsops m_solver::allocate_tdsops proc~init~4->proc~allocate_tdsops proc~init~8 m_time_integrator::init proc~init~8->proc~abort_run 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~mesh_init m_mesh::mesh_init proc~mesh_init->proc~abort_run proc~mesh_init->proc~decomposition_2decomp proc~obtain_coordinates m_mesh_content::geo_t%obtain_coordinates proc~mesh_init->proc~obtain_coordinates proc~obtain_coordinates->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~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_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~2 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_les_nml m_config::les_config_t%read_les_nml proc~read_les_nml->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_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_fft_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_fft_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 proc~run->proc~compute_pressure_vert proc~run->proc~precorrect_walls none~body m_ibm::ibm_t%body proc~run->none~body none~handle_io_step m_io_manager::io_manager_t%handle_io_step proc~run->none~handle_io_step proc~compute_derived_fields m_postprocess::compute_derived_fields proc~run->proc~compute_derived_fields proc~pressure_correction m_solver::solver_t%pressure_correction proc~run->proc~pressure_correction 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~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~stagder_1st m_tdsops::tdsops_t%stagder_1st proc~stagder_1st->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 m_omp_backend::tds_solve_dist proc~tds_solve_omp->proc~tds_solve_dist 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~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~waves_set->proc~abort_run proc~write_single_field_to_buffer->proc~abort_run program~xcompact xcompact program~xcompact->proc~abort_run program~xcompact->none~init~17 program~xcompact->proc~get_argument program~xcompact->proc~run 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~mesh_t m_mesh::mesh_t interface~mesh_t->proc~mesh_init interface~solver_t m_solver::solver_t interface~solver_t->proc~init~4 interface~tdsops_t m_tdsops::tdsops_t interface~tdsops_t->proc~tdsops_init interface~time_intg_t m_time_integrator::time_intg_t interface~time_intg_t->proc~init~8 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->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~2 m_io_manager::io_manager_t%handle_restart none~handle_restart~2->none~handle_restart none~read_checkpoint~3->none~read_data~2 none~sample m_abl_diagnostics::abl_diagnostics_t%sample none~sample->proc~field_plane_sums_base none~sample->proc~field_set_abl_wall_stress_base none~write_checkpoint~4->none~write_data~2 none~write_stats->none~write_data~2 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_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_case_wind_turbine::case_wind_turbine_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~4 proc~case_init->none~handle_restart~2 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~compute_outflow_params~2 m_case_cylinder::case_cylinder_t%compute_outflow_params proc~compute_outflow_params~2->proc~slice_max_sum_base proc~cuda_tdsops_init m_cuda_tdsops::cuda_tdsops_init proc~cuda_tdsops_init->proc~tdsops_init proc~curl~2 m_solver::solver_t%curl proc~curl~2->proc~curl 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_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_data 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~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_fft_t%fft_backward_100_cuda proc~fft_backward_100_cuda->proc~check_cufft proc~fft_backward_110_cuda m_cuda_poisson_fft::cuda_poisson_fft_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_fft_t%fft_forward_100_cuda proc~fft_forward_100_cuda->proc~check_cufft proc~fft_forward_110_cuda m_cuda_poisson_fft::cuda_poisson_fft_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_100_cuda m_cuda_poisson_fft::cuda_poisson_fft_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_fft_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_fft_t%fft_postprocess_110_omp proc~fft_postprocess_110_omp->proc~process_spectral_110 proc~field_labelled_axpy_cuda m_cuda_backend::cuda_backend_t%field_labelled_axpy_cuda proc~field_labelled_axpy_cuda->proc~check_labelled_fields~3 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~3 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~filter_field m_solver::filter_field proc~filter_field->proc~filter_in_dir 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~init_cuda_poisson_fft_t proc~omptgt_tdsops_init m_omptgt_tdsops::omptgt_tdsops_init proc~omptgt_tdsops_init->proc~tdsops_init proc~poisson_fft m_solver::poisson_fft proc~poisson_fft->proc~reorder_base 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~sendrecv_3fields m_omptgt_sendrecv::sendrecv_3fields proc~sendrecv_3fields->proc~device_sync proc~sendrecv_3fields->proc~memcpy_d2d proc~sendrecv_3fields~2 m_cuda_sendrecv::sendrecv_3fields proc~sendrecv_3fields~2->proc~check_cuda proc~sendrecv_3fields~2->proc~check_mpi proc~sendrecv_3fields~2->proc~copy_halo proc~sendrecv_fields m_omptgt_sendrecv::sendrecv_fields proc~sendrecv_fields->proc~device_sync proc~sendrecv_fields->proc~memcpy_d2d proc~sendrecv_fields~2 m_omp_sendrecv::sendrecv_fields proc~sendrecv_fields~2->proc~check_mpi proc~sendrecv_fields~3 m_cuda_sendrecv::sendrecv_fields proc~sendrecv_fields~3->proc~check_cuda proc~sendrecv_fields~3->proc~check_mpi proc~sendrecv_fields~3->proc~copy_halo proc~set_field_data->proc~copy_data_to_f_base proc~set_field_data->proc~reorder_base proc~setup_field_arrays->proc~get_field_ptr proc~setup_field_arrays->proc~get_field_data 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~write_checkpoint_adm m_adm::adm_t%write_checkpoint_adm proc~write_checkpoint_adm->none~write_data~2 proc~write_output_adm m_adm::adm_t%write_output_adm proc~write_output_adm->none~write_step~2 proc~write_step m_monitoring::monitoring_t%write_step proc~write_step->none~write_step~2 proc~write_step->proc~field_max_mean_base proc~write_step->proc~vector_norm_squared_base proc~write_step->proc~curl~2 proc~write_step->proc~divergence_v2p 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 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_cylinder m_case_cylinder::case_cylinder_t%define_BC_cylinder proc~define_bc_cylinder->proc~compute_outflow_params~2 proc~define_bc_cylinder->proc~set_field_data proc~exec_dist_tds_compact m_omptgt_exec_dist::exec_dist_tds_compact proc~exec_dist_tds_compact->proc~sendrecv_fields proc~exec_dist_tds_compact~2 m_cuda_exec_dist::exec_dist_tds_compact proc~exec_dist_tds_compact~2->proc~sendrecv_fields~3 proc~exec_dist_tds_compact~3 m_omp_exec_dist::exec_dist_tds_compact proc~exec_dist_tds_compact~3->proc~sendrecv_fields~2 proc~exec_dist_transeq_3fused m_omptgt_exec_dist::exec_dist_transeq_3fused proc~exec_dist_transeq_3fused->proc~sendrecv_3fields proc~exec_dist_transeq_3fused~2 m_cuda_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~2 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 proc~postprocess_channel m_case_channel::case_channel_t%postprocess_channel proc~postprocess_channel->proc~write_step proc~postprocess_cylinder m_case_cylinder::case_cylinder_t%postprocess_cylinder proc~postprocess_cylinder->proc~write_step proc~postprocess_generic m_case_generic::case_generic_t%postprocess_generic proc~postprocess_generic->proc~write_step proc~postprocess_tgv m_case_tgv::case_tgv_t%postprocess_tgv proc~postprocess_tgv->proc~write_step proc~postprocess_wind_turbine m_case_wind_turbine::case_wind_turbine_t%postprocess_wind_turbine proc~postprocess_wind_turbine->proc~write_step proc~set_init m_base_case::base_case_t%set_init proc~set_init->proc~set_field_data proc~tds_solve_dist->proc~sendrecv_fields~2 proc~tds_solve_dist->proc~exec_dist_tds_compact~3 proc~tds_solve_dist~3->proc~sendrecv_fields~3 proc~tds_solve_dist~3->proc~exec_dist_tds_compact~2 proc~transeq_cuda_dist m_cuda_backend::cuda_backend_t%transeq_cuda_dist proc~transeq_cuda_dist->proc~sendrecv_3fields~2 proc~transeq_cuda_dist->proc~exec_dist_transeq_3fused~2 proc~transeq_omp_dist m_omp_backend::omp_backend_t%transeq_omp_dist proc~transeq_omp_dist->proc~sendrecv_fields~2 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~3 proc~transeq_species_cuda->proc~exec_dist_transeq_3fused~2 proc~transeq_species_omp m_omp_backend::omp_backend_t%transeq_species_omp proc~transeq_species_omp->proc~sendrecv_fields~2 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~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